diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index b767d73e..3156329b 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -41,4 +41,4 @@ jobs: IGNORE_GENERATED_FILES: true DEFAULT_BRANCH: main GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - FILTER_REGEX_EXCLUDE: Dockerfile.*dockerignore # Linter thinks these are docker files but they aren't. + FILTER_REGEX_EXCLUDE: (Dockerfile.*dockerignore|dataplane/standalone/sai) # Linter thinks these are docker files but they aren't. diff --git a/dataplane/standalone/apigen/ccgen/ccgen.go b/dataplane/standalone/apigen/ccgen/ccgen.go index 052faeb4..cea2ec9a 100644 --- a/dataplane/standalone/apigen/ccgen/ccgen.go +++ b/dataplane/standalone/apigen/ccgen/ccgen.go @@ -118,7 +118,7 @@ func createCCData(meta *saiast.FuncMetadata, apiName string, sai *saiast.SAIAPI, } for _, attr := range info.Attrs[meta.TypeName].CreateFields { name := sanitizeProtoName(attr.MemberName) - pFunc, arg, err := protoFieldSetter(attr.SaiType, name, "attr_list[i].value", info, false) + pFunc, arg, err := protoFieldSetter(attr.SaiType, name, "attr_list[i].value", info) if err != nil { fmt.Println("skipping due to error: ", err) continue @@ -132,7 +132,7 @@ func createCCData(meta *saiast.FuncMetadata, apiName string, sai *saiast.SAIAPI, case "get_attribute": tf.AttrSwitch = &AttrSwitch{ Var: "attr_list[i].id", - ProtoVar: "resp.attr(i)", + ProtoVar: "resp.attr()", } for _, attr := range info.Attrs[meta.TypeName].ReadFields { name := sanitizeProtoName(attr.MemberName) @@ -151,7 +151,7 @@ func createCCData(meta *saiast.FuncMetadata, apiName string, sai *saiast.SAIAPI, } for _, attr := range info.Attrs[meta.TypeName].SetFields { name := sanitizeProtoName(attr.MemberName) - pFunc, arg, err := protoFieldSetter(attr.SaiType, name, "attr->value", info, true) + pFunc, arg, err := protoFieldSetter(attr.SaiType, name, "attr->value", info) if err != nil { fmt.Println("skipping due to error: ", err) continue @@ -270,10 +270,10 @@ var typeToUnionAccessor = map[string]*unionAccessor{ }, } -func protoFieldSetter(saiType, protoField, varName string, info *docparser.SAIInfo, inOneof bool) (string, string, error) { +func protoFieldSetter(saiType, protoField, varName string, info *docparser.SAIInfo) (string, string, error) { setFn := fmt.Sprintf("set_%s", protoField) if _, ok := info.Enums[saiType]; ok { - pType, _, err := protogen.SaiTypeToProtoType(saiType, info, inOneof) + pType, _, err := protogen.SaiTypeToProtoType(saiType, info) if err != nil { return "", "", err } @@ -296,9 +296,6 @@ func protoFieldSetter(saiType, protoField, varName string, info *docparser.SAIIn return setFn, fmt.Sprintf("%s.%s, sizeof(%s.%s)", varName, ua.accessor, varName, ua.accessor), nil case variableSizedArray: setFn = fmt.Sprintf("mutable_%s()->Add", protoField) - if inOneof { - setFn = fmt.Sprintf("mutable_%s()->mutable_list()->Add", protoField) - } return setFn, fmt.Sprintf("%s.%s.list, %s.%s.list + %s.%s.count", varName, ua.accessor, varName, ua.accessor, varName, ua.accessor), nil } return "", "", fmt.Errorf("unknown accessor type %q", ua.aType) @@ -338,7 +335,7 @@ func protoFieldGetter(saiType, protoField, varName string, info *docparser.SAIIn return smt, nil case variableSizedArray: smt.CopyConvertFunc = "copy_list" - smt.CopyConvertFuncArgs = fmt.Sprintf(".list(), %s.count", smt.Var) + smt.CopyConvertFuncArgs = fmt.Sprintf(", %s.count", smt.Var) smt.Var += ".list" return smt, nil } diff --git a/dataplane/standalone/apigen/protogen/protogen.go b/dataplane/standalone/apigen/protogen/protogen.go index 51bf8195..db1090a4 100644 --- a/dataplane/standalone/apigen/protogen/protogen.go +++ b/dataplane/standalone/apigen/protogen/protogen.go @@ -110,43 +110,14 @@ func generateCommonTypes(docInfo *docparser.SAIInfo) (string, error) { return nil }) - seenLists := map[string]bool{} - // Find all the repeated fields that appear in oneof and generate a list wrapper type. err := rangeInOrder(docInfo.Attrs, func(n string, attr *docparser.Attr) error { - for _, f := range attr.ReadFields { - msgName, isRepeated, err := SaiTypeToProtoType(f.SaiType, docInfo, true) - if err != nil { - return err - } - if !isRepeated { - continue - } - repeatedName, _, err := SaiTypeToProtoType(f.SaiType, docInfo, false) - if err != nil { - return err - } - msg := &protoTmplMessage{ - Name: msgName, - Fields: []protoTmplField{{ - Index: 1, - Name: "list", - ProtoType: repeatedName, - }}, - } - if _, ok := seenLists[msgName]; !ok { - common.Lists = append(common.Lists, msg) - seenLists[msgName] = true - } - } - attrFields, err := createAttrs(1, docInfo, attr.ReadFields, true) + attrFields, err := createAttrs(1, n, docInfo, attr.ReadFields) if err != nil { return err } common.Lists = append(common.Lists, &protoTmplMessage{ - Fields: attrFields, - Name: saiast.TrimSAIName(n, true, false) + "Attribute", - AttrsWrapperStart: "oneof {", - AttrsWrapperEnd: "}", + Fields: attrFields, + Name: saiast.TrimSAIName(n, true, false) + "Attribute", }) return nil }) @@ -204,11 +175,11 @@ func populateTmplDataFromFunc(apis map[string]*protoAPITmplData, docInfo *docpar requestIdx++ } - attrs, err := createAttrs(requestIdx, docInfo, docInfo.Attrs[meta.TypeName].CreateFields, false) + attrs, err := createAttrs(requestIdx, meta.TypeName, docInfo, docInfo.Attrs[meta.TypeName].CreateFields) if err != nil { return err } - req.Attrs = attrs + req.Fields = append(req.Fields, attrs...) if meta.Entry == "" { // Entries don't have id. resp.Fields = append(resp.Fields, idField) } @@ -218,13 +189,11 @@ func populateTmplDataFromFunc(apis map[string]*protoAPITmplData, docInfo *docpar return nil } req.Fields = append(req.Fields, idField) - req.AttrsWrapperStart = "oneof attr {" - req.AttrsWrapperEnd = "}" - attrs, err := createAttrs(2, docInfo, docInfo.Attrs[meta.TypeName].SetFields, true) + attrs, err := createAttrs(2, meta.TypeName, docInfo, docInfo.Attrs[meta.TypeName].SetFields) if err != nil { return err } - req.Attrs = attrs + req.Fields = append(req.Fields, attrs...) case "get_attribute": req.Fields = append(req.Fields, idField, protoTmplField{ ProtoType: "repeated " + strcase.UpperCamelCase(meta.TypeName+" attr"), @@ -234,7 +203,7 @@ func populateTmplDataFromFunc(apis map[string]*protoAPITmplData, docInfo *docpar resp.Fields = append(resp.Fields, protoTmplField{ Index: 1, Name: "attr", - ProtoType: "repeated " + strcase.UpperCamelCase(meta.TypeName+"Attribute"), + ProtoType: strcase.UpperCamelCase(meta.TypeName + "Attribute"), }) // attrEnum is the special emun that describes the possible values can be set/get for the API. @@ -285,7 +254,7 @@ func populateTmplDataFromFunc(apis map[string]*protoAPITmplData, docInfo *docpar return nil } -func createAttrs(startIdx int, xmlInfo *docparser.SAIInfo, attrs []*docparser.AttrTypeName, inOneof bool) ([]protoTmplField, error) { +func createAttrs(startIdx int, typeName string, xmlInfo *docparser.SAIInfo, attrs []*docparser.AttrTypeName) ([]protoTmplField, error) { fields := []protoTmplField{} for _, attr := range attrs { // Function pointers are implemented as streaming RPCs instead of settable attributes. @@ -302,11 +271,19 @@ func createAttrs(startIdx int, xmlInfo *docparser.SAIInfo, attrs []*docparser.At Index: startIdx, Name: name, } - typ, _, err := SaiTypeToProtoType(attr.SaiType, xmlInfo, inOneof) + typ, repeated, err := SaiTypeToProtoType(attr.SaiType, xmlInfo) if err != nil { return nil, err } + for i, val := range xmlInfo.Attrs[typeName].ReadFields { + if val == attr { + field.Option = fmt.Sprintf("[(attr_enum_value) = %d]", i+1) + } + } field.ProtoType = typ + if !repeated { + field.ProtoType = "optional " + typ + } fields = append(fields, field) startIdx++ } @@ -334,13 +311,8 @@ enum {{ .Name }} { {{ range .Messages }} message {{ .Name }} { {{- range .Fields }} - {{ .ProtoType }} {{ .Name }} = {{ .Index }}; - {{- end }} - {{ .AttrsWrapperStart -}} - {{- range .Attrs }} - {{ .ProtoType }} {{ .Name }} = {{ .Index }}; + {{ .ProtoType }} {{ .Name }} = {{ .Index }} {{- if .Option -}} {{ .Option }} {{- end -}}; {{- end }} - {{ .AttrsWrapperEnd }} } {{ end }} @@ -356,9 +328,13 @@ syntax = "proto3"; package lemming.dataplane.sai; import "google/protobuf/timestamp.proto"; +import "google/protobuf/descriptor.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; +extend google.protobuf.FieldOptions { + optional int32 attr_enum_value = 50000; +} {{ range .Messages }} {{ . }} {{ end -}} @@ -374,7 +350,7 @@ enum {{ .Name }} { {{- range .Lists }} message {{ .Name }} { {{- range .Fields }} - {{ .ProtoType }} {{ .Name }} = {{ .Index }}; + {{ .ProtoType }} {{ .Name }} = {{ .Index }} {{ if .Option -}} {{ .Option }} {{- end -}}; {{- end }} } {{ end -}} @@ -407,17 +383,15 @@ type protoEnumValues struct { } type protoTmplMessage struct { - Name string - AttrsWrapperStart string - AttrsWrapperEnd string - Fields []protoTmplField - Attrs []protoTmplField + Name string + Fields []protoTmplField } type protoTmplField struct { ProtoType string Name string Index int + Option string } type protoRPC struct { @@ -661,6 +635,10 @@ message QOSMap { bytes data_ip = 11; Uint64List data_list = 12; }; +} + +message Uint64List { + repeated uint64 list = 1; }`, }, "sai_acl_action_data_t": { @@ -924,35 +902,29 @@ message FdbEventNotificationData { // saiTypeToProtoTypeCompound handles compound sai types (eg list of enums). // The map key contains the base type (eg list) and func accepts the subtype (eg an enum type) // and returns the full type string (eg repeated sample_enum). -var saiTypeToProtoTypeCompound = map[string]func(subType string, xmlInfo *docparser.SAIInfo, inOneof bool) (string, bool){ - "sai_s32_list_t": func(subType string, xmlInfo *docparser.SAIInfo, inOneof bool) (string, bool) { +var saiTypeToProtoTypeCompound = map[string]func(subType string, xmlInfo *docparser.SAIInfo) (string, bool){ + "sai_s32_list_t": func(subType string, xmlInfo *docparser.SAIInfo) (string, bool) { if _, ok := xmlInfo.Enums[subType]; !ok { return "", false } - if inOneof { - return saiast.TrimSAIName(subType, true, false) + "List", true - } return "repeated " + saiast.TrimSAIName(subType, true, false), true }, - "sai_acl_field_data_t": func(next string, xmlInfo *docparser.SAIInfo, inOneof bool) (string, bool) { + "sai_acl_field_data_t": func(next string, xmlInfo *docparser.SAIInfo) (string, bool) { return "AclFieldData", false }, - "sai_acl_action_data_t": func(next string, xmlInfo *docparser.SAIInfo, inOneof bool) (string, bool) { + "sai_acl_action_data_t": func(next string, xmlInfo *docparser.SAIInfo) (string, bool) { return "AclActionData", false }, - "sai_pointer_t": func(next string, xmlInfo *docparser.SAIInfo, inOneof bool) (string, bool) { return "-", false }, // Noop, these are special cases. + "sai_pointer_t": func(next string, xmlInfo *docparser.SAIInfo) (string, bool) { return "-", false }, // Noop, these are special cases. } // saiTypeToProtoType returns the protobuf type string for a SAI type. // example: sai_u8_list_t -> repeated uint32 -func SaiTypeToProtoType(saiType string, xmlInfo *docparser.SAIInfo, inOneof bool) (string, bool, error) { +func SaiTypeToProtoType(saiType string, xmlInfo *docparser.SAIInfo) (string, bool, error) { saiType = strings.TrimPrefix(saiType, "const ") if pt, ok := saiTypeToProto[saiType]; ok { if pt.Repeated { - if inOneof { - return strcase.UpperCamelCase(pt.ProtoType + " List"), true, nil - } return "repeated " + pt.ProtoType, true, nil } return pt.ProtoType, false, nil @@ -966,7 +938,7 @@ func SaiTypeToProtoType(saiType string, xmlInfo *docparser.SAIInfo, inOneof bool if !ok { return "", false, fmt.Errorf("unknown sai type: %v", saiType) } - name, isRepeated := fn(splits[1], xmlInfo, inOneof) + name, isRepeated := fn(splits[1], xmlInfo) return name, isRepeated, nil } diff --git a/dataplane/standalone/apigen/protogen/protogen_test.go b/dataplane/standalone/apigen/protogen/protogen_test.go index 15712186..b9945896 100644 --- a/dataplane/standalone/apigen/protogen/protogen_test.go +++ b/dataplane/standalone/apigen/protogen/protogen_test.go @@ -31,9 +31,13 @@ syntax = "proto3"; package lemming.dataplane.sai; import "google/protobuf/timestamp.proto"; +import "google/protobuf/descriptor.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; +extend google.protobuf.FieldOptions { + optional int32 attr_enum_value = 50000; +} message AclActionData { bool enable = 1; @@ -72,6 +76,10 @@ message AclFieldData { }; } +message Uint64List { + repeated uint64 list = 1; +} + message ACLResource { AclStage stage = 1; AclBindPointType bind_point = 2; @@ -309,17 +317,6 @@ enum Foo { } `, }, - }, { - desc: "common list - unknown type", - inAst: &saiast.SAIAPI{}, - inInfo: &docparser.SAIInfo{ - Attrs: map[string]*docparser.Attr{ - "FOO": { - ReadFields: []*docparser.AttrTypeName{{SaiType: "foo"}}, - }, - }, - }, - wantErr: "unknown sai type: foo", }, { desc: "common list and attribute", inAst: &saiast.SAIAPI{}, @@ -338,13 +335,9 @@ enum Foo { }, want: map[string]string{ "common.proto": commonType + ` -message Uint32List { - repeated uint32 list = 1; -} - message FooAttribute { - Uint32List sample_list = 1; - uint32 sample_int = 2; + repeated uint32 sample_list = 1 [(attr_enum_value) = 1]; + optional uint32 sample_int = 2 [(attr_enum_value) = 2]; } `, }, @@ -402,8 +395,8 @@ message FooAttribute { want: map[string]string{ "common.proto": commonType + ` message FooAttribute { - int32 sample_int = 1; - uint32 sample_uint = 2; + optional int32 sample_int = 1 [(attr_enum_value) = 1]; + optional uint32 sample_uint = 2 [(attr_enum_value) = 2]; } `, "sample.proto": ` @@ -423,51 +416,35 @@ enum FooAttr { } message CreateFooRequest { - - uint32 sample_uint = 1; - + optional uint32 sample_uint = 1; } message CreateFooResponse { uint64 oid = 1; - - } message RemoveFooRequest { uint64 oid = 1; - - } message RemoveFooResponse { - - } message SetFooAttributeRequest { uint64 oid = 1; - oneof attr { - int32 sample_int = 2; - } + optional int32 sample_int = 2; } message SetFooAttributeResponse { - - } message GetFooAttributeRequest { uint64 oid = 1; repeated FooAttr attr_type = 2; - - } message GetFooAttributeResponse { - repeated FooAttribute attr = 1; - - + FooAttribute attr = 1; } @@ -528,8 +505,8 @@ service Sample { want: map[string]string{ "common.proto": commonType + ` message FooAttribute { - int32 sample_int = 1; - uint32 sample_uint = 2; + optional int32 sample_int = 1 [(attr_enum_value) = 1]; + optional uint32 sample_uint = 2 [(attr_enum_value) = 2]; } `, "sample.proto": ` @@ -550,39 +527,27 @@ enum FooAttr { message CreateFooRequest { uint64 switch = 1; - - uint32 sample_uint = 2; - + optional uint32 sample_uint = 2; } message CreateFooResponse { uint64 oid = 1; - - } message RemoveFooRequest { uint64 oid = 1; - - } message RemoveFooResponse { - - } message GetFooAttributeRequest { uint64 oid = 1; repeated FooAttr attr_type = 2; - - } message GetFooAttributeResponse { - repeated FooAttribute attr = 1; - - + FooAttribute attr = 1; } diff --git a/dataplane/standalone/proto/BUILD b/dataplane/standalone/proto/BUILD index d6a92e48..ad14d8ad 100644 --- a/dataplane/standalone/proto/BUILD +++ b/dataplane/standalone/proto/BUILD @@ -55,7 +55,10 @@ proto_library( "wred.proto", ], visibility = ["//visibility:public"], - deps = ["@com_google_protobuf//:timestamp_proto"], + deps = [ + "@com_google_protobuf//:descriptor_proto", + "@com_google_protobuf//:timestamp_proto", + ], ) go_proto_library( diff --git a/dataplane/standalone/proto/acl.pb.go b/dataplane/standalone/proto/acl.pb.go index 0eb670aa..4f6ff1cd 100755 --- a/dataplane/standalone/proto/acl.pb.go +++ b/dataplane/standalone/proto/acl.pb.go @@ -1077,103 +1077,103 @@ type CreateAclTableRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - AclStage AclStage `protobuf:"varint,2,opt,name=acl_stage,json=aclStage,proto3,enum=lemming.dataplane.sai.AclStage" json:"acl_stage,omitempty"` + AclStage *AclStage `protobuf:"varint,2,opt,name=acl_stage,json=aclStage,proto3,enum=lemming.dataplane.sai.AclStage,oneof" json:"acl_stage,omitempty"` AclBindPointTypeList []AclBindPointType `protobuf:"varint,3,rep,packed,name=acl_bind_point_type_list,json=aclBindPointTypeList,proto3,enum=lemming.dataplane.sai.AclBindPointType" json:"acl_bind_point_type_list,omitempty"` - Size uint32 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` + Size *uint32 `protobuf:"varint,4,opt,name=size,proto3,oneof" json:"size,omitempty"` AclActionTypeList []AclActionType `protobuf:"varint,5,rep,packed,name=acl_action_type_list,json=aclActionTypeList,proto3,enum=lemming.dataplane.sai.AclActionType" json:"acl_action_type_list,omitempty"` - FieldSrcIpv6 bool `protobuf:"varint,6,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3" json:"field_src_ipv6,omitempty"` - FieldSrcIpv6Word3 bool `protobuf:"varint,7,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3" json:"field_src_ipv6_word3,omitempty"` - FieldSrcIpv6Word2 bool `protobuf:"varint,8,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3" json:"field_src_ipv6_word2,omitempty"` - FieldSrcIpv6Word1 bool `protobuf:"varint,9,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3" json:"field_src_ipv6_word1,omitempty"` - FieldSrcIpv6Word0 bool `protobuf:"varint,10,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3" json:"field_src_ipv6_word0,omitempty"` - FieldDstIpv6 bool `protobuf:"varint,11,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3" json:"field_dst_ipv6,omitempty"` - FieldDstIpv6Word3 bool `protobuf:"varint,12,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3" json:"field_dst_ipv6_word3,omitempty"` - FieldDstIpv6Word2 bool `protobuf:"varint,13,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3" json:"field_dst_ipv6_word2,omitempty"` - FieldDstIpv6Word1 bool `protobuf:"varint,14,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3" json:"field_dst_ipv6_word1,omitempty"` - FieldDstIpv6Word0 bool `protobuf:"varint,15,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3" json:"field_dst_ipv6_word0,omitempty"` - FieldInnerSrcIpv6 bool `protobuf:"varint,16,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3" json:"field_inner_src_ipv6,omitempty"` - FieldInnerDstIpv6 bool `protobuf:"varint,17,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3" json:"field_inner_dst_ipv6,omitempty"` - FieldSrcMac bool `protobuf:"varint,18,opt,name=field_src_mac,json=fieldSrcMac,proto3" json:"field_src_mac,omitempty"` - FieldDstMac bool `protobuf:"varint,19,opt,name=field_dst_mac,json=fieldDstMac,proto3" json:"field_dst_mac,omitempty"` - FieldSrcIp bool `protobuf:"varint,20,opt,name=field_src_ip,json=fieldSrcIp,proto3" json:"field_src_ip,omitempty"` - FieldDstIp bool `protobuf:"varint,21,opt,name=field_dst_ip,json=fieldDstIp,proto3" json:"field_dst_ip,omitempty"` - FieldInnerSrcIp bool `protobuf:"varint,22,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3" json:"field_inner_src_ip,omitempty"` - FieldInnerDstIp bool `protobuf:"varint,23,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3" json:"field_inner_dst_ip,omitempty"` - FieldInPorts bool `protobuf:"varint,24,opt,name=field_in_ports,json=fieldInPorts,proto3" json:"field_in_ports,omitempty"` - FieldOutPorts bool `protobuf:"varint,25,opt,name=field_out_ports,json=fieldOutPorts,proto3" json:"field_out_ports,omitempty"` - FieldInPort bool `protobuf:"varint,26,opt,name=field_in_port,json=fieldInPort,proto3" json:"field_in_port,omitempty"` - FieldOutPort bool `protobuf:"varint,27,opt,name=field_out_port,json=fieldOutPort,proto3" json:"field_out_port,omitempty"` - FieldSrcPort bool `protobuf:"varint,28,opt,name=field_src_port,json=fieldSrcPort,proto3" json:"field_src_port,omitempty"` - FieldOuterVlanId bool `protobuf:"varint,29,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3" json:"field_outer_vlan_id,omitempty"` - FieldOuterVlanPri bool `protobuf:"varint,30,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3" json:"field_outer_vlan_pri,omitempty"` - FieldOuterVlanCfi bool `protobuf:"varint,31,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3" json:"field_outer_vlan_cfi,omitempty"` - FieldInnerVlanId bool `protobuf:"varint,32,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3" json:"field_inner_vlan_id,omitempty"` - FieldInnerVlanPri bool `protobuf:"varint,33,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3" json:"field_inner_vlan_pri,omitempty"` - FieldInnerVlanCfi bool `protobuf:"varint,34,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3" json:"field_inner_vlan_cfi,omitempty"` - FieldL4SrcPort bool `protobuf:"varint,35,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3" json:"field_l4_src_port,omitempty"` - FieldL4DstPort bool `protobuf:"varint,36,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3" json:"field_l4_dst_port,omitempty"` - FieldInnerL4SrcPort bool `protobuf:"varint,37,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3" json:"field_inner_l4_src_port,omitempty"` - FieldInnerL4DstPort bool `protobuf:"varint,38,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3" json:"field_inner_l4_dst_port,omitempty"` - FieldEtherType bool `protobuf:"varint,39,opt,name=field_ether_type,json=fieldEtherType,proto3" json:"field_ether_type,omitempty"` - FieldInnerEtherType bool `protobuf:"varint,40,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3" json:"field_inner_ether_type,omitempty"` - FieldIpProtocol bool `protobuf:"varint,41,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3" json:"field_ip_protocol,omitempty"` - FieldInnerIpProtocol bool `protobuf:"varint,42,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3" json:"field_inner_ip_protocol,omitempty"` - FieldIpIdentification bool `protobuf:"varint,43,opt,name=field_ip_identification,json=fieldIpIdentification,proto3" json:"field_ip_identification,omitempty"` - FieldDscp bool `protobuf:"varint,44,opt,name=field_dscp,json=fieldDscp,proto3" json:"field_dscp,omitempty"` - FieldEcn bool `protobuf:"varint,45,opt,name=field_ecn,json=fieldEcn,proto3" json:"field_ecn,omitempty"` - FieldTtl bool `protobuf:"varint,46,opt,name=field_ttl,json=fieldTtl,proto3" json:"field_ttl,omitempty"` - FieldTos bool `protobuf:"varint,47,opt,name=field_tos,json=fieldTos,proto3" json:"field_tos,omitempty"` - FieldIpFlags bool `protobuf:"varint,48,opt,name=field_ip_flags,json=fieldIpFlags,proto3" json:"field_ip_flags,omitempty"` - FieldTcpFlags bool `protobuf:"varint,49,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3" json:"field_tcp_flags,omitempty"` - FieldAclIpType bool `protobuf:"varint,50,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3" json:"field_acl_ip_type,omitempty"` - FieldAclIpFrag bool `protobuf:"varint,51,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3" json:"field_acl_ip_frag,omitempty"` - FieldIpv6FlowLabel bool `protobuf:"varint,52,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3" json:"field_ipv6_flow_label,omitempty"` - FieldTc bool `protobuf:"varint,53,opt,name=field_tc,json=fieldTc,proto3" json:"field_tc,omitempty"` - FieldIcmpType bool `protobuf:"varint,54,opt,name=field_icmp_type,json=fieldIcmpType,proto3" json:"field_icmp_type,omitempty"` - FieldIcmpCode bool `protobuf:"varint,55,opt,name=field_icmp_code,json=fieldIcmpCode,proto3" json:"field_icmp_code,omitempty"` - FieldIcmpv6Type bool `protobuf:"varint,56,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3" json:"field_icmpv6_type,omitempty"` - FieldIcmpv6Code bool `protobuf:"varint,57,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3" json:"field_icmpv6_code,omitempty"` - FieldPacketVlan bool `protobuf:"varint,58,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3" json:"field_packet_vlan,omitempty"` - FieldTunnelVni bool `protobuf:"varint,59,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3" json:"field_tunnel_vni,omitempty"` - FieldHasVlanTag bool `protobuf:"varint,60,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3" json:"field_has_vlan_tag,omitempty"` - FieldMacsecSci bool `protobuf:"varint,61,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3" json:"field_macsec_sci,omitempty"` - FieldMplsLabel0Label bool `protobuf:"varint,62,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3" json:"field_mpls_label0_label,omitempty"` - FieldMplsLabel0Ttl bool `protobuf:"varint,63,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3" json:"field_mpls_label0_ttl,omitempty"` - FieldMplsLabel0Exp bool `protobuf:"varint,64,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3" json:"field_mpls_label0_exp,omitempty"` - FieldMplsLabel0Bos bool `protobuf:"varint,65,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3" json:"field_mpls_label0_bos,omitempty"` - FieldMplsLabel1Label bool `protobuf:"varint,66,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3" json:"field_mpls_label1_label,omitempty"` - FieldMplsLabel1Ttl bool `protobuf:"varint,67,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3" json:"field_mpls_label1_ttl,omitempty"` - FieldMplsLabel1Exp bool `protobuf:"varint,68,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3" json:"field_mpls_label1_exp,omitempty"` - FieldMplsLabel1Bos bool `protobuf:"varint,69,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3" json:"field_mpls_label1_bos,omitempty"` - FieldMplsLabel2Label bool `protobuf:"varint,70,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3" json:"field_mpls_label2_label,omitempty"` - FieldMplsLabel2Ttl bool `protobuf:"varint,71,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3" json:"field_mpls_label2_ttl,omitempty"` - FieldMplsLabel2Exp bool `protobuf:"varint,72,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3" json:"field_mpls_label2_exp,omitempty"` - FieldMplsLabel2Bos bool `protobuf:"varint,73,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3" json:"field_mpls_label2_bos,omitempty"` - FieldMplsLabel3Label bool `protobuf:"varint,74,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3" json:"field_mpls_label3_label,omitempty"` - FieldMplsLabel3Ttl bool `protobuf:"varint,75,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3" json:"field_mpls_label3_ttl,omitempty"` - FieldMplsLabel3Exp bool `protobuf:"varint,76,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3" json:"field_mpls_label3_exp,omitempty"` - FieldMplsLabel3Bos bool `protobuf:"varint,77,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3" json:"field_mpls_label3_bos,omitempty"` - FieldMplsLabel4Label bool `protobuf:"varint,78,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3" json:"field_mpls_label4_label,omitempty"` - FieldMplsLabel4Ttl bool `protobuf:"varint,79,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3" json:"field_mpls_label4_ttl,omitempty"` - FieldMplsLabel4Exp bool `protobuf:"varint,80,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3" json:"field_mpls_label4_exp,omitempty"` - FieldMplsLabel4Bos bool `protobuf:"varint,81,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3" json:"field_mpls_label4_bos,omitempty"` - FieldFdbDstUserMeta bool `protobuf:"varint,82,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3" json:"field_fdb_dst_user_meta,omitempty"` - FieldRouteDstUserMeta bool `protobuf:"varint,83,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3" json:"field_route_dst_user_meta,omitempty"` - FieldNeighborDstUserMeta bool `protobuf:"varint,84,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3" json:"field_neighbor_dst_user_meta,omitempty"` - FieldPortUserMeta bool `protobuf:"varint,85,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3" json:"field_port_user_meta,omitempty"` - FieldVlanUserMeta bool `protobuf:"varint,86,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3" json:"field_vlan_user_meta,omitempty"` - FieldAclUserMeta bool `protobuf:"varint,87,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3" json:"field_acl_user_meta,omitempty"` - FieldFdbNpuMetaDstHit bool `protobuf:"varint,88,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3" json:"field_fdb_npu_meta_dst_hit,omitempty"` - FieldNeighborNpuMetaDstHit bool `protobuf:"varint,89,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3" json:"field_neighbor_npu_meta_dst_hit,omitempty"` - FieldRouteNpuMetaDstHit bool `protobuf:"varint,90,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3" json:"field_route_npu_meta_dst_hit,omitempty"` - FieldBthOpcode bool `protobuf:"varint,91,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3" json:"field_bth_opcode,omitempty"` - FieldAethSyndrome bool `protobuf:"varint,92,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3" json:"field_aeth_syndrome,omitempty"` - UserDefinedFieldGroupMin uint64 `protobuf:"varint,93,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3" json:"user_defined_field_group_min,omitempty"` - UserDefinedFieldGroupMax uint64 `protobuf:"varint,94,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3" json:"user_defined_field_group_max,omitempty"` + FieldSrcIpv6 *bool `protobuf:"varint,6,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3,oneof" json:"field_src_ipv6,omitempty"` + FieldSrcIpv6Word3 *bool `protobuf:"varint,7,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3,oneof" json:"field_src_ipv6_word3,omitempty"` + FieldSrcIpv6Word2 *bool `protobuf:"varint,8,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3,oneof" json:"field_src_ipv6_word2,omitempty"` + FieldSrcIpv6Word1 *bool `protobuf:"varint,9,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3,oneof" json:"field_src_ipv6_word1,omitempty"` + FieldSrcIpv6Word0 *bool `protobuf:"varint,10,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3,oneof" json:"field_src_ipv6_word0,omitempty"` + FieldDstIpv6 *bool `protobuf:"varint,11,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3,oneof" json:"field_dst_ipv6,omitempty"` + FieldDstIpv6Word3 *bool `protobuf:"varint,12,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3,oneof" json:"field_dst_ipv6_word3,omitempty"` + FieldDstIpv6Word2 *bool `protobuf:"varint,13,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3,oneof" json:"field_dst_ipv6_word2,omitempty"` + FieldDstIpv6Word1 *bool `protobuf:"varint,14,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3,oneof" json:"field_dst_ipv6_word1,omitempty"` + FieldDstIpv6Word0 *bool `protobuf:"varint,15,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3,oneof" json:"field_dst_ipv6_word0,omitempty"` + FieldInnerSrcIpv6 *bool `protobuf:"varint,16,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3,oneof" json:"field_inner_src_ipv6,omitempty"` + FieldInnerDstIpv6 *bool `protobuf:"varint,17,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3,oneof" json:"field_inner_dst_ipv6,omitempty"` + FieldSrcMac *bool `protobuf:"varint,18,opt,name=field_src_mac,json=fieldSrcMac,proto3,oneof" json:"field_src_mac,omitempty"` + FieldDstMac *bool `protobuf:"varint,19,opt,name=field_dst_mac,json=fieldDstMac,proto3,oneof" json:"field_dst_mac,omitempty"` + FieldSrcIp *bool `protobuf:"varint,20,opt,name=field_src_ip,json=fieldSrcIp,proto3,oneof" json:"field_src_ip,omitempty"` + FieldDstIp *bool `protobuf:"varint,21,opt,name=field_dst_ip,json=fieldDstIp,proto3,oneof" json:"field_dst_ip,omitempty"` + FieldInnerSrcIp *bool `protobuf:"varint,22,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3,oneof" json:"field_inner_src_ip,omitempty"` + FieldInnerDstIp *bool `protobuf:"varint,23,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3,oneof" json:"field_inner_dst_ip,omitempty"` + FieldInPorts *bool `protobuf:"varint,24,opt,name=field_in_ports,json=fieldInPorts,proto3,oneof" json:"field_in_ports,omitempty"` + FieldOutPorts *bool `protobuf:"varint,25,opt,name=field_out_ports,json=fieldOutPorts,proto3,oneof" json:"field_out_ports,omitempty"` + FieldInPort *bool `protobuf:"varint,26,opt,name=field_in_port,json=fieldInPort,proto3,oneof" json:"field_in_port,omitempty"` + FieldOutPort *bool `protobuf:"varint,27,opt,name=field_out_port,json=fieldOutPort,proto3,oneof" json:"field_out_port,omitempty"` + FieldSrcPort *bool `protobuf:"varint,28,opt,name=field_src_port,json=fieldSrcPort,proto3,oneof" json:"field_src_port,omitempty"` + FieldOuterVlanId *bool `protobuf:"varint,29,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3,oneof" json:"field_outer_vlan_id,omitempty"` + FieldOuterVlanPri *bool `protobuf:"varint,30,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3,oneof" json:"field_outer_vlan_pri,omitempty"` + FieldOuterVlanCfi *bool `protobuf:"varint,31,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3,oneof" json:"field_outer_vlan_cfi,omitempty"` + FieldInnerVlanId *bool `protobuf:"varint,32,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3,oneof" json:"field_inner_vlan_id,omitempty"` + FieldInnerVlanPri *bool `protobuf:"varint,33,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3,oneof" json:"field_inner_vlan_pri,omitempty"` + FieldInnerVlanCfi *bool `protobuf:"varint,34,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3,oneof" json:"field_inner_vlan_cfi,omitempty"` + FieldL4SrcPort *bool `protobuf:"varint,35,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3,oneof" json:"field_l4_src_port,omitempty"` + FieldL4DstPort *bool `protobuf:"varint,36,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3,oneof" json:"field_l4_dst_port,omitempty"` + FieldInnerL4SrcPort *bool `protobuf:"varint,37,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3,oneof" json:"field_inner_l4_src_port,omitempty"` + FieldInnerL4DstPort *bool `protobuf:"varint,38,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3,oneof" json:"field_inner_l4_dst_port,omitempty"` + FieldEtherType *bool `protobuf:"varint,39,opt,name=field_ether_type,json=fieldEtherType,proto3,oneof" json:"field_ether_type,omitempty"` + FieldInnerEtherType *bool `protobuf:"varint,40,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3,oneof" json:"field_inner_ether_type,omitempty"` + FieldIpProtocol *bool `protobuf:"varint,41,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3,oneof" json:"field_ip_protocol,omitempty"` + FieldInnerIpProtocol *bool `protobuf:"varint,42,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3,oneof" json:"field_inner_ip_protocol,omitempty"` + FieldIpIdentification *bool `protobuf:"varint,43,opt,name=field_ip_identification,json=fieldIpIdentification,proto3,oneof" json:"field_ip_identification,omitempty"` + FieldDscp *bool `protobuf:"varint,44,opt,name=field_dscp,json=fieldDscp,proto3,oneof" json:"field_dscp,omitempty"` + FieldEcn *bool `protobuf:"varint,45,opt,name=field_ecn,json=fieldEcn,proto3,oneof" json:"field_ecn,omitempty"` + FieldTtl *bool `protobuf:"varint,46,opt,name=field_ttl,json=fieldTtl,proto3,oneof" json:"field_ttl,omitempty"` + FieldTos *bool `protobuf:"varint,47,opt,name=field_tos,json=fieldTos,proto3,oneof" json:"field_tos,omitempty"` + FieldIpFlags *bool `protobuf:"varint,48,opt,name=field_ip_flags,json=fieldIpFlags,proto3,oneof" json:"field_ip_flags,omitempty"` + FieldTcpFlags *bool `protobuf:"varint,49,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3,oneof" json:"field_tcp_flags,omitempty"` + FieldAclIpType *bool `protobuf:"varint,50,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3,oneof" json:"field_acl_ip_type,omitempty"` + FieldAclIpFrag *bool `protobuf:"varint,51,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3,oneof" json:"field_acl_ip_frag,omitempty"` + FieldIpv6FlowLabel *bool `protobuf:"varint,52,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3,oneof" json:"field_ipv6_flow_label,omitempty"` + FieldTc *bool `protobuf:"varint,53,opt,name=field_tc,json=fieldTc,proto3,oneof" json:"field_tc,omitempty"` + FieldIcmpType *bool `protobuf:"varint,54,opt,name=field_icmp_type,json=fieldIcmpType,proto3,oneof" json:"field_icmp_type,omitempty"` + FieldIcmpCode *bool `protobuf:"varint,55,opt,name=field_icmp_code,json=fieldIcmpCode,proto3,oneof" json:"field_icmp_code,omitempty"` + FieldIcmpv6Type *bool `protobuf:"varint,56,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3,oneof" json:"field_icmpv6_type,omitempty"` + FieldIcmpv6Code *bool `protobuf:"varint,57,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3,oneof" json:"field_icmpv6_code,omitempty"` + FieldPacketVlan *bool `protobuf:"varint,58,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3,oneof" json:"field_packet_vlan,omitempty"` + FieldTunnelVni *bool `protobuf:"varint,59,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3,oneof" json:"field_tunnel_vni,omitempty"` + FieldHasVlanTag *bool `protobuf:"varint,60,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3,oneof" json:"field_has_vlan_tag,omitempty"` + FieldMacsecSci *bool `protobuf:"varint,61,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3,oneof" json:"field_macsec_sci,omitempty"` + FieldMplsLabel0Label *bool `protobuf:"varint,62,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3,oneof" json:"field_mpls_label0_label,omitempty"` + FieldMplsLabel0Ttl *bool `protobuf:"varint,63,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3,oneof" json:"field_mpls_label0_ttl,omitempty"` + FieldMplsLabel0Exp *bool `protobuf:"varint,64,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3,oneof" json:"field_mpls_label0_exp,omitempty"` + FieldMplsLabel0Bos *bool `protobuf:"varint,65,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3,oneof" json:"field_mpls_label0_bos,omitempty"` + FieldMplsLabel1Label *bool `protobuf:"varint,66,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3,oneof" json:"field_mpls_label1_label,omitempty"` + FieldMplsLabel1Ttl *bool `protobuf:"varint,67,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3,oneof" json:"field_mpls_label1_ttl,omitempty"` + FieldMplsLabel1Exp *bool `protobuf:"varint,68,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3,oneof" json:"field_mpls_label1_exp,omitempty"` + FieldMplsLabel1Bos *bool `protobuf:"varint,69,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3,oneof" json:"field_mpls_label1_bos,omitempty"` + FieldMplsLabel2Label *bool `protobuf:"varint,70,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3,oneof" json:"field_mpls_label2_label,omitempty"` + FieldMplsLabel2Ttl *bool `protobuf:"varint,71,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3,oneof" json:"field_mpls_label2_ttl,omitempty"` + FieldMplsLabel2Exp *bool `protobuf:"varint,72,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3,oneof" json:"field_mpls_label2_exp,omitempty"` + FieldMplsLabel2Bos *bool `protobuf:"varint,73,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3,oneof" json:"field_mpls_label2_bos,omitempty"` + FieldMplsLabel3Label *bool `protobuf:"varint,74,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3,oneof" json:"field_mpls_label3_label,omitempty"` + FieldMplsLabel3Ttl *bool `protobuf:"varint,75,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3,oneof" json:"field_mpls_label3_ttl,omitempty"` + FieldMplsLabel3Exp *bool `protobuf:"varint,76,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3,oneof" json:"field_mpls_label3_exp,omitempty"` + FieldMplsLabel3Bos *bool `protobuf:"varint,77,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3,oneof" json:"field_mpls_label3_bos,omitempty"` + FieldMplsLabel4Label *bool `protobuf:"varint,78,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3,oneof" json:"field_mpls_label4_label,omitempty"` + FieldMplsLabel4Ttl *bool `protobuf:"varint,79,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3,oneof" json:"field_mpls_label4_ttl,omitempty"` + FieldMplsLabel4Exp *bool `protobuf:"varint,80,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3,oneof" json:"field_mpls_label4_exp,omitempty"` + FieldMplsLabel4Bos *bool `protobuf:"varint,81,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3,oneof" json:"field_mpls_label4_bos,omitempty"` + FieldFdbDstUserMeta *bool `protobuf:"varint,82,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3,oneof" json:"field_fdb_dst_user_meta,omitempty"` + FieldRouteDstUserMeta *bool `protobuf:"varint,83,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3,oneof" json:"field_route_dst_user_meta,omitempty"` + FieldNeighborDstUserMeta *bool `protobuf:"varint,84,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3,oneof" json:"field_neighbor_dst_user_meta,omitempty"` + FieldPortUserMeta *bool `protobuf:"varint,85,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3,oneof" json:"field_port_user_meta,omitempty"` + FieldVlanUserMeta *bool `protobuf:"varint,86,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3,oneof" json:"field_vlan_user_meta,omitempty"` + FieldAclUserMeta *bool `protobuf:"varint,87,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3,oneof" json:"field_acl_user_meta,omitempty"` + FieldFdbNpuMetaDstHit *bool `protobuf:"varint,88,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3,oneof" json:"field_fdb_npu_meta_dst_hit,omitempty"` + FieldNeighborNpuMetaDstHit *bool `protobuf:"varint,89,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3,oneof" json:"field_neighbor_npu_meta_dst_hit,omitempty"` + FieldRouteNpuMetaDstHit *bool `protobuf:"varint,90,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3,oneof" json:"field_route_npu_meta_dst_hit,omitempty"` + FieldBthOpcode *bool `protobuf:"varint,91,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3,oneof" json:"field_bth_opcode,omitempty"` + FieldAethSyndrome *bool `protobuf:"varint,92,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3,oneof" json:"field_aeth_syndrome,omitempty"` + UserDefinedFieldGroupMin *uint64 `protobuf:"varint,93,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3,oneof" json:"user_defined_field_group_min,omitempty"` + UserDefinedFieldGroupMax *uint64 `protobuf:"varint,94,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3,oneof" json:"user_defined_field_group_max,omitempty"` FieldAclRangeType []AclRangeType `protobuf:"varint,95,rep,packed,name=field_acl_range_type,json=fieldAclRangeType,proto3,enum=lemming.dataplane.sai.AclRangeType" json:"field_acl_range_type,omitempty"` - FieldIpv6NextHeader bool `protobuf:"varint,96,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3" json:"field_ipv6_next_header,omitempty"` - FieldGreKey bool `protobuf:"varint,97,opt,name=field_gre_key,json=fieldGreKey,proto3" json:"field_gre_key,omitempty"` - FieldTamIntType bool `protobuf:"varint,98,opt,name=field_tam_int_type,json=fieldTamIntType,proto3" json:"field_tam_int_type,omitempty"` + FieldIpv6NextHeader *bool `protobuf:"varint,96,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3,oneof" json:"field_ipv6_next_header,omitempty"` + FieldGreKey *bool `protobuf:"varint,97,opt,name=field_gre_key,json=fieldGreKey,proto3,oneof" json:"field_gre_key,omitempty"` + FieldTamIntType *bool `protobuf:"varint,98,opt,name=field_tam_int_type,json=fieldTamIntType,proto3,oneof" json:"field_tam_int_type,omitempty"` } func (x *CreateAclTableRequest) Reset() { @@ -1216,8 +1216,8 @@ func (x *CreateAclTableRequest) GetSwitch() uint64 { } func (x *CreateAclTableRequest) GetAclStage() AclStage { - if x != nil { - return x.AclStage + if x != nil && x.AclStage != nil { + return *x.AclStage } return AclStage_ACL_STAGE_UNSPECIFIED } @@ -1230,8 +1230,8 @@ func (x *CreateAclTableRequest) GetAclBindPointTypeList() []AclBindPointType { } func (x *CreateAclTableRequest) GetSize() uint32 { - if x != nil { - return x.Size + if x != nil && x.Size != nil { + return *x.Size } return 0 } @@ -1244,624 +1244,624 @@ func (x *CreateAclTableRequest) GetAclActionTypeList() []AclActionType { } func (x *CreateAclTableRequest) GetFieldSrcIpv6() bool { - if x != nil { - return x.FieldSrcIpv6 + if x != nil && x.FieldSrcIpv6 != nil { + return *x.FieldSrcIpv6 } return false } func (x *CreateAclTableRequest) GetFieldSrcIpv6Word3() bool { - if x != nil { - return x.FieldSrcIpv6Word3 + if x != nil && x.FieldSrcIpv6Word3 != nil { + return *x.FieldSrcIpv6Word3 } return false } func (x *CreateAclTableRequest) GetFieldSrcIpv6Word2() bool { - if x != nil { - return x.FieldSrcIpv6Word2 + if x != nil && x.FieldSrcIpv6Word2 != nil { + return *x.FieldSrcIpv6Word2 } return false } func (x *CreateAclTableRequest) GetFieldSrcIpv6Word1() bool { - if x != nil { - return x.FieldSrcIpv6Word1 + if x != nil && x.FieldSrcIpv6Word1 != nil { + return *x.FieldSrcIpv6Word1 } return false } func (x *CreateAclTableRequest) GetFieldSrcIpv6Word0() bool { - if x != nil { - return x.FieldSrcIpv6Word0 + if x != nil && x.FieldSrcIpv6Word0 != nil { + return *x.FieldSrcIpv6Word0 } return false } func (x *CreateAclTableRequest) GetFieldDstIpv6() bool { - if x != nil { - return x.FieldDstIpv6 + if x != nil && x.FieldDstIpv6 != nil { + return *x.FieldDstIpv6 } return false } func (x *CreateAclTableRequest) GetFieldDstIpv6Word3() bool { - if x != nil { - return x.FieldDstIpv6Word3 + if x != nil && x.FieldDstIpv6Word3 != nil { + return *x.FieldDstIpv6Word3 } return false } func (x *CreateAclTableRequest) GetFieldDstIpv6Word2() bool { - if x != nil { - return x.FieldDstIpv6Word2 + if x != nil && x.FieldDstIpv6Word2 != nil { + return *x.FieldDstIpv6Word2 } return false } func (x *CreateAclTableRequest) GetFieldDstIpv6Word1() bool { - if x != nil { - return x.FieldDstIpv6Word1 + if x != nil && x.FieldDstIpv6Word1 != nil { + return *x.FieldDstIpv6Word1 } return false } func (x *CreateAclTableRequest) GetFieldDstIpv6Word0() bool { - if x != nil { - return x.FieldDstIpv6Word0 + if x != nil && x.FieldDstIpv6Word0 != nil { + return *x.FieldDstIpv6Word0 } return false } func (x *CreateAclTableRequest) GetFieldInnerSrcIpv6() bool { - if x != nil { - return x.FieldInnerSrcIpv6 + if x != nil && x.FieldInnerSrcIpv6 != nil { + return *x.FieldInnerSrcIpv6 } return false } func (x *CreateAclTableRequest) GetFieldInnerDstIpv6() bool { - if x != nil { - return x.FieldInnerDstIpv6 + if x != nil && x.FieldInnerDstIpv6 != nil { + return *x.FieldInnerDstIpv6 } return false } func (x *CreateAclTableRequest) GetFieldSrcMac() bool { - if x != nil { - return x.FieldSrcMac + if x != nil && x.FieldSrcMac != nil { + return *x.FieldSrcMac } return false } func (x *CreateAclTableRequest) GetFieldDstMac() bool { - if x != nil { - return x.FieldDstMac + if x != nil && x.FieldDstMac != nil { + return *x.FieldDstMac } return false } func (x *CreateAclTableRequest) GetFieldSrcIp() bool { - if x != nil { - return x.FieldSrcIp + if x != nil && x.FieldSrcIp != nil { + return *x.FieldSrcIp } return false } func (x *CreateAclTableRequest) GetFieldDstIp() bool { - if x != nil { - return x.FieldDstIp + if x != nil && x.FieldDstIp != nil { + return *x.FieldDstIp } return false } func (x *CreateAclTableRequest) GetFieldInnerSrcIp() bool { - if x != nil { - return x.FieldInnerSrcIp + if x != nil && x.FieldInnerSrcIp != nil { + return *x.FieldInnerSrcIp } return false } func (x *CreateAclTableRequest) GetFieldInnerDstIp() bool { - if x != nil { - return x.FieldInnerDstIp + if x != nil && x.FieldInnerDstIp != nil { + return *x.FieldInnerDstIp } return false } func (x *CreateAclTableRequest) GetFieldInPorts() bool { - if x != nil { - return x.FieldInPorts + if x != nil && x.FieldInPorts != nil { + return *x.FieldInPorts } return false } func (x *CreateAclTableRequest) GetFieldOutPorts() bool { - if x != nil { - return x.FieldOutPorts + if x != nil && x.FieldOutPorts != nil { + return *x.FieldOutPorts } return false } func (x *CreateAclTableRequest) GetFieldInPort() bool { - if x != nil { - return x.FieldInPort + if x != nil && x.FieldInPort != nil { + return *x.FieldInPort } return false } func (x *CreateAclTableRequest) GetFieldOutPort() bool { - if x != nil { - return x.FieldOutPort + if x != nil && x.FieldOutPort != nil { + return *x.FieldOutPort } return false } func (x *CreateAclTableRequest) GetFieldSrcPort() bool { - if x != nil { - return x.FieldSrcPort + if x != nil && x.FieldSrcPort != nil { + return *x.FieldSrcPort } return false } func (x *CreateAclTableRequest) GetFieldOuterVlanId() bool { - if x != nil { - return x.FieldOuterVlanId + if x != nil && x.FieldOuterVlanId != nil { + return *x.FieldOuterVlanId } return false } func (x *CreateAclTableRequest) GetFieldOuterVlanPri() bool { - if x != nil { - return x.FieldOuterVlanPri + if x != nil && x.FieldOuterVlanPri != nil { + return *x.FieldOuterVlanPri } return false } func (x *CreateAclTableRequest) GetFieldOuterVlanCfi() bool { - if x != nil { - return x.FieldOuterVlanCfi + if x != nil && x.FieldOuterVlanCfi != nil { + return *x.FieldOuterVlanCfi } return false } func (x *CreateAclTableRequest) GetFieldInnerVlanId() bool { - if x != nil { - return x.FieldInnerVlanId + if x != nil && x.FieldInnerVlanId != nil { + return *x.FieldInnerVlanId } return false } func (x *CreateAclTableRequest) GetFieldInnerVlanPri() bool { - if x != nil { - return x.FieldInnerVlanPri + if x != nil && x.FieldInnerVlanPri != nil { + return *x.FieldInnerVlanPri } return false } func (x *CreateAclTableRequest) GetFieldInnerVlanCfi() bool { - if x != nil { - return x.FieldInnerVlanCfi + if x != nil && x.FieldInnerVlanCfi != nil { + return *x.FieldInnerVlanCfi } return false } func (x *CreateAclTableRequest) GetFieldL4SrcPort() bool { - if x != nil { - return x.FieldL4SrcPort + if x != nil && x.FieldL4SrcPort != nil { + return *x.FieldL4SrcPort } return false } func (x *CreateAclTableRequest) GetFieldL4DstPort() bool { - if x != nil { - return x.FieldL4DstPort + if x != nil && x.FieldL4DstPort != nil { + return *x.FieldL4DstPort } return false } func (x *CreateAclTableRequest) GetFieldInnerL4SrcPort() bool { - if x != nil { - return x.FieldInnerL4SrcPort + if x != nil && x.FieldInnerL4SrcPort != nil { + return *x.FieldInnerL4SrcPort } return false } func (x *CreateAclTableRequest) GetFieldInnerL4DstPort() bool { - if x != nil { - return x.FieldInnerL4DstPort + if x != nil && x.FieldInnerL4DstPort != nil { + return *x.FieldInnerL4DstPort } return false } func (x *CreateAclTableRequest) GetFieldEtherType() bool { - if x != nil { - return x.FieldEtherType + if x != nil && x.FieldEtherType != nil { + return *x.FieldEtherType } return false } func (x *CreateAclTableRequest) GetFieldInnerEtherType() bool { - if x != nil { - return x.FieldInnerEtherType + if x != nil && x.FieldInnerEtherType != nil { + return *x.FieldInnerEtherType } return false } func (x *CreateAclTableRequest) GetFieldIpProtocol() bool { - if x != nil { - return x.FieldIpProtocol + if x != nil && x.FieldIpProtocol != nil { + return *x.FieldIpProtocol } return false } func (x *CreateAclTableRequest) GetFieldInnerIpProtocol() bool { - if x != nil { - return x.FieldInnerIpProtocol + if x != nil && x.FieldInnerIpProtocol != nil { + return *x.FieldInnerIpProtocol } return false } func (x *CreateAclTableRequest) GetFieldIpIdentification() bool { - if x != nil { - return x.FieldIpIdentification + if x != nil && x.FieldIpIdentification != nil { + return *x.FieldIpIdentification } return false } func (x *CreateAclTableRequest) GetFieldDscp() bool { - if x != nil { - return x.FieldDscp + if x != nil && x.FieldDscp != nil { + return *x.FieldDscp } return false } func (x *CreateAclTableRequest) GetFieldEcn() bool { - if x != nil { - return x.FieldEcn + if x != nil && x.FieldEcn != nil { + return *x.FieldEcn } return false } func (x *CreateAclTableRequest) GetFieldTtl() bool { - if x != nil { - return x.FieldTtl + if x != nil && x.FieldTtl != nil { + return *x.FieldTtl } return false } func (x *CreateAclTableRequest) GetFieldTos() bool { - if x != nil { - return x.FieldTos + if x != nil && x.FieldTos != nil { + return *x.FieldTos } return false } func (x *CreateAclTableRequest) GetFieldIpFlags() bool { - if x != nil { - return x.FieldIpFlags + if x != nil && x.FieldIpFlags != nil { + return *x.FieldIpFlags } return false } func (x *CreateAclTableRequest) GetFieldTcpFlags() bool { - if x != nil { - return x.FieldTcpFlags + if x != nil && x.FieldTcpFlags != nil { + return *x.FieldTcpFlags } return false } func (x *CreateAclTableRequest) GetFieldAclIpType() bool { - if x != nil { - return x.FieldAclIpType + if x != nil && x.FieldAclIpType != nil { + return *x.FieldAclIpType } return false } func (x *CreateAclTableRequest) GetFieldAclIpFrag() bool { - if x != nil { - return x.FieldAclIpFrag + if x != nil && x.FieldAclIpFrag != nil { + return *x.FieldAclIpFrag } return false } func (x *CreateAclTableRequest) GetFieldIpv6FlowLabel() bool { - if x != nil { - return x.FieldIpv6FlowLabel + if x != nil && x.FieldIpv6FlowLabel != nil { + return *x.FieldIpv6FlowLabel } return false } func (x *CreateAclTableRequest) GetFieldTc() bool { - if x != nil { - return x.FieldTc + if x != nil && x.FieldTc != nil { + return *x.FieldTc } return false } func (x *CreateAclTableRequest) GetFieldIcmpType() bool { - if x != nil { - return x.FieldIcmpType + if x != nil && x.FieldIcmpType != nil { + return *x.FieldIcmpType } return false } func (x *CreateAclTableRequest) GetFieldIcmpCode() bool { - if x != nil { - return x.FieldIcmpCode + if x != nil && x.FieldIcmpCode != nil { + return *x.FieldIcmpCode } return false } func (x *CreateAclTableRequest) GetFieldIcmpv6Type() bool { - if x != nil { - return x.FieldIcmpv6Type + if x != nil && x.FieldIcmpv6Type != nil { + return *x.FieldIcmpv6Type } return false } func (x *CreateAclTableRequest) GetFieldIcmpv6Code() bool { - if x != nil { - return x.FieldIcmpv6Code + if x != nil && x.FieldIcmpv6Code != nil { + return *x.FieldIcmpv6Code } return false } func (x *CreateAclTableRequest) GetFieldPacketVlan() bool { - if x != nil { - return x.FieldPacketVlan + if x != nil && x.FieldPacketVlan != nil { + return *x.FieldPacketVlan } return false } func (x *CreateAclTableRequest) GetFieldTunnelVni() bool { - if x != nil { - return x.FieldTunnelVni + if x != nil && x.FieldTunnelVni != nil { + return *x.FieldTunnelVni } return false } func (x *CreateAclTableRequest) GetFieldHasVlanTag() bool { - if x != nil { - return x.FieldHasVlanTag + if x != nil && x.FieldHasVlanTag != nil { + return *x.FieldHasVlanTag } return false } func (x *CreateAclTableRequest) GetFieldMacsecSci() bool { - if x != nil { - return x.FieldMacsecSci + if x != nil && x.FieldMacsecSci != nil { + return *x.FieldMacsecSci } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel0Label() bool { - if x != nil { - return x.FieldMplsLabel0Label + if x != nil && x.FieldMplsLabel0Label != nil { + return *x.FieldMplsLabel0Label } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel0Ttl() bool { - if x != nil { - return x.FieldMplsLabel0Ttl + if x != nil && x.FieldMplsLabel0Ttl != nil { + return *x.FieldMplsLabel0Ttl } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel0Exp() bool { - if x != nil { - return x.FieldMplsLabel0Exp + if x != nil && x.FieldMplsLabel0Exp != nil { + return *x.FieldMplsLabel0Exp } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel0Bos() bool { - if x != nil { - return x.FieldMplsLabel0Bos + if x != nil && x.FieldMplsLabel0Bos != nil { + return *x.FieldMplsLabel0Bos } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel1Label() bool { - if x != nil { - return x.FieldMplsLabel1Label + if x != nil && x.FieldMplsLabel1Label != nil { + return *x.FieldMplsLabel1Label } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel1Ttl() bool { - if x != nil { - return x.FieldMplsLabel1Ttl + if x != nil && x.FieldMplsLabel1Ttl != nil { + return *x.FieldMplsLabel1Ttl } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel1Exp() bool { - if x != nil { - return x.FieldMplsLabel1Exp + if x != nil && x.FieldMplsLabel1Exp != nil { + return *x.FieldMplsLabel1Exp } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel1Bos() bool { - if x != nil { - return x.FieldMplsLabel1Bos + if x != nil && x.FieldMplsLabel1Bos != nil { + return *x.FieldMplsLabel1Bos } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel2Label() bool { - if x != nil { - return x.FieldMplsLabel2Label + if x != nil && x.FieldMplsLabel2Label != nil { + return *x.FieldMplsLabel2Label } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel2Ttl() bool { - if x != nil { - return x.FieldMplsLabel2Ttl + if x != nil && x.FieldMplsLabel2Ttl != nil { + return *x.FieldMplsLabel2Ttl } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel2Exp() bool { - if x != nil { - return x.FieldMplsLabel2Exp + if x != nil && x.FieldMplsLabel2Exp != nil { + return *x.FieldMplsLabel2Exp } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel2Bos() bool { - if x != nil { - return x.FieldMplsLabel2Bos + if x != nil && x.FieldMplsLabel2Bos != nil { + return *x.FieldMplsLabel2Bos } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel3Label() bool { - if x != nil { - return x.FieldMplsLabel3Label + if x != nil && x.FieldMplsLabel3Label != nil { + return *x.FieldMplsLabel3Label } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel3Ttl() bool { - if x != nil { - return x.FieldMplsLabel3Ttl + if x != nil && x.FieldMplsLabel3Ttl != nil { + return *x.FieldMplsLabel3Ttl } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel3Exp() bool { - if x != nil { - return x.FieldMplsLabel3Exp + if x != nil && x.FieldMplsLabel3Exp != nil { + return *x.FieldMplsLabel3Exp } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel3Bos() bool { - if x != nil { - return x.FieldMplsLabel3Bos + if x != nil && x.FieldMplsLabel3Bos != nil { + return *x.FieldMplsLabel3Bos } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel4Label() bool { - if x != nil { - return x.FieldMplsLabel4Label + if x != nil && x.FieldMplsLabel4Label != nil { + return *x.FieldMplsLabel4Label } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel4Ttl() bool { - if x != nil { - return x.FieldMplsLabel4Ttl + if x != nil && x.FieldMplsLabel4Ttl != nil { + return *x.FieldMplsLabel4Ttl } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel4Exp() bool { - if x != nil { - return x.FieldMplsLabel4Exp + if x != nil && x.FieldMplsLabel4Exp != nil { + return *x.FieldMplsLabel4Exp } return false } func (x *CreateAclTableRequest) GetFieldMplsLabel4Bos() bool { - if x != nil { - return x.FieldMplsLabel4Bos + if x != nil && x.FieldMplsLabel4Bos != nil { + return *x.FieldMplsLabel4Bos } return false } func (x *CreateAclTableRequest) GetFieldFdbDstUserMeta() bool { - if x != nil { - return x.FieldFdbDstUserMeta + if x != nil && x.FieldFdbDstUserMeta != nil { + return *x.FieldFdbDstUserMeta } return false } func (x *CreateAclTableRequest) GetFieldRouteDstUserMeta() bool { - if x != nil { - return x.FieldRouteDstUserMeta + if x != nil && x.FieldRouteDstUserMeta != nil { + return *x.FieldRouteDstUserMeta } return false } func (x *CreateAclTableRequest) GetFieldNeighborDstUserMeta() bool { - if x != nil { - return x.FieldNeighborDstUserMeta + if x != nil && x.FieldNeighborDstUserMeta != nil { + return *x.FieldNeighborDstUserMeta } return false } func (x *CreateAclTableRequest) GetFieldPortUserMeta() bool { - if x != nil { - return x.FieldPortUserMeta + if x != nil && x.FieldPortUserMeta != nil { + return *x.FieldPortUserMeta } return false } func (x *CreateAclTableRequest) GetFieldVlanUserMeta() bool { - if x != nil { - return x.FieldVlanUserMeta + if x != nil && x.FieldVlanUserMeta != nil { + return *x.FieldVlanUserMeta } return false } func (x *CreateAclTableRequest) GetFieldAclUserMeta() bool { - if x != nil { - return x.FieldAclUserMeta + if x != nil && x.FieldAclUserMeta != nil { + return *x.FieldAclUserMeta } return false } func (x *CreateAclTableRequest) GetFieldFdbNpuMetaDstHit() bool { - if x != nil { - return x.FieldFdbNpuMetaDstHit + if x != nil && x.FieldFdbNpuMetaDstHit != nil { + return *x.FieldFdbNpuMetaDstHit } return false } func (x *CreateAclTableRequest) GetFieldNeighborNpuMetaDstHit() bool { - if x != nil { - return x.FieldNeighborNpuMetaDstHit + if x != nil && x.FieldNeighborNpuMetaDstHit != nil { + return *x.FieldNeighborNpuMetaDstHit } return false } func (x *CreateAclTableRequest) GetFieldRouteNpuMetaDstHit() bool { - if x != nil { - return x.FieldRouteNpuMetaDstHit + if x != nil && x.FieldRouteNpuMetaDstHit != nil { + return *x.FieldRouteNpuMetaDstHit } return false } func (x *CreateAclTableRequest) GetFieldBthOpcode() bool { - if x != nil { - return x.FieldBthOpcode + if x != nil && x.FieldBthOpcode != nil { + return *x.FieldBthOpcode } return false } func (x *CreateAclTableRequest) GetFieldAethSyndrome() bool { - if x != nil { - return x.FieldAethSyndrome + if x != nil && x.FieldAethSyndrome != nil { + return *x.FieldAethSyndrome } return false } func (x *CreateAclTableRequest) GetUserDefinedFieldGroupMin() uint64 { - if x != nil { - return x.UserDefinedFieldGroupMin + if x != nil && x.UserDefinedFieldGroupMin != nil { + return *x.UserDefinedFieldGroupMin } return 0 } func (x *CreateAclTableRequest) GetUserDefinedFieldGroupMax() uint64 { - if x != nil { - return x.UserDefinedFieldGroupMax + if x != nil && x.UserDefinedFieldGroupMax != nil { + return *x.UserDefinedFieldGroupMax } return 0 } @@ -1874,22 +1874,22 @@ func (x *CreateAclTableRequest) GetFieldAclRangeType() []AclRangeType { } func (x *CreateAclTableRequest) GetFieldIpv6NextHeader() bool { - if x != nil { - return x.FieldIpv6NextHeader + if x != nil && x.FieldIpv6NextHeader != nil { + return *x.FieldIpv6NextHeader } return false } func (x *CreateAclTableRequest) GetFieldGreKey() bool { - if x != nil { - return x.FieldGreKey + if x != nil && x.FieldGreKey != nil { + return *x.FieldGreKey } return false } func (x *CreateAclTableRequest) GetFieldTamIntType() bool { - if x != nil { - return x.FieldTamIntType + if x != nil && x.FieldTamIntType != nil { + return *x.FieldTamIntType } return false } @@ -2086,7 +2086,7 @@ type GetAclTableAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*AclTableAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *AclTableAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetAclTableAttributeResponse) Reset() { @@ -2121,7 +2121,7 @@ func (*GetAclTableAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{5} } -func (x *GetAclTableAttributeResponse) GetAttr() []*AclTableAttribute { +func (x *GetAclTableAttributeResponse) GetAttr() *AclTableAttribute { if x != nil { return x.Attr } @@ -2134,155 +2134,155 @@ type CreateAclEntryRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TableId uint64 `protobuf:"varint,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` - Priority uint32 `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"` - AdminState bool `protobuf:"varint,4,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - FieldSrcIpv6 *AclFieldData `protobuf:"bytes,5,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3" json:"field_src_ipv6,omitempty"` - FieldSrcIpv6Word3 *AclFieldData `protobuf:"bytes,6,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3" json:"field_src_ipv6_word3,omitempty"` - FieldSrcIpv6Word2 *AclFieldData `protobuf:"bytes,7,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3" json:"field_src_ipv6_word2,omitempty"` - FieldSrcIpv6Word1 *AclFieldData `protobuf:"bytes,8,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3" json:"field_src_ipv6_word1,omitempty"` - FieldSrcIpv6Word0 *AclFieldData `protobuf:"bytes,9,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3" json:"field_src_ipv6_word0,omitempty"` - FieldDstIpv6 *AclFieldData `protobuf:"bytes,10,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3" json:"field_dst_ipv6,omitempty"` - FieldDstIpv6Word3 *AclFieldData `protobuf:"bytes,11,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3" json:"field_dst_ipv6_word3,omitempty"` - FieldDstIpv6Word2 *AclFieldData `protobuf:"bytes,12,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3" json:"field_dst_ipv6_word2,omitempty"` - FieldDstIpv6Word1 *AclFieldData `protobuf:"bytes,13,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3" json:"field_dst_ipv6_word1,omitempty"` - FieldDstIpv6Word0 *AclFieldData `protobuf:"bytes,14,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3" json:"field_dst_ipv6_word0,omitempty"` - FieldInnerSrcIpv6 *AclFieldData `protobuf:"bytes,15,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3" json:"field_inner_src_ipv6,omitempty"` - FieldInnerDstIpv6 *AclFieldData `protobuf:"bytes,16,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3" json:"field_inner_dst_ipv6,omitempty"` - FieldSrcMac *AclFieldData `protobuf:"bytes,17,opt,name=field_src_mac,json=fieldSrcMac,proto3" json:"field_src_mac,omitempty"` - FieldDstMac *AclFieldData `protobuf:"bytes,18,opt,name=field_dst_mac,json=fieldDstMac,proto3" json:"field_dst_mac,omitempty"` - FieldSrcIp *AclFieldData `protobuf:"bytes,19,opt,name=field_src_ip,json=fieldSrcIp,proto3" json:"field_src_ip,omitempty"` - FieldDstIp *AclFieldData `protobuf:"bytes,20,opt,name=field_dst_ip,json=fieldDstIp,proto3" json:"field_dst_ip,omitempty"` - FieldInnerSrcIp *AclFieldData `protobuf:"bytes,21,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3" json:"field_inner_src_ip,omitempty"` - FieldInnerDstIp *AclFieldData `protobuf:"bytes,22,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3" json:"field_inner_dst_ip,omitempty"` - FieldInPorts *AclFieldData `protobuf:"bytes,23,opt,name=field_in_ports,json=fieldInPorts,proto3" json:"field_in_ports,omitempty"` - FieldOutPorts *AclFieldData `protobuf:"bytes,24,opt,name=field_out_ports,json=fieldOutPorts,proto3" json:"field_out_ports,omitempty"` - FieldInPort *AclFieldData `protobuf:"bytes,25,opt,name=field_in_port,json=fieldInPort,proto3" json:"field_in_port,omitempty"` - FieldOutPort *AclFieldData `protobuf:"bytes,26,opt,name=field_out_port,json=fieldOutPort,proto3" json:"field_out_port,omitempty"` - FieldSrcPort *AclFieldData `protobuf:"bytes,27,opt,name=field_src_port,json=fieldSrcPort,proto3" json:"field_src_port,omitempty"` - FieldOuterVlanId *AclFieldData `protobuf:"bytes,28,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3" json:"field_outer_vlan_id,omitempty"` - FieldOuterVlanPri *AclFieldData `protobuf:"bytes,29,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3" json:"field_outer_vlan_pri,omitempty"` - FieldOuterVlanCfi *AclFieldData `protobuf:"bytes,30,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3" json:"field_outer_vlan_cfi,omitempty"` - FieldInnerVlanId *AclFieldData `protobuf:"bytes,31,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3" json:"field_inner_vlan_id,omitempty"` - FieldInnerVlanPri *AclFieldData `protobuf:"bytes,32,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3" json:"field_inner_vlan_pri,omitempty"` - FieldInnerVlanCfi *AclFieldData `protobuf:"bytes,33,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3" json:"field_inner_vlan_cfi,omitempty"` - FieldL4SrcPort *AclFieldData `protobuf:"bytes,34,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3" json:"field_l4_src_port,omitempty"` - FieldL4DstPort *AclFieldData `protobuf:"bytes,35,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3" json:"field_l4_dst_port,omitempty"` - FieldInnerL4SrcPort *AclFieldData `protobuf:"bytes,36,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3" json:"field_inner_l4_src_port,omitempty"` - FieldInnerL4DstPort *AclFieldData `protobuf:"bytes,37,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3" json:"field_inner_l4_dst_port,omitempty"` - FieldEtherType *AclFieldData `protobuf:"bytes,38,opt,name=field_ether_type,json=fieldEtherType,proto3" json:"field_ether_type,omitempty"` - FieldInnerEtherType *AclFieldData `protobuf:"bytes,39,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3" json:"field_inner_ether_type,omitempty"` - FieldIpProtocol *AclFieldData `protobuf:"bytes,40,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3" json:"field_ip_protocol,omitempty"` - FieldInnerIpProtocol *AclFieldData `protobuf:"bytes,41,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3" json:"field_inner_ip_protocol,omitempty"` - FieldIpIdentification *AclFieldData `protobuf:"bytes,42,opt,name=field_ip_identification,json=fieldIpIdentification,proto3" json:"field_ip_identification,omitempty"` - FieldDscp *AclFieldData `protobuf:"bytes,43,opt,name=field_dscp,json=fieldDscp,proto3" json:"field_dscp,omitempty"` - FieldEcn *AclFieldData `protobuf:"bytes,44,opt,name=field_ecn,json=fieldEcn,proto3" json:"field_ecn,omitempty"` - FieldTtl *AclFieldData `protobuf:"bytes,45,opt,name=field_ttl,json=fieldTtl,proto3" json:"field_ttl,omitempty"` - FieldTos *AclFieldData `protobuf:"bytes,46,opt,name=field_tos,json=fieldTos,proto3" json:"field_tos,omitempty"` - FieldIpFlags *AclFieldData `protobuf:"bytes,47,opt,name=field_ip_flags,json=fieldIpFlags,proto3" json:"field_ip_flags,omitempty"` - FieldTcpFlags *AclFieldData `protobuf:"bytes,48,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3" json:"field_tcp_flags,omitempty"` - FieldAclIpType *AclFieldData `protobuf:"bytes,49,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3" json:"field_acl_ip_type,omitempty"` - FieldAclIpFrag *AclFieldData `protobuf:"bytes,50,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3" json:"field_acl_ip_frag,omitempty"` - FieldIpv6FlowLabel *AclFieldData `protobuf:"bytes,51,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3" json:"field_ipv6_flow_label,omitempty"` - FieldTc *AclFieldData `protobuf:"bytes,52,opt,name=field_tc,json=fieldTc,proto3" json:"field_tc,omitempty"` - FieldIcmpType *AclFieldData `protobuf:"bytes,53,opt,name=field_icmp_type,json=fieldIcmpType,proto3" json:"field_icmp_type,omitempty"` - FieldIcmpCode *AclFieldData `protobuf:"bytes,54,opt,name=field_icmp_code,json=fieldIcmpCode,proto3" json:"field_icmp_code,omitempty"` - FieldIcmpv6Type *AclFieldData `protobuf:"bytes,55,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3" json:"field_icmpv6_type,omitempty"` - FieldIcmpv6Code *AclFieldData `protobuf:"bytes,56,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3" json:"field_icmpv6_code,omitempty"` - FieldPacketVlan *AclFieldData `protobuf:"bytes,57,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3" json:"field_packet_vlan,omitempty"` - FieldTunnelVni *AclFieldData `protobuf:"bytes,58,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3" json:"field_tunnel_vni,omitempty"` - FieldHasVlanTag *AclFieldData `protobuf:"bytes,59,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3" json:"field_has_vlan_tag,omitempty"` - FieldMacsecSci *AclFieldData `protobuf:"bytes,60,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3" json:"field_macsec_sci,omitempty"` - FieldMplsLabel0Label *AclFieldData `protobuf:"bytes,61,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3" json:"field_mpls_label0_label,omitempty"` - FieldMplsLabel0Ttl *AclFieldData `protobuf:"bytes,62,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3" json:"field_mpls_label0_ttl,omitempty"` - FieldMplsLabel0Exp *AclFieldData `protobuf:"bytes,63,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3" json:"field_mpls_label0_exp,omitempty"` - FieldMplsLabel0Bos *AclFieldData `protobuf:"bytes,64,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3" json:"field_mpls_label0_bos,omitempty"` - FieldMplsLabel1Label *AclFieldData `protobuf:"bytes,65,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3" json:"field_mpls_label1_label,omitempty"` - FieldMplsLabel1Ttl *AclFieldData `protobuf:"bytes,66,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3" json:"field_mpls_label1_ttl,omitempty"` - FieldMplsLabel1Exp *AclFieldData `protobuf:"bytes,67,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3" json:"field_mpls_label1_exp,omitempty"` - FieldMplsLabel1Bos *AclFieldData `protobuf:"bytes,68,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3" json:"field_mpls_label1_bos,omitempty"` - FieldMplsLabel2Label *AclFieldData `protobuf:"bytes,69,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3" json:"field_mpls_label2_label,omitempty"` - FieldMplsLabel2Ttl *AclFieldData `protobuf:"bytes,70,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3" json:"field_mpls_label2_ttl,omitempty"` - FieldMplsLabel2Exp *AclFieldData `protobuf:"bytes,71,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3" json:"field_mpls_label2_exp,omitempty"` - FieldMplsLabel2Bos *AclFieldData `protobuf:"bytes,72,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3" json:"field_mpls_label2_bos,omitempty"` - FieldMplsLabel3Label *AclFieldData `protobuf:"bytes,73,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3" json:"field_mpls_label3_label,omitempty"` - FieldMplsLabel3Ttl *AclFieldData `protobuf:"bytes,74,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3" json:"field_mpls_label3_ttl,omitempty"` - FieldMplsLabel3Exp *AclFieldData `protobuf:"bytes,75,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3" json:"field_mpls_label3_exp,omitempty"` - FieldMplsLabel3Bos *AclFieldData `protobuf:"bytes,76,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3" json:"field_mpls_label3_bos,omitempty"` - FieldMplsLabel4Label *AclFieldData `protobuf:"bytes,77,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3" json:"field_mpls_label4_label,omitempty"` - FieldMplsLabel4Ttl *AclFieldData `protobuf:"bytes,78,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3" json:"field_mpls_label4_ttl,omitempty"` - FieldMplsLabel4Exp *AclFieldData `protobuf:"bytes,79,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3" json:"field_mpls_label4_exp,omitempty"` - FieldMplsLabel4Bos *AclFieldData `protobuf:"bytes,80,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3" json:"field_mpls_label4_bos,omitempty"` - FieldFdbDstUserMeta *AclFieldData `protobuf:"bytes,81,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3" json:"field_fdb_dst_user_meta,omitempty"` - FieldRouteDstUserMeta *AclFieldData `protobuf:"bytes,82,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3" json:"field_route_dst_user_meta,omitempty"` - FieldNeighborDstUserMeta *AclFieldData `protobuf:"bytes,83,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3" json:"field_neighbor_dst_user_meta,omitempty"` - FieldPortUserMeta *AclFieldData `protobuf:"bytes,84,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3" json:"field_port_user_meta,omitempty"` - FieldVlanUserMeta *AclFieldData `protobuf:"bytes,85,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3" json:"field_vlan_user_meta,omitempty"` - FieldAclUserMeta *AclFieldData `protobuf:"bytes,86,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3" json:"field_acl_user_meta,omitempty"` - FieldFdbNpuMetaDstHit *AclFieldData `protobuf:"bytes,87,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3" json:"field_fdb_npu_meta_dst_hit,omitempty"` - FieldNeighborNpuMetaDstHit *AclFieldData `protobuf:"bytes,88,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3" json:"field_neighbor_npu_meta_dst_hit,omitempty"` - FieldRouteNpuMetaDstHit *AclFieldData `protobuf:"bytes,89,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3" json:"field_route_npu_meta_dst_hit,omitempty"` - FieldBthOpcode *AclFieldData `protobuf:"bytes,90,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3" json:"field_bth_opcode,omitempty"` - FieldAethSyndrome *AclFieldData `protobuf:"bytes,91,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3" json:"field_aeth_syndrome,omitempty"` - UserDefinedFieldGroupMin *AclFieldData `protobuf:"bytes,92,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3" json:"user_defined_field_group_min,omitempty"` - UserDefinedFieldGroupMax *AclFieldData `protobuf:"bytes,93,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3" json:"user_defined_field_group_max,omitempty"` - FieldAclRangeType *AclFieldData `protobuf:"bytes,94,opt,name=field_acl_range_type,json=fieldAclRangeType,proto3" json:"field_acl_range_type,omitempty"` - FieldIpv6NextHeader *AclFieldData `protobuf:"bytes,95,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3" json:"field_ipv6_next_header,omitempty"` - FieldGreKey *AclFieldData `protobuf:"bytes,96,opt,name=field_gre_key,json=fieldGreKey,proto3" json:"field_gre_key,omitempty"` - FieldTamIntType *AclFieldData `protobuf:"bytes,97,opt,name=field_tam_int_type,json=fieldTamIntType,proto3" json:"field_tam_int_type,omitempty"` - ActionRedirect *AclActionData `protobuf:"bytes,98,opt,name=action_redirect,json=actionRedirect,proto3" json:"action_redirect,omitempty"` - ActionEndpointIp *AclActionData `protobuf:"bytes,99,opt,name=action_endpoint_ip,json=actionEndpointIp,proto3" json:"action_endpoint_ip,omitempty"` - ActionRedirectList *AclActionData `protobuf:"bytes,100,opt,name=action_redirect_list,json=actionRedirectList,proto3" json:"action_redirect_list,omitempty"` - ActionPacketAction *AclActionData `protobuf:"bytes,101,opt,name=action_packet_action,json=actionPacketAction,proto3" json:"action_packet_action,omitempty"` - ActionFlood *AclActionData `protobuf:"bytes,102,opt,name=action_flood,json=actionFlood,proto3" json:"action_flood,omitempty"` - ActionCounter *AclActionData `protobuf:"bytes,103,opt,name=action_counter,json=actionCounter,proto3" json:"action_counter,omitempty"` - ActionMirrorIngress *AclActionData `protobuf:"bytes,104,opt,name=action_mirror_ingress,json=actionMirrorIngress,proto3" json:"action_mirror_ingress,omitempty"` - ActionMirrorEgress *AclActionData `protobuf:"bytes,105,opt,name=action_mirror_egress,json=actionMirrorEgress,proto3" json:"action_mirror_egress,omitempty"` - ActionSetPolicer *AclActionData `protobuf:"bytes,106,opt,name=action_set_policer,json=actionSetPolicer,proto3" json:"action_set_policer,omitempty"` - ActionDecrementTtl *AclActionData `protobuf:"bytes,107,opt,name=action_decrement_ttl,json=actionDecrementTtl,proto3" json:"action_decrement_ttl,omitempty"` - ActionSetTc *AclActionData `protobuf:"bytes,108,opt,name=action_set_tc,json=actionSetTc,proto3" json:"action_set_tc,omitempty"` - ActionSetPacketColor *AclActionData `protobuf:"bytes,109,opt,name=action_set_packet_color,json=actionSetPacketColor,proto3" json:"action_set_packet_color,omitempty"` - ActionSetInnerVlanId *AclActionData `protobuf:"bytes,110,opt,name=action_set_inner_vlan_id,json=actionSetInnerVlanId,proto3" json:"action_set_inner_vlan_id,omitempty"` - ActionSetInnerVlanPri *AclActionData `protobuf:"bytes,111,opt,name=action_set_inner_vlan_pri,json=actionSetInnerVlanPri,proto3" json:"action_set_inner_vlan_pri,omitempty"` - ActionSetOuterVlanId *AclActionData `protobuf:"bytes,112,opt,name=action_set_outer_vlan_id,json=actionSetOuterVlanId,proto3" json:"action_set_outer_vlan_id,omitempty"` - ActionSetOuterVlanPri *AclActionData `protobuf:"bytes,113,opt,name=action_set_outer_vlan_pri,json=actionSetOuterVlanPri,proto3" json:"action_set_outer_vlan_pri,omitempty"` - ActionAddVlanId *AclActionData `protobuf:"bytes,114,opt,name=action_add_vlan_id,json=actionAddVlanId,proto3" json:"action_add_vlan_id,omitempty"` - ActionAddVlanPri *AclActionData `protobuf:"bytes,115,opt,name=action_add_vlan_pri,json=actionAddVlanPri,proto3" json:"action_add_vlan_pri,omitempty"` - ActionSetSrcMac *AclActionData `protobuf:"bytes,116,opt,name=action_set_src_mac,json=actionSetSrcMac,proto3" json:"action_set_src_mac,omitempty"` - ActionSetDstMac *AclActionData `protobuf:"bytes,117,opt,name=action_set_dst_mac,json=actionSetDstMac,proto3" json:"action_set_dst_mac,omitempty"` - ActionSetSrcIp *AclActionData `protobuf:"bytes,118,opt,name=action_set_src_ip,json=actionSetSrcIp,proto3" json:"action_set_src_ip,omitempty"` - ActionSetDstIp *AclActionData `protobuf:"bytes,119,opt,name=action_set_dst_ip,json=actionSetDstIp,proto3" json:"action_set_dst_ip,omitempty"` - ActionSetSrcIpv6 *AclActionData `protobuf:"bytes,120,opt,name=action_set_src_ipv6,json=actionSetSrcIpv6,proto3" json:"action_set_src_ipv6,omitempty"` - ActionSetDstIpv6 *AclActionData `protobuf:"bytes,121,opt,name=action_set_dst_ipv6,json=actionSetDstIpv6,proto3" json:"action_set_dst_ipv6,omitempty"` - ActionSetDscp *AclActionData `protobuf:"bytes,122,opt,name=action_set_dscp,json=actionSetDscp,proto3" json:"action_set_dscp,omitempty"` - ActionSetEcn *AclActionData `protobuf:"bytes,123,opt,name=action_set_ecn,json=actionSetEcn,proto3" json:"action_set_ecn,omitempty"` - ActionSetL4SrcPort *AclActionData `protobuf:"bytes,124,opt,name=action_set_l4_src_port,json=actionSetL4SrcPort,proto3" json:"action_set_l4_src_port,omitempty"` - ActionSetL4DstPort *AclActionData `protobuf:"bytes,125,opt,name=action_set_l4_dst_port,json=actionSetL4DstPort,proto3" json:"action_set_l4_dst_port,omitempty"` - ActionIngressSamplepacketEnable *AclActionData `protobuf:"bytes,126,opt,name=action_ingress_samplepacket_enable,json=actionIngressSamplepacketEnable,proto3" json:"action_ingress_samplepacket_enable,omitempty"` - ActionEgressSamplepacketEnable *AclActionData `protobuf:"bytes,127,opt,name=action_egress_samplepacket_enable,json=actionEgressSamplepacketEnable,proto3" json:"action_egress_samplepacket_enable,omitempty"` - ActionSetAclMetaData *AclActionData `protobuf:"bytes,128,opt,name=action_set_acl_meta_data,json=actionSetAclMetaData,proto3" json:"action_set_acl_meta_data,omitempty"` - ActionEgressBlockPortList *AclActionData `protobuf:"bytes,129,opt,name=action_egress_block_port_list,json=actionEgressBlockPortList,proto3" json:"action_egress_block_port_list,omitempty"` - ActionSetUserTrapId *AclActionData `protobuf:"bytes,130,opt,name=action_set_user_trap_id,json=actionSetUserTrapId,proto3" json:"action_set_user_trap_id,omitempty"` - ActionSetDoNotLearn *AclActionData `protobuf:"bytes,131,opt,name=action_set_do_not_learn,json=actionSetDoNotLearn,proto3" json:"action_set_do_not_learn,omitempty"` - ActionAclDtelFlowOp *AclActionData `protobuf:"bytes,132,opt,name=action_acl_dtel_flow_op,json=actionAclDtelFlowOp,proto3" json:"action_acl_dtel_flow_op,omitempty"` - ActionDtelIntSession *AclActionData `protobuf:"bytes,133,opt,name=action_dtel_int_session,json=actionDtelIntSession,proto3" json:"action_dtel_int_session,omitempty"` - ActionDtelDropReportEnable *AclActionData `protobuf:"bytes,134,opt,name=action_dtel_drop_report_enable,json=actionDtelDropReportEnable,proto3" json:"action_dtel_drop_report_enable,omitempty"` - ActionDtelTailDropReportEnable *AclActionData `protobuf:"bytes,135,opt,name=action_dtel_tail_drop_report_enable,json=actionDtelTailDropReportEnable,proto3" json:"action_dtel_tail_drop_report_enable,omitempty"` - ActionDtelFlowSamplePercent *AclActionData `protobuf:"bytes,136,opt,name=action_dtel_flow_sample_percent,json=actionDtelFlowSamplePercent,proto3" json:"action_dtel_flow_sample_percent,omitempty"` - ActionDtelReportAllPackets *AclActionData `protobuf:"bytes,137,opt,name=action_dtel_report_all_packets,json=actionDtelReportAllPackets,proto3" json:"action_dtel_report_all_packets,omitempty"` - ActionNoNat *AclActionData `protobuf:"bytes,138,opt,name=action_no_nat,json=actionNoNat,proto3" json:"action_no_nat,omitempty"` - ActionIntInsert *AclActionData `protobuf:"bytes,139,opt,name=action_int_insert,json=actionIntInsert,proto3" json:"action_int_insert,omitempty"` - ActionIntDelete *AclActionData `protobuf:"bytes,140,opt,name=action_int_delete,json=actionIntDelete,proto3" json:"action_int_delete,omitempty"` - ActionIntReportFlow *AclActionData `protobuf:"bytes,141,opt,name=action_int_report_flow,json=actionIntReportFlow,proto3" json:"action_int_report_flow,omitempty"` - ActionIntReportDrops *AclActionData `protobuf:"bytes,142,opt,name=action_int_report_drops,json=actionIntReportDrops,proto3" json:"action_int_report_drops,omitempty"` - ActionIntReportTailDrops *AclActionData `protobuf:"bytes,143,opt,name=action_int_report_tail_drops,json=actionIntReportTailDrops,proto3" json:"action_int_report_tail_drops,omitempty"` - ActionTamIntObject *AclActionData `protobuf:"bytes,144,opt,name=action_tam_int_object,json=actionTamIntObject,proto3" json:"action_tam_int_object,omitempty"` - ActionSetIsolationGroup *AclActionData `protobuf:"bytes,145,opt,name=action_set_isolation_group,json=actionSetIsolationGroup,proto3" json:"action_set_isolation_group,omitempty"` - ActionMacsecFlow *AclActionData `protobuf:"bytes,146,opt,name=action_macsec_flow,json=actionMacsecFlow,proto3" json:"action_macsec_flow,omitempty"` - ActionSetLagHashId *AclActionData `protobuf:"bytes,147,opt,name=action_set_lag_hash_id,json=actionSetLagHashId,proto3" json:"action_set_lag_hash_id,omitempty"` - ActionSetEcmpHashId *AclActionData `protobuf:"bytes,148,opt,name=action_set_ecmp_hash_id,json=actionSetEcmpHashId,proto3" json:"action_set_ecmp_hash_id,omitempty"` - ActionSetVrf *AclActionData `protobuf:"bytes,149,opt,name=action_set_vrf,json=actionSetVrf,proto3" json:"action_set_vrf,omitempty"` - ActionSetForwardingClass *AclActionData `protobuf:"bytes,150,opt,name=action_set_forwarding_class,json=actionSetForwardingClass,proto3" json:"action_set_forwarding_class,omitempty"` + TableId *uint64 `protobuf:"varint,2,opt,name=table_id,json=tableId,proto3,oneof" json:"table_id,omitempty"` + Priority *uint32 `protobuf:"varint,3,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + AdminState *bool `protobuf:"varint,4,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + FieldSrcIpv6 *AclFieldData `protobuf:"bytes,5,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3,oneof" json:"field_src_ipv6,omitempty"` + FieldSrcIpv6Word3 *AclFieldData `protobuf:"bytes,6,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3,oneof" json:"field_src_ipv6_word3,omitempty"` + FieldSrcIpv6Word2 *AclFieldData `protobuf:"bytes,7,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3,oneof" json:"field_src_ipv6_word2,omitempty"` + FieldSrcIpv6Word1 *AclFieldData `protobuf:"bytes,8,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3,oneof" json:"field_src_ipv6_word1,omitempty"` + FieldSrcIpv6Word0 *AclFieldData `protobuf:"bytes,9,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3,oneof" json:"field_src_ipv6_word0,omitempty"` + FieldDstIpv6 *AclFieldData `protobuf:"bytes,10,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3,oneof" json:"field_dst_ipv6,omitempty"` + FieldDstIpv6Word3 *AclFieldData `protobuf:"bytes,11,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3,oneof" json:"field_dst_ipv6_word3,omitempty"` + FieldDstIpv6Word2 *AclFieldData `protobuf:"bytes,12,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3,oneof" json:"field_dst_ipv6_word2,omitempty"` + FieldDstIpv6Word1 *AclFieldData `protobuf:"bytes,13,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3,oneof" json:"field_dst_ipv6_word1,omitempty"` + FieldDstIpv6Word0 *AclFieldData `protobuf:"bytes,14,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3,oneof" json:"field_dst_ipv6_word0,omitempty"` + FieldInnerSrcIpv6 *AclFieldData `protobuf:"bytes,15,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3,oneof" json:"field_inner_src_ipv6,omitempty"` + FieldInnerDstIpv6 *AclFieldData `protobuf:"bytes,16,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3,oneof" json:"field_inner_dst_ipv6,omitempty"` + FieldSrcMac *AclFieldData `protobuf:"bytes,17,opt,name=field_src_mac,json=fieldSrcMac,proto3,oneof" json:"field_src_mac,omitempty"` + FieldDstMac *AclFieldData `protobuf:"bytes,18,opt,name=field_dst_mac,json=fieldDstMac,proto3,oneof" json:"field_dst_mac,omitempty"` + FieldSrcIp *AclFieldData `protobuf:"bytes,19,opt,name=field_src_ip,json=fieldSrcIp,proto3,oneof" json:"field_src_ip,omitempty"` + FieldDstIp *AclFieldData `protobuf:"bytes,20,opt,name=field_dst_ip,json=fieldDstIp,proto3,oneof" json:"field_dst_ip,omitempty"` + FieldInnerSrcIp *AclFieldData `protobuf:"bytes,21,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3,oneof" json:"field_inner_src_ip,omitempty"` + FieldInnerDstIp *AclFieldData `protobuf:"bytes,22,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3,oneof" json:"field_inner_dst_ip,omitempty"` + FieldInPorts *AclFieldData `protobuf:"bytes,23,opt,name=field_in_ports,json=fieldInPorts,proto3,oneof" json:"field_in_ports,omitempty"` + FieldOutPorts *AclFieldData `protobuf:"bytes,24,opt,name=field_out_ports,json=fieldOutPorts,proto3,oneof" json:"field_out_ports,omitempty"` + FieldInPort *AclFieldData `protobuf:"bytes,25,opt,name=field_in_port,json=fieldInPort,proto3,oneof" json:"field_in_port,omitempty"` + FieldOutPort *AclFieldData `protobuf:"bytes,26,opt,name=field_out_port,json=fieldOutPort,proto3,oneof" json:"field_out_port,omitempty"` + FieldSrcPort *AclFieldData `protobuf:"bytes,27,opt,name=field_src_port,json=fieldSrcPort,proto3,oneof" json:"field_src_port,omitempty"` + FieldOuterVlanId *AclFieldData `protobuf:"bytes,28,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3,oneof" json:"field_outer_vlan_id,omitempty"` + FieldOuterVlanPri *AclFieldData `protobuf:"bytes,29,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3,oneof" json:"field_outer_vlan_pri,omitempty"` + FieldOuterVlanCfi *AclFieldData `protobuf:"bytes,30,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3,oneof" json:"field_outer_vlan_cfi,omitempty"` + FieldInnerVlanId *AclFieldData `protobuf:"bytes,31,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3,oneof" json:"field_inner_vlan_id,omitempty"` + FieldInnerVlanPri *AclFieldData `protobuf:"bytes,32,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3,oneof" json:"field_inner_vlan_pri,omitempty"` + FieldInnerVlanCfi *AclFieldData `protobuf:"bytes,33,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3,oneof" json:"field_inner_vlan_cfi,omitempty"` + FieldL4SrcPort *AclFieldData `protobuf:"bytes,34,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3,oneof" json:"field_l4_src_port,omitempty"` + FieldL4DstPort *AclFieldData `protobuf:"bytes,35,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3,oneof" json:"field_l4_dst_port,omitempty"` + FieldInnerL4SrcPort *AclFieldData `protobuf:"bytes,36,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3,oneof" json:"field_inner_l4_src_port,omitempty"` + FieldInnerL4DstPort *AclFieldData `protobuf:"bytes,37,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3,oneof" json:"field_inner_l4_dst_port,omitempty"` + FieldEtherType *AclFieldData `protobuf:"bytes,38,opt,name=field_ether_type,json=fieldEtherType,proto3,oneof" json:"field_ether_type,omitempty"` + FieldInnerEtherType *AclFieldData `protobuf:"bytes,39,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3,oneof" json:"field_inner_ether_type,omitempty"` + FieldIpProtocol *AclFieldData `protobuf:"bytes,40,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3,oneof" json:"field_ip_protocol,omitempty"` + FieldInnerIpProtocol *AclFieldData `protobuf:"bytes,41,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3,oneof" json:"field_inner_ip_protocol,omitempty"` + FieldIpIdentification *AclFieldData `protobuf:"bytes,42,opt,name=field_ip_identification,json=fieldIpIdentification,proto3,oneof" json:"field_ip_identification,omitempty"` + FieldDscp *AclFieldData `protobuf:"bytes,43,opt,name=field_dscp,json=fieldDscp,proto3,oneof" json:"field_dscp,omitempty"` + FieldEcn *AclFieldData `protobuf:"bytes,44,opt,name=field_ecn,json=fieldEcn,proto3,oneof" json:"field_ecn,omitempty"` + FieldTtl *AclFieldData `protobuf:"bytes,45,opt,name=field_ttl,json=fieldTtl,proto3,oneof" json:"field_ttl,omitempty"` + FieldTos *AclFieldData `protobuf:"bytes,46,opt,name=field_tos,json=fieldTos,proto3,oneof" json:"field_tos,omitempty"` + FieldIpFlags *AclFieldData `protobuf:"bytes,47,opt,name=field_ip_flags,json=fieldIpFlags,proto3,oneof" json:"field_ip_flags,omitempty"` + FieldTcpFlags *AclFieldData `protobuf:"bytes,48,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3,oneof" json:"field_tcp_flags,omitempty"` + FieldAclIpType *AclFieldData `protobuf:"bytes,49,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3,oneof" json:"field_acl_ip_type,omitempty"` + FieldAclIpFrag *AclFieldData `protobuf:"bytes,50,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3,oneof" json:"field_acl_ip_frag,omitempty"` + FieldIpv6FlowLabel *AclFieldData `protobuf:"bytes,51,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3,oneof" json:"field_ipv6_flow_label,omitempty"` + FieldTc *AclFieldData `protobuf:"bytes,52,opt,name=field_tc,json=fieldTc,proto3,oneof" json:"field_tc,omitempty"` + FieldIcmpType *AclFieldData `protobuf:"bytes,53,opt,name=field_icmp_type,json=fieldIcmpType,proto3,oneof" json:"field_icmp_type,omitempty"` + FieldIcmpCode *AclFieldData `protobuf:"bytes,54,opt,name=field_icmp_code,json=fieldIcmpCode,proto3,oneof" json:"field_icmp_code,omitempty"` + FieldIcmpv6Type *AclFieldData `protobuf:"bytes,55,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3,oneof" json:"field_icmpv6_type,omitempty"` + FieldIcmpv6Code *AclFieldData `protobuf:"bytes,56,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3,oneof" json:"field_icmpv6_code,omitempty"` + FieldPacketVlan *AclFieldData `protobuf:"bytes,57,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3,oneof" json:"field_packet_vlan,omitempty"` + FieldTunnelVni *AclFieldData `protobuf:"bytes,58,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3,oneof" json:"field_tunnel_vni,omitempty"` + FieldHasVlanTag *AclFieldData `protobuf:"bytes,59,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3,oneof" json:"field_has_vlan_tag,omitempty"` + FieldMacsecSci *AclFieldData `protobuf:"bytes,60,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3,oneof" json:"field_macsec_sci,omitempty"` + FieldMplsLabel0Label *AclFieldData `protobuf:"bytes,61,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3,oneof" json:"field_mpls_label0_label,omitempty"` + FieldMplsLabel0Ttl *AclFieldData `protobuf:"bytes,62,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3,oneof" json:"field_mpls_label0_ttl,omitempty"` + FieldMplsLabel0Exp *AclFieldData `protobuf:"bytes,63,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3,oneof" json:"field_mpls_label0_exp,omitempty"` + FieldMplsLabel0Bos *AclFieldData `protobuf:"bytes,64,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3,oneof" json:"field_mpls_label0_bos,omitempty"` + FieldMplsLabel1Label *AclFieldData `protobuf:"bytes,65,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3,oneof" json:"field_mpls_label1_label,omitempty"` + FieldMplsLabel1Ttl *AclFieldData `protobuf:"bytes,66,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3,oneof" json:"field_mpls_label1_ttl,omitempty"` + FieldMplsLabel1Exp *AclFieldData `protobuf:"bytes,67,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3,oneof" json:"field_mpls_label1_exp,omitempty"` + FieldMplsLabel1Bos *AclFieldData `protobuf:"bytes,68,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3,oneof" json:"field_mpls_label1_bos,omitempty"` + FieldMplsLabel2Label *AclFieldData `protobuf:"bytes,69,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3,oneof" json:"field_mpls_label2_label,omitempty"` + FieldMplsLabel2Ttl *AclFieldData `protobuf:"bytes,70,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3,oneof" json:"field_mpls_label2_ttl,omitempty"` + FieldMplsLabel2Exp *AclFieldData `protobuf:"bytes,71,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3,oneof" json:"field_mpls_label2_exp,omitempty"` + FieldMplsLabel2Bos *AclFieldData `protobuf:"bytes,72,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3,oneof" json:"field_mpls_label2_bos,omitempty"` + FieldMplsLabel3Label *AclFieldData `protobuf:"bytes,73,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3,oneof" json:"field_mpls_label3_label,omitempty"` + FieldMplsLabel3Ttl *AclFieldData `protobuf:"bytes,74,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3,oneof" json:"field_mpls_label3_ttl,omitempty"` + FieldMplsLabel3Exp *AclFieldData `protobuf:"bytes,75,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3,oneof" json:"field_mpls_label3_exp,omitempty"` + FieldMplsLabel3Bos *AclFieldData `protobuf:"bytes,76,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3,oneof" json:"field_mpls_label3_bos,omitempty"` + FieldMplsLabel4Label *AclFieldData `protobuf:"bytes,77,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3,oneof" json:"field_mpls_label4_label,omitempty"` + FieldMplsLabel4Ttl *AclFieldData `protobuf:"bytes,78,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3,oneof" json:"field_mpls_label4_ttl,omitempty"` + FieldMplsLabel4Exp *AclFieldData `protobuf:"bytes,79,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3,oneof" json:"field_mpls_label4_exp,omitempty"` + FieldMplsLabel4Bos *AclFieldData `protobuf:"bytes,80,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3,oneof" json:"field_mpls_label4_bos,omitempty"` + FieldFdbDstUserMeta *AclFieldData `protobuf:"bytes,81,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3,oneof" json:"field_fdb_dst_user_meta,omitempty"` + FieldRouteDstUserMeta *AclFieldData `protobuf:"bytes,82,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3,oneof" json:"field_route_dst_user_meta,omitempty"` + FieldNeighborDstUserMeta *AclFieldData `protobuf:"bytes,83,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3,oneof" json:"field_neighbor_dst_user_meta,omitempty"` + FieldPortUserMeta *AclFieldData `protobuf:"bytes,84,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3,oneof" json:"field_port_user_meta,omitempty"` + FieldVlanUserMeta *AclFieldData `protobuf:"bytes,85,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3,oneof" json:"field_vlan_user_meta,omitempty"` + FieldAclUserMeta *AclFieldData `protobuf:"bytes,86,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3,oneof" json:"field_acl_user_meta,omitempty"` + FieldFdbNpuMetaDstHit *AclFieldData `protobuf:"bytes,87,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3,oneof" json:"field_fdb_npu_meta_dst_hit,omitempty"` + FieldNeighborNpuMetaDstHit *AclFieldData `protobuf:"bytes,88,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3,oneof" json:"field_neighbor_npu_meta_dst_hit,omitempty"` + FieldRouteNpuMetaDstHit *AclFieldData `protobuf:"bytes,89,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3,oneof" json:"field_route_npu_meta_dst_hit,omitempty"` + FieldBthOpcode *AclFieldData `protobuf:"bytes,90,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3,oneof" json:"field_bth_opcode,omitempty"` + FieldAethSyndrome *AclFieldData `protobuf:"bytes,91,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3,oneof" json:"field_aeth_syndrome,omitempty"` + UserDefinedFieldGroupMin *AclFieldData `protobuf:"bytes,92,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3,oneof" json:"user_defined_field_group_min,omitempty"` + UserDefinedFieldGroupMax *AclFieldData `protobuf:"bytes,93,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3,oneof" json:"user_defined_field_group_max,omitempty"` + FieldAclRangeType *AclFieldData `protobuf:"bytes,94,opt,name=field_acl_range_type,json=fieldAclRangeType,proto3,oneof" json:"field_acl_range_type,omitempty"` + FieldIpv6NextHeader *AclFieldData `protobuf:"bytes,95,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3,oneof" json:"field_ipv6_next_header,omitempty"` + FieldGreKey *AclFieldData `protobuf:"bytes,96,opt,name=field_gre_key,json=fieldGreKey,proto3,oneof" json:"field_gre_key,omitempty"` + FieldTamIntType *AclFieldData `protobuf:"bytes,97,opt,name=field_tam_int_type,json=fieldTamIntType,proto3,oneof" json:"field_tam_int_type,omitempty"` + ActionRedirect *AclActionData `protobuf:"bytes,98,opt,name=action_redirect,json=actionRedirect,proto3,oneof" json:"action_redirect,omitempty"` + ActionEndpointIp *AclActionData `protobuf:"bytes,99,opt,name=action_endpoint_ip,json=actionEndpointIp,proto3,oneof" json:"action_endpoint_ip,omitempty"` + ActionRedirectList *AclActionData `protobuf:"bytes,100,opt,name=action_redirect_list,json=actionRedirectList,proto3,oneof" json:"action_redirect_list,omitempty"` + ActionPacketAction *AclActionData `protobuf:"bytes,101,opt,name=action_packet_action,json=actionPacketAction,proto3,oneof" json:"action_packet_action,omitempty"` + ActionFlood *AclActionData `protobuf:"bytes,102,opt,name=action_flood,json=actionFlood,proto3,oneof" json:"action_flood,omitempty"` + ActionCounter *AclActionData `protobuf:"bytes,103,opt,name=action_counter,json=actionCounter,proto3,oneof" json:"action_counter,omitempty"` + ActionMirrorIngress *AclActionData `protobuf:"bytes,104,opt,name=action_mirror_ingress,json=actionMirrorIngress,proto3,oneof" json:"action_mirror_ingress,omitempty"` + ActionMirrorEgress *AclActionData `protobuf:"bytes,105,opt,name=action_mirror_egress,json=actionMirrorEgress,proto3,oneof" json:"action_mirror_egress,omitempty"` + ActionSetPolicer *AclActionData `protobuf:"bytes,106,opt,name=action_set_policer,json=actionSetPolicer,proto3,oneof" json:"action_set_policer,omitempty"` + ActionDecrementTtl *AclActionData `protobuf:"bytes,107,opt,name=action_decrement_ttl,json=actionDecrementTtl,proto3,oneof" json:"action_decrement_ttl,omitempty"` + ActionSetTc *AclActionData `protobuf:"bytes,108,opt,name=action_set_tc,json=actionSetTc,proto3,oneof" json:"action_set_tc,omitempty"` + ActionSetPacketColor *AclActionData `protobuf:"bytes,109,opt,name=action_set_packet_color,json=actionSetPacketColor,proto3,oneof" json:"action_set_packet_color,omitempty"` + ActionSetInnerVlanId *AclActionData `protobuf:"bytes,110,opt,name=action_set_inner_vlan_id,json=actionSetInnerVlanId,proto3,oneof" json:"action_set_inner_vlan_id,omitempty"` + ActionSetInnerVlanPri *AclActionData `protobuf:"bytes,111,opt,name=action_set_inner_vlan_pri,json=actionSetInnerVlanPri,proto3,oneof" json:"action_set_inner_vlan_pri,omitempty"` + ActionSetOuterVlanId *AclActionData `protobuf:"bytes,112,opt,name=action_set_outer_vlan_id,json=actionSetOuterVlanId,proto3,oneof" json:"action_set_outer_vlan_id,omitempty"` + ActionSetOuterVlanPri *AclActionData `protobuf:"bytes,113,opt,name=action_set_outer_vlan_pri,json=actionSetOuterVlanPri,proto3,oneof" json:"action_set_outer_vlan_pri,omitempty"` + ActionAddVlanId *AclActionData `protobuf:"bytes,114,opt,name=action_add_vlan_id,json=actionAddVlanId,proto3,oneof" json:"action_add_vlan_id,omitempty"` + ActionAddVlanPri *AclActionData `protobuf:"bytes,115,opt,name=action_add_vlan_pri,json=actionAddVlanPri,proto3,oneof" json:"action_add_vlan_pri,omitempty"` + ActionSetSrcMac *AclActionData `protobuf:"bytes,116,opt,name=action_set_src_mac,json=actionSetSrcMac,proto3,oneof" json:"action_set_src_mac,omitempty"` + ActionSetDstMac *AclActionData `protobuf:"bytes,117,opt,name=action_set_dst_mac,json=actionSetDstMac,proto3,oneof" json:"action_set_dst_mac,omitempty"` + ActionSetSrcIp *AclActionData `protobuf:"bytes,118,opt,name=action_set_src_ip,json=actionSetSrcIp,proto3,oneof" json:"action_set_src_ip,omitempty"` + ActionSetDstIp *AclActionData `protobuf:"bytes,119,opt,name=action_set_dst_ip,json=actionSetDstIp,proto3,oneof" json:"action_set_dst_ip,omitempty"` + ActionSetSrcIpv6 *AclActionData `protobuf:"bytes,120,opt,name=action_set_src_ipv6,json=actionSetSrcIpv6,proto3,oneof" json:"action_set_src_ipv6,omitempty"` + ActionSetDstIpv6 *AclActionData `protobuf:"bytes,121,opt,name=action_set_dst_ipv6,json=actionSetDstIpv6,proto3,oneof" json:"action_set_dst_ipv6,omitempty"` + ActionSetDscp *AclActionData `protobuf:"bytes,122,opt,name=action_set_dscp,json=actionSetDscp,proto3,oneof" json:"action_set_dscp,omitempty"` + ActionSetEcn *AclActionData `protobuf:"bytes,123,opt,name=action_set_ecn,json=actionSetEcn,proto3,oneof" json:"action_set_ecn,omitempty"` + ActionSetL4SrcPort *AclActionData `protobuf:"bytes,124,opt,name=action_set_l4_src_port,json=actionSetL4SrcPort,proto3,oneof" json:"action_set_l4_src_port,omitempty"` + ActionSetL4DstPort *AclActionData `protobuf:"bytes,125,opt,name=action_set_l4_dst_port,json=actionSetL4DstPort,proto3,oneof" json:"action_set_l4_dst_port,omitempty"` + ActionIngressSamplepacketEnable *AclActionData `protobuf:"bytes,126,opt,name=action_ingress_samplepacket_enable,json=actionIngressSamplepacketEnable,proto3,oneof" json:"action_ingress_samplepacket_enable,omitempty"` + ActionEgressSamplepacketEnable *AclActionData `protobuf:"bytes,127,opt,name=action_egress_samplepacket_enable,json=actionEgressSamplepacketEnable,proto3,oneof" json:"action_egress_samplepacket_enable,omitempty"` + ActionSetAclMetaData *AclActionData `protobuf:"bytes,128,opt,name=action_set_acl_meta_data,json=actionSetAclMetaData,proto3,oneof" json:"action_set_acl_meta_data,omitempty"` + ActionEgressBlockPortList *AclActionData `protobuf:"bytes,129,opt,name=action_egress_block_port_list,json=actionEgressBlockPortList,proto3,oneof" json:"action_egress_block_port_list,omitempty"` + ActionSetUserTrapId *AclActionData `protobuf:"bytes,130,opt,name=action_set_user_trap_id,json=actionSetUserTrapId,proto3,oneof" json:"action_set_user_trap_id,omitempty"` + ActionSetDoNotLearn *AclActionData `protobuf:"bytes,131,opt,name=action_set_do_not_learn,json=actionSetDoNotLearn,proto3,oneof" json:"action_set_do_not_learn,omitempty"` + ActionAclDtelFlowOp *AclActionData `protobuf:"bytes,132,opt,name=action_acl_dtel_flow_op,json=actionAclDtelFlowOp,proto3,oneof" json:"action_acl_dtel_flow_op,omitempty"` + ActionDtelIntSession *AclActionData `protobuf:"bytes,133,opt,name=action_dtel_int_session,json=actionDtelIntSession,proto3,oneof" json:"action_dtel_int_session,omitempty"` + ActionDtelDropReportEnable *AclActionData `protobuf:"bytes,134,opt,name=action_dtel_drop_report_enable,json=actionDtelDropReportEnable,proto3,oneof" json:"action_dtel_drop_report_enable,omitempty"` + ActionDtelTailDropReportEnable *AclActionData `protobuf:"bytes,135,opt,name=action_dtel_tail_drop_report_enable,json=actionDtelTailDropReportEnable,proto3,oneof" json:"action_dtel_tail_drop_report_enable,omitempty"` + ActionDtelFlowSamplePercent *AclActionData `protobuf:"bytes,136,opt,name=action_dtel_flow_sample_percent,json=actionDtelFlowSamplePercent,proto3,oneof" json:"action_dtel_flow_sample_percent,omitempty"` + ActionDtelReportAllPackets *AclActionData `protobuf:"bytes,137,opt,name=action_dtel_report_all_packets,json=actionDtelReportAllPackets,proto3,oneof" json:"action_dtel_report_all_packets,omitempty"` + ActionNoNat *AclActionData `protobuf:"bytes,138,opt,name=action_no_nat,json=actionNoNat,proto3,oneof" json:"action_no_nat,omitempty"` + ActionIntInsert *AclActionData `protobuf:"bytes,139,opt,name=action_int_insert,json=actionIntInsert,proto3,oneof" json:"action_int_insert,omitempty"` + ActionIntDelete *AclActionData `protobuf:"bytes,140,opt,name=action_int_delete,json=actionIntDelete,proto3,oneof" json:"action_int_delete,omitempty"` + ActionIntReportFlow *AclActionData `protobuf:"bytes,141,opt,name=action_int_report_flow,json=actionIntReportFlow,proto3,oneof" json:"action_int_report_flow,omitempty"` + ActionIntReportDrops *AclActionData `protobuf:"bytes,142,opt,name=action_int_report_drops,json=actionIntReportDrops,proto3,oneof" json:"action_int_report_drops,omitempty"` + ActionIntReportTailDrops *AclActionData `protobuf:"bytes,143,opt,name=action_int_report_tail_drops,json=actionIntReportTailDrops,proto3,oneof" json:"action_int_report_tail_drops,omitempty"` + ActionTamIntObject *AclActionData `protobuf:"bytes,144,opt,name=action_tam_int_object,json=actionTamIntObject,proto3,oneof" json:"action_tam_int_object,omitempty"` + ActionSetIsolationGroup *AclActionData `protobuf:"bytes,145,opt,name=action_set_isolation_group,json=actionSetIsolationGroup,proto3,oneof" json:"action_set_isolation_group,omitempty"` + ActionMacsecFlow *AclActionData `protobuf:"bytes,146,opt,name=action_macsec_flow,json=actionMacsecFlow,proto3,oneof" json:"action_macsec_flow,omitempty"` + ActionSetLagHashId *AclActionData `protobuf:"bytes,147,opt,name=action_set_lag_hash_id,json=actionSetLagHashId,proto3,oneof" json:"action_set_lag_hash_id,omitempty"` + ActionSetEcmpHashId *AclActionData `protobuf:"bytes,148,opt,name=action_set_ecmp_hash_id,json=actionSetEcmpHashId,proto3,oneof" json:"action_set_ecmp_hash_id,omitempty"` + ActionSetVrf *AclActionData `protobuf:"bytes,149,opt,name=action_set_vrf,json=actionSetVrf,proto3,oneof" json:"action_set_vrf,omitempty"` + ActionSetForwardingClass *AclActionData `protobuf:"bytes,150,opt,name=action_set_forwarding_class,json=actionSetForwardingClass,proto3,oneof" json:"action_set_forwarding_class,omitempty"` } func (x *CreateAclEntryRequest) Reset() { @@ -2325,22 +2325,22 @@ func (x *CreateAclEntryRequest) GetSwitch() uint64 { } func (x *CreateAclEntryRequest) GetTableId() uint64 { - if x != nil { - return x.TableId + if x != nil && x.TableId != nil { + return *x.TableId } return 0 } func (x *CreateAclEntryRequest) GetPriority() uint32 { - if x != nil { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } func (x *CreateAclEntryRequest) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } @@ -3504,158 +3504,155 @@ type SetAclEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetAclEntryAttributeRequest_Priority - // *SetAclEntryAttributeRequest_AdminState - // *SetAclEntryAttributeRequest_FieldSrcIpv6 - // *SetAclEntryAttributeRequest_FieldSrcIpv6Word3 - // *SetAclEntryAttributeRequest_FieldSrcIpv6Word2 - // *SetAclEntryAttributeRequest_FieldSrcIpv6Word1 - // *SetAclEntryAttributeRequest_FieldSrcIpv6Word0 - // *SetAclEntryAttributeRequest_FieldDstIpv6 - // *SetAclEntryAttributeRequest_FieldDstIpv6Word3 - // *SetAclEntryAttributeRequest_FieldDstIpv6Word2 - // *SetAclEntryAttributeRequest_FieldDstIpv6Word1 - // *SetAclEntryAttributeRequest_FieldDstIpv6Word0 - // *SetAclEntryAttributeRequest_FieldInnerSrcIpv6 - // *SetAclEntryAttributeRequest_FieldInnerDstIpv6 - // *SetAclEntryAttributeRequest_FieldSrcMac - // *SetAclEntryAttributeRequest_FieldDstMac - // *SetAclEntryAttributeRequest_FieldSrcIp - // *SetAclEntryAttributeRequest_FieldDstIp - // *SetAclEntryAttributeRequest_FieldInnerSrcIp - // *SetAclEntryAttributeRequest_FieldInnerDstIp - // *SetAclEntryAttributeRequest_FieldInPorts - // *SetAclEntryAttributeRequest_FieldOutPorts - // *SetAclEntryAttributeRequest_FieldInPort - // *SetAclEntryAttributeRequest_FieldOutPort - // *SetAclEntryAttributeRequest_FieldSrcPort - // *SetAclEntryAttributeRequest_FieldOuterVlanId - // *SetAclEntryAttributeRequest_FieldOuterVlanPri - // *SetAclEntryAttributeRequest_FieldOuterVlanCfi - // *SetAclEntryAttributeRequest_FieldInnerVlanId - // *SetAclEntryAttributeRequest_FieldInnerVlanPri - // *SetAclEntryAttributeRequest_FieldInnerVlanCfi - // *SetAclEntryAttributeRequest_FieldL4SrcPort - // *SetAclEntryAttributeRequest_FieldL4DstPort - // *SetAclEntryAttributeRequest_FieldInnerL4SrcPort - // *SetAclEntryAttributeRequest_FieldInnerL4DstPort - // *SetAclEntryAttributeRequest_FieldEtherType - // *SetAclEntryAttributeRequest_FieldInnerEtherType - // *SetAclEntryAttributeRequest_FieldIpProtocol - // *SetAclEntryAttributeRequest_FieldInnerIpProtocol - // *SetAclEntryAttributeRequest_FieldIpIdentification - // *SetAclEntryAttributeRequest_FieldDscp - // *SetAclEntryAttributeRequest_FieldEcn - // *SetAclEntryAttributeRequest_FieldTtl - // *SetAclEntryAttributeRequest_FieldTos - // *SetAclEntryAttributeRequest_FieldIpFlags - // *SetAclEntryAttributeRequest_FieldTcpFlags - // *SetAclEntryAttributeRequest_FieldAclIpType - // *SetAclEntryAttributeRequest_FieldAclIpFrag - // *SetAclEntryAttributeRequest_FieldIpv6FlowLabel - // *SetAclEntryAttributeRequest_FieldTc - // *SetAclEntryAttributeRequest_FieldIcmpType - // *SetAclEntryAttributeRequest_FieldIcmpCode - // *SetAclEntryAttributeRequest_FieldIcmpv6Type - // *SetAclEntryAttributeRequest_FieldIcmpv6Code - // *SetAclEntryAttributeRequest_FieldPacketVlan - // *SetAclEntryAttributeRequest_FieldTunnelVni - // *SetAclEntryAttributeRequest_FieldHasVlanTag - // *SetAclEntryAttributeRequest_FieldMacsecSci - // *SetAclEntryAttributeRequest_FieldMplsLabel0Label - // *SetAclEntryAttributeRequest_FieldMplsLabel0Ttl - // *SetAclEntryAttributeRequest_FieldMplsLabel0Exp - // *SetAclEntryAttributeRequest_FieldMplsLabel0Bos - // *SetAclEntryAttributeRequest_FieldMplsLabel1Label - // *SetAclEntryAttributeRequest_FieldMplsLabel1Ttl - // *SetAclEntryAttributeRequest_FieldMplsLabel1Exp - // *SetAclEntryAttributeRequest_FieldMplsLabel1Bos - // *SetAclEntryAttributeRequest_FieldMplsLabel2Label - // *SetAclEntryAttributeRequest_FieldMplsLabel2Ttl - // *SetAclEntryAttributeRequest_FieldMplsLabel2Exp - // *SetAclEntryAttributeRequest_FieldMplsLabel2Bos - // *SetAclEntryAttributeRequest_FieldMplsLabel3Label - // *SetAclEntryAttributeRequest_FieldMplsLabel3Ttl - // *SetAclEntryAttributeRequest_FieldMplsLabel3Exp - // *SetAclEntryAttributeRequest_FieldMplsLabel3Bos - // *SetAclEntryAttributeRequest_FieldMplsLabel4Label - // *SetAclEntryAttributeRequest_FieldMplsLabel4Ttl - // *SetAclEntryAttributeRequest_FieldMplsLabel4Exp - // *SetAclEntryAttributeRequest_FieldMplsLabel4Bos - // *SetAclEntryAttributeRequest_FieldFdbDstUserMeta - // *SetAclEntryAttributeRequest_FieldRouteDstUserMeta - // *SetAclEntryAttributeRequest_FieldNeighborDstUserMeta - // *SetAclEntryAttributeRequest_FieldPortUserMeta - // *SetAclEntryAttributeRequest_FieldVlanUserMeta - // *SetAclEntryAttributeRequest_FieldAclUserMeta - // *SetAclEntryAttributeRequest_FieldFdbNpuMetaDstHit - // *SetAclEntryAttributeRequest_FieldNeighborNpuMetaDstHit - // *SetAclEntryAttributeRequest_FieldRouteNpuMetaDstHit - // *SetAclEntryAttributeRequest_FieldBthOpcode - // *SetAclEntryAttributeRequest_FieldAethSyndrome - // *SetAclEntryAttributeRequest_UserDefinedFieldGroupMin - // *SetAclEntryAttributeRequest_UserDefinedFieldGroupMax - // *SetAclEntryAttributeRequest_FieldAclRangeType - // *SetAclEntryAttributeRequest_FieldIpv6NextHeader - // *SetAclEntryAttributeRequest_FieldGreKey - // *SetAclEntryAttributeRequest_FieldTamIntType - // *SetAclEntryAttributeRequest_ActionRedirect - // *SetAclEntryAttributeRequest_ActionEndpointIp - // *SetAclEntryAttributeRequest_ActionRedirectList - // *SetAclEntryAttributeRequest_ActionPacketAction - // *SetAclEntryAttributeRequest_ActionFlood - // *SetAclEntryAttributeRequest_ActionCounter - // *SetAclEntryAttributeRequest_ActionMirrorIngress - // *SetAclEntryAttributeRequest_ActionMirrorEgress - // *SetAclEntryAttributeRequest_ActionSetPolicer - // *SetAclEntryAttributeRequest_ActionDecrementTtl - // *SetAclEntryAttributeRequest_ActionSetTc - // *SetAclEntryAttributeRequest_ActionSetPacketColor - // *SetAclEntryAttributeRequest_ActionSetInnerVlanId - // *SetAclEntryAttributeRequest_ActionSetInnerVlanPri - // *SetAclEntryAttributeRequest_ActionSetOuterVlanId - // *SetAclEntryAttributeRequest_ActionSetOuterVlanPri - // *SetAclEntryAttributeRequest_ActionAddVlanId - // *SetAclEntryAttributeRequest_ActionAddVlanPri - // *SetAclEntryAttributeRequest_ActionSetSrcMac - // *SetAclEntryAttributeRequest_ActionSetDstMac - // *SetAclEntryAttributeRequest_ActionSetSrcIp - // *SetAclEntryAttributeRequest_ActionSetDstIp - // *SetAclEntryAttributeRequest_ActionSetSrcIpv6 - // *SetAclEntryAttributeRequest_ActionSetDstIpv6 - // *SetAclEntryAttributeRequest_ActionSetDscp - // *SetAclEntryAttributeRequest_ActionSetEcn - // *SetAclEntryAttributeRequest_ActionSetL4SrcPort - // *SetAclEntryAttributeRequest_ActionSetL4DstPort - // *SetAclEntryAttributeRequest_ActionIngressSamplepacketEnable - // *SetAclEntryAttributeRequest_ActionEgressSamplepacketEnable - // *SetAclEntryAttributeRequest_ActionSetAclMetaData - // *SetAclEntryAttributeRequest_ActionEgressBlockPortList - // *SetAclEntryAttributeRequest_ActionSetUserTrapId - // *SetAclEntryAttributeRequest_ActionSetDoNotLearn - // *SetAclEntryAttributeRequest_ActionAclDtelFlowOp - // *SetAclEntryAttributeRequest_ActionDtelIntSession - // *SetAclEntryAttributeRequest_ActionDtelDropReportEnable - // *SetAclEntryAttributeRequest_ActionDtelTailDropReportEnable - // *SetAclEntryAttributeRequest_ActionDtelFlowSamplePercent - // *SetAclEntryAttributeRequest_ActionDtelReportAllPackets - // *SetAclEntryAttributeRequest_ActionNoNat - // *SetAclEntryAttributeRequest_ActionIntInsert - // *SetAclEntryAttributeRequest_ActionIntDelete - // *SetAclEntryAttributeRequest_ActionIntReportFlow - // *SetAclEntryAttributeRequest_ActionIntReportDrops - // *SetAclEntryAttributeRequest_ActionIntReportTailDrops - // *SetAclEntryAttributeRequest_ActionTamIntObject - // *SetAclEntryAttributeRequest_ActionSetIsolationGroup - // *SetAclEntryAttributeRequest_ActionMacsecFlow - // *SetAclEntryAttributeRequest_ActionSetLagHashId - // *SetAclEntryAttributeRequest_ActionSetEcmpHashId - // *SetAclEntryAttributeRequest_ActionSetVrf - // *SetAclEntryAttributeRequest_ActionSetForwardingClass - Attr isSetAclEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Priority *uint32 `protobuf:"varint,2,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + AdminState *bool `protobuf:"varint,3,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + FieldSrcIpv6 *AclFieldData `protobuf:"bytes,4,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3,oneof" json:"field_src_ipv6,omitempty"` + FieldSrcIpv6Word3 *AclFieldData `protobuf:"bytes,5,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3,oneof" json:"field_src_ipv6_word3,omitempty"` + FieldSrcIpv6Word2 *AclFieldData `protobuf:"bytes,6,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3,oneof" json:"field_src_ipv6_word2,omitempty"` + FieldSrcIpv6Word1 *AclFieldData `protobuf:"bytes,7,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3,oneof" json:"field_src_ipv6_word1,omitempty"` + FieldSrcIpv6Word0 *AclFieldData `protobuf:"bytes,8,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3,oneof" json:"field_src_ipv6_word0,omitempty"` + FieldDstIpv6 *AclFieldData `protobuf:"bytes,9,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3,oneof" json:"field_dst_ipv6,omitempty"` + FieldDstIpv6Word3 *AclFieldData `protobuf:"bytes,10,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3,oneof" json:"field_dst_ipv6_word3,omitempty"` + FieldDstIpv6Word2 *AclFieldData `protobuf:"bytes,11,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3,oneof" json:"field_dst_ipv6_word2,omitempty"` + FieldDstIpv6Word1 *AclFieldData `protobuf:"bytes,12,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3,oneof" json:"field_dst_ipv6_word1,omitempty"` + FieldDstIpv6Word0 *AclFieldData `protobuf:"bytes,13,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3,oneof" json:"field_dst_ipv6_word0,omitempty"` + FieldInnerSrcIpv6 *AclFieldData `protobuf:"bytes,14,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3,oneof" json:"field_inner_src_ipv6,omitempty"` + FieldInnerDstIpv6 *AclFieldData `protobuf:"bytes,15,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3,oneof" json:"field_inner_dst_ipv6,omitempty"` + FieldSrcMac *AclFieldData `protobuf:"bytes,16,opt,name=field_src_mac,json=fieldSrcMac,proto3,oneof" json:"field_src_mac,omitempty"` + FieldDstMac *AclFieldData `protobuf:"bytes,17,opt,name=field_dst_mac,json=fieldDstMac,proto3,oneof" json:"field_dst_mac,omitempty"` + FieldSrcIp *AclFieldData `protobuf:"bytes,18,opt,name=field_src_ip,json=fieldSrcIp,proto3,oneof" json:"field_src_ip,omitempty"` + FieldDstIp *AclFieldData `protobuf:"bytes,19,opt,name=field_dst_ip,json=fieldDstIp,proto3,oneof" json:"field_dst_ip,omitempty"` + FieldInnerSrcIp *AclFieldData `protobuf:"bytes,20,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3,oneof" json:"field_inner_src_ip,omitempty"` + FieldInnerDstIp *AclFieldData `protobuf:"bytes,21,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3,oneof" json:"field_inner_dst_ip,omitempty"` + FieldInPorts *AclFieldData `protobuf:"bytes,22,opt,name=field_in_ports,json=fieldInPorts,proto3,oneof" json:"field_in_ports,omitempty"` + FieldOutPorts *AclFieldData `protobuf:"bytes,23,opt,name=field_out_ports,json=fieldOutPorts,proto3,oneof" json:"field_out_ports,omitempty"` + FieldInPort *AclFieldData `protobuf:"bytes,24,opt,name=field_in_port,json=fieldInPort,proto3,oneof" json:"field_in_port,omitempty"` + FieldOutPort *AclFieldData `protobuf:"bytes,25,opt,name=field_out_port,json=fieldOutPort,proto3,oneof" json:"field_out_port,omitempty"` + FieldSrcPort *AclFieldData `protobuf:"bytes,26,opt,name=field_src_port,json=fieldSrcPort,proto3,oneof" json:"field_src_port,omitempty"` + FieldOuterVlanId *AclFieldData `protobuf:"bytes,27,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3,oneof" json:"field_outer_vlan_id,omitempty"` + FieldOuterVlanPri *AclFieldData `protobuf:"bytes,28,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3,oneof" json:"field_outer_vlan_pri,omitempty"` + FieldOuterVlanCfi *AclFieldData `protobuf:"bytes,29,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3,oneof" json:"field_outer_vlan_cfi,omitempty"` + FieldInnerVlanId *AclFieldData `protobuf:"bytes,30,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3,oneof" json:"field_inner_vlan_id,omitempty"` + FieldInnerVlanPri *AclFieldData `protobuf:"bytes,31,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3,oneof" json:"field_inner_vlan_pri,omitempty"` + FieldInnerVlanCfi *AclFieldData `protobuf:"bytes,32,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3,oneof" json:"field_inner_vlan_cfi,omitempty"` + FieldL4SrcPort *AclFieldData `protobuf:"bytes,33,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3,oneof" json:"field_l4_src_port,omitempty"` + FieldL4DstPort *AclFieldData `protobuf:"bytes,34,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3,oneof" json:"field_l4_dst_port,omitempty"` + FieldInnerL4SrcPort *AclFieldData `protobuf:"bytes,35,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3,oneof" json:"field_inner_l4_src_port,omitempty"` + FieldInnerL4DstPort *AclFieldData `protobuf:"bytes,36,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3,oneof" json:"field_inner_l4_dst_port,omitempty"` + FieldEtherType *AclFieldData `protobuf:"bytes,37,opt,name=field_ether_type,json=fieldEtherType,proto3,oneof" json:"field_ether_type,omitempty"` + FieldInnerEtherType *AclFieldData `protobuf:"bytes,38,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3,oneof" json:"field_inner_ether_type,omitempty"` + FieldIpProtocol *AclFieldData `protobuf:"bytes,39,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3,oneof" json:"field_ip_protocol,omitempty"` + FieldInnerIpProtocol *AclFieldData `protobuf:"bytes,40,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3,oneof" json:"field_inner_ip_protocol,omitempty"` + FieldIpIdentification *AclFieldData `protobuf:"bytes,41,opt,name=field_ip_identification,json=fieldIpIdentification,proto3,oneof" json:"field_ip_identification,omitempty"` + FieldDscp *AclFieldData `protobuf:"bytes,42,opt,name=field_dscp,json=fieldDscp,proto3,oneof" json:"field_dscp,omitempty"` + FieldEcn *AclFieldData `protobuf:"bytes,43,opt,name=field_ecn,json=fieldEcn,proto3,oneof" json:"field_ecn,omitempty"` + FieldTtl *AclFieldData `protobuf:"bytes,44,opt,name=field_ttl,json=fieldTtl,proto3,oneof" json:"field_ttl,omitempty"` + FieldTos *AclFieldData `protobuf:"bytes,45,opt,name=field_tos,json=fieldTos,proto3,oneof" json:"field_tos,omitempty"` + FieldIpFlags *AclFieldData `protobuf:"bytes,46,opt,name=field_ip_flags,json=fieldIpFlags,proto3,oneof" json:"field_ip_flags,omitempty"` + FieldTcpFlags *AclFieldData `protobuf:"bytes,47,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3,oneof" json:"field_tcp_flags,omitempty"` + FieldAclIpType *AclFieldData `protobuf:"bytes,48,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3,oneof" json:"field_acl_ip_type,omitempty"` + FieldAclIpFrag *AclFieldData `protobuf:"bytes,49,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3,oneof" json:"field_acl_ip_frag,omitempty"` + FieldIpv6FlowLabel *AclFieldData `protobuf:"bytes,50,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3,oneof" json:"field_ipv6_flow_label,omitempty"` + FieldTc *AclFieldData `protobuf:"bytes,51,opt,name=field_tc,json=fieldTc,proto3,oneof" json:"field_tc,omitempty"` + FieldIcmpType *AclFieldData `protobuf:"bytes,52,opt,name=field_icmp_type,json=fieldIcmpType,proto3,oneof" json:"field_icmp_type,omitempty"` + FieldIcmpCode *AclFieldData `protobuf:"bytes,53,opt,name=field_icmp_code,json=fieldIcmpCode,proto3,oneof" json:"field_icmp_code,omitempty"` + FieldIcmpv6Type *AclFieldData `protobuf:"bytes,54,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3,oneof" json:"field_icmpv6_type,omitempty"` + FieldIcmpv6Code *AclFieldData `protobuf:"bytes,55,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3,oneof" json:"field_icmpv6_code,omitempty"` + FieldPacketVlan *AclFieldData `protobuf:"bytes,56,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3,oneof" json:"field_packet_vlan,omitempty"` + FieldTunnelVni *AclFieldData `protobuf:"bytes,57,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3,oneof" json:"field_tunnel_vni,omitempty"` + FieldHasVlanTag *AclFieldData `protobuf:"bytes,58,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3,oneof" json:"field_has_vlan_tag,omitempty"` + FieldMacsecSci *AclFieldData `protobuf:"bytes,59,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3,oneof" json:"field_macsec_sci,omitempty"` + FieldMplsLabel0Label *AclFieldData `protobuf:"bytes,60,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3,oneof" json:"field_mpls_label0_label,omitempty"` + FieldMplsLabel0Ttl *AclFieldData `protobuf:"bytes,61,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3,oneof" json:"field_mpls_label0_ttl,omitempty"` + FieldMplsLabel0Exp *AclFieldData `protobuf:"bytes,62,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3,oneof" json:"field_mpls_label0_exp,omitempty"` + FieldMplsLabel0Bos *AclFieldData `protobuf:"bytes,63,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3,oneof" json:"field_mpls_label0_bos,omitempty"` + FieldMplsLabel1Label *AclFieldData `protobuf:"bytes,64,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3,oneof" json:"field_mpls_label1_label,omitempty"` + FieldMplsLabel1Ttl *AclFieldData `protobuf:"bytes,65,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3,oneof" json:"field_mpls_label1_ttl,omitempty"` + FieldMplsLabel1Exp *AclFieldData `protobuf:"bytes,66,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3,oneof" json:"field_mpls_label1_exp,omitempty"` + FieldMplsLabel1Bos *AclFieldData `protobuf:"bytes,67,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3,oneof" json:"field_mpls_label1_bos,omitempty"` + FieldMplsLabel2Label *AclFieldData `protobuf:"bytes,68,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3,oneof" json:"field_mpls_label2_label,omitempty"` + FieldMplsLabel2Ttl *AclFieldData `protobuf:"bytes,69,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3,oneof" json:"field_mpls_label2_ttl,omitempty"` + FieldMplsLabel2Exp *AclFieldData `protobuf:"bytes,70,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3,oneof" json:"field_mpls_label2_exp,omitempty"` + FieldMplsLabel2Bos *AclFieldData `protobuf:"bytes,71,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3,oneof" json:"field_mpls_label2_bos,omitempty"` + FieldMplsLabel3Label *AclFieldData `protobuf:"bytes,72,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3,oneof" json:"field_mpls_label3_label,omitempty"` + FieldMplsLabel3Ttl *AclFieldData `protobuf:"bytes,73,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3,oneof" json:"field_mpls_label3_ttl,omitempty"` + FieldMplsLabel3Exp *AclFieldData `protobuf:"bytes,74,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3,oneof" json:"field_mpls_label3_exp,omitempty"` + FieldMplsLabel3Bos *AclFieldData `protobuf:"bytes,75,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3,oneof" json:"field_mpls_label3_bos,omitempty"` + FieldMplsLabel4Label *AclFieldData `protobuf:"bytes,76,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3,oneof" json:"field_mpls_label4_label,omitempty"` + FieldMplsLabel4Ttl *AclFieldData `protobuf:"bytes,77,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3,oneof" json:"field_mpls_label4_ttl,omitempty"` + FieldMplsLabel4Exp *AclFieldData `protobuf:"bytes,78,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3,oneof" json:"field_mpls_label4_exp,omitempty"` + FieldMplsLabel4Bos *AclFieldData `protobuf:"bytes,79,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3,oneof" json:"field_mpls_label4_bos,omitempty"` + FieldFdbDstUserMeta *AclFieldData `protobuf:"bytes,80,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3,oneof" json:"field_fdb_dst_user_meta,omitempty"` + FieldRouteDstUserMeta *AclFieldData `protobuf:"bytes,81,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3,oneof" json:"field_route_dst_user_meta,omitempty"` + FieldNeighborDstUserMeta *AclFieldData `protobuf:"bytes,82,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3,oneof" json:"field_neighbor_dst_user_meta,omitempty"` + FieldPortUserMeta *AclFieldData `protobuf:"bytes,83,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3,oneof" json:"field_port_user_meta,omitempty"` + FieldVlanUserMeta *AclFieldData `protobuf:"bytes,84,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3,oneof" json:"field_vlan_user_meta,omitempty"` + FieldAclUserMeta *AclFieldData `protobuf:"bytes,85,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3,oneof" json:"field_acl_user_meta,omitempty"` + FieldFdbNpuMetaDstHit *AclFieldData `protobuf:"bytes,86,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3,oneof" json:"field_fdb_npu_meta_dst_hit,omitempty"` + FieldNeighborNpuMetaDstHit *AclFieldData `protobuf:"bytes,87,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3,oneof" json:"field_neighbor_npu_meta_dst_hit,omitempty"` + FieldRouteNpuMetaDstHit *AclFieldData `protobuf:"bytes,88,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3,oneof" json:"field_route_npu_meta_dst_hit,omitempty"` + FieldBthOpcode *AclFieldData `protobuf:"bytes,89,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3,oneof" json:"field_bth_opcode,omitempty"` + FieldAethSyndrome *AclFieldData `protobuf:"bytes,90,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3,oneof" json:"field_aeth_syndrome,omitempty"` + UserDefinedFieldGroupMin *AclFieldData `protobuf:"bytes,91,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3,oneof" json:"user_defined_field_group_min,omitempty"` + UserDefinedFieldGroupMax *AclFieldData `protobuf:"bytes,92,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3,oneof" json:"user_defined_field_group_max,omitempty"` + FieldAclRangeType *AclFieldData `protobuf:"bytes,93,opt,name=field_acl_range_type,json=fieldAclRangeType,proto3,oneof" json:"field_acl_range_type,omitempty"` + FieldIpv6NextHeader *AclFieldData `protobuf:"bytes,94,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3,oneof" json:"field_ipv6_next_header,omitempty"` + FieldGreKey *AclFieldData `protobuf:"bytes,95,opt,name=field_gre_key,json=fieldGreKey,proto3,oneof" json:"field_gre_key,omitempty"` + FieldTamIntType *AclFieldData `protobuf:"bytes,96,opt,name=field_tam_int_type,json=fieldTamIntType,proto3,oneof" json:"field_tam_int_type,omitempty"` + ActionRedirect *AclActionData `protobuf:"bytes,97,opt,name=action_redirect,json=actionRedirect,proto3,oneof" json:"action_redirect,omitempty"` + ActionEndpointIp *AclActionData `protobuf:"bytes,98,opt,name=action_endpoint_ip,json=actionEndpointIp,proto3,oneof" json:"action_endpoint_ip,omitempty"` + ActionRedirectList *AclActionData `protobuf:"bytes,99,opt,name=action_redirect_list,json=actionRedirectList,proto3,oneof" json:"action_redirect_list,omitempty"` + ActionPacketAction *AclActionData `protobuf:"bytes,100,opt,name=action_packet_action,json=actionPacketAction,proto3,oneof" json:"action_packet_action,omitempty"` + ActionFlood *AclActionData `protobuf:"bytes,101,opt,name=action_flood,json=actionFlood,proto3,oneof" json:"action_flood,omitempty"` + ActionCounter *AclActionData `protobuf:"bytes,102,opt,name=action_counter,json=actionCounter,proto3,oneof" json:"action_counter,omitempty"` + ActionMirrorIngress *AclActionData `protobuf:"bytes,103,opt,name=action_mirror_ingress,json=actionMirrorIngress,proto3,oneof" json:"action_mirror_ingress,omitempty"` + ActionMirrorEgress *AclActionData `protobuf:"bytes,104,opt,name=action_mirror_egress,json=actionMirrorEgress,proto3,oneof" json:"action_mirror_egress,omitempty"` + ActionSetPolicer *AclActionData `protobuf:"bytes,105,opt,name=action_set_policer,json=actionSetPolicer,proto3,oneof" json:"action_set_policer,omitempty"` + ActionDecrementTtl *AclActionData `protobuf:"bytes,106,opt,name=action_decrement_ttl,json=actionDecrementTtl,proto3,oneof" json:"action_decrement_ttl,omitempty"` + ActionSetTc *AclActionData `protobuf:"bytes,107,opt,name=action_set_tc,json=actionSetTc,proto3,oneof" json:"action_set_tc,omitempty"` + ActionSetPacketColor *AclActionData `protobuf:"bytes,108,opt,name=action_set_packet_color,json=actionSetPacketColor,proto3,oneof" json:"action_set_packet_color,omitempty"` + ActionSetInnerVlanId *AclActionData `protobuf:"bytes,109,opt,name=action_set_inner_vlan_id,json=actionSetInnerVlanId,proto3,oneof" json:"action_set_inner_vlan_id,omitempty"` + ActionSetInnerVlanPri *AclActionData `protobuf:"bytes,110,opt,name=action_set_inner_vlan_pri,json=actionSetInnerVlanPri,proto3,oneof" json:"action_set_inner_vlan_pri,omitempty"` + ActionSetOuterVlanId *AclActionData `protobuf:"bytes,111,opt,name=action_set_outer_vlan_id,json=actionSetOuterVlanId,proto3,oneof" json:"action_set_outer_vlan_id,omitempty"` + ActionSetOuterVlanPri *AclActionData `protobuf:"bytes,112,opt,name=action_set_outer_vlan_pri,json=actionSetOuterVlanPri,proto3,oneof" json:"action_set_outer_vlan_pri,omitempty"` + ActionAddVlanId *AclActionData `protobuf:"bytes,113,opt,name=action_add_vlan_id,json=actionAddVlanId,proto3,oneof" json:"action_add_vlan_id,omitempty"` + ActionAddVlanPri *AclActionData `protobuf:"bytes,114,opt,name=action_add_vlan_pri,json=actionAddVlanPri,proto3,oneof" json:"action_add_vlan_pri,omitempty"` + ActionSetSrcMac *AclActionData `protobuf:"bytes,115,opt,name=action_set_src_mac,json=actionSetSrcMac,proto3,oneof" json:"action_set_src_mac,omitempty"` + ActionSetDstMac *AclActionData `protobuf:"bytes,116,opt,name=action_set_dst_mac,json=actionSetDstMac,proto3,oneof" json:"action_set_dst_mac,omitempty"` + ActionSetSrcIp *AclActionData `protobuf:"bytes,117,opt,name=action_set_src_ip,json=actionSetSrcIp,proto3,oneof" json:"action_set_src_ip,omitempty"` + ActionSetDstIp *AclActionData `protobuf:"bytes,118,opt,name=action_set_dst_ip,json=actionSetDstIp,proto3,oneof" json:"action_set_dst_ip,omitempty"` + ActionSetSrcIpv6 *AclActionData `protobuf:"bytes,119,opt,name=action_set_src_ipv6,json=actionSetSrcIpv6,proto3,oneof" json:"action_set_src_ipv6,omitempty"` + ActionSetDstIpv6 *AclActionData `protobuf:"bytes,120,opt,name=action_set_dst_ipv6,json=actionSetDstIpv6,proto3,oneof" json:"action_set_dst_ipv6,omitempty"` + ActionSetDscp *AclActionData `protobuf:"bytes,121,opt,name=action_set_dscp,json=actionSetDscp,proto3,oneof" json:"action_set_dscp,omitempty"` + ActionSetEcn *AclActionData `protobuf:"bytes,122,opt,name=action_set_ecn,json=actionSetEcn,proto3,oneof" json:"action_set_ecn,omitempty"` + ActionSetL4SrcPort *AclActionData `protobuf:"bytes,123,opt,name=action_set_l4_src_port,json=actionSetL4SrcPort,proto3,oneof" json:"action_set_l4_src_port,omitempty"` + ActionSetL4DstPort *AclActionData `protobuf:"bytes,124,opt,name=action_set_l4_dst_port,json=actionSetL4DstPort,proto3,oneof" json:"action_set_l4_dst_port,omitempty"` + ActionIngressSamplepacketEnable *AclActionData `protobuf:"bytes,125,opt,name=action_ingress_samplepacket_enable,json=actionIngressSamplepacketEnable,proto3,oneof" json:"action_ingress_samplepacket_enable,omitempty"` + ActionEgressSamplepacketEnable *AclActionData `protobuf:"bytes,126,opt,name=action_egress_samplepacket_enable,json=actionEgressSamplepacketEnable,proto3,oneof" json:"action_egress_samplepacket_enable,omitempty"` + ActionSetAclMetaData *AclActionData `protobuf:"bytes,127,opt,name=action_set_acl_meta_data,json=actionSetAclMetaData,proto3,oneof" json:"action_set_acl_meta_data,omitempty"` + ActionEgressBlockPortList *AclActionData `protobuf:"bytes,128,opt,name=action_egress_block_port_list,json=actionEgressBlockPortList,proto3,oneof" json:"action_egress_block_port_list,omitempty"` + ActionSetUserTrapId *AclActionData `protobuf:"bytes,129,opt,name=action_set_user_trap_id,json=actionSetUserTrapId,proto3,oneof" json:"action_set_user_trap_id,omitempty"` + ActionSetDoNotLearn *AclActionData `protobuf:"bytes,130,opt,name=action_set_do_not_learn,json=actionSetDoNotLearn,proto3,oneof" json:"action_set_do_not_learn,omitempty"` + ActionAclDtelFlowOp *AclActionData `protobuf:"bytes,131,opt,name=action_acl_dtel_flow_op,json=actionAclDtelFlowOp,proto3,oneof" json:"action_acl_dtel_flow_op,omitempty"` + ActionDtelIntSession *AclActionData `protobuf:"bytes,132,opt,name=action_dtel_int_session,json=actionDtelIntSession,proto3,oneof" json:"action_dtel_int_session,omitempty"` + ActionDtelDropReportEnable *AclActionData `protobuf:"bytes,133,opt,name=action_dtel_drop_report_enable,json=actionDtelDropReportEnable,proto3,oneof" json:"action_dtel_drop_report_enable,omitempty"` + ActionDtelTailDropReportEnable *AclActionData `protobuf:"bytes,134,opt,name=action_dtel_tail_drop_report_enable,json=actionDtelTailDropReportEnable,proto3,oneof" json:"action_dtel_tail_drop_report_enable,omitempty"` + ActionDtelFlowSamplePercent *AclActionData `protobuf:"bytes,135,opt,name=action_dtel_flow_sample_percent,json=actionDtelFlowSamplePercent,proto3,oneof" json:"action_dtel_flow_sample_percent,omitempty"` + ActionDtelReportAllPackets *AclActionData `protobuf:"bytes,136,opt,name=action_dtel_report_all_packets,json=actionDtelReportAllPackets,proto3,oneof" json:"action_dtel_report_all_packets,omitempty"` + ActionNoNat *AclActionData `protobuf:"bytes,137,opt,name=action_no_nat,json=actionNoNat,proto3,oneof" json:"action_no_nat,omitempty"` + ActionIntInsert *AclActionData `protobuf:"bytes,138,opt,name=action_int_insert,json=actionIntInsert,proto3,oneof" json:"action_int_insert,omitempty"` + ActionIntDelete *AclActionData `protobuf:"bytes,139,opt,name=action_int_delete,json=actionIntDelete,proto3,oneof" json:"action_int_delete,omitempty"` + ActionIntReportFlow *AclActionData `protobuf:"bytes,140,opt,name=action_int_report_flow,json=actionIntReportFlow,proto3,oneof" json:"action_int_report_flow,omitempty"` + ActionIntReportDrops *AclActionData `protobuf:"bytes,141,opt,name=action_int_report_drops,json=actionIntReportDrops,proto3,oneof" json:"action_int_report_drops,omitempty"` + ActionIntReportTailDrops *AclActionData `protobuf:"bytes,142,opt,name=action_int_report_tail_drops,json=actionIntReportTailDrops,proto3,oneof" json:"action_int_report_tail_drops,omitempty"` + ActionTamIntObject *AclActionData `protobuf:"bytes,143,opt,name=action_tam_int_object,json=actionTamIntObject,proto3,oneof" json:"action_tam_int_object,omitempty"` + ActionSetIsolationGroup *AclActionData `protobuf:"bytes,144,opt,name=action_set_isolation_group,json=actionSetIsolationGroup,proto3,oneof" json:"action_set_isolation_group,omitempty"` + ActionMacsecFlow *AclActionData `protobuf:"bytes,145,opt,name=action_macsec_flow,json=actionMacsecFlow,proto3,oneof" json:"action_macsec_flow,omitempty"` + ActionSetLagHashId *AclActionData `protobuf:"bytes,146,opt,name=action_set_lag_hash_id,json=actionSetLagHashId,proto3,oneof" json:"action_set_lag_hash_id,omitempty"` + ActionSetEcmpHashId *AclActionData `protobuf:"bytes,147,opt,name=action_set_ecmp_hash_id,json=actionSetEcmpHashId,proto3,oneof" json:"action_set_ecmp_hash_id,omitempty"` + ActionSetVrf *AclActionData `protobuf:"bytes,148,opt,name=action_set_vrf,json=actionSetVrf,proto3,oneof" json:"action_set_vrf,omitempty"` + ActionSetForwardingClass *AclActionData `protobuf:"bytes,149,opt,name=action_set_forwarding_class,json=actionSetForwardingClass,proto3,oneof" json:"action_set_forwarding_class,omitempty"` } func (x *SetAclEntryAttributeRequest) Reset() { @@ -3697,1968 +3694,2089 @@ func (x *SetAclEntryAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetAclEntryAttributeRequest) GetAttr() isSetAclEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetAclEntryAttributeRequest) GetPriority() uint32 { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_Priority); ok { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } func (x *SetAclEntryAttributeRequest) GetAdminState() bool { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_AdminState); ok { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *SetAclEntryAttributeRequest) GetFieldSrcIpv6() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldSrcIpv6); ok { + if x != nil { return x.FieldSrcIpv6 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldSrcIpv6Word3() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldSrcIpv6Word3); ok { + if x != nil { return x.FieldSrcIpv6Word3 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldSrcIpv6Word2() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldSrcIpv6Word2); ok { + if x != nil { return x.FieldSrcIpv6Word2 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldSrcIpv6Word1() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldSrcIpv6Word1); ok { + if x != nil { return x.FieldSrcIpv6Word1 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldSrcIpv6Word0() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldSrcIpv6Word0); ok { + if x != nil { return x.FieldSrcIpv6Word0 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldDstIpv6() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldDstIpv6); ok { + if x != nil { return x.FieldDstIpv6 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldDstIpv6Word3() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldDstIpv6Word3); ok { + if x != nil { return x.FieldDstIpv6Word3 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldDstIpv6Word2() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldDstIpv6Word2); ok { + if x != nil { return x.FieldDstIpv6Word2 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldDstIpv6Word1() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldDstIpv6Word1); ok { + if x != nil { return x.FieldDstIpv6Word1 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldDstIpv6Word0() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldDstIpv6Word0); ok { + if x != nil { return x.FieldDstIpv6Word0 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerSrcIpv6() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerSrcIpv6); ok { + if x != nil { return x.FieldInnerSrcIpv6 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerDstIpv6() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerDstIpv6); ok { + if x != nil { return x.FieldInnerDstIpv6 } return nil } func (x *SetAclEntryAttributeRequest) GetFieldSrcMac() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldSrcMac); ok { + if x != nil { return x.FieldSrcMac } return nil } func (x *SetAclEntryAttributeRequest) GetFieldDstMac() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldDstMac); ok { + if x != nil { return x.FieldDstMac } return nil } func (x *SetAclEntryAttributeRequest) GetFieldSrcIp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldSrcIp); ok { + if x != nil { return x.FieldSrcIp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldDstIp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldDstIp); ok { + if x != nil { return x.FieldDstIp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerSrcIp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerSrcIp); ok { + if x != nil { return x.FieldInnerSrcIp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerDstIp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerDstIp); ok { + if x != nil { return x.FieldInnerDstIp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInPorts() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInPorts); ok { + if x != nil { return x.FieldInPorts } return nil } func (x *SetAclEntryAttributeRequest) GetFieldOutPorts() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldOutPorts); ok { + if x != nil { return x.FieldOutPorts } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInPort() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInPort); ok { + if x != nil { return x.FieldInPort } return nil } func (x *SetAclEntryAttributeRequest) GetFieldOutPort() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldOutPort); ok { + if x != nil { return x.FieldOutPort } return nil } func (x *SetAclEntryAttributeRequest) GetFieldSrcPort() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldSrcPort); ok { + if x != nil { return x.FieldSrcPort } return nil } func (x *SetAclEntryAttributeRequest) GetFieldOuterVlanId() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldOuterVlanId); ok { + if x != nil { return x.FieldOuterVlanId } return nil } func (x *SetAclEntryAttributeRequest) GetFieldOuterVlanPri() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldOuterVlanPri); ok { + if x != nil { return x.FieldOuterVlanPri } return nil } func (x *SetAclEntryAttributeRequest) GetFieldOuterVlanCfi() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldOuterVlanCfi); ok { + if x != nil { return x.FieldOuterVlanCfi } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerVlanId() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerVlanId); ok { + if x != nil { return x.FieldInnerVlanId } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerVlanPri() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerVlanPri); ok { + if x != nil { return x.FieldInnerVlanPri } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerVlanCfi() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerVlanCfi); ok { + if x != nil { return x.FieldInnerVlanCfi } return nil } func (x *SetAclEntryAttributeRequest) GetFieldL4SrcPort() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldL4SrcPort); ok { + if x != nil { return x.FieldL4SrcPort } return nil } func (x *SetAclEntryAttributeRequest) GetFieldL4DstPort() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldL4DstPort); ok { + if x != nil { return x.FieldL4DstPort } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerL4SrcPort() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerL4SrcPort); ok { + if x != nil { return x.FieldInnerL4SrcPort } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerL4DstPort() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerL4DstPort); ok { + if x != nil { return x.FieldInnerL4DstPort } return nil } func (x *SetAclEntryAttributeRequest) GetFieldEtherType() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldEtherType); ok { + if x != nil { return x.FieldEtherType } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerEtherType() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerEtherType); ok { + if x != nil { return x.FieldInnerEtherType } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIpProtocol() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIpProtocol); ok { + if x != nil { return x.FieldIpProtocol } return nil } func (x *SetAclEntryAttributeRequest) GetFieldInnerIpProtocol() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldInnerIpProtocol); ok { + if x != nil { return x.FieldInnerIpProtocol } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIpIdentification() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIpIdentification); ok { + if x != nil { return x.FieldIpIdentification } return nil } func (x *SetAclEntryAttributeRequest) GetFieldDscp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldDscp); ok { + if x != nil { return x.FieldDscp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldEcn() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldEcn); ok { + if x != nil { return x.FieldEcn } return nil } func (x *SetAclEntryAttributeRequest) GetFieldTtl() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldTtl); ok { + if x != nil { return x.FieldTtl } return nil } func (x *SetAclEntryAttributeRequest) GetFieldTos() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldTos); ok { + if x != nil { return x.FieldTos } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIpFlags() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIpFlags); ok { + if x != nil { return x.FieldIpFlags } return nil } func (x *SetAclEntryAttributeRequest) GetFieldTcpFlags() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldTcpFlags); ok { + if x != nil { return x.FieldTcpFlags } return nil } func (x *SetAclEntryAttributeRequest) GetFieldAclIpType() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldAclIpType); ok { + if x != nil { return x.FieldAclIpType } return nil } func (x *SetAclEntryAttributeRequest) GetFieldAclIpFrag() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldAclIpFrag); ok { + if x != nil { return x.FieldAclIpFrag } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIpv6FlowLabel() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIpv6FlowLabel); ok { + if x != nil { return x.FieldIpv6FlowLabel } return nil } func (x *SetAclEntryAttributeRequest) GetFieldTc() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldTc); ok { + if x != nil { return x.FieldTc } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIcmpType() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIcmpType); ok { + if x != nil { return x.FieldIcmpType } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIcmpCode() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIcmpCode); ok { + if x != nil { return x.FieldIcmpCode } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIcmpv6Type() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIcmpv6Type); ok { + if x != nil { return x.FieldIcmpv6Type } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIcmpv6Code() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIcmpv6Code); ok { + if x != nil { return x.FieldIcmpv6Code } return nil } func (x *SetAclEntryAttributeRequest) GetFieldPacketVlan() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldPacketVlan); ok { + if x != nil { return x.FieldPacketVlan } return nil } func (x *SetAclEntryAttributeRequest) GetFieldTunnelVni() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldTunnelVni); ok { + if x != nil { return x.FieldTunnelVni } return nil } func (x *SetAclEntryAttributeRequest) GetFieldHasVlanTag() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldHasVlanTag); ok { + if x != nil { return x.FieldHasVlanTag } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMacsecSci() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMacsecSci); ok { + if x != nil { return x.FieldMacsecSci } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel0Label() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel0Label); ok { + if x != nil { return x.FieldMplsLabel0Label } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel0Ttl() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel0Ttl); ok { + if x != nil { return x.FieldMplsLabel0Ttl } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel0Exp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel0Exp); ok { + if x != nil { return x.FieldMplsLabel0Exp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel0Bos() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel0Bos); ok { + if x != nil { return x.FieldMplsLabel0Bos } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel1Label() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel1Label); ok { + if x != nil { return x.FieldMplsLabel1Label } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel1Ttl() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel1Ttl); ok { + if x != nil { return x.FieldMplsLabel1Ttl } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel1Exp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel1Exp); ok { + if x != nil { return x.FieldMplsLabel1Exp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel1Bos() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel1Bos); ok { + if x != nil { return x.FieldMplsLabel1Bos } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel2Label() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel2Label); ok { + if x != nil { return x.FieldMplsLabel2Label } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel2Ttl() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel2Ttl); ok { + if x != nil { return x.FieldMplsLabel2Ttl } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel2Exp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel2Exp); ok { + if x != nil { return x.FieldMplsLabel2Exp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel2Bos() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel2Bos); ok { + if x != nil { return x.FieldMplsLabel2Bos } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel3Label() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel3Label); ok { + if x != nil { return x.FieldMplsLabel3Label } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel3Ttl() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel3Ttl); ok { + if x != nil { return x.FieldMplsLabel3Ttl } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel3Exp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel3Exp); ok { + if x != nil { return x.FieldMplsLabel3Exp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel3Bos() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel3Bos); ok { + if x != nil { return x.FieldMplsLabel3Bos } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel4Label() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel4Label); ok { + if x != nil { return x.FieldMplsLabel4Label } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel4Ttl() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel4Ttl); ok { + if x != nil { return x.FieldMplsLabel4Ttl } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel4Exp() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel4Exp); ok { + if x != nil { return x.FieldMplsLabel4Exp } return nil } func (x *SetAclEntryAttributeRequest) GetFieldMplsLabel4Bos() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldMplsLabel4Bos); ok { + if x != nil { return x.FieldMplsLabel4Bos } return nil } func (x *SetAclEntryAttributeRequest) GetFieldFdbDstUserMeta() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldFdbDstUserMeta); ok { + if x != nil { return x.FieldFdbDstUserMeta } return nil } func (x *SetAclEntryAttributeRequest) GetFieldRouteDstUserMeta() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldRouteDstUserMeta); ok { + if x != nil { return x.FieldRouteDstUserMeta } return nil } func (x *SetAclEntryAttributeRequest) GetFieldNeighborDstUserMeta() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldNeighborDstUserMeta); ok { + if x != nil { return x.FieldNeighborDstUserMeta } return nil } func (x *SetAclEntryAttributeRequest) GetFieldPortUserMeta() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldPortUserMeta); ok { + if x != nil { return x.FieldPortUserMeta } return nil } func (x *SetAclEntryAttributeRequest) GetFieldVlanUserMeta() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldVlanUserMeta); ok { + if x != nil { return x.FieldVlanUserMeta } return nil } func (x *SetAclEntryAttributeRequest) GetFieldAclUserMeta() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldAclUserMeta); ok { + if x != nil { return x.FieldAclUserMeta } return nil } func (x *SetAclEntryAttributeRequest) GetFieldFdbNpuMetaDstHit() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldFdbNpuMetaDstHit); ok { + if x != nil { return x.FieldFdbNpuMetaDstHit } return nil } func (x *SetAclEntryAttributeRequest) GetFieldNeighborNpuMetaDstHit() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldNeighborNpuMetaDstHit); ok { + if x != nil { return x.FieldNeighborNpuMetaDstHit } return nil } func (x *SetAclEntryAttributeRequest) GetFieldRouteNpuMetaDstHit() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldRouteNpuMetaDstHit); ok { + if x != nil { return x.FieldRouteNpuMetaDstHit } return nil } func (x *SetAclEntryAttributeRequest) GetFieldBthOpcode() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldBthOpcode); ok { + if x != nil { return x.FieldBthOpcode } return nil } func (x *SetAclEntryAttributeRequest) GetFieldAethSyndrome() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldAethSyndrome); ok { + if x != nil { return x.FieldAethSyndrome } return nil } func (x *SetAclEntryAttributeRequest) GetUserDefinedFieldGroupMin() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_UserDefinedFieldGroupMin); ok { + if x != nil { return x.UserDefinedFieldGroupMin } return nil } func (x *SetAclEntryAttributeRequest) GetUserDefinedFieldGroupMax() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_UserDefinedFieldGroupMax); ok { + if x != nil { return x.UserDefinedFieldGroupMax } return nil } func (x *SetAclEntryAttributeRequest) GetFieldAclRangeType() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldAclRangeType); ok { + if x != nil { return x.FieldAclRangeType } return nil } func (x *SetAclEntryAttributeRequest) GetFieldIpv6NextHeader() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldIpv6NextHeader); ok { + if x != nil { return x.FieldIpv6NextHeader } return nil } func (x *SetAclEntryAttributeRequest) GetFieldGreKey() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldGreKey); ok { + if x != nil { return x.FieldGreKey } return nil } func (x *SetAclEntryAttributeRequest) GetFieldTamIntType() *AclFieldData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_FieldTamIntType); ok { + if x != nil { return x.FieldTamIntType } return nil } func (x *SetAclEntryAttributeRequest) GetActionRedirect() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionRedirect); ok { + if x != nil { return x.ActionRedirect } return nil } func (x *SetAclEntryAttributeRequest) GetActionEndpointIp() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionEndpointIp); ok { + if x != nil { return x.ActionEndpointIp } return nil } func (x *SetAclEntryAttributeRequest) GetActionRedirectList() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionRedirectList); ok { + if x != nil { return x.ActionRedirectList } return nil } func (x *SetAclEntryAttributeRequest) GetActionPacketAction() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionPacketAction); ok { + if x != nil { return x.ActionPacketAction } return nil } func (x *SetAclEntryAttributeRequest) GetActionFlood() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionFlood); ok { + if x != nil { return x.ActionFlood } return nil } func (x *SetAclEntryAttributeRequest) GetActionCounter() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionCounter); ok { + if x != nil { return x.ActionCounter } return nil } func (x *SetAclEntryAttributeRequest) GetActionMirrorIngress() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionMirrorIngress); ok { + if x != nil { return x.ActionMirrorIngress } return nil } func (x *SetAclEntryAttributeRequest) GetActionMirrorEgress() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionMirrorEgress); ok { + if x != nil { return x.ActionMirrorEgress } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetPolicer() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetPolicer); ok { + if x != nil { return x.ActionSetPolicer } return nil } func (x *SetAclEntryAttributeRequest) GetActionDecrementTtl() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionDecrementTtl); ok { + if x != nil { return x.ActionDecrementTtl } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetTc() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetTc); ok { + if x != nil { return x.ActionSetTc } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetPacketColor() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetPacketColor); ok { + if x != nil { return x.ActionSetPacketColor } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetInnerVlanId() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetInnerVlanId); ok { + if x != nil { return x.ActionSetInnerVlanId } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetInnerVlanPri() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetInnerVlanPri); ok { + if x != nil { return x.ActionSetInnerVlanPri } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetOuterVlanId() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetOuterVlanId); ok { + if x != nil { return x.ActionSetOuterVlanId } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetOuterVlanPri() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetOuterVlanPri); ok { + if x != nil { return x.ActionSetOuterVlanPri } return nil } func (x *SetAclEntryAttributeRequest) GetActionAddVlanId() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionAddVlanId); ok { + if x != nil { return x.ActionAddVlanId } return nil } func (x *SetAclEntryAttributeRequest) GetActionAddVlanPri() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionAddVlanPri); ok { + if x != nil { return x.ActionAddVlanPri } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetSrcMac() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetSrcMac); ok { + if x != nil { return x.ActionSetSrcMac } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetDstMac() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetDstMac); ok { + if x != nil { return x.ActionSetDstMac } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetSrcIp() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetSrcIp); ok { + if x != nil { return x.ActionSetSrcIp } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetDstIp() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetDstIp); ok { + if x != nil { return x.ActionSetDstIp } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetSrcIpv6() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetSrcIpv6); ok { + if x != nil { return x.ActionSetSrcIpv6 } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetDstIpv6() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetDstIpv6); ok { + if x != nil { return x.ActionSetDstIpv6 } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetDscp() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetDscp); ok { + if x != nil { return x.ActionSetDscp } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetEcn() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetEcn); ok { + if x != nil { return x.ActionSetEcn } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetL4SrcPort() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetL4SrcPort); ok { + if x != nil { return x.ActionSetL4SrcPort } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetL4DstPort() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetL4DstPort); ok { + if x != nil { return x.ActionSetL4DstPort } return nil } func (x *SetAclEntryAttributeRequest) GetActionIngressSamplepacketEnable() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionIngressSamplepacketEnable); ok { + if x != nil { return x.ActionIngressSamplepacketEnable } return nil } func (x *SetAclEntryAttributeRequest) GetActionEgressSamplepacketEnable() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionEgressSamplepacketEnable); ok { + if x != nil { return x.ActionEgressSamplepacketEnable } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetAclMetaData() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetAclMetaData); ok { + if x != nil { return x.ActionSetAclMetaData } return nil } func (x *SetAclEntryAttributeRequest) GetActionEgressBlockPortList() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionEgressBlockPortList); ok { + if x != nil { return x.ActionEgressBlockPortList } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetUserTrapId() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetUserTrapId); ok { + if x != nil { return x.ActionSetUserTrapId } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetDoNotLearn() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetDoNotLearn); ok { + if x != nil { return x.ActionSetDoNotLearn } return nil } func (x *SetAclEntryAttributeRequest) GetActionAclDtelFlowOp() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionAclDtelFlowOp); ok { + if x != nil { return x.ActionAclDtelFlowOp } return nil } func (x *SetAclEntryAttributeRequest) GetActionDtelIntSession() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionDtelIntSession); ok { + if x != nil { return x.ActionDtelIntSession } return nil } func (x *SetAclEntryAttributeRequest) GetActionDtelDropReportEnable() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionDtelDropReportEnable); ok { + if x != nil { return x.ActionDtelDropReportEnable } return nil } func (x *SetAclEntryAttributeRequest) GetActionDtelTailDropReportEnable() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionDtelTailDropReportEnable); ok { + if x != nil { return x.ActionDtelTailDropReportEnable } return nil } func (x *SetAclEntryAttributeRequest) GetActionDtelFlowSamplePercent() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionDtelFlowSamplePercent); ok { + if x != nil { return x.ActionDtelFlowSamplePercent } return nil } func (x *SetAclEntryAttributeRequest) GetActionDtelReportAllPackets() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionDtelReportAllPackets); ok { + if x != nil { return x.ActionDtelReportAllPackets } return nil } func (x *SetAclEntryAttributeRequest) GetActionNoNat() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionNoNat); ok { + if x != nil { return x.ActionNoNat } return nil } func (x *SetAclEntryAttributeRequest) GetActionIntInsert() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionIntInsert); ok { + if x != nil { return x.ActionIntInsert } return nil } func (x *SetAclEntryAttributeRequest) GetActionIntDelete() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionIntDelete); ok { + if x != nil { return x.ActionIntDelete } return nil } func (x *SetAclEntryAttributeRequest) GetActionIntReportFlow() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionIntReportFlow); ok { + if x != nil { return x.ActionIntReportFlow } return nil } func (x *SetAclEntryAttributeRequest) GetActionIntReportDrops() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionIntReportDrops); ok { + if x != nil { return x.ActionIntReportDrops } return nil } func (x *SetAclEntryAttributeRequest) GetActionIntReportTailDrops() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionIntReportTailDrops); ok { + if x != nil { return x.ActionIntReportTailDrops } return nil } func (x *SetAclEntryAttributeRequest) GetActionTamIntObject() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionTamIntObject); ok { + if x != nil { return x.ActionTamIntObject } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetIsolationGroup() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetIsolationGroup); ok { + if x != nil { return x.ActionSetIsolationGroup } return nil } func (x *SetAclEntryAttributeRequest) GetActionMacsecFlow() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionMacsecFlow); ok { + if x != nil { return x.ActionMacsecFlow } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetLagHashId() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetLagHashId); ok { + if x != nil { return x.ActionSetLagHashId } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetEcmpHashId() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetEcmpHashId); ok { + if x != nil { return x.ActionSetEcmpHashId } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetVrf() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetVrf); ok { + if x != nil { return x.ActionSetVrf } return nil } func (x *SetAclEntryAttributeRequest) GetActionSetForwardingClass() *AclActionData { - if x, ok := x.GetAttr().(*SetAclEntryAttributeRequest_ActionSetForwardingClass); ok { + if x != nil { return x.ActionSetForwardingClass } return nil } -type isSetAclEntryAttributeRequest_Attr interface { - isSetAclEntryAttributeRequest_Attr() -} - -type SetAclEntryAttributeRequest_Priority struct { - Priority uint32 `protobuf:"varint,2,opt,name=priority,proto3,oneof"` -} - -type SetAclEntryAttributeRequest_AdminState struct { - AdminState bool `protobuf:"varint,3,opt,name=admin_state,json=adminState,proto3,oneof"` +type SetAclEntryAttributeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -type SetAclEntryAttributeRequest_FieldSrcIpv6 struct { - FieldSrcIpv6 *AclFieldData `protobuf:"bytes,4,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3,oneof"` +func (x *SetAclEntryAttributeResponse) Reset() { + *x = SetAclEntryAttributeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldSrcIpv6Word3 struct { - FieldSrcIpv6Word3 *AclFieldData `protobuf:"bytes,5,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3,oneof"` +func (x *SetAclEntryAttributeResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldSrcIpv6Word2 struct { - FieldSrcIpv6Word2 *AclFieldData `protobuf:"bytes,6,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3,oneof"` -} +func (*SetAclEntryAttributeResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldSrcIpv6Word1 struct { - FieldSrcIpv6Word1 *AclFieldData `protobuf:"bytes,7,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3,oneof"` +func (x *SetAclEntryAttributeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldSrcIpv6Word0 struct { - FieldSrcIpv6Word0 *AclFieldData `protobuf:"bytes,8,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3,oneof"` +// Deprecated: Use SetAclEntryAttributeResponse.ProtoReflect.Descriptor instead. +func (*SetAclEntryAttributeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{11} } -type SetAclEntryAttributeRequest_FieldDstIpv6 struct { - FieldDstIpv6 *AclFieldData `protobuf:"bytes,9,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3,oneof"` -} +type GetAclEntryAttributeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_FieldDstIpv6Word3 struct { - FieldDstIpv6Word3 *AclFieldData `protobuf:"bytes,10,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3,oneof"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + AttrType []AclEntryAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclEntryAttr" json:"attr_type,omitempty"` } -type SetAclEntryAttributeRequest_FieldDstIpv6Word2 struct { - FieldDstIpv6Word2 *AclFieldData `protobuf:"bytes,11,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3,oneof"` +func (x *GetAclEntryAttributeRequest) Reset() { + *x = GetAclEntryAttributeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldDstIpv6Word1 struct { - FieldDstIpv6Word1 *AclFieldData `protobuf:"bytes,12,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3,oneof"` +func (x *GetAclEntryAttributeRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldDstIpv6Word0 struct { - FieldDstIpv6Word0 *AclFieldData `protobuf:"bytes,13,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3,oneof"` -} +func (*GetAclEntryAttributeRequest) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldInnerSrcIpv6 struct { - FieldInnerSrcIpv6 *AclFieldData `protobuf:"bytes,14,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3,oneof"` +func (x *GetAclEntryAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldInnerDstIpv6 struct { - FieldInnerDstIpv6 *AclFieldData `protobuf:"bytes,15,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3,oneof"` +// Deprecated: Use GetAclEntryAttributeRequest.ProtoReflect.Descriptor instead. +func (*GetAclEntryAttributeRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{12} } -type SetAclEntryAttributeRequest_FieldSrcMac struct { - FieldSrcMac *AclFieldData `protobuf:"bytes,16,opt,name=field_src_mac,json=fieldSrcMac,proto3,oneof"` +func (x *GetAclEntryAttributeRequest) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 } -type SetAclEntryAttributeRequest_FieldDstMac struct { - FieldDstMac *AclFieldData `protobuf:"bytes,17,opt,name=field_dst_mac,json=fieldDstMac,proto3,oneof"` +func (x *GetAclEntryAttributeRequest) GetAttrType() []AclEntryAttr { + if x != nil { + return x.AttrType + } + return nil } -type SetAclEntryAttributeRequest_FieldSrcIp struct { - FieldSrcIp *AclFieldData `protobuf:"bytes,18,opt,name=field_src_ip,json=fieldSrcIp,proto3,oneof"` -} +type GetAclEntryAttributeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_FieldDstIp struct { - FieldDstIp *AclFieldData `protobuf:"bytes,19,opt,name=field_dst_ip,json=fieldDstIp,proto3,oneof"` + Attr *AclEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } -type SetAclEntryAttributeRequest_FieldInnerSrcIp struct { - FieldInnerSrcIp *AclFieldData `protobuf:"bytes,20,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3,oneof"` +func (x *GetAclEntryAttributeResponse) Reset() { + *x = GetAclEntryAttributeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldInnerDstIp struct { - FieldInnerDstIp *AclFieldData `protobuf:"bytes,21,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3,oneof"` +func (x *GetAclEntryAttributeResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldInPorts struct { - FieldInPorts *AclFieldData `protobuf:"bytes,22,opt,name=field_in_ports,json=fieldInPorts,proto3,oneof"` -} +func (*GetAclEntryAttributeResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldOutPorts struct { - FieldOutPorts *AclFieldData `protobuf:"bytes,23,opt,name=field_out_ports,json=fieldOutPorts,proto3,oneof"` +func (x *GetAclEntryAttributeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldInPort struct { - FieldInPort *AclFieldData `protobuf:"bytes,24,opt,name=field_in_port,json=fieldInPort,proto3,oneof"` +// Deprecated: Use GetAclEntryAttributeResponse.ProtoReflect.Descriptor instead. +func (*GetAclEntryAttributeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{13} } -type SetAclEntryAttributeRequest_FieldOutPort struct { - FieldOutPort *AclFieldData `protobuf:"bytes,25,opt,name=field_out_port,json=fieldOutPort,proto3,oneof"` +func (x *GetAclEntryAttributeResponse) GetAttr() *AclEntryAttribute { + if x != nil { + return x.Attr + } + return nil } -type SetAclEntryAttributeRequest_FieldSrcPort struct { - FieldSrcPort *AclFieldData `protobuf:"bytes,26,opt,name=field_src_port,json=fieldSrcPort,proto3,oneof"` -} +type CreateAclCounterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_FieldOuterVlanId struct { - FieldOuterVlanId *AclFieldData `protobuf:"bytes,27,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3,oneof"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + TableId *uint64 `protobuf:"varint,2,opt,name=table_id,json=tableId,proto3,oneof" json:"table_id,omitempty"` + EnablePacketCount *bool `protobuf:"varint,3,opt,name=enable_packet_count,json=enablePacketCount,proto3,oneof" json:"enable_packet_count,omitempty"` + EnableByteCount *bool `protobuf:"varint,4,opt,name=enable_byte_count,json=enableByteCount,proto3,oneof" json:"enable_byte_count,omitempty"` + Packets *uint64 `protobuf:"varint,5,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + Bytes *uint64 `protobuf:"varint,6,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` } -type SetAclEntryAttributeRequest_FieldOuterVlanPri struct { - FieldOuterVlanPri *AclFieldData `protobuf:"bytes,28,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3,oneof"` +func (x *CreateAclCounterRequest) Reset() { + *x = CreateAclCounterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldOuterVlanCfi struct { - FieldOuterVlanCfi *AclFieldData `protobuf:"bytes,29,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3,oneof"` +func (x *CreateAclCounterRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldInnerVlanId struct { - FieldInnerVlanId *AclFieldData `protobuf:"bytes,30,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3,oneof"` -} +func (*CreateAclCounterRequest) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldInnerVlanPri struct { - FieldInnerVlanPri *AclFieldData `protobuf:"bytes,31,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3,oneof"` +func (x *CreateAclCounterRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldInnerVlanCfi struct { - FieldInnerVlanCfi *AclFieldData `protobuf:"bytes,32,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3,oneof"` +// Deprecated: Use CreateAclCounterRequest.ProtoReflect.Descriptor instead. +func (*CreateAclCounterRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{14} } -type SetAclEntryAttributeRequest_FieldL4SrcPort struct { - FieldL4SrcPort *AclFieldData `protobuf:"bytes,33,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3,oneof"` +func (x *CreateAclCounterRequest) GetSwitch() uint64 { + if x != nil { + return x.Switch + } + return 0 } -type SetAclEntryAttributeRequest_FieldL4DstPort struct { - FieldL4DstPort *AclFieldData `protobuf:"bytes,34,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3,oneof"` +func (x *CreateAclCounterRequest) GetTableId() uint64 { + if x != nil && x.TableId != nil { + return *x.TableId + } + return 0 } -type SetAclEntryAttributeRequest_FieldInnerL4SrcPort struct { - FieldInnerL4SrcPort *AclFieldData `protobuf:"bytes,35,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3,oneof"` +func (x *CreateAclCounterRequest) GetEnablePacketCount() bool { + if x != nil && x.EnablePacketCount != nil { + return *x.EnablePacketCount + } + return false } -type SetAclEntryAttributeRequest_FieldInnerL4DstPort struct { - FieldInnerL4DstPort *AclFieldData `protobuf:"bytes,36,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3,oneof"` +func (x *CreateAclCounterRequest) GetEnableByteCount() bool { + if x != nil && x.EnableByteCount != nil { + return *x.EnableByteCount + } + return false } -type SetAclEntryAttributeRequest_FieldEtherType struct { - FieldEtherType *AclFieldData `protobuf:"bytes,37,opt,name=field_ether_type,json=fieldEtherType,proto3,oneof"` +func (x *CreateAclCounterRequest) GetPackets() uint64 { + if x != nil && x.Packets != nil { + return *x.Packets + } + return 0 } -type SetAclEntryAttributeRequest_FieldInnerEtherType struct { - FieldInnerEtherType *AclFieldData `protobuf:"bytes,38,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3,oneof"` +func (x *CreateAclCounterRequest) GetBytes() uint64 { + if x != nil && x.Bytes != nil { + return *x.Bytes + } + return 0 } -type SetAclEntryAttributeRequest_FieldIpProtocol struct { - FieldIpProtocol *AclFieldData `protobuf:"bytes,39,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3,oneof"` -} +type CreateAclCounterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_FieldInnerIpProtocol struct { - FieldInnerIpProtocol *AclFieldData `protobuf:"bytes,40,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3,oneof"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` } -type SetAclEntryAttributeRequest_FieldIpIdentification struct { - FieldIpIdentification *AclFieldData `protobuf:"bytes,41,opt,name=field_ip_identification,json=fieldIpIdentification,proto3,oneof"` +func (x *CreateAclCounterResponse) Reset() { + *x = CreateAclCounterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldDscp struct { - FieldDscp *AclFieldData `protobuf:"bytes,42,opt,name=field_dscp,json=fieldDscp,proto3,oneof"` +func (x *CreateAclCounterResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldEcn struct { - FieldEcn *AclFieldData `protobuf:"bytes,43,opt,name=field_ecn,json=fieldEcn,proto3,oneof"` -} +func (*CreateAclCounterResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldTtl struct { - FieldTtl *AclFieldData `protobuf:"bytes,44,opt,name=field_ttl,json=fieldTtl,proto3,oneof"` -} - -type SetAclEntryAttributeRequest_FieldTos struct { - FieldTos *AclFieldData `protobuf:"bytes,45,opt,name=field_tos,json=fieldTos,proto3,oneof"` -} - -type SetAclEntryAttributeRequest_FieldIpFlags struct { - FieldIpFlags *AclFieldData `protobuf:"bytes,46,opt,name=field_ip_flags,json=fieldIpFlags,proto3,oneof"` +func (x *CreateAclCounterResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldTcpFlags struct { - FieldTcpFlags *AclFieldData `protobuf:"bytes,47,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3,oneof"` +// Deprecated: Use CreateAclCounterResponse.ProtoReflect.Descriptor instead. +func (*CreateAclCounterResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{15} } -type SetAclEntryAttributeRequest_FieldAclIpType struct { - FieldAclIpType *AclFieldData `protobuf:"bytes,48,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3,oneof"` +func (x *CreateAclCounterResponse) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 } -type SetAclEntryAttributeRequest_FieldAclIpFrag struct { - FieldAclIpFrag *AclFieldData `protobuf:"bytes,49,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3,oneof"` -} +type RemoveAclCounterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_FieldIpv6FlowLabel struct { - FieldIpv6FlowLabel *AclFieldData `protobuf:"bytes,50,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3,oneof"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` } -type SetAclEntryAttributeRequest_FieldTc struct { - FieldTc *AclFieldData `protobuf:"bytes,51,opt,name=field_tc,json=fieldTc,proto3,oneof"` +func (x *RemoveAclCounterRequest) Reset() { + *x = RemoveAclCounterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldIcmpType struct { - FieldIcmpType *AclFieldData `protobuf:"bytes,52,opt,name=field_icmp_type,json=fieldIcmpType,proto3,oneof"` +func (x *RemoveAclCounterRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldIcmpCode struct { - FieldIcmpCode *AclFieldData `protobuf:"bytes,53,opt,name=field_icmp_code,json=fieldIcmpCode,proto3,oneof"` -} +func (*RemoveAclCounterRequest) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldIcmpv6Type struct { - FieldIcmpv6Type *AclFieldData `protobuf:"bytes,54,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3,oneof"` +func (x *RemoveAclCounterRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldIcmpv6Code struct { - FieldIcmpv6Code *AclFieldData `protobuf:"bytes,55,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3,oneof"` +// Deprecated: Use RemoveAclCounterRequest.ProtoReflect.Descriptor instead. +func (*RemoveAclCounterRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{16} } -type SetAclEntryAttributeRequest_FieldPacketVlan struct { - FieldPacketVlan *AclFieldData `protobuf:"bytes,56,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3,oneof"` +func (x *RemoveAclCounterRequest) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 } -type SetAclEntryAttributeRequest_FieldTunnelVni struct { - FieldTunnelVni *AclFieldData `protobuf:"bytes,57,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3,oneof"` +type RemoveAclCounterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -type SetAclEntryAttributeRequest_FieldHasVlanTag struct { - FieldHasVlanTag *AclFieldData `protobuf:"bytes,58,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3,oneof"` +func (x *RemoveAclCounterResponse) Reset() { + *x = RemoveAclCounterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldMacsecSci struct { - FieldMacsecSci *AclFieldData `protobuf:"bytes,59,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3,oneof"` +func (x *RemoveAclCounterResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldMplsLabel0Label struct { - FieldMplsLabel0Label *AclFieldData `protobuf:"bytes,60,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3,oneof"` -} +func (*RemoveAclCounterResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldMplsLabel0Ttl struct { - FieldMplsLabel0Ttl *AclFieldData `protobuf:"bytes,61,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3,oneof"` +func (x *RemoveAclCounterResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldMplsLabel0Exp struct { - FieldMplsLabel0Exp *AclFieldData `protobuf:"bytes,62,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3,oneof"` +// Deprecated: Use RemoveAclCounterResponse.ProtoReflect.Descriptor instead. +func (*RemoveAclCounterResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{17} } -type SetAclEntryAttributeRequest_FieldMplsLabel0Bos struct { - FieldMplsLabel0Bos *AclFieldData `protobuf:"bytes,63,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3,oneof"` -} +type SetAclCounterAttributeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_FieldMplsLabel1Label struct { - FieldMplsLabel1Label *AclFieldData `protobuf:"bytes,64,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3,oneof"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Packets *uint64 `protobuf:"varint,2,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + Bytes *uint64 `protobuf:"varint,3,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` } -type SetAclEntryAttributeRequest_FieldMplsLabel1Ttl struct { - FieldMplsLabel1Ttl *AclFieldData `protobuf:"bytes,65,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3,oneof"` +func (x *SetAclCounterAttributeRequest) Reset() { + *x = SetAclCounterAttributeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldMplsLabel1Exp struct { - FieldMplsLabel1Exp *AclFieldData `protobuf:"bytes,66,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3,oneof"` +func (x *SetAclCounterAttributeRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldMplsLabel1Bos struct { - FieldMplsLabel1Bos *AclFieldData `protobuf:"bytes,67,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3,oneof"` -} +func (*SetAclCounterAttributeRequest) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldMplsLabel2Label struct { - FieldMplsLabel2Label *AclFieldData `protobuf:"bytes,68,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3,oneof"` +func (x *SetAclCounterAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldMplsLabel2Ttl struct { - FieldMplsLabel2Ttl *AclFieldData `protobuf:"bytes,69,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3,oneof"` +// Deprecated: Use SetAclCounterAttributeRequest.ProtoReflect.Descriptor instead. +func (*SetAclCounterAttributeRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{18} } -type SetAclEntryAttributeRequest_FieldMplsLabel2Exp struct { - FieldMplsLabel2Exp *AclFieldData `protobuf:"bytes,70,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3,oneof"` +func (x *SetAclCounterAttributeRequest) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 } -type SetAclEntryAttributeRequest_FieldMplsLabel2Bos struct { - FieldMplsLabel2Bos *AclFieldData `protobuf:"bytes,71,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3,oneof"` +func (x *SetAclCounterAttributeRequest) GetPackets() uint64 { + if x != nil && x.Packets != nil { + return *x.Packets + } + return 0 } -type SetAclEntryAttributeRequest_FieldMplsLabel3Label struct { - FieldMplsLabel3Label *AclFieldData `protobuf:"bytes,72,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3,oneof"` +func (x *SetAclCounterAttributeRequest) GetBytes() uint64 { + if x != nil && x.Bytes != nil { + return *x.Bytes + } + return 0 } -type SetAclEntryAttributeRequest_FieldMplsLabel3Ttl struct { - FieldMplsLabel3Ttl *AclFieldData `protobuf:"bytes,73,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3,oneof"` +type SetAclCounterAttributeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -type SetAclEntryAttributeRequest_FieldMplsLabel3Exp struct { - FieldMplsLabel3Exp *AclFieldData `protobuf:"bytes,74,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3,oneof"` +func (x *SetAclCounterAttributeResponse) Reset() { + *x = SetAclCounterAttributeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldMplsLabel3Bos struct { - FieldMplsLabel3Bos *AclFieldData `protobuf:"bytes,75,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3,oneof"` +func (x *SetAclCounterAttributeResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldMplsLabel4Label struct { - FieldMplsLabel4Label *AclFieldData `protobuf:"bytes,76,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3,oneof"` -} +func (*SetAclCounterAttributeResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldMplsLabel4Ttl struct { - FieldMplsLabel4Ttl *AclFieldData `protobuf:"bytes,77,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3,oneof"` +func (x *SetAclCounterAttributeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldMplsLabel4Exp struct { - FieldMplsLabel4Exp *AclFieldData `protobuf:"bytes,78,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3,oneof"` +// Deprecated: Use SetAclCounterAttributeResponse.ProtoReflect.Descriptor instead. +func (*SetAclCounterAttributeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{19} } -type SetAclEntryAttributeRequest_FieldMplsLabel4Bos struct { - FieldMplsLabel4Bos *AclFieldData `protobuf:"bytes,79,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3,oneof"` -} +type GetAclCounterAttributeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_FieldFdbDstUserMeta struct { - FieldFdbDstUserMeta *AclFieldData `protobuf:"bytes,80,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3,oneof"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + AttrType []AclCounterAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclCounterAttr" json:"attr_type,omitempty"` } -type SetAclEntryAttributeRequest_FieldRouteDstUserMeta struct { - FieldRouteDstUserMeta *AclFieldData `protobuf:"bytes,81,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3,oneof"` +func (x *GetAclCounterAttributeRequest) Reset() { + *x = GetAclCounterAttributeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_FieldNeighborDstUserMeta struct { - FieldNeighborDstUserMeta *AclFieldData `protobuf:"bytes,82,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3,oneof"` +func (x *GetAclCounterAttributeRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_FieldPortUserMeta struct { - FieldPortUserMeta *AclFieldData `protobuf:"bytes,83,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3,oneof"` -} +func (*GetAclCounterAttributeRequest) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldVlanUserMeta struct { - FieldVlanUserMeta *AclFieldData `protobuf:"bytes,84,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3,oneof"` +func (x *GetAclCounterAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldAclUserMeta struct { - FieldAclUserMeta *AclFieldData `protobuf:"bytes,85,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3,oneof"` +// Deprecated: Use GetAclCounterAttributeRequest.ProtoReflect.Descriptor instead. +func (*GetAclCounterAttributeRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{20} } -type SetAclEntryAttributeRequest_FieldFdbNpuMetaDstHit struct { - FieldFdbNpuMetaDstHit *AclFieldData `protobuf:"bytes,86,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3,oneof"` +func (x *GetAclCounterAttributeRequest) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 } -type SetAclEntryAttributeRequest_FieldNeighborNpuMetaDstHit struct { - FieldNeighborNpuMetaDstHit *AclFieldData `protobuf:"bytes,87,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3,oneof"` +func (x *GetAclCounterAttributeRequest) GetAttrType() []AclCounterAttr { + if x != nil { + return x.AttrType + } + return nil } -type SetAclEntryAttributeRequest_FieldRouteNpuMetaDstHit struct { - FieldRouteNpuMetaDstHit *AclFieldData `protobuf:"bytes,88,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3,oneof"` -} +type GetAclCounterAttributeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_FieldBthOpcode struct { - FieldBthOpcode *AclFieldData `protobuf:"bytes,89,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3,oneof"` + Attr *AclCounterAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } -type SetAclEntryAttributeRequest_FieldAethSyndrome struct { - FieldAethSyndrome *AclFieldData `protobuf:"bytes,90,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3,oneof"` +func (x *GetAclCounterAttributeResponse) Reset() { + *x = GetAclCounterAttributeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_UserDefinedFieldGroupMin struct { - UserDefinedFieldGroupMin *AclFieldData `protobuf:"bytes,91,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3,oneof"` +func (x *GetAclCounterAttributeResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_UserDefinedFieldGroupMax struct { - UserDefinedFieldGroupMax *AclFieldData `protobuf:"bytes,92,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3,oneof"` -} +func (*GetAclCounterAttributeResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_FieldAclRangeType struct { - FieldAclRangeType *AclFieldData `protobuf:"bytes,93,opt,name=field_acl_range_type,json=fieldAclRangeType,proto3,oneof"` +func (x *GetAclCounterAttributeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_FieldIpv6NextHeader struct { - FieldIpv6NextHeader *AclFieldData `protobuf:"bytes,94,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3,oneof"` +// Deprecated: Use GetAclCounterAttributeResponse.ProtoReflect.Descriptor instead. +func (*GetAclCounterAttributeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{21} } -type SetAclEntryAttributeRequest_FieldGreKey struct { - FieldGreKey *AclFieldData `protobuf:"bytes,95,opt,name=field_gre_key,json=fieldGreKey,proto3,oneof"` +func (x *GetAclCounterAttributeResponse) GetAttr() *AclCounterAttribute { + if x != nil { + return x.Attr + } + return nil } -type SetAclEntryAttributeRequest_FieldTamIntType struct { - FieldTamIntType *AclFieldData `protobuf:"bytes,96,opt,name=field_tam_int_type,json=fieldTamIntType,proto3,oneof"` -} +type CreateAclRangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_ActionRedirect struct { - ActionRedirect *AclActionData `protobuf:"bytes,97,opt,name=action_redirect,json=actionRedirect,proto3,oneof"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *AclRangeType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.AclRangeType,oneof" json:"type,omitempty"` + Limit *Uint32Range `protobuf:"bytes,3,opt,name=limit,proto3,oneof" json:"limit,omitempty"` } -type SetAclEntryAttributeRequest_ActionEndpointIp struct { - ActionEndpointIp *AclActionData `protobuf:"bytes,98,opt,name=action_endpoint_ip,json=actionEndpointIp,proto3,oneof"` +func (x *CreateAclRangeRequest) Reset() { + *x = CreateAclRangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_ActionRedirectList struct { - ActionRedirectList *AclActionData `protobuf:"bytes,99,opt,name=action_redirect_list,json=actionRedirectList,proto3,oneof"` +func (x *CreateAclRangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_ActionPacketAction struct { - ActionPacketAction *AclActionData `protobuf:"bytes,100,opt,name=action_packet_action,json=actionPacketAction,proto3,oneof"` -} +func (*CreateAclRangeRequest) ProtoMessage() {} -type SetAclEntryAttributeRequest_ActionFlood struct { - ActionFlood *AclActionData `protobuf:"bytes,101,opt,name=action_flood,json=actionFlood,proto3,oneof"` +func (x *CreateAclRangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_ActionCounter struct { - ActionCounter *AclActionData `protobuf:"bytes,102,opt,name=action_counter,json=actionCounter,proto3,oneof"` +// Deprecated: Use CreateAclRangeRequest.ProtoReflect.Descriptor instead. +func (*CreateAclRangeRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{22} } -type SetAclEntryAttributeRequest_ActionMirrorIngress struct { - ActionMirrorIngress *AclActionData `protobuf:"bytes,103,opt,name=action_mirror_ingress,json=actionMirrorIngress,proto3,oneof"` +func (x *CreateAclRangeRequest) GetSwitch() uint64 { + if x != nil { + return x.Switch + } + return 0 } -type SetAclEntryAttributeRequest_ActionMirrorEgress struct { - ActionMirrorEgress *AclActionData `protobuf:"bytes,104,opt,name=action_mirror_egress,json=actionMirrorEgress,proto3,oneof"` +func (x *CreateAclRangeRequest) GetType() AclRangeType { + if x != nil && x.Type != nil { + return *x.Type + } + return AclRangeType_ACL_RANGE_TYPE_UNSPECIFIED } -type SetAclEntryAttributeRequest_ActionSetPolicer struct { - ActionSetPolicer *AclActionData `protobuf:"bytes,105,opt,name=action_set_policer,json=actionSetPolicer,proto3,oneof"` +func (x *CreateAclRangeRequest) GetLimit() *Uint32Range { + if x != nil { + return x.Limit + } + return nil } -type SetAclEntryAttributeRequest_ActionDecrementTtl struct { - ActionDecrementTtl *AclActionData `protobuf:"bytes,106,opt,name=action_decrement_ttl,json=actionDecrementTtl,proto3,oneof"` -} +type CreateAclRangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_ActionSetTc struct { - ActionSetTc *AclActionData `protobuf:"bytes,107,opt,name=action_set_tc,json=actionSetTc,proto3,oneof"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` } -type SetAclEntryAttributeRequest_ActionSetPacketColor struct { - ActionSetPacketColor *AclActionData `protobuf:"bytes,108,opt,name=action_set_packet_color,json=actionSetPacketColor,proto3,oneof"` +func (x *CreateAclRangeResponse) Reset() { + *x = CreateAclRangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_ActionSetInnerVlanId struct { - ActionSetInnerVlanId *AclActionData `protobuf:"bytes,109,opt,name=action_set_inner_vlan_id,json=actionSetInnerVlanId,proto3,oneof"` +func (x *CreateAclRangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_ActionSetInnerVlanPri struct { - ActionSetInnerVlanPri *AclActionData `protobuf:"bytes,110,opt,name=action_set_inner_vlan_pri,json=actionSetInnerVlanPri,proto3,oneof"` -} +func (*CreateAclRangeResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_ActionSetOuterVlanId struct { - ActionSetOuterVlanId *AclActionData `protobuf:"bytes,111,opt,name=action_set_outer_vlan_id,json=actionSetOuterVlanId,proto3,oneof"` +func (x *CreateAclRangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_ActionSetOuterVlanPri struct { - ActionSetOuterVlanPri *AclActionData `protobuf:"bytes,112,opt,name=action_set_outer_vlan_pri,json=actionSetOuterVlanPri,proto3,oneof"` +// Deprecated: Use CreateAclRangeResponse.ProtoReflect.Descriptor instead. +func (*CreateAclRangeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{23} } -type SetAclEntryAttributeRequest_ActionAddVlanId struct { - ActionAddVlanId *AclActionData `protobuf:"bytes,113,opt,name=action_add_vlan_id,json=actionAddVlanId,proto3,oneof"` +func (x *CreateAclRangeResponse) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 } -type SetAclEntryAttributeRequest_ActionAddVlanPri struct { - ActionAddVlanPri *AclActionData `protobuf:"bytes,114,opt,name=action_add_vlan_pri,json=actionAddVlanPri,proto3,oneof"` -} +type RemoveAclRangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_ActionSetSrcMac struct { - ActionSetSrcMac *AclActionData `protobuf:"bytes,115,opt,name=action_set_src_mac,json=actionSetSrcMac,proto3,oneof"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` } -type SetAclEntryAttributeRequest_ActionSetDstMac struct { - ActionSetDstMac *AclActionData `protobuf:"bytes,116,opt,name=action_set_dst_mac,json=actionSetDstMac,proto3,oneof"` +func (x *RemoveAclRangeRequest) Reset() { + *x = RemoveAclRangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_ActionSetSrcIp struct { - ActionSetSrcIp *AclActionData `protobuf:"bytes,117,opt,name=action_set_src_ip,json=actionSetSrcIp,proto3,oneof"` +func (x *RemoveAclRangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_ActionSetDstIp struct { - ActionSetDstIp *AclActionData `protobuf:"bytes,118,opt,name=action_set_dst_ip,json=actionSetDstIp,proto3,oneof"` -} +func (*RemoveAclRangeRequest) ProtoMessage() {} -type SetAclEntryAttributeRequest_ActionSetSrcIpv6 struct { - ActionSetSrcIpv6 *AclActionData `protobuf:"bytes,119,opt,name=action_set_src_ipv6,json=actionSetSrcIpv6,proto3,oneof"` +func (x *RemoveAclRangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_ActionSetDstIpv6 struct { - ActionSetDstIpv6 *AclActionData `protobuf:"bytes,120,opt,name=action_set_dst_ipv6,json=actionSetDstIpv6,proto3,oneof"` +// Deprecated: Use RemoveAclRangeRequest.ProtoReflect.Descriptor instead. +func (*RemoveAclRangeRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{24} } -type SetAclEntryAttributeRequest_ActionSetDscp struct { - ActionSetDscp *AclActionData `protobuf:"bytes,121,opt,name=action_set_dscp,json=actionSetDscp,proto3,oneof"` +func (x *RemoveAclRangeRequest) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 } -type SetAclEntryAttributeRequest_ActionSetEcn struct { - ActionSetEcn *AclActionData `protobuf:"bytes,122,opt,name=action_set_ecn,json=actionSetEcn,proto3,oneof"` +type RemoveAclRangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -type SetAclEntryAttributeRequest_ActionSetL4SrcPort struct { - ActionSetL4SrcPort *AclActionData `protobuf:"bytes,123,opt,name=action_set_l4_src_port,json=actionSetL4SrcPort,proto3,oneof"` +func (x *RemoveAclRangeResponse) Reset() { + *x = RemoveAclRangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_ActionSetL4DstPort struct { - ActionSetL4DstPort *AclActionData `protobuf:"bytes,124,opt,name=action_set_l4_dst_port,json=actionSetL4DstPort,proto3,oneof"` +func (x *RemoveAclRangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_ActionIngressSamplepacketEnable struct { - ActionIngressSamplepacketEnable *AclActionData `protobuf:"bytes,125,opt,name=action_ingress_samplepacket_enable,json=actionIngressSamplepacketEnable,proto3,oneof"` -} +func (*RemoveAclRangeResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_ActionEgressSamplepacketEnable struct { - ActionEgressSamplepacketEnable *AclActionData `protobuf:"bytes,126,opt,name=action_egress_samplepacket_enable,json=actionEgressSamplepacketEnable,proto3,oneof"` +func (x *RemoveAclRangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_ActionSetAclMetaData struct { - ActionSetAclMetaData *AclActionData `protobuf:"bytes,127,opt,name=action_set_acl_meta_data,json=actionSetAclMetaData,proto3,oneof"` +// Deprecated: Use RemoveAclRangeResponse.ProtoReflect.Descriptor instead. +func (*RemoveAclRangeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{25} } -type SetAclEntryAttributeRequest_ActionEgressBlockPortList struct { - ActionEgressBlockPortList *AclActionData `protobuf:"bytes,128,opt,name=action_egress_block_port_list,json=actionEgressBlockPortList,proto3,oneof"` -} +type GetAclRangeAttributeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_ActionSetUserTrapId struct { - ActionSetUserTrapId *AclActionData `protobuf:"bytes,129,opt,name=action_set_user_trap_id,json=actionSetUserTrapId,proto3,oneof"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + AttrType []AclRangeAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclRangeAttr" json:"attr_type,omitempty"` } -type SetAclEntryAttributeRequest_ActionSetDoNotLearn struct { - ActionSetDoNotLearn *AclActionData `protobuf:"bytes,130,opt,name=action_set_do_not_learn,json=actionSetDoNotLearn,proto3,oneof"` +func (x *GetAclRangeAttributeRequest) Reset() { + *x = GetAclRangeAttributeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_ActionAclDtelFlowOp struct { - ActionAclDtelFlowOp *AclActionData `protobuf:"bytes,131,opt,name=action_acl_dtel_flow_op,json=actionAclDtelFlowOp,proto3,oneof"` +func (x *GetAclRangeAttributeRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_ActionDtelIntSession struct { - ActionDtelIntSession *AclActionData `protobuf:"bytes,132,opt,name=action_dtel_int_session,json=actionDtelIntSession,proto3,oneof"` -} +func (*GetAclRangeAttributeRequest) ProtoMessage() {} -type SetAclEntryAttributeRequest_ActionDtelDropReportEnable struct { - ActionDtelDropReportEnable *AclActionData `protobuf:"bytes,133,opt,name=action_dtel_drop_report_enable,json=actionDtelDropReportEnable,proto3,oneof"` +func (x *GetAclRangeAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_ActionDtelTailDropReportEnable struct { - ActionDtelTailDropReportEnable *AclActionData `protobuf:"bytes,134,opt,name=action_dtel_tail_drop_report_enable,json=actionDtelTailDropReportEnable,proto3,oneof"` +// Deprecated: Use GetAclRangeAttributeRequest.ProtoReflect.Descriptor instead. +func (*GetAclRangeAttributeRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{26} } -type SetAclEntryAttributeRequest_ActionDtelFlowSamplePercent struct { - ActionDtelFlowSamplePercent *AclActionData `protobuf:"bytes,135,opt,name=action_dtel_flow_sample_percent,json=actionDtelFlowSamplePercent,proto3,oneof"` +func (x *GetAclRangeAttributeRequest) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 } -type SetAclEntryAttributeRequest_ActionDtelReportAllPackets struct { - ActionDtelReportAllPackets *AclActionData `protobuf:"bytes,136,opt,name=action_dtel_report_all_packets,json=actionDtelReportAllPackets,proto3,oneof"` +func (x *GetAclRangeAttributeRequest) GetAttrType() []AclRangeAttr { + if x != nil { + return x.AttrType + } + return nil } -type SetAclEntryAttributeRequest_ActionNoNat struct { - ActionNoNat *AclActionData `protobuf:"bytes,137,opt,name=action_no_nat,json=actionNoNat,proto3,oneof"` -} +type GetAclRangeAttributeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_ActionIntInsert struct { - ActionIntInsert *AclActionData `protobuf:"bytes,138,opt,name=action_int_insert,json=actionIntInsert,proto3,oneof"` + Attr *AclRangeAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } -type SetAclEntryAttributeRequest_ActionIntDelete struct { - ActionIntDelete *AclActionData `protobuf:"bytes,139,opt,name=action_int_delete,json=actionIntDelete,proto3,oneof"` +func (x *GetAclRangeAttributeResponse) Reset() { + *x = GetAclRangeAttributeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_ActionIntReportFlow struct { - ActionIntReportFlow *AclActionData `protobuf:"bytes,140,opt,name=action_int_report_flow,json=actionIntReportFlow,proto3,oneof"` +func (x *GetAclRangeAttributeResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_ActionIntReportDrops struct { - ActionIntReportDrops *AclActionData `protobuf:"bytes,141,opt,name=action_int_report_drops,json=actionIntReportDrops,proto3,oneof"` -} +func (*GetAclRangeAttributeResponse) ProtoMessage() {} -type SetAclEntryAttributeRequest_ActionIntReportTailDrops struct { - ActionIntReportTailDrops *AclActionData `protobuf:"bytes,142,opt,name=action_int_report_tail_drops,json=actionIntReportTailDrops,proto3,oneof"` +func (x *GetAclRangeAttributeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -type SetAclEntryAttributeRequest_ActionTamIntObject struct { - ActionTamIntObject *AclActionData `protobuf:"bytes,143,opt,name=action_tam_int_object,json=actionTamIntObject,proto3,oneof"` +// Deprecated: Use GetAclRangeAttributeResponse.ProtoReflect.Descriptor instead. +func (*GetAclRangeAttributeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{27} } -type SetAclEntryAttributeRequest_ActionSetIsolationGroup struct { - ActionSetIsolationGroup *AclActionData `protobuf:"bytes,144,opt,name=action_set_isolation_group,json=actionSetIsolationGroup,proto3,oneof"` +func (x *GetAclRangeAttributeResponse) GetAttr() *AclRangeAttribute { + if x != nil { + return x.Attr + } + return nil } -type SetAclEntryAttributeRequest_ActionMacsecFlow struct { - ActionMacsecFlow *AclActionData `protobuf:"bytes,145,opt,name=action_macsec_flow,json=actionMacsecFlow,proto3,oneof"` -} +type CreateAclTableGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type SetAclEntryAttributeRequest_ActionSetLagHashId struct { - ActionSetLagHashId *AclActionData `protobuf:"bytes,146,opt,name=action_set_lag_hash_id,json=actionSetLagHashId,proto3,oneof"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + AclStage *AclStage `protobuf:"varint,2,opt,name=acl_stage,json=aclStage,proto3,enum=lemming.dataplane.sai.AclStage,oneof" json:"acl_stage,omitempty"` + AclBindPointTypeList []AclBindPointType `protobuf:"varint,3,rep,packed,name=acl_bind_point_type_list,json=aclBindPointTypeList,proto3,enum=lemming.dataplane.sai.AclBindPointType" json:"acl_bind_point_type_list,omitempty"` + Type *AclTableGroupType `protobuf:"varint,4,opt,name=type,proto3,enum=lemming.dataplane.sai.AclTableGroupType,oneof" json:"type,omitempty"` } -type SetAclEntryAttributeRequest_ActionSetEcmpHashId struct { - ActionSetEcmpHashId *AclActionData `protobuf:"bytes,147,opt,name=action_set_ecmp_hash_id,json=actionSetEcmpHashId,proto3,oneof"` +func (x *CreateAclTableGroupRequest) Reset() { + *x = CreateAclTableGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SetAclEntryAttributeRequest_ActionSetVrf struct { - ActionSetVrf *AclActionData `protobuf:"bytes,148,opt,name=action_set_vrf,json=actionSetVrf,proto3,oneof"` +func (x *CreateAclTableGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SetAclEntryAttributeRequest_ActionSetForwardingClass struct { - ActionSetForwardingClass *AclActionData `protobuf:"bytes,149,opt,name=action_set_forwarding_class,json=actionSetForwardingClass,proto3,oneof"` -} +func (*CreateAclTableGroupRequest) ProtoMessage() {} -func (*SetAclEntryAttributeRequest_Priority) isSetAclEntryAttributeRequest_Attr() {} +func (x *CreateAclTableGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) +} -func (*SetAclEntryAttributeRequest_AdminState) isSetAclEntryAttributeRequest_Attr() {} +// Deprecated: Use CreateAclTableGroupRequest.ProtoReflect.Descriptor instead. +func (*CreateAclTableGroupRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{28} +} -func (*SetAclEntryAttributeRequest_FieldSrcIpv6) isSetAclEntryAttributeRequest_Attr() {} +func (x *CreateAclTableGroupRequest) GetSwitch() uint64 { + if x != nil { + return x.Switch + } + return 0 +} -func (*SetAclEntryAttributeRequest_FieldSrcIpv6Word3) isSetAclEntryAttributeRequest_Attr() {} +func (x *CreateAclTableGroupRequest) GetAclStage() AclStage { + if x != nil && x.AclStage != nil { + return *x.AclStage + } + return AclStage_ACL_STAGE_UNSPECIFIED +} -func (*SetAclEntryAttributeRequest_FieldSrcIpv6Word2) isSetAclEntryAttributeRequest_Attr() {} +func (x *CreateAclTableGroupRequest) GetAclBindPointTypeList() []AclBindPointType { + if x != nil { + return x.AclBindPointTypeList + } + return nil +} -func (*SetAclEntryAttributeRequest_FieldSrcIpv6Word1) isSetAclEntryAttributeRequest_Attr() {} +func (x *CreateAclTableGroupRequest) GetType() AclTableGroupType { + if x != nil && x.Type != nil { + return *x.Type + } + return AclTableGroupType_ACL_TABLE_GROUP_TYPE_UNSPECIFIED +} -func (*SetAclEntryAttributeRequest_FieldSrcIpv6Word0) isSetAclEntryAttributeRequest_Attr() {} +type CreateAclTableGroupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (*SetAclEntryAttributeRequest_FieldDstIpv6) isSetAclEntryAttributeRequest_Attr() {} + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` +} -func (*SetAclEntryAttributeRequest_FieldDstIpv6Word3) isSetAclEntryAttributeRequest_Attr() {} +func (x *CreateAclTableGroupResponse) Reset() { + *x = CreateAclTableGroupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (*SetAclEntryAttributeRequest_FieldDstIpv6Word2) isSetAclEntryAttributeRequest_Attr() {} +func (x *CreateAclTableGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} -func (*SetAclEntryAttributeRequest_FieldDstIpv6Word1) isSetAclEntryAttributeRequest_Attr() {} +func (*CreateAclTableGroupResponse) ProtoMessage() {} -func (*SetAclEntryAttributeRequest_FieldDstIpv6Word0) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerSrcIpv6) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerDstIpv6) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldSrcMac) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldDstMac) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldSrcIp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldDstIp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerSrcIp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerDstIp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInPorts) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldOutPorts) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldOutPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldSrcPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldOuterVlanId) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldOuterVlanPri) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldOuterVlanCfi) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerVlanId) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerVlanPri) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerVlanCfi) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldL4SrcPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldL4DstPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerL4SrcPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerL4DstPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldEtherType) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerEtherType) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIpProtocol) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldInnerIpProtocol) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIpIdentification) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldDscp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldEcn) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldTtl) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldTos) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIpFlags) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldTcpFlags) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldAclIpType) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldAclIpFrag) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIpv6FlowLabel) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldTc) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIcmpType) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIcmpCode) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIcmpv6Type) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIcmpv6Code) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldPacketVlan) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldTunnelVni) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldHasVlanTag) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMacsecSci) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel0Label) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel0Ttl) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel0Exp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel0Bos) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel1Label) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel1Ttl) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel1Exp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel1Bos) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel2Label) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel2Ttl) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel2Exp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel2Bos) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel3Label) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel3Ttl) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel3Exp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel3Bos) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel4Label) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel4Ttl) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel4Exp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldMplsLabel4Bos) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldFdbDstUserMeta) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldRouteDstUserMeta) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldNeighborDstUserMeta) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldPortUserMeta) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldVlanUserMeta) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldAclUserMeta) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldFdbNpuMetaDstHit) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldNeighborNpuMetaDstHit) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldRouteNpuMetaDstHit) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldBthOpcode) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldAethSyndrome) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_UserDefinedFieldGroupMin) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_UserDefinedFieldGroupMax) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldAclRangeType) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldIpv6NextHeader) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldGreKey) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_FieldTamIntType) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionRedirect) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionEndpointIp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionRedirectList) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionPacketAction) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionFlood) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionCounter) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionMirrorIngress) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionMirrorEgress) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetPolicer) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionDecrementTtl) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetTc) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetPacketColor) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetInnerVlanId) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetInnerVlanPri) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetOuterVlanId) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetOuterVlanPri) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionAddVlanId) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionAddVlanPri) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetSrcMac) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetDstMac) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetSrcIp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetDstIp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetSrcIpv6) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetDstIpv6) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetDscp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetEcn) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetL4SrcPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetL4DstPort) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionIngressSamplepacketEnable) isSetAclEntryAttributeRequest_Attr() { +func (x *CreateAclTableGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) } -func (*SetAclEntryAttributeRequest_ActionEgressSamplepacketEnable) isSetAclEntryAttributeRequest_Attr() { +// Deprecated: Use CreateAclTableGroupResponse.ProtoReflect.Descriptor instead. +func (*CreateAclTableGroupResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{29} } -func (*SetAclEntryAttributeRequest_ActionSetAclMetaData) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionEgressBlockPortList) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetUserTrapId) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetDoNotLearn) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionAclDtelFlowOp) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionDtelIntSession) isSetAclEntryAttributeRequest_Attr() {} +func (x *CreateAclTableGroupResponse) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 +} -func (*SetAclEntryAttributeRequest_ActionDtelDropReportEnable) isSetAclEntryAttributeRequest_Attr() {} +type RemoveAclTableGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (*SetAclEntryAttributeRequest_ActionDtelTailDropReportEnable) isSetAclEntryAttributeRequest_Attr() { + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` } -func (*SetAclEntryAttributeRequest_ActionDtelFlowSamplePercent) isSetAclEntryAttributeRequest_Attr() { +func (x *RemoveAclTableGroupRequest) Reset() { + *x = RemoveAclTableGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (*SetAclEntryAttributeRequest_ActionDtelReportAllPackets) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionNoNat) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionIntInsert) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionIntDelete) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionIntReportFlow) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionIntReportDrops) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionIntReportTailDrops) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionTamIntObject) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionSetIsolationGroup) isSetAclEntryAttributeRequest_Attr() {} - -func (*SetAclEntryAttributeRequest_ActionMacsecFlow) isSetAclEntryAttributeRequest_Attr() {} +func (x *RemoveAclTableGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} -func (*SetAclEntryAttributeRequest_ActionSetLagHashId) isSetAclEntryAttributeRequest_Attr() {} +func (*RemoveAclTableGroupRequest) ProtoMessage() {} -func (*SetAclEntryAttributeRequest_ActionSetEcmpHashId) isSetAclEntryAttributeRequest_Attr() {} +func (x *RemoveAclTableGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_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) +} -func (*SetAclEntryAttributeRequest_ActionSetVrf) isSetAclEntryAttributeRequest_Attr() {} +// Deprecated: Use RemoveAclTableGroupRequest.ProtoReflect.Descriptor instead. +func (*RemoveAclTableGroupRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{30} +} -func (*SetAclEntryAttributeRequest_ActionSetForwardingClass) isSetAclEntryAttributeRequest_Attr() {} +func (x *RemoveAclTableGroupRequest) GetOid() uint64 { + if x != nil { + return x.Oid + } + return 0 +} -type SetAclEntryAttributeResponse struct { +type RemoveAclTableGroupResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *SetAclEntryAttributeResponse) Reset() { - *x = SetAclEntryAttributeResponse{} +func (x *RemoveAclTableGroupResponse) Reset() { + *x = RemoveAclTableGroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[11] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetAclEntryAttributeResponse) String() string { +func (x *RemoveAclTableGroupResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetAclEntryAttributeResponse) ProtoMessage() {} +func (*RemoveAclTableGroupResponse) ProtoMessage() {} -func (x *SetAclEntryAttributeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[11] +func (x *RemoveAclTableGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5669,37 +5787,37 @@ func (x *SetAclEntryAttributeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetAclEntryAttributeResponse.ProtoReflect.Descriptor instead. -func (*SetAclEntryAttributeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{11} +// Deprecated: Use RemoveAclTableGroupResponse.ProtoReflect.Descriptor instead. +func (*RemoveAclTableGroupResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{31} } -type GetAclEntryAttributeRequest struct { +type GetAclTableGroupAttributeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - AttrType []AclEntryAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclEntryAttr" json:"attr_type,omitempty"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + AttrType []AclTableGroupAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclTableGroupAttr" json:"attr_type,omitempty"` } -func (x *GetAclEntryAttributeRequest) Reset() { - *x = GetAclEntryAttributeRequest{} +func (x *GetAclTableGroupAttributeRequest) Reset() { + *x = GetAclTableGroupAttributeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[12] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetAclEntryAttributeRequest) String() string { +func (x *GetAclTableGroupAttributeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetAclEntryAttributeRequest) ProtoMessage() {} +func (*GetAclTableGroupAttributeRequest) ProtoMessage() {} -func (x *GetAclEntryAttributeRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[12] +func (x *GetAclTableGroupAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5710,50 +5828,50 @@ func (x *GetAclEntryAttributeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetAclEntryAttributeRequest.ProtoReflect.Descriptor instead. -func (*GetAclEntryAttributeRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{12} +// Deprecated: Use GetAclTableGroupAttributeRequest.ProtoReflect.Descriptor instead. +func (*GetAclTableGroupAttributeRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{32} } -func (x *GetAclEntryAttributeRequest) GetOid() uint64 { +func (x *GetAclTableGroupAttributeRequest) GetOid() uint64 { if x != nil { return x.Oid } return 0 } -func (x *GetAclEntryAttributeRequest) GetAttrType() []AclEntryAttr { +func (x *GetAclTableGroupAttributeRequest) GetAttrType() []AclTableGroupAttr { if x != nil { return x.AttrType } return nil } -type GetAclEntryAttributeResponse struct { +type GetAclTableGroupAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*AclEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *AclTableGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } -func (x *GetAclEntryAttributeResponse) Reset() { - *x = GetAclEntryAttributeResponse{} +func (x *GetAclTableGroupAttributeResponse) Reset() { + *x = GetAclTableGroupAttributeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[13] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetAclEntryAttributeResponse) String() string { +func (x *GetAclTableGroupAttributeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetAclEntryAttributeResponse) ProtoMessage() {} +func (*GetAclTableGroupAttributeResponse) ProtoMessage() {} -func (x *GetAclEntryAttributeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[13] +func (x *GetAclTableGroupAttributeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5764,48 +5882,46 @@ func (x *GetAclEntryAttributeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetAclEntryAttributeResponse.ProtoReflect.Descriptor instead. -func (*GetAclEntryAttributeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{13} +// Deprecated: Use GetAclTableGroupAttributeResponse.ProtoReflect.Descriptor instead. +func (*GetAclTableGroupAttributeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{33} } -func (x *GetAclEntryAttributeResponse) GetAttr() []*AclEntryAttribute { +func (x *GetAclTableGroupAttributeResponse) GetAttr() *AclTableGroupAttribute { if x != nil { return x.Attr } return nil } -type CreateAclCounterRequest struct { +type CreateAclTableGroupMemberRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TableId uint64 `protobuf:"varint,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` - EnablePacketCount bool `protobuf:"varint,3,opt,name=enable_packet_count,json=enablePacketCount,proto3" json:"enable_packet_count,omitempty"` - EnableByteCount bool `protobuf:"varint,4,opt,name=enable_byte_count,json=enableByteCount,proto3" json:"enable_byte_count,omitempty"` - Packets uint64 `protobuf:"varint,5,opt,name=packets,proto3" json:"packets,omitempty"` - Bytes uint64 `protobuf:"varint,6,opt,name=bytes,proto3" json:"bytes,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + AclTableGroupId *uint64 `protobuf:"varint,2,opt,name=acl_table_group_id,json=aclTableGroupId,proto3,oneof" json:"acl_table_group_id,omitempty"` + AclTableId *uint64 `protobuf:"varint,3,opt,name=acl_table_id,json=aclTableId,proto3,oneof" json:"acl_table_id,omitempty"` + Priority *uint32 `protobuf:"varint,4,opt,name=priority,proto3,oneof" json:"priority,omitempty"` } -func (x *CreateAclCounterRequest) Reset() { - *x = CreateAclCounterRequest{} +func (x *CreateAclTableGroupMemberRequest) Reset() { + *x = CreateAclTableGroupMemberRequest{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[14] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CreateAclCounterRequest) String() string { +func (x *CreateAclTableGroupMemberRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateAclCounterRequest) ProtoMessage() {} +func (*CreateAclTableGroupMemberRequest) ProtoMessage() {} -func (x *CreateAclCounterRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[14] +func (x *CreateAclTableGroupMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5816,54 +5932,40 @@ func (x *CreateAclCounterRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateAclCounterRequest.ProtoReflect.Descriptor instead. -func (*CreateAclCounterRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{14} +// Deprecated: Use CreateAclTableGroupMemberRequest.ProtoReflect.Descriptor instead. +func (*CreateAclTableGroupMemberRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{34} } -func (x *CreateAclCounterRequest) GetSwitch() uint64 { +func (x *CreateAclTableGroupMemberRequest) GetSwitch() uint64 { if x != nil { return x.Switch } return 0 } -func (x *CreateAclCounterRequest) GetTableId() uint64 { - if x != nil { - return x.TableId +func (x *CreateAclTableGroupMemberRequest) GetAclTableGroupId() uint64 { + if x != nil && x.AclTableGroupId != nil { + return *x.AclTableGroupId } return 0 } -func (x *CreateAclCounterRequest) GetEnablePacketCount() bool { - if x != nil { - return x.EnablePacketCount - } - return false -} - -func (x *CreateAclCounterRequest) GetEnableByteCount() bool { - if x != nil { - return x.EnableByteCount - } - return false -} - -func (x *CreateAclCounterRequest) GetPackets() uint64 { - if x != nil { - return x.Packets +func (x *CreateAclTableGroupMemberRequest) GetAclTableId() uint64 { + if x != nil && x.AclTableId != nil { + return *x.AclTableId } return 0 } -func (x *CreateAclCounterRequest) GetBytes() uint64 { - if x != nil { - return x.Bytes +func (x *CreateAclTableGroupMemberRequest) GetPriority() uint32 { + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } -type CreateAclCounterResponse struct { +type CreateAclTableGroupMemberResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5871,23 +5973,23 @@ type CreateAclCounterResponse struct { Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` } -func (x *CreateAclCounterResponse) Reset() { - *x = CreateAclCounterResponse{} +func (x *CreateAclTableGroupMemberResponse) Reset() { + *x = CreateAclTableGroupMemberResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[15] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CreateAclCounterResponse) String() string { +func (x *CreateAclTableGroupMemberResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateAclCounterResponse) ProtoMessage() {} +func (*CreateAclTableGroupMemberResponse) ProtoMessage() {} -func (x *CreateAclCounterResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[15] +func (x *CreateAclTableGroupMemberResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5898,19 +6000,19 @@ func (x *CreateAclCounterResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateAclCounterResponse.ProtoReflect.Descriptor instead. -func (*CreateAclCounterResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{15} +// Deprecated: Use CreateAclTableGroupMemberResponse.ProtoReflect.Descriptor instead. +func (*CreateAclTableGroupMemberResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{35} } -func (x *CreateAclCounterResponse) GetOid() uint64 { +func (x *CreateAclTableGroupMemberResponse) GetOid() uint64 { if x != nil { return x.Oid } return 0 } -type RemoveAclCounterRequest struct { +type RemoveAclTableGroupMemberRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5918,23 +6020,23 @@ type RemoveAclCounterRequest struct { Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` } -func (x *RemoveAclCounterRequest) Reset() { - *x = RemoveAclCounterRequest{} +func (x *RemoveAclTableGroupMemberRequest) Reset() { + *x = RemoveAclTableGroupMemberRequest{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[16] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveAclCounterRequest) String() string { +func (x *RemoveAclTableGroupMemberRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveAclCounterRequest) ProtoMessage() {} +func (*RemoveAclTableGroupMemberRequest) ProtoMessage() {} -func (x *RemoveAclCounterRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[16] +func (x *RemoveAclTableGroupMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5945,41 +6047,41 @@ func (x *RemoveAclCounterRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveAclCounterRequest.ProtoReflect.Descriptor instead. -func (*RemoveAclCounterRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{16} +// Deprecated: Use RemoveAclTableGroupMemberRequest.ProtoReflect.Descriptor instead. +func (*RemoveAclTableGroupMemberRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{36} } -func (x *RemoveAclCounterRequest) GetOid() uint64 { +func (x *RemoveAclTableGroupMemberRequest) GetOid() uint64 { if x != nil { return x.Oid } return 0 } -type RemoveAclCounterResponse struct { +type RemoveAclTableGroupMemberResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RemoveAclCounterResponse) Reset() { - *x = RemoveAclCounterResponse{} +func (x *RemoveAclTableGroupMemberResponse) Reset() { + *x = RemoveAclTableGroupMemberResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[17] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveAclCounterResponse) String() string { +func (x *RemoveAclTableGroupMemberResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveAclCounterResponse) ProtoMessage() {} +func (*RemoveAclTableGroupMemberResponse) ProtoMessage() {} -func (x *RemoveAclCounterResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[17] +func (x *RemoveAclTableGroupMemberResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5990,41 +6092,37 @@ func (x *RemoveAclCounterResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveAclCounterResponse.ProtoReflect.Descriptor instead. -func (*RemoveAclCounterResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{17} +// Deprecated: Use RemoveAclTableGroupMemberResponse.ProtoReflect.Descriptor instead. +func (*RemoveAclTableGroupMemberResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{37} } -type SetAclCounterAttributeRequest struct { +type GetAclTableGroupMemberAttributeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetAclCounterAttributeRequest_Packets - // *SetAclCounterAttributeRequest_Bytes - Attr isSetAclCounterAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + AttrType []AclTableGroupMemberAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclTableGroupMemberAttr" json:"attr_type,omitempty"` } -func (x *SetAclCounterAttributeRequest) Reset() { - *x = SetAclCounterAttributeRequest{} +func (x *GetAclTableGroupMemberAttributeRequest) Reset() { + *x = GetAclTableGroupMemberAttributeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[18] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetAclCounterAttributeRequest) String() string { +func (x *GetAclTableGroupMemberAttributeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetAclCounterAttributeRequest) ProtoMessage() {} +func (*GetAclTableGroupMemberAttributeRequest) ProtoMessage() {} -func (x *SetAclCounterAttributeRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[18] +func (x *GetAclTableGroupMemberAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6035,119 +6133,50 @@ func (x *SetAclCounterAttributeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetAclCounterAttributeRequest.ProtoReflect.Descriptor instead. -func (*SetAclCounterAttributeRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{18} +// Deprecated: Use GetAclTableGroupMemberAttributeRequest.ProtoReflect.Descriptor instead. +func (*GetAclTableGroupMemberAttributeRequest) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{38} } -func (x *SetAclCounterAttributeRequest) GetOid() uint64 { +func (x *GetAclTableGroupMemberAttributeRequest) GetOid() uint64 { if x != nil { return x.Oid } return 0 } -func (m *SetAclCounterAttributeRequest) GetAttr() isSetAclCounterAttributeRequest_Attr { - if m != nil { - return m.Attr +func (x *GetAclTableGroupMemberAttributeRequest) GetAttrType() []AclTableGroupMemberAttr { + if x != nil { + return x.AttrType } return nil } -func (x *SetAclCounterAttributeRequest) GetPackets() uint64 { - if x, ok := x.GetAttr().(*SetAclCounterAttributeRequest_Packets); ok { - return x.Packets - } - return 0 -} - -func (x *SetAclCounterAttributeRequest) GetBytes() uint64 { - if x, ok := x.GetAttr().(*SetAclCounterAttributeRequest_Bytes); ok { - return x.Bytes - } - return 0 -} - -type isSetAclCounterAttributeRequest_Attr interface { - isSetAclCounterAttributeRequest_Attr() -} - -type SetAclCounterAttributeRequest_Packets struct { - Packets uint64 `protobuf:"varint,2,opt,name=packets,proto3,oneof"` -} - -type SetAclCounterAttributeRequest_Bytes struct { - Bytes uint64 `protobuf:"varint,3,opt,name=bytes,proto3,oneof"` -} - -func (*SetAclCounterAttributeRequest_Packets) isSetAclCounterAttributeRequest_Attr() {} - -func (*SetAclCounterAttributeRequest_Bytes) isSetAclCounterAttributeRequest_Attr() {} - -type SetAclCounterAttributeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SetAclCounterAttributeResponse) Reset() { - *x = SetAclCounterAttributeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetAclCounterAttributeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetAclCounterAttributeResponse) ProtoMessage() {} - -func (x *SetAclCounterAttributeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 SetAclCounterAttributeResponse.ProtoReflect.Descriptor instead. -func (*SetAclCounterAttributeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{19} -} - -type GetAclCounterAttributeRequest struct { +type GetAclTableGroupMemberAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - AttrType []AclCounterAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclCounterAttr" json:"attr_type,omitempty"` + Attr *AclTableGroupMemberAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } -func (x *GetAclCounterAttributeRequest) Reset() { - *x = GetAclCounterAttributeRequest{} +func (x *GetAclTableGroupMemberAttributeResponse) Reset() { + *x = GetAclTableGroupMemberAttributeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[20] + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetAclCounterAttributeRequest) String() string { +func (x *GetAclTableGroupMemberAttributeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetAclCounterAttributeRequest) ProtoMessage() {} +func (*GetAclTableGroupMemberAttributeResponse) ProtoMessage() {} -func (x *GetAclCounterAttributeRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[20] +func (x *GetAclTableGroupMemberAttributeResponse) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6158,980 +6187,19 @@ func (x *GetAclCounterAttributeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetAclCounterAttributeRequest.ProtoReflect.Descriptor instead. -func (*GetAclCounterAttributeRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{20} -} - -func (x *GetAclCounterAttributeRequest) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 +// Deprecated: Use GetAclTableGroupMemberAttributeResponse.ProtoReflect.Descriptor instead. +func (*GetAclTableGroupMemberAttributeResponse) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{39} } -func (x *GetAclCounterAttributeRequest) GetAttrType() []AclCounterAttr { +func (x *GetAclTableGroupMemberAttributeResponse) GetAttr() *AclTableGroupMemberAttribute { if x != nil { - return x.AttrType + return x.Attr } return nil } -type GetAclCounterAttributeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Attr []*AclCounterAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` -} - -func (x *GetAclCounterAttributeResponse) Reset() { - *x = GetAclCounterAttributeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAclCounterAttributeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAclCounterAttributeResponse) ProtoMessage() {} - -func (x *GetAclCounterAttributeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 GetAclCounterAttributeResponse.ProtoReflect.Descriptor instead. -func (*GetAclCounterAttributeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{21} -} - -func (x *GetAclCounterAttributeResponse) GetAttr() []*AclCounterAttribute { - if x != nil { - return x.Attr - } - return nil -} - -type CreateAclRangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type AclRangeType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.AclRangeType" json:"type,omitempty"` - Limit *Uint32Range `protobuf:"bytes,3,opt,name=limit,proto3" json:"limit,omitempty"` -} - -func (x *CreateAclRangeRequest) Reset() { - *x = CreateAclRangeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateAclRangeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateAclRangeRequest) ProtoMessage() {} - -func (x *CreateAclRangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 CreateAclRangeRequest.ProtoReflect.Descriptor instead. -func (*CreateAclRangeRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{22} -} - -func (x *CreateAclRangeRequest) GetSwitch() uint64 { - if x != nil { - return x.Switch - } - return 0 -} - -func (x *CreateAclRangeRequest) GetType() AclRangeType { - if x != nil { - return x.Type - } - return AclRangeType_ACL_RANGE_TYPE_UNSPECIFIED -} - -func (x *CreateAclRangeRequest) GetLimit() *Uint32Range { - if x != nil { - return x.Limit - } - return nil -} - -type CreateAclRangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` -} - -func (x *CreateAclRangeResponse) Reset() { - *x = CreateAclRangeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateAclRangeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateAclRangeResponse) ProtoMessage() {} - -func (x *CreateAclRangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 CreateAclRangeResponse.ProtoReflect.Descriptor instead. -func (*CreateAclRangeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{23} -} - -func (x *CreateAclRangeResponse) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -type RemoveAclRangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` -} - -func (x *RemoveAclRangeRequest) Reset() { - *x = RemoveAclRangeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveAclRangeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveAclRangeRequest) ProtoMessage() {} - -func (x *RemoveAclRangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 RemoveAclRangeRequest.ProtoReflect.Descriptor instead. -func (*RemoveAclRangeRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{24} -} - -func (x *RemoveAclRangeRequest) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -type RemoveAclRangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *RemoveAclRangeResponse) Reset() { - *x = RemoveAclRangeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveAclRangeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveAclRangeResponse) ProtoMessage() {} - -func (x *RemoveAclRangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 RemoveAclRangeResponse.ProtoReflect.Descriptor instead. -func (*RemoveAclRangeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{25} -} - -type GetAclRangeAttributeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - AttrType []AclRangeAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclRangeAttr" json:"attr_type,omitempty"` -} - -func (x *GetAclRangeAttributeRequest) Reset() { - *x = GetAclRangeAttributeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAclRangeAttributeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAclRangeAttributeRequest) ProtoMessage() {} - -func (x *GetAclRangeAttributeRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 GetAclRangeAttributeRequest.ProtoReflect.Descriptor instead. -func (*GetAclRangeAttributeRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{26} -} - -func (x *GetAclRangeAttributeRequest) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -func (x *GetAclRangeAttributeRequest) GetAttrType() []AclRangeAttr { - if x != nil { - return x.AttrType - } - return nil -} - -type GetAclRangeAttributeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Attr []*AclRangeAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` -} - -func (x *GetAclRangeAttributeResponse) Reset() { - *x = GetAclRangeAttributeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAclRangeAttributeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAclRangeAttributeResponse) ProtoMessage() {} - -func (x *GetAclRangeAttributeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 GetAclRangeAttributeResponse.ProtoReflect.Descriptor instead. -func (*GetAclRangeAttributeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{27} -} - -func (x *GetAclRangeAttributeResponse) GetAttr() []*AclRangeAttribute { - if x != nil { - return x.Attr - } - return nil -} - -type CreateAclTableGroupRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - AclStage AclStage `protobuf:"varint,2,opt,name=acl_stage,json=aclStage,proto3,enum=lemming.dataplane.sai.AclStage" json:"acl_stage,omitempty"` - AclBindPointTypeList []AclBindPointType `protobuf:"varint,3,rep,packed,name=acl_bind_point_type_list,json=aclBindPointTypeList,proto3,enum=lemming.dataplane.sai.AclBindPointType" json:"acl_bind_point_type_list,omitempty"` - Type AclTableGroupType `protobuf:"varint,4,opt,name=type,proto3,enum=lemming.dataplane.sai.AclTableGroupType" json:"type,omitempty"` -} - -func (x *CreateAclTableGroupRequest) Reset() { - *x = CreateAclTableGroupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateAclTableGroupRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateAclTableGroupRequest) ProtoMessage() {} - -func (x *CreateAclTableGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 CreateAclTableGroupRequest.ProtoReflect.Descriptor instead. -func (*CreateAclTableGroupRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{28} -} - -func (x *CreateAclTableGroupRequest) GetSwitch() uint64 { - if x != nil { - return x.Switch - } - return 0 -} - -func (x *CreateAclTableGroupRequest) GetAclStage() AclStage { - if x != nil { - return x.AclStage - } - return AclStage_ACL_STAGE_UNSPECIFIED -} - -func (x *CreateAclTableGroupRequest) GetAclBindPointTypeList() []AclBindPointType { - if x != nil { - return x.AclBindPointTypeList - } - return nil -} - -func (x *CreateAclTableGroupRequest) GetType() AclTableGroupType { - if x != nil { - return x.Type - } - return AclTableGroupType_ACL_TABLE_GROUP_TYPE_UNSPECIFIED -} - -type CreateAclTableGroupResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` -} - -func (x *CreateAclTableGroupResponse) Reset() { - *x = CreateAclTableGroupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateAclTableGroupResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateAclTableGroupResponse) ProtoMessage() {} - -func (x *CreateAclTableGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 CreateAclTableGroupResponse.ProtoReflect.Descriptor instead. -func (*CreateAclTableGroupResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{29} -} - -func (x *CreateAclTableGroupResponse) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -type RemoveAclTableGroupRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` -} - -func (x *RemoveAclTableGroupRequest) Reset() { - *x = RemoveAclTableGroupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveAclTableGroupRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveAclTableGroupRequest) ProtoMessage() {} - -func (x *RemoveAclTableGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 RemoveAclTableGroupRequest.ProtoReflect.Descriptor instead. -func (*RemoveAclTableGroupRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{30} -} - -func (x *RemoveAclTableGroupRequest) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -type RemoveAclTableGroupResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *RemoveAclTableGroupResponse) Reset() { - *x = RemoveAclTableGroupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveAclTableGroupResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveAclTableGroupResponse) ProtoMessage() {} - -func (x *RemoveAclTableGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 RemoveAclTableGroupResponse.ProtoReflect.Descriptor instead. -func (*RemoveAclTableGroupResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{31} -} - -type GetAclTableGroupAttributeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - AttrType []AclTableGroupAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclTableGroupAttr" json:"attr_type,omitempty"` -} - -func (x *GetAclTableGroupAttributeRequest) Reset() { - *x = GetAclTableGroupAttributeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAclTableGroupAttributeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAclTableGroupAttributeRequest) ProtoMessage() {} - -func (x *GetAclTableGroupAttributeRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 GetAclTableGroupAttributeRequest.ProtoReflect.Descriptor instead. -func (*GetAclTableGroupAttributeRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{32} -} - -func (x *GetAclTableGroupAttributeRequest) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -func (x *GetAclTableGroupAttributeRequest) GetAttrType() []AclTableGroupAttr { - if x != nil { - return x.AttrType - } - return nil -} - -type GetAclTableGroupAttributeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Attr []*AclTableGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` -} - -func (x *GetAclTableGroupAttributeResponse) Reset() { - *x = GetAclTableGroupAttributeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAclTableGroupAttributeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAclTableGroupAttributeResponse) ProtoMessage() {} - -func (x *GetAclTableGroupAttributeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 GetAclTableGroupAttributeResponse.ProtoReflect.Descriptor instead. -func (*GetAclTableGroupAttributeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{33} -} - -func (x *GetAclTableGroupAttributeResponse) GetAttr() []*AclTableGroupAttribute { - if x != nil { - return x.Attr - } - return nil -} - -type CreateAclTableGroupMemberRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - AclTableGroupId uint64 `protobuf:"varint,2,opt,name=acl_table_group_id,json=aclTableGroupId,proto3" json:"acl_table_group_id,omitempty"` - AclTableId uint64 `protobuf:"varint,3,opt,name=acl_table_id,json=aclTableId,proto3" json:"acl_table_id,omitempty"` - Priority uint32 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"` -} - -func (x *CreateAclTableGroupMemberRequest) Reset() { - *x = CreateAclTableGroupMemberRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateAclTableGroupMemberRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateAclTableGroupMemberRequest) ProtoMessage() {} - -func (x *CreateAclTableGroupMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_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 CreateAclTableGroupMemberRequest.ProtoReflect.Descriptor instead. -func (*CreateAclTableGroupMemberRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{34} -} - -func (x *CreateAclTableGroupMemberRequest) GetSwitch() uint64 { - if x != nil { - return x.Switch - } - return 0 -} - -func (x *CreateAclTableGroupMemberRequest) GetAclTableGroupId() uint64 { - if x != nil { - return x.AclTableGroupId - } - return 0 -} - -func (x *CreateAclTableGroupMemberRequest) GetAclTableId() uint64 { - if x != nil { - return x.AclTableId - } - return 0 -} - -func (x *CreateAclTableGroupMemberRequest) GetPriority() uint32 { - if x != nil { - return x.Priority - } - return 0 -} - -type CreateAclTableGroupMemberResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` -} - -func (x *CreateAclTableGroupMemberResponse) Reset() { - *x = CreateAclTableGroupMemberResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateAclTableGroupMemberResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateAclTableGroupMemberResponse) ProtoMessage() {} - -func (x *CreateAclTableGroupMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CreateAclTableGroupMemberResponse.ProtoReflect.Descriptor instead. -func (*CreateAclTableGroupMemberResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{35} -} - -func (x *CreateAclTableGroupMemberResponse) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -type RemoveAclTableGroupMemberRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` -} - -func (x *RemoveAclTableGroupMemberRequest) Reset() { - *x = RemoveAclTableGroupMemberRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveAclTableGroupMemberRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveAclTableGroupMemberRequest) ProtoMessage() {} - -func (x *RemoveAclTableGroupMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RemoveAclTableGroupMemberRequest.ProtoReflect.Descriptor instead. -func (*RemoveAclTableGroupMemberRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{36} -} - -func (x *RemoveAclTableGroupMemberRequest) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -type RemoveAclTableGroupMemberResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *RemoveAclTableGroupMemberResponse) Reset() { - *x = RemoveAclTableGroupMemberResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveAclTableGroupMemberResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveAclTableGroupMemberResponse) ProtoMessage() {} - -func (x *RemoveAclTableGroupMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RemoveAclTableGroupMemberResponse.ProtoReflect.Descriptor instead. -func (*RemoveAclTableGroupMemberResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{37} -} - -type GetAclTableGroupMemberAttributeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - AttrType []AclTableGroupMemberAttr `protobuf:"varint,2,rep,packed,name=attr_type,json=attrType,proto3,enum=lemming.dataplane.sai.AclTableGroupMemberAttr" json:"attr_type,omitempty"` -} - -func (x *GetAclTableGroupMemberAttributeRequest) Reset() { - *x = GetAclTableGroupMemberAttributeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAclTableGroupMemberAttributeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAclTableGroupMemberAttributeRequest) ProtoMessage() {} - -func (x *GetAclTableGroupMemberAttributeRequest) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetAclTableGroupMemberAttributeRequest.ProtoReflect.Descriptor instead. -func (*GetAclTableGroupMemberAttributeRequest) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{38} -} - -func (x *GetAclTableGroupMemberAttributeRequest) GetOid() uint64 { - if x != nil { - return x.Oid - } - return 0 -} - -func (x *GetAclTableGroupMemberAttributeRequest) GetAttrType() []AclTableGroupMemberAttr { - if x != nil { - return x.AttrType - } - return nil -} - -type GetAclTableGroupMemberAttributeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Attr []*AclTableGroupMemberAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` -} - -func (x *GetAclTableGroupMemberAttributeResponse) Reset() { - *x = GetAclTableGroupMemberAttributeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAclTableGroupMemberAttributeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAclTableGroupMemberAttributeResponse) ProtoMessage() {} - -func (x *GetAclTableGroupMemberAttributeResponse) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_acl_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetAclTableGroupMemberAttributeResponse.ProtoReflect.Descriptor instead. -func (*GetAclTableGroupMemberAttributeResponse) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_acl_proto_rawDescGZIP(), []int{39} -} - -func (x *GetAclTableGroupMemberAttributeResponse) GetAttr() []*AclTableGroupMemberAttribute { - if x != nil { - return x.Attr - } - return nil -} - -var File_dataplane_standalone_proto_acl_proto protoreflect.FileDescriptor +var File_dataplane_standalone_proto_acl_proto protoreflect.FileDescriptor var file_dataplane_standalone_proto_acl_proto_rawDesc = []byte{ 0x0a, 0x24, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, @@ -7140,2951 +6208,3826 @@ var file_dataplane_standalone_proto_acl_proto_rawDesc = []byte{ 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf4, 0x24, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbc, 0x3e, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, + 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x08, 0x61, 0x63, - 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x18, 0x61, 0x63, 0x6c, 0x5f, 0x62, 0x69, - 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x14, 0x61, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x55, 0x0a, 0x14, 0x61, - 0x63, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x11, 0x61, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, - 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x65, 0x0a, 0x18, 0x61, 0x63, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, + 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x52, 0x14, 0x61, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x14, 0x61, 0x63, 0x6c, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x52, 0x11, 0x61, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x02, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, + 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x03, 0x52, 0x11, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x04, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, + 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x08, 0x48, 0x05, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, + 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, - 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, - 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, - 0x64, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, - 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x12, 0x2f, 0x0a, 0x14, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, - 0x72, 0x64, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x12, 0x24, 0x0a, 0x0e, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, - 0x76, 0x36, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, + 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x06, 0x52, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, + 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0a, 0x48, 0x07, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, + 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x08, 0x52, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x88, + 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x09, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0d, 0x48, 0x0a, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, + 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, + 0x64, 0x30, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0b, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, - 0x72, 0x64, 0x33, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, - 0x6f, 0x72, 0x64, 0x32, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, - 0x57, 0x6f, 0x72, 0x64, 0x31, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, - 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, - 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x72, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, - 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, - 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x22, 0x0a, 0x0d, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, - 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, - 0x49, 0x70, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x73, 0x74, 0x49, 0x70, 0x12, 0x2b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, - 0x70, 0x12, 0x2b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x24, - 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, - 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, - 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0d, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, - 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x13, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x66, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0c, 0x52, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x88, + 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0d, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0e, 0x52, 0x0b, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x0f, 0x52, 0x0b, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x10, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x11, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, + 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x12, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, + 0x48, 0x13, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, + 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x17, 0x48, 0x14, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, + 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x15, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, + 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x16, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x17, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1b, 0x48, 0x18, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, - 0x70, 0x72, 0x69, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x2f, 0x0a, 0x14, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x63, 0x66, 0x69, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x2d, 0x0a, + 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1c, 0x48, 0x19, + 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1d, 0x48, 0x1a, 0x52, 0x11, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, 0x1b, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, + 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x70, 0x72, 0x69, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x2f, 0x0a, - 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x29, - 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x11, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x24, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x44, 0x73, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x25, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, - 0x72, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x17, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x35, 0x0a, 0x17, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2b, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x63, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x45, 0x63, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x74, 0x74, 0x6c, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x54, 0x74, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x73, - 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, - 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x29, - 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x41, 0x63, 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x33, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, - 0x46, 0x72, 0x61, 0x67, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x34, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, - 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x74, 0x63, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x54, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x37, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, - 0x3a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, - 0x12, 0x2b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x48, 0x61, 0x73, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x12, 0x28, 0x0a, - 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, - 0x69, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, - 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1f, + 0x48, 0x1c, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, + 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, + 0x21, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x20, 0x48, 0x1d, 0x52, 0x11, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x21, 0x48, 0x1e, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, + 0x48, 0x1f, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, + 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x23, 0x48, 0x20, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, + 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x17, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x24, 0x48, 0x21, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, + 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x17, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x25, 0x48, 0x22, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, + 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x48, 0x23, 0x52, + 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x27, 0x48, 0x24, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x28, 0x48, 0x25, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x29, + 0x48, 0x26, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x17, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x2a, 0x48, 0x27, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x2c, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, 0x28, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x2c, 0x48, 0x29, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x63, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x2e, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2d, 0x48, 0x2a, 0x52, 0x08, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x2e, 0x48, 0x2b, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2f, 0x48, 0x2c, + 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x30, + 0x48, 0x2d, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, + 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x31, 0x48, 0x2e, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, + 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, + 0x33, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x32, 0x48, 0x2f, 0x52, 0x0e, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, 0x61, 0x67, 0x88, 0x01, 0x01, + 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x33, 0x48, 0x30, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, + 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x34, 0x48, 0x31, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, + 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x35, 0x48, 0x32, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x36, 0x48, 0x33, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x38, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x37, 0x48, 0x34, 0x52, 0x0f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x38, 0x48, 0x35, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x3a, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x39, 0x48, 0x36, 0x52, 0x0f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x76, 0x6e, 0x69, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3a, 0x48, + 0x37, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, + 0x69, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, + 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3b, 0x48, 0x38, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x61, 0x73, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, + 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3c, 0x48, 0x39, 0x52, 0x0e, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x3e, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3d, 0x48, 0x3a, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3f, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3e, 0x48, 0x3b, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x40, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, 0x3c, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x40, 0x48, 0x3d, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, + 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x42, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x41, 0x48, 0x3e, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x42, 0x48, 0x3f, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, + 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x44, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x43, 0x48, 0x40, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x31, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, + 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x45, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x44, + 0x48, 0x41, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x31, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x46, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x45, + 0x48, 0x42, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, + 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x47, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x46, + 0x48, 0x43, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x32, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, + 0x78, 0x70, 0x18, 0x48, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x47, 0x48, 0x44, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x30, 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x41, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x42, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, - 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x44, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x31, 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x45, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x31, 0x42, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x46, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x47, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x54, 0x74, - 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x48, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x32, 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x49, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x32, 0x42, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x54, 0x74, - 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x33, 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4d, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, - 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x32, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, + 0x18, 0x49, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x48, 0x48, 0x45, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x42, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x49, 0x48, 0x46, 0x52, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, + 0x18, 0x4b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4a, 0x48, 0x47, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x54, + 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4c, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4b, 0x48, 0x48, 0x52, 0x12, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x45, 0x78, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4d, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4c, 0x48, 0x49, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x4e, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4d, 0x48, 0x4a, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4f, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4e, 0x48, 0x4b, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x50, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x34, 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x51, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x12, 0x34, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, - 0x64, 0x62, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x38, 0x0a, - 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x54, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, - 0x55, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x18, 0x56, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, - 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x18, 0x57, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, - 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x66, 0x69, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4f, 0x48, 0x4c, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x51, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x50, 0x48, 0x4d, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, + 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x51, 0x48, 0x4e, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, + 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x43, + 0x0a, 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x52, 0x48, 0x4f, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x18, 0x54, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x53, 0x48, + 0x50, 0x52, 0x18, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x55, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x54, 0x48, 0x51, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x18, 0x56, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x55, 0x48, 0x52, + 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x57, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x56, 0x48, 0x53, 0x52, 0x10, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x44, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, + 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x58, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x57, 0x48, 0x54, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, - 0x48, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x1f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, - 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x59, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, - 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x3d, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x5b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x74, 0x68, 0x4f, 0x70, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, - 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, - 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, - 0x6e, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, - 0x6e, 0x12, 0x3e, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x1f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x59, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x55, 0x52, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, + 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x59, 0x48, 0x56, 0x52, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5a, + 0x48, 0x57, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x74, 0x68, 0x4f, 0x70, 0x63, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, + 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5c, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, 0x48, 0x58, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x41, 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x49, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, + 0x18, 0x5d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, 0x48, 0x59, 0x52, 0x18, + 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1c, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x5e, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5d, 0x48, 0x5a, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x5f, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x52, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x60, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x5b, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x61, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x60, 0x48, + 0x5c, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x36, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x62, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x61, 0x48, 0x5d, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, + 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x77, 0x6f, 0x72, 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, + 0x72, 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x77, 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, + 0x61, 0x63, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x70, 0x72, 0x69, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, + 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x1a, 0x0a, + 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, + 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, + 0x5f, 0x66, 0x72, 0x61, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, + 0x61, 0x67, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, + 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, + 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x32, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, + 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x33, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x42, 0x22, 0x0a, + 0x20, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, + 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, + 0x69, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, + 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x42, + 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, + 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, - 0x78, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, - 0x78, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x18, 0x60, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, - 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x61, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, - 0x12, 0x2b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x62, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, - 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, - 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, - 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, - 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, - 0xc8, 0x63, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, - 0x49, 0x70, 0x76, 0x36, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, - 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, - 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, + 0x78, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, + 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xae, 0x8d, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x08, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, + 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, + 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x04, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, + 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, - 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, - 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x12, 0x49, 0x0a, 0x0e, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, + 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, + 0x72, 0x64, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, + 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x30, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, + 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, + 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x12, 0x54, 0x0a, - 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, - 0x72, 0x64, 0x32, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, + 0x48, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, + 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, - 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, - 0x30, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x12, - 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, - 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, - 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, 0x47, 0x0a, 0x0d, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x11, 0x20, 0x01, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x11, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, + 0x33, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, - 0x63, 0x4d, 0x61, 0x63, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x12, 0x45, 0x0a, - 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x13, 0x20, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, + 0x64, 0x32, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, - 0x72, 0x63, 0x49, 0x70, 0x12, 0x45, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x50, 0x0a, 0x12, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, - 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, + 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, + 0x72, 0x64, 0x31, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, + 0x0c, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, + 0x6f, 0x72, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, + 0x48, 0x0d, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, + 0x63, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0f, 0x48, 0x0e, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, + 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x0b, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, + 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, + 0x10, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, + 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x50, 0x0a, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x12, 0x48, 0x11, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, - 0x49, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, - 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x49, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x49, 0x0a, 0x0e, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x52, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, - 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, - 0x72, 0x69, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, - 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, + 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x13, 0x52, 0x0f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, - 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x52, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, - 0x72, 0x69, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, - 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x0f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x16, 0x48, 0x15, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, + 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, - 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x4e, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x44, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x59, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x59, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x25, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, - 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x4d, 0x0a, 0x10, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x16, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x16, 0x52, 0x0d, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, + 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, + 0x17, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x19, 0x48, 0x18, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x19, 0x52, 0x0c, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, + 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x1b, 0x48, 0x1a, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, + 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x1c, 0x48, 0x1b, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, + 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, + 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1d, 0x48, 0x1c, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, + 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5d, + 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, 0x1d, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, + 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, - 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x5b, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x42, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x2b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x73, 0x63, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x63, 0x6e, - 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x45, 0x63, 0x6e, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, - 0x74, 0x6c, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x54, 0x74, 0x6c, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, 0x12, 0x49, 0x0a, 0x0e, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x46, - 0x6c, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, - 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, - 0x73, 0x12, 0x4e, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, - 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1f, 0x48, 0x1e, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5f, + 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, - 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x20, 0x48, 0x1f, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, + 0x59, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x21, 0x48, 0x20, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, + 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, + 0x48, 0x21, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x23, 0x48, 0x22, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, + 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x17, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, 0x61, - 0x67, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, - 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x08, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x24, 0x48, 0x23, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x12, 0x4b, 0x0a, 0x0f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, - 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x25, 0x48, 0x24, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x48, 0x25, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x27, 0x48, 0x26, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x28, 0x48, 0x27, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x29, 0x48, + 0x28, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2a, 0x48, 0x29, 0x52, 0x09, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, 0x2a, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x45, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x2c, 0x48, 0x2b, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x74, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, + 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x2d, 0x48, 0x2c, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x2e, 0x48, 0x2d, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2f, 0x48, 0x2e, 0x52, 0x0d, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x59, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x30, 0x48, 0x2f, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, + 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, + 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x31, + 0x48, 0x30, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, + 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x32, 0x48, + 0x31, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x74, 0x63, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x33, 0x48, 0x32, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, + 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x34, 0x48, 0x33, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x36, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x35, 0x48, + 0x34, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x12, 0x50, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, - 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x3b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x61, 0x73, - 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, 0x3c, 0x20, 0x01, 0x28, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x36, 0x48, 0x35, 0x52, 0x0f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x37, 0x48, 0x36, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x38, 0x48, 0x37, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x56, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3e, 0x20, 0x01, 0x28, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x39, 0x48, 0x38, 0x52, 0x0e, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3a, 0x48, 0x39, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x61, 0x73, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x58, + 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, + 0x63, 0x69, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x3b, 0x48, 0x3a, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x53, 0x63, 0x69, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x3c, 0x48, 0x3b, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3d, 0x48, 0x3c, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, - 0x65, 0x78, 0x70, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3e, 0x48, 0x3d, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x45, - 0x78, 0x70, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x40, 0x20, 0x01, 0x28, + 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x40, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, + 0x3e, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x40, 0x48, 0x3f, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x41, 0x48, 0x40, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x18, - 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, 0x6c, 0x12, 0x56, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x31, 0x45, 0x78, 0x70, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x18, - 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x42, 0x6f, 0x73, 0x12, 0x5a, - 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, - 0x74, 0x74, 0x6c, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x42, 0x48, 0x41, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x45, + 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x44, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x43, 0x48, + 0x42, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x31, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x54, - 0x74, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x44, 0x48, 0x43, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x45, 0x48, 0x44, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x54, 0x74, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x45, 0x78, 0x70, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, - 0x62, 0x6f, 0x73, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x46, 0x48, 0x45, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x45, + 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x48, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x47, 0x48, + 0x46, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x32, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x42, - 0x6f, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x49, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x56, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x33, 0x54, 0x74, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, 0x18, - 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x45, 0x78, 0x70, 0x12, 0x56, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4e, 0x20, 0x01, 0x28, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x48, 0x48, 0x47, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x49, 0x48, 0x48, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x54, 0x74, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, - 0x65, 0x78, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4a, 0x48, 0x49, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x45, + 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4b, 0x48, + 0x4a, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x4c, 0x48, 0x4b, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4d, 0x48, 0x4c, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4e, 0x48, 0x4d, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x45, - 0x78, 0x70, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x50, 0x20, 0x01, 0x28, + 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x50, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4f, 0x48, + 0x4e, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x50, 0x48, 0x4f, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, + 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x68, + 0x0a, 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x12, 0x59, 0x0a, 0x17, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x5d, 0x0a, 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x12, 0x63, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x18, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x73, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x51, 0x48, 0x50, 0x52, 0x15, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x52, 0x48, 0x51, 0x52, 0x18, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x53, 0x48, 0x52, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, - 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x52, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, - 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x56, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x5e, 0x0a, 0x1a, 0x66, 0x69, 0x65, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x54, 0x48, 0x53, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x13, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x55, 0x48, 0x54, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x4e, 0x70, 0x75, 0x4d, - 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x68, 0x0a, 0x1f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x58, 0x20, 0x01, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x56, 0x48, 0x55, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x46, 0x64, 0x62, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x73, 0x0a, 0x1f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x57, 0x48, 0x56, 0x52, 0x1a, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, + 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1c, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x57, 0x52, 0x17, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, + 0x73, 0x74, 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, - 0x48, 0x69, 0x74, 0x12, 0x62, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x68, 0x69, 0x74, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x17, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x74, 0x68, - 0x4f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, - 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x12, 0x63, 0x0a, 0x1c, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x5c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, - 0x12, 0x63, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, - 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x18, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x61, 0x78, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, - 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x5e, 0x20, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x59, 0x48, 0x58, 0x52, + 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x74, 0x68, 0x4f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x65, 0x74, 0x68, + 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5a, 0x48, 0x59, 0x52, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x41, 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, + 0x69, 0x6e, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x5b, 0x48, 0x5a, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, + 0x61, 0x78, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x5c, 0x48, 0x5b, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5d, 0x48, 0x5c, 0x52, 0x11, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, - 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x16, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x48, 0x5d, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, - 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x50, - 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, - 0x52, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x49, 0x70, 0x12, 0x56, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x64, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x14, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, - 0x6f, 0x6f, 0x64, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x12, 0x4b, 0x0a, 0x0e, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x67, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x15, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x5e, 0x52, 0x0b, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, - 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x69, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x69, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x52, 0x0a, 0x12, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, - 0x72, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, - 0x56, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x48, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x54, - 0x63, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x6d, 0x20, 0x01, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x60, 0x48, 0x5f, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x5c, - 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x5e, 0x0a, 0x19, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x61, 0x48, 0x60, + 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x5c, 0x0a, 0x18, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4f, - 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x5e, 0x0a, 0x19, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4f, 0x75, - 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x51, 0x0a, 0x12, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x53, 0x0a, - 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x70, 0x72, 0x69, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x50, - 0x72, 0x69, 0x12, 0x51, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, - 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x62, 0x48, 0x61, 0x52, 0x10, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x63, 0x48, 0x62, 0x52, 0x12, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x65, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x48, + 0x63, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, - 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x51, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x75, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x12, 0x4f, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x76, 0x20, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x65, 0x48, 0x64, 0x52, 0x0b, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x67, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x66, + 0x48, 0x65, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x4f, 0x0a, 0x11, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x77, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x67, 0x48, + 0x66, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x49, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x68, 0x48, 0x67, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, + 0x72, 0x6f, 0x72, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x12, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x69, 0x48, 0x68, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x74, 0x6c, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x6a, 0x48, 0x69, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x53, + 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x63, 0x18, + 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x6b, 0x48, 0x6a, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x54, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x53, 0x0a, 0x13, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, - 0x53, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, - 0x49, 0x70, 0x76, 0x36, 0x12, 0x4c, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x65, 0x74, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6c, + 0x48, 0x6b, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x18, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, - 0x63, 0x70, 0x12, 0x4a, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, - 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, 0x63, 0x6e, 0x12, 0x58, - 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, - 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, - 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x58, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x71, 0x0a, 0x22, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6d, 0x48, 0x6c, 0x52, 0x14, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, + 0x69, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x6e, 0x48, 0x6d, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, + 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, + 0x67, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x70, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6f, 0x48, 0x6e, 0x52, + 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, + 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x70, 0x48, 0x6f, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, + 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, + 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x71, 0x48, 0x70, 0x52, 0x0f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x21, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5d, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x1d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5b, - 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x17, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, - 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x72, 0x48, 0x71, 0x52, 0x10, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x5c, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x6f, - 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x6f, 0x70, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x6c, 0x44, 0x74, 0x65, 0x6c, 0x46, - 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x12, 0x5c, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, - 0x65, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x44, 0x72, - 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x72, - 0x0a, 0x23, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x74, 0x61, - 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x54, 0x61, - 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x6b, 0x0a, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, - 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x1b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, - 0x6f, 0x77, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, - 0x69, 0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x73, 0x48, 0x72, 0x52, 0x0f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x5c, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x74, 0x48, 0x73, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, + 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1a, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x5f, 0x6e, 0x61, 0x74, 0x18, 0x8a, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x6f, 0x4e, 0x61, 0x74, 0x12, 0x51, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x12, 0x51, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x8c, 0x01, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x75, 0x48, 0x74, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x16, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x5c, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, 0x6f, - 0x70, 0x73, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x44, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x65, 0x0a, 0x1c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, - 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x58, 0x0a, 0x15, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x76, + 0x48, 0x75, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, + 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x78, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x77, 0x48, 0x76, + 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, + 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x79, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x78, 0x48, 0x77, + 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x49, 0x70, + 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x79, 0x48, 0x78, 0x52, 0x0d, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x55, + 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6e, + 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x7a, 0x48, 0x79, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, + 0x63, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x7b, 0x48, 0x7a, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x34, + 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7c, 0x48, 0x7b, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x7c, 0x0a, 0x22, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7d, 0x48, 0x7c, 0x52, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, + 0x21, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x7e, 0x48, 0x7d, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x18, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7f, 0x48, 0x7e, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x12, 0x73, 0x0a, 0x1d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x53, 0x0a, 0x12, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, - 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x80, 0x01, 0x48, 0x7f, 0x52, 0x19, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x81, 0x01, 0x48, 0x80, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x68, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x18, 0x83, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x82, + 0x01, 0x48, 0x81, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, + 0x6f, 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x17, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x83, 0x01, 0x48, 0x82, 0x01, 0x52, 0x13, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x6c, 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, + 0x77, 0x4f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x84, 0x01, 0x48, 0x83, 0x01, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x76, 0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, + 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x85, 0x01, 0x48, 0x84, 0x01, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x7f, 0x0a, 0x23, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, - 0x59, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x61, - 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x86, 0x01, 0x48, 0x85, 0x01, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x74, 0x65, 0x6c, 0x54, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x78, 0x0a, 0x1f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x88, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x87, + 0x01, 0x48, 0x86, 0x01, 0x52, 0x1b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x74, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x88, 0x01, 0x48, 0x87, 0x01, 0x52, 0x1a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, + 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0d, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x5f, 0x6e, 0x61, 0x74, 0x18, 0x8a, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, + 0x01, 0x48, 0x88, 0x01, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x4e, 0x61, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8a, 0x01, 0x48, 0x89, 0x01, + 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x4c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8b, 0x01, 0x48, 0x8a, 0x01, + 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x8d, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0x8c, 0x01, 0x48, 0x8b, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, + 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8d, 0x01, 0x48, 0x8c, 0x01, 0x52, + 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x44, 0x72, 0x6f, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x72, 0x0a, 0x1c, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x61, + 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8e, 0x01, 0x48, 0x8d, 0x01, 0x52, + 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x54, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x15, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, 0x63, 0x6d, - 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x76, 0x72, 0x66, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8f, 0x01, 0x48, 0x8e, 0x01, 0x52, 0x12, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x90, 0x01, 0x48, 0x8f, 0x01, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x91, 0x01, 0x48, 0x90, + 0x01, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, + 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, + 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x92, 0x01, 0x48, 0x91, 0x01, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x74, 0x4c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x68, + 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6d, + 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x56, 0x72, 0x66, 0x12, 0x64, 0x0a, 0x1b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdc, 0x65, 0x0a, 0x1b, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x93, 0x01, 0x48, 0x92, 0x01, + 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, 0x63, 0x6d, 0x70, 0x48, + 0x61, 0x73, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x76, 0x72, 0x66, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x94, 0x01, 0x48, 0x93, + 0x01, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x56, 0x72, 0x66, 0x88, + 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x95, 0x01, 0x48, 0x94, 0x01, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, + 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, + 0x63, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x6d, 0x61, 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x70, 0x72, 0x69, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, + 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x74, 0x74, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, + 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, + 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, + 0x66, 0x72, 0x61, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, + 0x67, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, + 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, + 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, + 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1d, 0x0a, + 0x1b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x42, 0x22, 0x0a, 0x20, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, + 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, + 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, + 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, + 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x42, + 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, + 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, + 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x74, 0x63, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x70, 0x72, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, + 0x61, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, + 0x63, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x65, 0x63, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x25, 0x0a, 0x23, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, + 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x64, + 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x26, 0x0a, 0x24, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, + 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, + 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, + 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x5f, 0x6e, 0x61, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, + 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x77, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, + 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, + 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, + 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x76, 0x72, 0x66, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, + 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf9, 0x8c, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1c, 0x0a, - 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4b, - 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x56, 0x0a, 0x14, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, - 0x72, 0x64, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, - 0x72, 0x64, 0x33, 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, - 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x12, 0x56, 0x0a, 0x14, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, - 0x72, 0x64, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, - 0x72, 0x64, 0x31, 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, - 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x12, 0x4b, 0x0a, 0x0e, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, - 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, - 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, - 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, - 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x25, 0x0a, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x01, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, + 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, + 0x03, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, + 0x6f, 0x72, 0x64, 0x33, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, + 0x48, 0x04, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, + 0x57, 0x6f, 0x72, 0x64, 0x32, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, - 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x05, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, + 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, + 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x08, 0x48, 0x06, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, + 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, + 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, + 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, - 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, 0x49, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x88, 0x01, + 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, - 0x4d, 0x61, 0x63, 0x12, 0x49, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x12, 0x47, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x09, 0x52, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x88, + 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x11, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, + 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0b, 0x52, 0x11, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, + 0x30, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0c, 0x52, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, + 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, + 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, + 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0e, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0f, 0x52, 0x0b, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x47, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, - 0x12, 0x52, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, - 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, - 0x72, 0x63, 0x49, 0x70, 0x12, 0x52, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, - 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4b, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, - 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, - 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, + 0x10, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x13, 0x48, 0x11, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x12, 0x52, 0x0f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x4b, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x4b, 0x0a, 0x0e, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1a, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x13, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x54, 0x0a, 0x13, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, + 0x14, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x15, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, + 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x16, 0x52, 0x0b, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, + 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, - 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, - 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, - 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, - 0x54, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x19, 0x48, 0x17, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, - 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x56, 0x0a, - 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, - 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, - 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, - 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x18, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x13, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x1b, 0x48, 0x19, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, + 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, + 0x69, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x1c, 0x48, 0x1a, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, + 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, + 0x66, 0x69, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x1d, 0x48, 0x1b, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, + 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x13, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x1e, 0x48, 0x1c, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, + 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, + 0x72, 0x69, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x1f, 0x48, 0x1d, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, + 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x63, 0x66, 0x69, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x20, 0x48, 0x1e, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, + 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x21, 0x48, 0x1f, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x53, 0x72, 0x63, + 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, 0x48, 0x20, 0x52, + 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x64, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x23, 0x48, 0x21, + 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x53, 0x72, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x24, 0x48, 0x22, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, + 0x65, 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x58, + 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x25, 0x48, 0x23, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x26, 0x48, 0x24, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, + 0x72, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x27, 0x48, 0x25, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x28, 0x48, 0x26, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, + 0x6e, 0x65, 0x72, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x66, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x29, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x29, 0x48, 0x27, 0x52, 0x15, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2a, 0x48, 0x28, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, 0x29, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x63, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x74, + 0x6c, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x4f, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x5a, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x26, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x51, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x12, 0x5c, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x28, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x2c, 0x48, 0x2a, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x74, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x5d, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x29, 0x20, 0x01, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2d, 0x48, + 0x2b, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x54, + 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x2e, 0x48, 0x2c, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, + 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2f, 0x48, 0x2d, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x54, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x30, 0x48, 0x2e, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x2a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x73, 0x63, 0x70, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x65, 0x63, 0x6e, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x31, 0x48, 0x2f, 0x52, + 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x32, 0x48, 0x30, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, + 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x33, 0x48, 0x31, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x88, 0x01, 0x01, + 0x12, 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x63, 0x6e, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x74, 0x6c, 0x12, 0x42, - 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x34, 0x48, 0x32, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, - 0x6f, 0x73, 0x12, 0x4b, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x35, 0x48, 0x33, 0x52, 0x0d, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x36, 0x48, 0x34, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x37, 0x48, 0x35, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x38, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x38, 0x48, 0x36, + 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x39, 0x48, 0x37, 0x52, 0x0e, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5b, + 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x74, 0x61, 0x67, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, - 0x4d, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x50, - 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, - 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x3a, 0x48, 0x38, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x61, + 0x73, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x10, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, + 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3b, + 0x48, 0x39, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, + 0x63, 0x69, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x3c, 0x48, 0x3a, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x30, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, - 0x61, 0x67, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3d, 0x48, 0x3b, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3e, 0x48, 0x3c, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x45, 0x78, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x08, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, 0x3d, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x42, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x40, 0x48, 0x3e, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x41, 0x48, 0x3f, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x12, 0x4d, - 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, - 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x42, 0x48, 0x40, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x45, 0x78, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x43, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x43, 0x48, 0x41, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x42, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x11, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x51, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x4f, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x12, 0x52, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x3a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x48, 0x61, 0x73, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x12, 0x4f, 0x0a, 0x10, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, 0x3b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x12, 0x5c, 0x0a, 0x17, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x30, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, - 0x74, 0x6c, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, - 0x54, 0x74, 0x6c, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x3e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x45, 0x78, 0x70, 0x12, 0x58, 0x0a, - 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x12, 0x5c, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, - 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x41, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, 0x6c, 0x12, - 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x44, 0x48, 0x42, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x32, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x45, 0x48, 0x43, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x45, 0x78, 0x70, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, - 0x6f, 0x73, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, - 0x42, 0x6f, 0x73, 0x12, 0x5c, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x44, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x54, 0x74, 0x6c, 0x12, 0x58, 0x0a, 0x15, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, - 0x5f, 0x65, 0x78, 0x70, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x32, 0x45, 0x78, 0x70, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, - 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x47, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x42, 0x6f, 0x73, 0x12, - 0x5c, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x58, 0x0a, - 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x33, 0x54, 0x74, 0x6c, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, - 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x46, 0x48, 0x44, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x45, 0x78, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x47, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x47, 0x48, 0x45, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x42, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x45, 0x78, - 0x70, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x12, 0x5c, 0x0a, 0x17, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x34, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, - 0x74, 0x6c, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, - 0x54, 0x74, 0x6c, 0x12, 0x58, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x45, 0x78, 0x70, 0x12, 0x58, 0x0a, - 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x12, 0x5b, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x65, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x48, 0x48, 0x46, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x33, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x18, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x56, 0x0a, 0x14, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x12, 0x56, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x54, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x56, 0x6c, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x13, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x12, 0x60, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, - 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, - 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x49, 0x48, 0x47, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4a, 0x48, 0x48, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x45, 0x78, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4b, 0x48, 0x49, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x42, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, - 0x74, 0x48, 0x69, 0x74, 0x12, 0x6a, 0x0a, 0x1f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, - 0x12, 0x64, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, - 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x4c, 0x48, 0x4a, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4d, 0x48, 0x4b, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4e, 0x48, 0x4c, 0x52, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x45, 0x78, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4f, 0x48, 0x4d, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x42, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, + 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x17, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, - 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x4f, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x74, - 0x68, 0x4f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x55, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5a, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x50, 0x48, 0x4e, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x44, 0x73, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x19, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x51, 0x48, 0x4f, 0x52, 0x15, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x52, 0x48, 0x50, 0x52, 0x18, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x53, 0x48, 0x51, + 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x41, 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x12, 0x65, - 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x5b, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x54, 0x48, + 0x52, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x12, 0x65, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x12, 0x56, 0x0a, 0x14, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x55, 0x48, + 0x53, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x68, 0x69, 0x74, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x5a, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x5e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x49, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0b, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x52, 0x0a, 0x12, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x4f, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x12, 0x54, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x56, 0x48, 0x54, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, + 0x62, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x73, 0x0a, 0x1f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x68, 0x69, 0x74, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x57, 0x48, 0x55, 0x52, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, + 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x56, 0x52, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, + 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, + 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x59, 0x48, 0x57, 0x52, 0x0e, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x42, 0x74, 0x68, 0x4f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x5e, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, + 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5a, 0x48, 0x58, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x41, 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x6e, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x18, + 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, + 0x48, 0x59, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x6e, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x18, + 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, + 0x48, 0x5a, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5d, 0x48, 0x5b, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x63, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x48, 0x5c, 0x52, 0x13, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, + 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x5d, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x60, + 0x48, 0x5e, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x61, 0x48, 0x5f, 0x52, 0x0e, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x5d, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, 0x12, 0x58, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x63, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x58, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0c, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x12, 0x4d, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x62, 0x48, 0x60, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, - 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x67, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x58, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, - 0x72, 0x72, 0x6f, 0x72, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x54, 0x0a, 0x12, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, - 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x63, 0x48, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x48, 0x62, 0x52, 0x12, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x65, 0x48, 0x63, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x66, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x66, 0x48, 0x64, 0x52, + 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x63, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x67, 0x48, 0x65, 0x52, 0x13, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x68, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x68, + 0x48, 0x66, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, + 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x12, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, + 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x69, 0x48, 0x67, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, + 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, - 0x12, 0x58, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x4a, 0x0a, 0x0d, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x6b, 0x20, 0x01, 0x28, + 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x6a, 0x48, 0x68, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x6b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6b, 0x48, 0x69, + 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x54, 0x63, 0x88, 0x01, 0x01, + 0x12, 0x66, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x54, 0x63, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6c, 0x48, 0x6a, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x5e, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, - 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, - 0x72, 0x69, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6e, 0x65, 0x72, - 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x5e, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x65, - 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x70, 0x72, 0x69, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4f, 0x75, 0x74, - 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x53, 0x0a, 0x12, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x55, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6d, 0x48, 0x6b, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x69, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x6e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6e, + 0x48, 0x6c, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6e, + 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x18, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6f, 0x48, 0x6d, 0x52, 0x14, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, + 0x72, 0x69, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x70, 0x48, 0x6e, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x74, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x5c, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x71, 0x48, 0x6f, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, - 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x53, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x73, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x53, 0x0a, 0x12, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, - 0x18, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x12, - 0x51, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, - 0x63, 0x5f, 0x69, 0x70, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x72, 0x48, 0x70, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5c, + 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, - 0x49, 0x70, 0x12, 0x51, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, - 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x55, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x77, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x55, 0x0a, 0x13, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x49, - 0x70, 0x76, 0x36, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x74, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, - 0x73, 0x63, 0x70, 0x12, 0x4c, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x74, 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, 0x63, - 0x6e, 0x12, 0x5a, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, - 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7b, 0x20, 0x01, 0x28, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x73, 0x48, 0x71, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x12, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, + 0x61, 0x63, 0x18, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x74, 0x48, 0x72, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x74, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, + 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x75, 0x48, 0x73, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, + 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5a, 0x0a, - 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, - 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x73, 0x0a, 0x22, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x71, - 0x0a, 0x21, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x5e, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, - 0x61, 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x7f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x14, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x69, 0x0a, 0x1d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x17, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x17, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, - 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x44, 0x6f, 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x6c, 0x44, - 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x12, 0x5e, 0x0a, 0x17, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x76, 0x48, 0x74, 0x52, + 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x49, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x77, 0x48, 0x75, 0x52, 0x10, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x88, + 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x78, 0x48, 0x76, 0x52, 0x10, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x88, + 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x49, - 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x1e, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x85, 0x01, 0x20, 0x01, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x79, 0x48, 0x77, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0e, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x7a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7a, 0x48, + 0x78, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, 0x63, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x74, 0x0a, 0x23, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x86, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x54, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x6d, 0x0a, 0x1f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, - 0x87, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1b, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x6b, 0x0a, 0x1e, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x88, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, - 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x5f, 0x6e, 0x61, 0x74, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x6f, 0x4e, 0x61, 0x74, 0x12, 0x53, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x12, 0x53, 0x0a, 0x11, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, - 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7b, 0x48, 0x79, + 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x34, 0x53, 0x72, 0x63, + 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x7c, 0x48, 0x7a, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, + 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x7c, 0x0a, 0x22, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x7d, 0x48, 0x7b, 0x52, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x21, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x7e, 0x48, 0x7c, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x7f, 0x48, 0x7d, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x74, 0x41, 0x63, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, + 0x73, 0x0a, 0x1d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x80, 0x01, 0x48, 0x7e, 0x52, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, - 0x5c, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x5e, 0x0a, - 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0x81, 0x01, 0x48, 0x7f, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, + 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x6f, 0x5f, 0x6e, + 0x6f, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x67, 0x0a, - 0x1c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x8e, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x18, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x69, - 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x5a, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, - 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x55, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x91, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x82, 0x01, 0x48, 0x80, 0x01, 0x52, + 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x6f, 0x4e, 0x6f, 0x74, 0x4c, + 0x65, 0x61, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x6f, 0x70, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0x83, 0x01, 0x48, 0x81, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x63, 0x6c, 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, + 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x84, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x84, 0x01, + 0x48, 0x82, 0x01, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x49, + 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x1e, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, + 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, - 0x5b, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x61, - 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x17, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x45, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x0e, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x76, 0x72, 0x66, 0x18, 0x94, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x56, 0x72, 0x66, 0x12, 0x66, 0x0a, 0x1b, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0x85, 0x01, 0x48, 0x83, 0x01, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, + 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x7f, 0x0a, 0x23, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x74, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x86, 0x01, 0x48, + 0x84, 0x01, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x54, 0x61, + 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x78, 0x0a, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x87, 0x01, 0x48, 0x85, 0x01, 0x52, + 0x1b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x76, 0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x88, 0x01, 0x48, 0x86, 0x01, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x6f, 0x5f, 0x6e, 0x61, 0x74, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, 0x01, 0x48, 0x87, 0x01, 0x52, + 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x4e, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x5e, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8a, 0x01, 0x48, 0x88, 0x01, 0x52, 0x0f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x5e, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8b, 0x01, 0x48, 0x89, 0x01, 0x52, 0x0f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x67, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, - 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, - 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, - 0x1c, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8c, 0x01, 0x48, 0x8a, 0x01, + 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x73, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8d, 0x01, 0x48, 0x8b, 0x01, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x72, 0x0a, 0x1c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, + 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x73, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8e, 0x01, 0x48, 0x8c, 0x01, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x69, 0x6c, 0x44, + 0x72, 0x6f, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x8f, 0x01, 0x48, 0x8d, 0x01, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x6f, + 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x90, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x90, 0x01, + 0x48, 0x8e, 0x01, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x73, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x60, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x91, 0x01, 0x48, 0x8f, 0x01, 0x52, 0x10, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x88, 0x01, + 0x01, 0x12, 0x66, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x92, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x92, 0x01, 0x48, + 0x90, 0x01, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, + 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x17, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x69, 0x64, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x93, 0x01, 0x48, 0x91, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x76, 0x72, 0x66, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x94, 0x01, 0x48, 0x92, 0x01, 0x52, 0x0c, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x56, 0x72, 0x66, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, + 0x1b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x95, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x95, 0x01, + 0x48, 0x93, 0x01, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, + 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x30, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, + 0x64, 0x31, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, + 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, + 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, + 0x69, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x63, 0x66, 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, + 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, + 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x65, 0x63, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x74, + 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x70, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, + 0x61, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x5f, 0x73, 0x63, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, + 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, + 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, + 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, + 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, + 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, + 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, + 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, + 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, + 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, + 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x42, 0x1f, 0x0a, 0x1d, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x1f, 0x0a, + 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, + 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, + 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, + 0x63, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x70, 0x72, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, + 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, + 0x72, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x63, 0x70, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x65, 0x63, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, + 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x42, 0x1a, 0x0a, + 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x64, 0x74, 0x65, + 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x26, 0x0a, 0x24, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x5f, 0x6e, 0x61, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x42, 0x1f, 0x0a, 0x1d, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, + 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x67, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x76, 0x72, 0x66, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x41, 0x63, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x63, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xd8, 0x01, 0x0a, 0x17, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, + 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, + 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xe0, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x08, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x07, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, + 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x18, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x00, 0x52, + 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, + 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xcb, 0x01, + 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x79, 0x74, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, - 0x1d, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, - 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, - 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x2a, 0x0a, 0x16, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, + 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xc4, 0x02, + 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x2a, 0x0a, 0x16, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, - 0x1b, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, - 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x91, - 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x53, 0x74, - 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x18, 0x61, 0x63, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, + 0x41, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x08, 0x61, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, + 0x18, 0x61, 0x63, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x14, 0x61, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, + 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, + 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, + 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xa5, 0x01, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0f, 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, - 0x35, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x34, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x21, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x87, 0x01, 0x0a, 0x26, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4b, - 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x72, 0x0a, 0x27, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, - 0xaa, 0x1f, 0x0a, 0x0c, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x2b, - 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x41, - 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x49, - 0x5a, 0x45, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x21, 0x0a, - 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x05, - 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, - 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x33, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, - 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x32, - 0x10, 0x07, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, - 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x31, 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, 0x41, - 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, - 0x44, 0x30, 0x10, 0x09, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, - 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xfb, 0x01, 0x0a, 0x20, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x36, 0x0a, 0x12, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x6c, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x0c, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0a, 0x61, 0x63, + 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x08, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x63, + 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x35, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x34, + 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, + 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x26, 0x47, 0x65, + 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x72, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, + 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xaa, 0x1f, 0x0a, 0x0c, 0x41, 0x63, 0x6c, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x53, + 0x54, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, + 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, + 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, + 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, + 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x33, 0x10, + 0x06, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, + 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x32, 0x10, 0x07, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, + 0x31, 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, + 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x30, 0x10, 0x09, 0x12, 0x21, 0x0a, 0x1d, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x0a, 0x12, + 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, + 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x33, 0x10, 0x0b, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, + 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x32, 0x10, + 0x0c, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, + 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x31, 0x10, 0x0d, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, + 0x30, 0x10, 0x0e, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, + 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x0f, 0x12, 0x27, 0x0a, 0x23, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, + 0x50, 0x56, 0x36, 0x10, 0x10, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, + 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x33, 0x10, 0x0b, - 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, - 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x32, 0x10, 0x0c, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, + 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x12, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x31, - 0x10, 0x0d, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, - 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x30, 0x10, 0x0e, 0x12, 0x27, 0x0a, 0x23, 0x41, + 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x13, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x14, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, - 0x56, 0x36, 0x10, 0x0f, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, - 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x10, 0x12, 0x20, 0x0a, - 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x11, 0x12, - 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, - 0x12, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, - 0x10, 0x13, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, - 0x50, 0x10, 0x14, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, - 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, - 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, - 0x16, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x53, 0x10, 0x17, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x18, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, + 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, + 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x16, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, + 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x17, 0x12, 0x22, 0x0a, 0x1e, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x18, + 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x10, 0x19, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x1a, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, + 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1b, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x19, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, - 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1a, 0x12, 0x21, 0x0a, - 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1b, - 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x1c, + 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, - 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x1c, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, - 0x1d, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, 0x46, 0x49, 0x10, 0x1e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, - 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, - 0x10, 0x1f, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x1d, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, + 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, 0x46, 0x49, + 0x10, 0x1e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, - 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x20, 0x12, 0x27, 0x0a, 0x23, 0x41, - 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, - 0x46, 0x49, 0x10, 0x21, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x22, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, + 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x1f, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x23, - 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x4c, - 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x24, 0x12, 0x2a, 0x0a, 0x26, + 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, + 0x49, 0x10, 0x20, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, + 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, 0x46, 0x49, 0x10, 0x21, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, - 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x25, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x10, 0x22, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, + 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x23, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x26, 0x12, 0x29, 0x0a, - 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x45, 0x54, 0x48, 0x45, - 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x27, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x28, 0x12, 0x2a, - 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x50, 0x5f, - 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x29, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, + 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x24, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, + 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x25, + 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x10, 0x26, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, + 0x4e, 0x45, 0x52, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x27, + 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, + 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x28, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, + 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, + 0x10, 0x29, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x2a, 0x12, 0x1d, + 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x2b, 0x12, 0x1c, 0x0a, + 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x10, 0x2c, 0x12, 0x1c, 0x0a, 0x18, 0x41, + 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x2d, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, + 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x54, 0x4f, 0x53, 0x10, 0x2e, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, + 0x49, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x10, 0x2f, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x2a, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, - 0x53, 0x43, 0x50, 0x10, 0x2b, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, - 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x43, - 0x4e, 0x10, 0x2c, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x54, 0x4c, 0x10, - 0x2d, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x4f, 0x53, 0x10, 0x2e, 0x12, - 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, - 0x10, 0x2f, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x43, 0x50, 0x5f, 0x46, - 0x4c, 0x41, 0x47, 0x53, 0x10, 0x30, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, - 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x31, 0x12, 0x24, 0x0a, 0x20, - 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, - 0x10, 0x32, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x33, 0x12, 0x1b, 0x0a, 0x17, - 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x43, 0x10, 0x34, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, + 0x4c, 0x44, 0x5f, 0x54, 0x43, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x10, 0x30, 0x12, 0x24, + 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x31, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, + 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x10, 0x32, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x10, 0x33, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x43, 0x10, + 0x34, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x10, 0x35, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, + 0x4d, 0x50, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x36, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x35, 0x12, 0x22, 0x0a, - 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, - 0x36, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x37, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, + 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x37, 0x12, + 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x10, 0x38, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x39, 0x12, 0x23, 0x0a, 0x1f, 0x41, + 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x4e, 0x49, 0x10, 0x3a, + 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x3b, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x38, 0x12, 0x24, 0x0a, - 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, - 0x4e, 0x10, 0x39, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x55, 0x4e, 0x4e, - 0x45, 0x4c, 0x5f, 0x56, 0x4e, 0x49, 0x10, 0x3a, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, + 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x49, 0x10, 0x3c, 0x12, 0x2a, 0x0a, 0x26, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, + 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x3d, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x3b, 0x12, - 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, - 0x43, 0x49, 0x10, 0x3c, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x54, 0x54, 0x4c, + 0x10, 0x3e, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x3f, 0x12, 0x28, 0x0a, 0x24, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, + 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x40, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, + 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x10, 0x41, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x42, 0x12, 0x28, 0x0a, 0x24, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, + 0x5f, 0x45, 0x58, 0x50, 0x10, 0x43, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, + 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x44, + 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x45, 0x12, 0x28, 0x0a, 0x24, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, + 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x46, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, + 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x47, + 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x48, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x10, 0x49, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, + 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x4a, + 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x4b, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x42, + 0x4f, 0x53, 0x10, 0x4c, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, - 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x3d, + 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x4d, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, - 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x3e, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x4e, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x45, - 0x58, 0x50, 0x10, 0x3f, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x45, + 0x58, 0x50, 0x10, 0x4f, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, - 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x40, 0x12, 0x2a, + 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x50, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, - 0x4c, 0x31, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x41, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, + 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x51, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x54, - 0x54, 0x4c, 0x10, 0x42, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, - 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x43, 0x12, 0x28, - 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, - 0x4c, 0x31, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x44, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, + 0x4c, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x52, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x4c, 0x41, 0x42, - 0x45, 0x4c, 0x10, 0x45, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, - 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x46, 0x12, 0x28, - 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, - 0x4c, 0x32, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x47, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x42, 0x4f, 0x53, - 0x10, 0x48, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x49, 0x12, 0x28, - 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, - 0x4c, 0x33, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x4a, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x45, 0x58, 0x50, - 0x10, 0x4b, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x4c, 0x12, 0x2a, 0x0a, 0x26, - 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, - 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x4d, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x54, 0x54, 0x4c, - 0x10, 0x4e, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x4f, 0x12, 0x28, 0x0a, 0x24, - 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, - 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x50, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x46, - 0x44, 0x42, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x10, 0x51, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, - 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x52, - 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, - 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, - 0x53, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, - 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x54, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, - 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, - 0x41, 0x10, 0x55, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, - 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x56, 0x12, 0x2d, 0x0a, 0x29, 0x41, + 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x53, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, + 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, + 0x10, 0x54, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x55, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4e, 0x50, 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x57, 0x12, 0x32, 0x0a, 0x2e, 0x41, 0x43, - 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x4e, 0x50, 0x55, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x58, 0x12, 0x2f, - 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x4e, 0x50, 0x55, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x59, 0x12, - 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x42, 0x54, 0x48, 0x5f, 0x4f, 0x50, 0x43, 0x4f, - 0x44, 0x45, 0x10, 0x5a, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x45, 0x54, - 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x44, 0x52, 0x4f, 0x4d, 0x45, 0x10, 0x5b, 0x12, 0x2f, 0x0a, 0x2b, - 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x5c, 0x12, 0x2f, 0x0a, - 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x5d, 0x12, 0x27, - 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x5e, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x54, + 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, + 0x41, 0x10, 0x56, 0x12, 0x2d, 0x0a, 0x29, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x46, 0x44, 0x42, 0x5f, + 0x4e, 0x50, 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, + 0x10, 0x57, 0x12, 0x32, 0x0a, 0x2e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, + 0x42, 0x4f, 0x52, 0x5f, 0x4e, 0x50, 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x53, 0x54, + 0x5f, 0x48, 0x49, 0x54, 0x10, 0x58, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x4e, 0x50, 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x53, + 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x59, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, - 0x10, 0x5f, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x45, 0x5f, 0x4b, - 0x45, 0x59, 0x10, 0x60, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x41, 0x4d, - 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x61, 0x12, 0x1d, 0x0a, 0x19, 0x41, - 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x62, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, - 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, - 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x10, 0x63, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x42, 0x54, 0x48, 0x5f, 0x4f, 0x50, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x5a, 0x12, 0x26, 0x0a, 0x22, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x45, 0x54, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x44, 0x52, 0x4f, + 0x4d, 0x45, 0x10, 0x5b, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, + 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x4d, 0x49, 0x4e, 0x10, 0x5c, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, + 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x5d, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, + 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x5e, 0x12, + 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x58, + 0x54, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x5f, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x60, 0x12, 0x25, 0x0a, 0x21, + 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x10, 0x61, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x53, 0x54, + 0x10, 0x62, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, - 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x64, 0x2a, 0xe8, 0x2f, 0x0a, - 0x0c, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, - 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, - 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, - 0x33, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, - 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x32, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, - 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, - 0x52, 0x44, 0x31, 0x10, 0x07, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, - 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x30, 0x10, 0x08, 0x12, 0x21, - 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, - 0x09, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, - 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x33, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, - 0x32, 0x10, 0x0b, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, - 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x31, 0x10, 0x0c, 0x12, 0x27, 0x0a, 0x23, - 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, - 0x52, 0x44, 0x30, 0x10, 0x0d, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, - 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x0e, 0x12, 0x27, - 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, - 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x10, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, + 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x63, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, + 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, + 0x45, 0x52, 0x10, 0x64, 0x2a, 0xe8, 0x2f, 0x0a, 0x0c, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x44, + 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x02, 0x12, + 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, + 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, + 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, + 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x33, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x41, + 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, + 0x44, 0x32, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, + 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x31, 0x10, 0x07, 0x12, 0x27, 0x0a, + 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, + 0x4f, 0x52, 0x44, 0x30, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, + 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x11, 0x12, 0x1f, 0x0a, 0x1b, 0x41, + 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x33, + 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, + 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x32, 0x10, 0x0b, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x12, 0x12, 0x1f, 0x0a, 0x1b, - 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x13, 0x12, 0x25, 0x0a, - 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, + 0x44, 0x31, 0x10, 0x0c, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, + 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x57, 0x4f, 0x52, 0x44, 0x30, 0x10, 0x0d, 0x12, 0x27, 0x0a, + 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, - 0x49, 0x50, 0x10, 0x14, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, - 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x15, 0x12, 0x21, 0x0a, 0x1d, 0x41, - 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x16, 0x12, 0x22, - 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, - 0x10, 0x17, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x10, 0x18, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x19, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1a, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, + 0x49, 0x50, 0x56, 0x36, 0x10, 0x0e, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, + 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x0f, 0x12, + 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, + 0x10, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, + 0x43, 0x10, 0x11, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, + 0x49, 0x50, 0x10, 0x12, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, + 0x5f, 0x49, 0x50, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, + 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x14, 0x12, 0x25, 0x0a, 0x21, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, + 0x50, 0x10, 0x15, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x53, 0x10, 0x16, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, + 0x55, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x17, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, - 0x10, 0x1b, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x18, 0x12, 0x21, 0x0a, 0x1d, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x19, 0x12, + 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x10, 0x1a, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, - 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x1c, 0x12, 0x27, 0x0a, 0x23, 0x41, - 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, - 0x46, 0x49, 0x10, 0x1d, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, - 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x1e, 0x12, 0x27, 0x0a, 0x23, + 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x1b, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, + 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, + 0x49, 0x10, 0x1c, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, + 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, 0x46, 0x49, 0x10, 0x1d, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x50, 0x52, 0x49, 0x10, 0x1f, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, - 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, 0x46, 0x49, 0x10, 0x20, 0x12, 0x24, - 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x10, 0x21, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x22, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, + 0x49, 0x44, 0x10, 0x1e, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, + 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x1f, 0x12, 0x27, 0x0a, + 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, + 0x5f, 0x43, 0x46, 0x49, 0x10, 0x20, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, + 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x21, 0x12, 0x24, 0x0a, 0x20, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x10, 0x22, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, + 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x23, 0x12, 0x2a, + 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, + 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x24, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x10, 0x23, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, - 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x10, 0x24, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x25, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x45, + 0x4c, 0x44, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x25, 0x12, + 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x45, 0x54, + 0x48, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x26, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, + 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x27, + 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x49, + 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x28, 0x12, 0x2a, 0x0a, 0x26, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, + 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x29, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, + 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x2a, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x10, 0x26, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, - 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x27, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, + 0x45, 0x43, 0x4e, 0x10, 0x2b, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x54, + 0x4c, 0x10, 0x2c, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x4f, 0x53, 0x10, + 0x2d, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x4c, 0x41, + 0x47, 0x53, 0x10, 0x2e, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x43, 0x50, + 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x10, 0x2f, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, - 0x4f, 0x4c, 0x10, 0x28, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, - 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x29, - 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x2a, 0x12, - 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x10, 0x2b, 0x12, 0x1c, 0x0a, - 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x2c, 0x12, 0x1c, 0x0a, 0x18, 0x41, + 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x30, 0x12, 0x24, + 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, + 0x41, 0x47, 0x10, 0x31, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x56, + 0x36, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x32, 0x12, 0x1b, + 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x43, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x4f, 0x53, 0x10, 0x2d, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x10, 0x2e, 0x12, 0x22, 0x0a, 0x1e, - 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x43, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x53, 0x10, 0x2f, - 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x10, 0x30, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, - 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x10, 0x31, 0x12, 0x28, 0x0a, 0x24, - 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, - 0x41, 0x42, 0x45, 0x4c, 0x10, 0x32, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, - 0x43, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x34, 0x12, + 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x10, 0x35, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x34, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x49, 0x43, 0x4d, 0x50, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x35, 0x12, 0x24, 0x0a, 0x20, 0x41, - 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x36, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, - 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x37, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x38, 0x12, 0x23, 0x0a, - 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x4e, 0x49, - 0x10, 0x39, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x56, - 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x3a, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, + 0x56, 0x36, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x36, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x49, 0x10, 0x3b, 0x12, 0x2a, - 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, - 0x4c, 0x30, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x3c, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x44, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x37, 0x12, + 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, + 0x4c, 0x41, 0x4e, 0x10, 0x38, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x55, + 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x4e, 0x49, 0x10, 0x39, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x54, - 0x54, 0x4c, 0x10, 0x3d, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, - 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x3e, 0x12, 0x28, - 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, - 0x4c, 0x30, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x3f, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x4c, 0x41, 0x42, - 0x45, 0x4c, 0x10, 0x40, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, - 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x41, 0x12, 0x28, - 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, - 0x4c, 0x31, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x42, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x42, 0x4f, 0x53, - 0x10, 0x43, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x44, 0x12, 0x28, - 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, - 0x4c, 0x32, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x45, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x45, 0x58, 0x50, - 0x10, 0x46, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x47, 0x12, 0x2a, 0x0a, 0x26, - 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, - 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x48, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x54, 0x54, 0x4c, - 0x10, 0x49, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x4a, 0x12, 0x28, 0x0a, 0x24, - 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, - 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x4b, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x4c, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x10, + 0x3a, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x43, 0x49, 0x10, 0x3b, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, - 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, - 0x10, 0x4c, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x10, 0x3c, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x4d, 0x12, 0x28, 0x0a, 0x24, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x3d, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, - 0x5f, 0x45, 0x58, 0x50, 0x10, 0x4e, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, + 0x5f, 0x45, 0x58, 0x50, 0x10, 0x3e, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, - 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x4f, + 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x30, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x3f, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x44, 0x53, 0x54, - 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x50, 0x12, 0x2c, 0x0a, 0x28, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x40, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, - 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x51, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, + 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x41, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, + 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x42, + 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x31, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x43, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, - 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x52, 0x12, 0x27, 0x0a, 0x23, 0x41, - 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, - 0x54, 0x41, 0x10, 0x53, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x56, 0x4c, 0x41, - 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x54, 0x12, 0x26, 0x0a, - 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, - 0x45, 0x54, 0x41, 0x10, 0x55, 0x12, 0x2d, 0x0a, 0x29, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x46, 0x44, - 0x42, 0x5f, 0x4e, 0x50, 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x48, - 0x49, 0x54, 0x10, 0x56, 0x12, 0x32, 0x0a, 0x2e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x45, 0x49, - 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x4e, 0x50, 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, - 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x57, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x4e, 0x50, 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x58, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x42, 0x54, 0x48, 0x5f, 0x4f, 0x50, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x59, 0x12, 0x26, - 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x45, 0x54, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x44, - 0x52, 0x4f, 0x4d, 0x45, 0x10, 0x5a, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, - 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x5b, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, - 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x5c, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, + 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x10, 0x44, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, + 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x45, + 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x46, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x32, 0x5f, 0x42, + 0x4f, 0x53, 0x10, 0x47, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, + 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x48, + 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x49, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x45, + 0x58, 0x50, 0x10, 0x4a, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, + 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x33, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x4b, 0x12, 0x2a, + 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, + 0x4c, 0x34, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x4c, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, + 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x54, + 0x54, 0x4c, 0x10, 0x4d, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, + 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x34, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x4e, 0x12, 0x28, + 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, + 0x4c, 0x34, 0x5f, 0x42, 0x4f, 0x53, 0x10, 0x4f, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x5d, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, - 0x45, 0x58, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x5e, 0x12, 0x20, 0x0a, 0x1c, + 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, + 0x54, 0x41, 0x10, 0x50, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, 0x4f, 0x55, + 0x54, 0x45, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, + 0x10, 0x51, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, + 0x42, 0x4f, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, + 0x41, 0x10, 0x52, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x53, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x5f, 0x12, 0x25, - 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x10, 0x60, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, - 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x61, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x62, - 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, - 0x43, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x63, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x64, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, - 0x44, 0x10, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x45, 0x52, 0x10, 0x66, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x67, - 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, - 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x68, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x10, 0x69, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, + 0x45, 0x54, 0x41, 0x10, 0x54, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, + 0x4c, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x55, 0x12, 0x2d, 0x0a, + 0x29, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4e, 0x50, 0x55, 0x5f, 0x4d, 0x45, + 0x54, 0x41, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x56, 0x12, 0x32, 0x0a, 0x2e, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x4e, 0x50, + 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, 0x57, + 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x4e, + 0x50, 0x55, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x10, + 0x58, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x42, 0x54, 0x48, 0x5f, 0x4f, 0x50, + 0x43, 0x4f, 0x44, 0x45, 0x10, 0x59, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, + 0x45, 0x54, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x44, 0x52, 0x4f, 0x4d, 0x45, 0x10, 0x5a, 0x12, 0x2f, + 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x5b, 0x12, + 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x5c, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x45, 0x4d, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x6a, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x43, 0x10, 0x6b, 0x12, 0x2a, 0x0a, 0x26, 0x41, + 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, + 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x5d, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x44, + 0x45, 0x52, 0x10, 0x5e, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x45, + 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x5f, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, + 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x60, 0x12, 0x22, 0x0a, + 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, + 0x61, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, + 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x62, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0x63, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x64, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, + 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x6c, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x45, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x66, 0x12, 0x28, + 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, + 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x67, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, + 0x68, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, + 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x10, 0x69, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, + 0x6a, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, + 0x43, 0x10, 0x6b, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, + 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x6c, 0x12, + 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4e, + 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x6d, 0x12, 0x2c, 0x0a, 0x28, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, + 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x6e, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, + 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x6f, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x49, 0x44, 0x10, 0x6d, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x50, 0x52, 0x49, 0x10, 0x70, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x44, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x71, 0x12, 0x26, 0x0a, 0x22, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, + 0x52, 0x49, 0x10, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, - 0x54, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, - 0x10, 0x6e, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x54, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x73, 0x12, 0x25, 0x0a, 0x21, 0x41, + 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, + 0x10, 0x74, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, - 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x6f, 0x12, - 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x55, 0x54, - 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x70, 0x12, 0x25, 0x0a, - 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x49, 0x44, 0x10, 0x71, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x44, - 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x72, 0x12, 0x25, 0x0a, 0x21, - 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, - 0x43, 0x10, 0x73, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, - 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x74, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x75, - 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, - 0x54, 0x5f, 0x49, 0x50, 0x10, 0x76, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x45, 0x54, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x77, 0x12, 0x26, + 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x75, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x76, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x54, 0x5f, - 0x49, 0x50, 0x56, 0x36, 0x10, 0x78, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x52, 0x43, 0x5f, + 0x49, 0x50, 0x56, 0x36, 0x10, 0x77, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x79, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x43, 0x4e, 0x10, 0x7a, 0x12, 0x29, 0x0a, - 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, - 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x7b, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, + 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x78, 0x12, 0x22, + 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x43, 0x50, + 0x10, 0x79, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, + 0x45, 0x43, 0x4e, 0x10, 0x7a, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x45, 0x54, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x7b, + 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x34, + 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x7c, 0x12, 0x35, 0x0a, 0x31, 0x41, + 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, + 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x7d, 0x12, 0x34, 0x0a, 0x30, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x7e, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x10, 0x7c, 0x12, 0x35, 0x0a, 0x31, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, - 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x7d, 0x12, 0x34, 0x0a, 0x30, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, - 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x7e, - 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x43, - 0x4c, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x7f, 0x12, 0x31, 0x0a, - 0x2c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x80, 0x01, - 0x12, 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, - 0x45, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x81, 0x01, 0x12, 0x2b, 0x0a, - 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, - 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x10, 0x82, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, - 0x57, 0x5f, 0x4f, 0x50, 0x10, 0x83, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x10, 0x84, 0x01, 0x12, 0x32, 0x0a, 0x2d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x54, - 0x45, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, - 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x85, 0x01, 0x12, 0x37, 0x0a, 0x32, 0x41, 0x43, 0x4c, 0x5f, + 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, + 0x41, 0x54, 0x41, 0x10, 0x7f, 0x12, 0x31, 0x0a, 0x2c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, + 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x80, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x86, - 0x01, 0x12, 0x33, 0x0a, 0x2e, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x43, - 0x45, 0x4e, 0x54, 0x10, 0x87, 0x01, 0x12, 0x32, 0x0a, 0x2d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x88, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x89, 0x01, 0x12, 0x25, 0x0a, - 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, - 0x54, 0x10, 0x8a, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, - 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x8b, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x41, - 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x8c, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x53, 0x10, 0x8d, 0x01, 0x12, 0x30, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, - 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x53, 0x10, 0x8e, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x8f, - 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, - 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x90, - 0x01, 0x12, 0x26, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x91, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, - 0x49, 0x44, 0x10, 0x92, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, + 0x49, 0x44, 0x10, 0x81, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, - 0x45, 0x54, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x44, 0x10, - 0x93, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, - 0x56, 0x52, 0x46, 0x10, 0x94, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, - 0x4c, 0x41, 0x53, 0x53, 0x10, 0x95, 0x01, 0x2a, 0xdd, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x6c, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, - 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, - 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x41, - 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, - 0x55, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x42, 0x59, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x1c, 0x0a, - 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x41, - 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x05, 0x2a, 0x61, 0x0a, 0x0c, 0x41, 0x63, 0x6c, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x52, - 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x43, 0x4c, 0x5f, 0x52, - 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, - 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x10, 0x02, 0x2a, 0xd5, 0x01, 0x0a, 0x11, 0x41, - 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, - 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x43, - 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x1d, 0x0a, - 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, - 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, - 0x10, 0x04, 0x2a, 0xd2, 0x01, 0x0a, 0x17, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2b, - 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x41, - 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, - 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, - 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, - 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, - 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x28, 0x0a, - 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x03, 0x32, 0x9b, 0x14, 0x0a, 0x03, 0x41, 0x63, 0x6c, 0x12, - 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x45, 0x54, 0x5f, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x10, + 0x82, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, + 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x10, 0x83, 0x01, 0x12, + 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, + 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x84, 0x01, 0x12, 0x32, 0x0a, 0x2d, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, + 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x85, 0x01, + 0x12, 0x37, 0x0a, 0x32, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x54, + 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x86, 0x01, 0x12, 0x33, 0x0a, 0x2e, 0x41, 0x43, 0x4c, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x41, 0x4d, + 0x50, 0x4c, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x87, 0x01, 0x12, 0x32, + 0x0a, 0x2d, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, + 0x88, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x4e, + 0x41, 0x54, 0x10, 0x89, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, + 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x8a, 0x01, 0x12, 0x25, 0x0a, 0x20, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, + 0x10, 0x8b, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, + 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x8c, 0x01, 0x12, + 0x2b, 0x0a, 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x53, 0x10, 0x8d, 0x01, 0x12, 0x30, 0x0a, 0x2b, + 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x53, 0x10, 0x8e, 0x01, 0x12, 0x29, + 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x8f, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x41, 0x43, 0x4c, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x90, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x41, 0x43, 0x4c, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x91, + 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4c, + 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x44, 0x10, 0x92, 0x01, 0x12, 0x2b, 0x0a, + 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, + 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x44, 0x10, 0x93, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x41, 0x43, + 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x56, 0x52, 0x46, 0x10, 0x94, 0x01, 0x12, 0x2f, + 0x0a, 0x2a, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x57, + 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x95, 0x01, 0x2a, + 0xdd, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, + 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, + 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, + 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x26, 0x0a, + 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x5f, 0x43, 0x4f, + 0x55, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x53, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, + 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x05, 0x2a, + 0x61, 0x0a, 0x0c, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, + 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x17, 0x0a, 0x13, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, + 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, + 0x10, 0x02, 0x2a, 0xd5, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, + 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, + 0x10, 0x01, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x42, + 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, + 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x4d, + 0x42, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x2a, 0xd2, 0x01, 0x0a, 0x17, 0x41, + 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x54, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x03, 0x32, + 0x9b, 0x14, 0x0a, 0x03, 0x41, 0x63, 0x6c, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, + 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, + 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, - 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, + 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, - 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x41, - 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, - 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, + 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, - 0x0a, 0x16, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, - 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, - 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x43, + 0x7e, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, - 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x37, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0xa2, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x3d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x62, 0x65, 0x72, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa2, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3d, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, + 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, + 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -11012,160 +10955,14 @@ func file_dataplane_standalone_proto_acl_proto_init() { } } } - file_dataplane_standalone_proto_acl_proto_msgTypes[10].OneofWrappers = []interface{}{ - (*SetAclEntryAttributeRequest_Priority)(nil), - (*SetAclEntryAttributeRequest_AdminState)(nil), - (*SetAclEntryAttributeRequest_FieldSrcIpv6)(nil), - (*SetAclEntryAttributeRequest_FieldSrcIpv6Word3)(nil), - (*SetAclEntryAttributeRequest_FieldSrcIpv6Word2)(nil), - (*SetAclEntryAttributeRequest_FieldSrcIpv6Word1)(nil), - (*SetAclEntryAttributeRequest_FieldSrcIpv6Word0)(nil), - (*SetAclEntryAttributeRequest_FieldDstIpv6)(nil), - (*SetAclEntryAttributeRequest_FieldDstIpv6Word3)(nil), - (*SetAclEntryAttributeRequest_FieldDstIpv6Word2)(nil), - (*SetAclEntryAttributeRequest_FieldDstIpv6Word1)(nil), - (*SetAclEntryAttributeRequest_FieldDstIpv6Word0)(nil), - (*SetAclEntryAttributeRequest_FieldInnerSrcIpv6)(nil), - (*SetAclEntryAttributeRequest_FieldInnerDstIpv6)(nil), - (*SetAclEntryAttributeRequest_FieldSrcMac)(nil), - (*SetAclEntryAttributeRequest_FieldDstMac)(nil), - (*SetAclEntryAttributeRequest_FieldSrcIp)(nil), - (*SetAclEntryAttributeRequest_FieldDstIp)(nil), - (*SetAclEntryAttributeRequest_FieldInnerSrcIp)(nil), - (*SetAclEntryAttributeRequest_FieldInnerDstIp)(nil), - (*SetAclEntryAttributeRequest_FieldInPorts)(nil), - (*SetAclEntryAttributeRequest_FieldOutPorts)(nil), - (*SetAclEntryAttributeRequest_FieldInPort)(nil), - (*SetAclEntryAttributeRequest_FieldOutPort)(nil), - (*SetAclEntryAttributeRequest_FieldSrcPort)(nil), - (*SetAclEntryAttributeRequest_FieldOuterVlanId)(nil), - (*SetAclEntryAttributeRequest_FieldOuterVlanPri)(nil), - (*SetAclEntryAttributeRequest_FieldOuterVlanCfi)(nil), - (*SetAclEntryAttributeRequest_FieldInnerVlanId)(nil), - (*SetAclEntryAttributeRequest_FieldInnerVlanPri)(nil), - (*SetAclEntryAttributeRequest_FieldInnerVlanCfi)(nil), - (*SetAclEntryAttributeRequest_FieldL4SrcPort)(nil), - (*SetAclEntryAttributeRequest_FieldL4DstPort)(nil), - (*SetAclEntryAttributeRequest_FieldInnerL4SrcPort)(nil), - (*SetAclEntryAttributeRequest_FieldInnerL4DstPort)(nil), - (*SetAclEntryAttributeRequest_FieldEtherType)(nil), - (*SetAclEntryAttributeRequest_FieldInnerEtherType)(nil), - (*SetAclEntryAttributeRequest_FieldIpProtocol)(nil), - (*SetAclEntryAttributeRequest_FieldInnerIpProtocol)(nil), - (*SetAclEntryAttributeRequest_FieldIpIdentification)(nil), - (*SetAclEntryAttributeRequest_FieldDscp)(nil), - (*SetAclEntryAttributeRequest_FieldEcn)(nil), - (*SetAclEntryAttributeRequest_FieldTtl)(nil), - (*SetAclEntryAttributeRequest_FieldTos)(nil), - (*SetAclEntryAttributeRequest_FieldIpFlags)(nil), - (*SetAclEntryAttributeRequest_FieldTcpFlags)(nil), - (*SetAclEntryAttributeRequest_FieldAclIpType)(nil), - (*SetAclEntryAttributeRequest_FieldAclIpFrag)(nil), - (*SetAclEntryAttributeRequest_FieldIpv6FlowLabel)(nil), - (*SetAclEntryAttributeRequest_FieldTc)(nil), - (*SetAclEntryAttributeRequest_FieldIcmpType)(nil), - (*SetAclEntryAttributeRequest_FieldIcmpCode)(nil), - (*SetAclEntryAttributeRequest_FieldIcmpv6Type)(nil), - (*SetAclEntryAttributeRequest_FieldIcmpv6Code)(nil), - (*SetAclEntryAttributeRequest_FieldPacketVlan)(nil), - (*SetAclEntryAttributeRequest_FieldTunnelVni)(nil), - (*SetAclEntryAttributeRequest_FieldHasVlanTag)(nil), - (*SetAclEntryAttributeRequest_FieldMacsecSci)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel0Label)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel0Ttl)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel0Exp)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel0Bos)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel1Label)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel1Ttl)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel1Exp)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel1Bos)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel2Label)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel2Ttl)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel2Exp)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel2Bos)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel3Label)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel3Ttl)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel3Exp)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel3Bos)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel4Label)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel4Ttl)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel4Exp)(nil), - (*SetAclEntryAttributeRequest_FieldMplsLabel4Bos)(nil), - (*SetAclEntryAttributeRequest_FieldFdbDstUserMeta)(nil), - (*SetAclEntryAttributeRequest_FieldRouteDstUserMeta)(nil), - (*SetAclEntryAttributeRequest_FieldNeighborDstUserMeta)(nil), - (*SetAclEntryAttributeRequest_FieldPortUserMeta)(nil), - (*SetAclEntryAttributeRequest_FieldVlanUserMeta)(nil), - (*SetAclEntryAttributeRequest_FieldAclUserMeta)(nil), - (*SetAclEntryAttributeRequest_FieldFdbNpuMetaDstHit)(nil), - (*SetAclEntryAttributeRequest_FieldNeighborNpuMetaDstHit)(nil), - (*SetAclEntryAttributeRequest_FieldRouteNpuMetaDstHit)(nil), - (*SetAclEntryAttributeRequest_FieldBthOpcode)(nil), - (*SetAclEntryAttributeRequest_FieldAethSyndrome)(nil), - (*SetAclEntryAttributeRequest_UserDefinedFieldGroupMin)(nil), - (*SetAclEntryAttributeRequest_UserDefinedFieldGroupMax)(nil), - (*SetAclEntryAttributeRequest_FieldAclRangeType)(nil), - (*SetAclEntryAttributeRequest_FieldIpv6NextHeader)(nil), - (*SetAclEntryAttributeRequest_FieldGreKey)(nil), - (*SetAclEntryAttributeRequest_FieldTamIntType)(nil), - (*SetAclEntryAttributeRequest_ActionRedirect)(nil), - (*SetAclEntryAttributeRequest_ActionEndpointIp)(nil), - (*SetAclEntryAttributeRequest_ActionRedirectList)(nil), - (*SetAclEntryAttributeRequest_ActionPacketAction)(nil), - (*SetAclEntryAttributeRequest_ActionFlood)(nil), - (*SetAclEntryAttributeRequest_ActionCounter)(nil), - (*SetAclEntryAttributeRequest_ActionMirrorIngress)(nil), - (*SetAclEntryAttributeRequest_ActionMirrorEgress)(nil), - (*SetAclEntryAttributeRequest_ActionSetPolicer)(nil), - (*SetAclEntryAttributeRequest_ActionDecrementTtl)(nil), - (*SetAclEntryAttributeRequest_ActionSetTc)(nil), - (*SetAclEntryAttributeRequest_ActionSetPacketColor)(nil), - (*SetAclEntryAttributeRequest_ActionSetInnerVlanId)(nil), - (*SetAclEntryAttributeRequest_ActionSetInnerVlanPri)(nil), - (*SetAclEntryAttributeRequest_ActionSetOuterVlanId)(nil), - (*SetAclEntryAttributeRequest_ActionSetOuterVlanPri)(nil), - (*SetAclEntryAttributeRequest_ActionAddVlanId)(nil), - (*SetAclEntryAttributeRequest_ActionAddVlanPri)(nil), - (*SetAclEntryAttributeRequest_ActionSetSrcMac)(nil), - (*SetAclEntryAttributeRequest_ActionSetDstMac)(nil), - (*SetAclEntryAttributeRequest_ActionSetSrcIp)(nil), - (*SetAclEntryAttributeRequest_ActionSetDstIp)(nil), - (*SetAclEntryAttributeRequest_ActionSetSrcIpv6)(nil), - (*SetAclEntryAttributeRequest_ActionSetDstIpv6)(nil), - (*SetAclEntryAttributeRequest_ActionSetDscp)(nil), - (*SetAclEntryAttributeRequest_ActionSetEcn)(nil), - (*SetAclEntryAttributeRequest_ActionSetL4SrcPort)(nil), - (*SetAclEntryAttributeRequest_ActionSetL4DstPort)(nil), - (*SetAclEntryAttributeRequest_ActionIngressSamplepacketEnable)(nil), - (*SetAclEntryAttributeRequest_ActionEgressSamplepacketEnable)(nil), - (*SetAclEntryAttributeRequest_ActionSetAclMetaData)(nil), - (*SetAclEntryAttributeRequest_ActionEgressBlockPortList)(nil), - (*SetAclEntryAttributeRequest_ActionSetUserTrapId)(nil), - (*SetAclEntryAttributeRequest_ActionSetDoNotLearn)(nil), - (*SetAclEntryAttributeRequest_ActionAclDtelFlowOp)(nil), - (*SetAclEntryAttributeRequest_ActionDtelIntSession)(nil), - (*SetAclEntryAttributeRequest_ActionDtelDropReportEnable)(nil), - (*SetAclEntryAttributeRequest_ActionDtelTailDropReportEnable)(nil), - (*SetAclEntryAttributeRequest_ActionDtelFlowSamplePercent)(nil), - (*SetAclEntryAttributeRequest_ActionDtelReportAllPackets)(nil), - (*SetAclEntryAttributeRequest_ActionNoNat)(nil), - (*SetAclEntryAttributeRequest_ActionIntInsert)(nil), - (*SetAclEntryAttributeRequest_ActionIntDelete)(nil), - (*SetAclEntryAttributeRequest_ActionIntReportFlow)(nil), - (*SetAclEntryAttributeRequest_ActionIntReportDrops)(nil), - (*SetAclEntryAttributeRequest_ActionIntReportTailDrops)(nil), - (*SetAclEntryAttributeRequest_ActionTamIntObject)(nil), - (*SetAclEntryAttributeRequest_ActionSetIsolationGroup)(nil), - (*SetAclEntryAttributeRequest_ActionMacsecFlow)(nil), - (*SetAclEntryAttributeRequest_ActionSetLagHashId)(nil), - (*SetAclEntryAttributeRequest_ActionSetEcmpHashId)(nil), - (*SetAclEntryAttributeRequest_ActionSetVrf)(nil), - (*SetAclEntryAttributeRequest_ActionSetForwardingClass)(nil), - } - file_dataplane_standalone_proto_acl_proto_msgTypes[18].OneofWrappers = []interface{}{ - (*SetAclCounterAttributeRequest_Packets)(nil), - (*SetAclCounterAttributeRequest_Bytes)(nil), - } + file_dataplane_standalone_proto_acl_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_acl_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_acl_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_acl_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_acl_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_acl_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_acl_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_acl_proto_msgTypes[34].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/acl.proto b/dataplane/standalone/proto/acl.proto index 45d42e7c..025968a8 100644 --- a/dataplane/standalone/proto/acl.proto +++ b/dataplane/standalone/proto/acl.proto @@ -7,961 +7,943 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum AclTableAttr { - ACL_TABLE_ATTR_UNSPECIFIED = 0; - ACL_TABLE_ATTR_ACL_STAGE = 1; - ACL_TABLE_ATTR_ACL_BIND_POINT_TYPE_LIST = 2; - ACL_TABLE_ATTR_SIZE = 3; - ACL_TABLE_ATTR_ACL_ACTION_TYPE_LIST = 4; - ACL_TABLE_ATTR_FIELD_SRC_IPV6 = 5; - ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD3 = 6; - ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD2 = 7; - ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD1 = 8; - ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD0 = 9; - ACL_TABLE_ATTR_FIELD_DST_IPV6 = 10; - ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD3 = 11; - ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD2 = 12; - ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD1 = 13; - ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD0 = 14; - ACL_TABLE_ATTR_FIELD_INNER_SRC_IPV6 = 15; - ACL_TABLE_ATTR_FIELD_INNER_DST_IPV6 = 16; - ACL_TABLE_ATTR_FIELD_SRC_MAC = 17; - ACL_TABLE_ATTR_FIELD_DST_MAC = 18; - ACL_TABLE_ATTR_FIELD_SRC_IP = 19; - ACL_TABLE_ATTR_FIELD_DST_IP = 20; - ACL_TABLE_ATTR_FIELD_INNER_SRC_IP = 21; - ACL_TABLE_ATTR_FIELD_INNER_DST_IP = 22; - ACL_TABLE_ATTR_FIELD_IN_PORTS = 23; - ACL_TABLE_ATTR_FIELD_OUT_PORTS = 24; - ACL_TABLE_ATTR_FIELD_IN_PORT = 25; - ACL_TABLE_ATTR_FIELD_OUT_PORT = 26; - ACL_TABLE_ATTR_FIELD_SRC_PORT = 27; - ACL_TABLE_ATTR_FIELD_OUTER_VLAN_ID = 28; - ACL_TABLE_ATTR_FIELD_OUTER_VLAN_PRI = 29; - ACL_TABLE_ATTR_FIELD_OUTER_VLAN_CFI = 30; - ACL_TABLE_ATTR_FIELD_INNER_VLAN_ID = 31; - ACL_TABLE_ATTR_FIELD_INNER_VLAN_PRI = 32; - ACL_TABLE_ATTR_FIELD_INNER_VLAN_CFI = 33; - ACL_TABLE_ATTR_FIELD_L4_SRC_PORT = 34; - ACL_TABLE_ATTR_FIELD_L4_DST_PORT = 35; - ACL_TABLE_ATTR_FIELD_INNER_L4_SRC_PORT = 36; - ACL_TABLE_ATTR_FIELD_INNER_L4_DST_PORT = 37; - ACL_TABLE_ATTR_FIELD_ETHER_TYPE = 38; - ACL_TABLE_ATTR_FIELD_INNER_ETHER_TYPE = 39; - ACL_TABLE_ATTR_FIELD_IP_PROTOCOL = 40; - ACL_TABLE_ATTR_FIELD_INNER_IP_PROTOCOL = 41; - ACL_TABLE_ATTR_FIELD_IP_IDENTIFICATION = 42; - ACL_TABLE_ATTR_FIELD_DSCP = 43; - ACL_TABLE_ATTR_FIELD_ECN = 44; - ACL_TABLE_ATTR_FIELD_TTL = 45; - ACL_TABLE_ATTR_FIELD_TOS = 46; - ACL_TABLE_ATTR_FIELD_IP_FLAGS = 47; - ACL_TABLE_ATTR_FIELD_TCP_FLAGS = 48; - ACL_TABLE_ATTR_FIELD_ACL_IP_TYPE = 49; - ACL_TABLE_ATTR_FIELD_ACL_IP_FRAG = 50; - ACL_TABLE_ATTR_FIELD_IPV6_FLOW_LABEL = 51; - ACL_TABLE_ATTR_FIELD_TC = 52; - ACL_TABLE_ATTR_FIELD_ICMP_TYPE = 53; - ACL_TABLE_ATTR_FIELD_ICMP_CODE = 54; - ACL_TABLE_ATTR_FIELD_ICMPV6_TYPE = 55; - ACL_TABLE_ATTR_FIELD_ICMPV6_CODE = 56; - ACL_TABLE_ATTR_FIELD_PACKET_VLAN = 57; - ACL_TABLE_ATTR_FIELD_TUNNEL_VNI = 58; - ACL_TABLE_ATTR_FIELD_HAS_VLAN_TAG = 59; - ACL_TABLE_ATTR_FIELD_MACSEC_SCI = 60; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_LABEL = 61; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_TTL = 62; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_EXP = 63; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_BOS = 64; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_LABEL = 65; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_TTL = 66; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_EXP = 67; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_BOS = 68; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_LABEL = 69; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_TTL = 70; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_EXP = 71; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_BOS = 72; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_LABEL = 73; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_TTL = 74; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_EXP = 75; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_BOS = 76; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_LABEL = 77; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_TTL = 78; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_EXP = 79; - ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_BOS = 80; - ACL_TABLE_ATTR_FIELD_FDB_DST_USER_META = 81; - ACL_TABLE_ATTR_FIELD_ROUTE_DST_USER_META = 82; - ACL_TABLE_ATTR_FIELD_NEIGHBOR_DST_USER_META = 83; - ACL_TABLE_ATTR_FIELD_PORT_USER_META = 84; - ACL_TABLE_ATTR_FIELD_VLAN_USER_META = 85; - ACL_TABLE_ATTR_FIELD_ACL_USER_META = 86; - ACL_TABLE_ATTR_FIELD_FDB_NPU_META_DST_HIT = 87; - ACL_TABLE_ATTR_FIELD_NEIGHBOR_NPU_META_DST_HIT = 88; - ACL_TABLE_ATTR_FIELD_ROUTE_NPU_META_DST_HIT = 89; - ACL_TABLE_ATTR_FIELD_BTH_OPCODE = 90; - ACL_TABLE_ATTR_FIELD_AETH_SYNDROME = 91; - ACL_TABLE_ATTR_USER_DEFINED_FIELD_GROUP_MIN = 92; - ACL_TABLE_ATTR_USER_DEFINED_FIELD_GROUP_MAX = 93; - ACL_TABLE_ATTR_FIELD_ACL_RANGE_TYPE = 94; - ACL_TABLE_ATTR_FIELD_IPV6_NEXT_HEADER = 95; - ACL_TABLE_ATTR_FIELD_GRE_KEY = 96; - ACL_TABLE_ATTR_FIELD_TAM_INT_TYPE = 97; - ACL_TABLE_ATTR_ENTRY_LIST = 98; - ACL_TABLE_ATTR_AVAILABLE_ACL_ENTRY = 99; - ACL_TABLE_ATTR_AVAILABLE_ACL_COUNTER = 100; + ACL_TABLE_ATTR_UNSPECIFIED = 0; + ACL_TABLE_ATTR_ACL_STAGE = 1; + ACL_TABLE_ATTR_ACL_BIND_POINT_TYPE_LIST = 2; + ACL_TABLE_ATTR_SIZE = 3; + ACL_TABLE_ATTR_ACL_ACTION_TYPE_LIST = 4; + ACL_TABLE_ATTR_FIELD_SRC_IPV6 = 5; + ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD3 = 6; + ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD2 = 7; + ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD1 = 8; + ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD0 = 9; + ACL_TABLE_ATTR_FIELD_DST_IPV6 = 10; + ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD3 = 11; + ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD2 = 12; + ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD1 = 13; + ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD0 = 14; + ACL_TABLE_ATTR_FIELD_INNER_SRC_IPV6 = 15; + ACL_TABLE_ATTR_FIELD_INNER_DST_IPV6 = 16; + ACL_TABLE_ATTR_FIELD_SRC_MAC = 17; + ACL_TABLE_ATTR_FIELD_DST_MAC = 18; + ACL_TABLE_ATTR_FIELD_SRC_IP = 19; + ACL_TABLE_ATTR_FIELD_DST_IP = 20; + ACL_TABLE_ATTR_FIELD_INNER_SRC_IP = 21; + ACL_TABLE_ATTR_FIELD_INNER_DST_IP = 22; + ACL_TABLE_ATTR_FIELD_IN_PORTS = 23; + ACL_TABLE_ATTR_FIELD_OUT_PORTS = 24; + ACL_TABLE_ATTR_FIELD_IN_PORT = 25; + ACL_TABLE_ATTR_FIELD_OUT_PORT = 26; + ACL_TABLE_ATTR_FIELD_SRC_PORT = 27; + ACL_TABLE_ATTR_FIELD_OUTER_VLAN_ID = 28; + ACL_TABLE_ATTR_FIELD_OUTER_VLAN_PRI = 29; + ACL_TABLE_ATTR_FIELD_OUTER_VLAN_CFI = 30; + ACL_TABLE_ATTR_FIELD_INNER_VLAN_ID = 31; + ACL_TABLE_ATTR_FIELD_INNER_VLAN_PRI = 32; + ACL_TABLE_ATTR_FIELD_INNER_VLAN_CFI = 33; + ACL_TABLE_ATTR_FIELD_L4_SRC_PORT = 34; + ACL_TABLE_ATTR_FIELD_L4_DST_PORT = 35; + ACL_TABLE_ATTR_FIELD_INNER_L4_SRC_PORT = 36; + ACL_TABLE_ATTR_FIELD_INNER_L4_DST_PORT = 37; + ACL_TABLE_ATTR_FIELD_ETHER_TYPE = 38; + ACL_TABLE_ATTR_FIELD_INNER_ETHER_TYPE = 39; + ACL_TABLE_ATTR_FIELD_IP_PROTOCOL = 40; + ACL_TABLE_ATTR_FIELD_INNER_IP_PROTOCOL = 41; + ACL_TABLE_ATTR_FIELD_IP_IDENTIFICATION = 42; + ACL_TABLE_ATTR_FIELD_DSCP = 43; + ACL_TABLE_ATTR_FIELD_ECN = 44; + ACL_TABLE_ATTR_FIELD_TTL = 45; + ACL_TABLE_ATTR_FIELD_TOS = 46; + ACL_TABLE_ATTR_FIELD_IP_FLAGS = 47; + ACL_TABLE_ATTR_FIELD_TCP_FLAGS = 48; + ACL_TABLE_ATTR_FIELD_ACL_IP_TYPE = 49; + ACL_TABLE_ATTR_FIELD_ACL_IP_FRAG = 50; + ACL_TABLE_ATTR_FIELD_IPV6_FLOW_LABEL = 51; + ACL_TABLE_ATTR_FIELD_TC = 52; + ACL_TABLE_ATTR_FIELD_ICMP_TYPE = 53; + ACL_TABLE_ATTR_FIELD_ICMP_CODE = 54; + ACL_TABLE_ATTR_FIELD_ICMPV6_TYPE = 55; + ACL_TABLE_ATTR_FIELD_ICMPV6_CODE = 56; + ACL_TABLE_ATTR_FIELD_PACKET_VLAN = 57; + ACL_TABLE_ATTR_FIELD_TUNNEL_VNI = 58; + ACL_TABLE_ATTR_FIELD_HAS_VLAN_TAG = 59; + ACL_TABLE_ATTR_FIELD_MACSEC_SCI = 60; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_LABEL = 61; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_TTL = 62; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_EXP = 63; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_BOS = 64; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_LABEL = 65; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_TTL = 66; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_EXP = 67; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_BOS = 68; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_LABEL = 69; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_TTL = 70; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_EXP = 71; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_BOS = 72; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_LABEL = 73; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_TTL = 74; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_EXP = 75; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_BOS = 76; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_LABEL = 77; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_TTL = 78; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_EXP = 79; + ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_BOS = 80; + ACL_TABLE_ATTR_FIELD_FDB_DST_USER_META = 81; + ACL_TABLE_ATTR_FIELD_ROUTE_DST_USER_META = 82; + ACL_TABLE_ATTR_FIELD_NEIGHBOR_DST_USER_META = 83; + ACL_TABLE_ATTR_FIELD_PORT_USER_META = 84; + ACL_TABLE_ATTR_FIELD_VLAN_USER_META = 85; + ACL_TABLE_ATTR_FIELD_ACL_USER_META = 86; + ACL_TABLE_ATTR_FIELD_FDB_NPU_META_DST_HIT = 87; + ACL_TABLE_ATTR_FIELD_NEIGHBOR_NPU_META_DST_HIT = 88; + ACL_TABLE_ATTR_FIELD_ROUTE_NPU_META_DST_HIT = 89; + ACL_TABLE_ATTR_FIELD_BTH_OPCODE = 90; + ACL_TABLE_ATTR_FIELD_AETH_SYNDROME = 91; + ACL_TABLE_ATTR_USER_DEFINED_FIELD_GROUP_MIN = 92; + ACL_TABLE_ATTR_USER_DEFINED_FIELD_GROUP_MAX = 93; + ACL_TABLE_ATTR_FIELD_ACL_RANGE_TYPE = 94; + ACL_TABLE_ATTR_FIELD_IPV6_NEXT_HEADER = 95; + ACL_TABLE_ATTR_FIELD_GRE_KEY = 96; + ACL_TABLE_ATTR_FIELD_TAM_INT_TYPE = 97; + ACL_TABLE_ATTR_ENTRY_LIST = 98; + ACL_TABLE_ATTR_AVAILABLE_ACL_ENTRY = 99; + ACL_TABLE_ATTR_AVAILABLE_ACL_COUNTER = 100; } enum AclEntryAttr { - ACL_ENTRY_ATTR_UNSPECIFIED = 0; - ACL_ENTRY_ATTR_TABLE_ID = 1; - ACL_ENTRY_ATTR_PRIORITY = 2; - ACL_ENTRY_ATTR_ADMIN_STATE = 3; - ACL_ENTRY_ATTR_FIELD_SRC_IPV6 = 4; - ACL_ENTRY_ATTR_FIELD_SRC_IPV6_WORD3 = 5; - ACL_ENTRY_ATTR_FIELD_SRC_IPV6_WORD2 = 6; - ACL_ENTRY_ATTR_FIELD_SRC_IPV6_WORD1 = 7; - ACL_ENTRY_ATTR_FIELD_SRC_IPV6_WORD0 = 8; - ACL_ENTRY_ATTR_FIELD_DST_IPV6 = 9; - ACL_ENTRY_ATTR_FIELD_DST_IPV6_WORD3 = 10; - ACL_ENTRY_ATTR_FIELD_DST_IPV6_WORD2 = 11; - ACL_ENTRY_ATTR_FIELD_DST_IPV6_WORD1 = 12; - ACL_ENTRY_ATTR_FIELD_DST_IPV6_WORD0 = 13; - ACL_ENTRY_ATTR_FIELD_INNER_SRC_IPV6 = 14; - ACL_ENTRY_ATTR_FIELD_INNER_DST_IPV6 = 15; - ACL_ENTRY_ATTR_FIELD_SRC_MAC = 16; - ACL_ENTRY_ATTR_FIELD_DST_MAC = 17; - ACL_ENTRY_ATTR_FIELD_SRC_IP = 18; - ACL_ENTRY_ATTR_FIELD_DST_IP = 19; - ACL_ENTRY_ATTR_FIELD_INNER_SRC_IP = 20; - ACL_ENTRY_ATTR_FIELD_INNER_DST_IP = 21; - ACL_ENTRY_ATTR_FIELD_IN_PORTS = 22; - ACL_ENTRY_ATTR_FIELD_OUT_PORTS = 23; - ACL_ENTRY_ATTR_FIELD_IN_PORT = 24; - ACL_ENTRY_ATTR_FIELD_OUT_PORT = 25; - ACL_ENTRY_ATTR_FIELD_SRC_PORT = 26; - ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_ID = 27; - ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_PRI = 28; - ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_CFI = 29; - ACL_ENTRY_ATTR_FIELD_INNER_VLAN_ID = 30; - ACL_ENTRY_ATTR_FIELD_INNER_VLAN_PRI = 31; - ACL_ENTRY_ATTR_FIELD_INNER_VLAN_CFI = 32; - ACL_ENTRY_ATTR_FIELD_L4_SRC_PORT = 33; - ACL_ENTRY_ATTR_FIELD_L4_DST_PORT = 34; - ACL_ENTRY_ATTR_FIELD_INNER_L4_SRC_PORT = 35; - ACL_ENTRY_ATTR_FIELD_INNER_L4_DST_PORT = 36; - ACL_ENTRY_ATTR_FIELD_ETHER_TYPE = 37; - ACL_ENTRY_ATTR_FIELD_INNER_ETHER_TYPE = 38; - ACL_ENTRY_ATTR_FIELD_IP_PROTOCOL = 39; - ACL_ENTRY_ATTR_FIELD_INNER_IP_PROTOCOL = 40; - ACL_ENTRY_ATTR_FIELD_IP_IDENTIFICATION = 41; - ACL_ENTRY_ATTR_FIELD_DSCP = 42; - ACL_ENTRY_ATTR_FIELD_ECN = 43; - ACL_ENTRY_ATTR_FIELD_TTL = 44; - ACL_ENTRY_ATTR_FIELD_TOS = 45; - ACL_ENTRY_ATTR_FIELD_IP_FLAGS = 46; - ACL_ENTRY_ATTR_FIELD_TCP_FLAGS = 47; - ACL_ENTRY_ATTR_FIELD_ACL_IP_TYPE = 48; - ACL_ENTRY_ATTR_FIELD_ACL_IP_FRAG = 49; - ACL_ENTRY_ATTR_FIELD_IPV6_FLOW_LABEL = 50; - ACL_ENTRY_ATTR_FIELD_TC = 51; - ACL_ENTRY_ATTR_FIELD_ICMP_TYPE = 52; - ACL_ENTRY_ATTR_FIELD_ICMP_CODE = 53; - ACL_ENTRY_ATTR_FIELD_ICMPV6_TYPE = 54; - ACL_ENTRY_ATTR_FIELD_ICMPV6_CODE = 55; - ACL_ENTRY_ATTR_FIELD_PACKET_VLAN = 56; - ACL_ENTRY_ATTR_FIELD_TUNNEL_VNI = 57; - ACL_ENTRY_ATTR_FIELD_HAS_VLAN_TAG = 58; - ACL_ENTRY_ATTR_FIELD_MACSEC_SCI = 59; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL0_LABEL = 60; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL0_TTL = 61; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL0_EXP = 62; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL0_BOS = 63; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL1_LABEL = 64; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL1_TTL = 65; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL1_EXP = 66; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL1_BOS = 67; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL2_LABEL = 68; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL2_TTL = 69; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL2_EXP = 70; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL2_BOS = 71; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL3_LABEL = 72; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL3_TTL = 73; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL3_EXP = 74; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL3_BOS = 75; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL4_LABEL = 76; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL4_TTL = 77; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL4_EXP = 78; - ACL_ENTRY_ATTR_FIELD_MPLS_LABEL4_BOS = 79; - ACL_ENTRY_ATTR_FIELD_FDB_DST_USER_META = 80; - ACL_ENTRY_ATTR_FIELD_ROUTE_DST_USER_META = 81; - ACL_ENTRY_ATTR_FIELD_NEIGHBOR_DST_USER_META = 82; - ACL_ENTRY_ATTR_FIELD_PORT_USER_META = 83; - ACL_ENTRY_ATTR_FIELD_VLAN_USER_META = 84; - ACL_ENTRY_ATTR_FIELD_ACL_USER_META = 85; - ACL_ENTRY_ATTR_FIELD_FDB_NPU_META_DST_HIT = 86; - ACL_ENTRY_ATTR_FIELD_NEIGHBOR_NPU_META_DST_HIT = 87; - ACL_ENTRY_ATTR_FIELD_ROUTE_NPU_META_DST_HIT = 88; - ACL_ENTRY_ATTR_FIELD_BTH_OPCODE = 89; - ACL_ENTRY_ATTR_FIELD_AETH_SYNDROME = 90; - ACL_ENTRY_ATTR_USER_DEFINED_FIELD_GROUP_MIN = 91; - ACL_ENTRY_ATTR_USER_DEFINED_FIELD_GROUP_MAX = 92; - ACL_ENTRY_ATTR_FIELD_ACL_RANGE_TYPE = 93; - ACL_ENTRY_ATTR_FIELD_IPV6_NEXT_HEADER = 94; - ACL_ENTRY_ATTR_FIELD_GRE_KEY = 95; - ACL_ENTRY_ATTR_FIELD_TAM_INT_TYPE = 96; - ACL_ENTRY_ATTR_ACTION_REDIRECT = 97; - ACL_ENTRY_ATTR_ACTION_ENDPOINT_IP = 98; - ACL_ENTRY_ATTR_ACTION_REDIRECT_LIST = 99; - ACL_ENTRY_ATTR_ACTION_PACKET_ACTION = 100; - ACL_ENTRY_ATTR_ACTION_FLOOD = 101; - ACL_ENTRY_ATTR_ACTION_COUNTER = 102; - ACL_ENTRY_ATTR_ACTION_MIRROR_INGRESS = 103; - ACL_ENTRY_ATTR_ACTION_MIRROR_EGRESS = 104; - ACL_ENTRY_ATTR_ACTION_SET_POLICER = 105; - ACL_ENTRY_ATTR_ACTION_DECREMENT_TTL = 106; - ACL_ENTRY_ATTR_ACTION_SET_TC = 107; - ACL_ENTRY_ATTR_ACTION_SET_PACKET_COLOR = 108; - ACL_ENTRY_ATTR_ACTION_SET_INNER_VLAN_ID = 109; - ACL_ENTRY_ATTR_ACTION_SET_INNER_VLAN_PRI = 110; - ACL_ENTRY_ATTR_ACTION_SET_OUTER_VLAN_ID = 111; - ACL_ENTRY_ATTR_ACTION_SET_OUTER_VLAN_PRI = 112; - ACL_ENTRY_ATTR_ACTION_ADD_VLAN_ID = 113; - ACL_ENTRY_ATTR_ACTION_ADD_VLAN_PRI = 114; - ACL_ENTRY_ATTR_ACTION_SET_SRC_MAC = 115; - ACL_ENTRY_ATTR_ACTION_SET_DST_MAC = 116; - ACL_ENTRY_ATTR_ACTION_SET_SRC_IP = 117; - ACL_ENTRY_ATTR_ACTION_SET_DST_IP = 118; - ACL_ENTRY_ATTR_ACTION_SET_SRC_IPV6 = 119; - ACL_ENTRY_ATTR_ACTION_SET_DST_IPV6 = 120; - ACL_ENTRY_ATTR_ACTION_SET_DSCP = 121; - ACL_ENTRY_ATTR_ACTION_SET_ECN = 122; - ACL_ENTRY_ATTR_ACTION_SET_L4_SRC_PORT = 123; - ACL_ENTRY_ATTR_ACTION_SET_L4_DST_PORT = 124; - ACL_ENTRY_ATTR_ACTION_INGRESS_SAMPLEPACKET_ENABLE = 125; - ACL_ENTRY_ATTR_ACTION_EGRESS_SAMPLEPACKET_ENABLE = 126; - ACL_ENTRY_ATTR_ACTION_SET_ACL_META_DATA = 127; - ACL_ENTRY_ATTR_ACTION_EGRESS_BLOCK_PORT_LIST = 128; - ACL_ENTRY_ATTR_ACTION_SET_USER_TRAP_ID = 129; - ACL_ENTRY_ATTR_ACTION_SET_DO_NOT_LEARN = 130; - ACL_ENTRY_ATTR_ACTION_ACL_DTEL_FLOW_OP = 131; - ACL_ENTRY_ATTR_ACTION_DTEL_INT_SESSION = 132; - ACL_ENTRY_ATTR_ACTION_DTEL_DROP_REPORT_ENABLE = 133; - ACL_ENTRY_ATTR_ACTION_DTEL_TAIL_DROP_REPORT_ENABLE = 134; - ACL_ENTRY_ATTR_ACTION_DTEL_FLOW_SAMPLE_PERCENT = 135; - ACL_ENTRY_ATTR_ACTION_DTEL_REPORT_ALL_PACKETS = 136; - ACL_ENTRY_ATTR_ACTION_NO_NAT = 137; - ACL_ENTRY_ATTR_ACTION_INT_INSERT = 138; - ACL_ENTRY_ATTR_ACTION_INT_DELETE = 139; - ACL_ENTRY_ATTR_ACTION_INT_REPORT_FLOW = 140; - ACL_ENTRY_ATTR_ACTION_INT_REPORT_DROPS = 141; - ACL_ENTRY_ATTR_ACTION_INT_REPORT_TAIL_DROPS = 142; - ACL_ENTRY_ATTR_ACTION_TAM_INT_OBJECT = 143; - ACL_ENTRY_ATTR_ACTION_SET_ISOLATION_GROUP = 144; - ACL_ENTRY_ATTR_ACTION_MACSEC_FLOW = 145; - ACL_ENTRY_ATTR_ACTION_SET_LAG_HASH_ID = 146; - ACL_ENTRY_ATTR_ACTION_SET_ECMP_HASH_ID = 147; - ACL_ENTRY_ATTR_ACTION_SET_VRF = 148; - ACL_ENTRY_ATTR_ACTION_SET_FORWARDING_CLASS = 149; + ACL_ENTRY_ATTR_UNSPECIFIED = 0; + ACL_ENTRY_ATTR_TABLE_ID = 1; + ACL_ENTRY_ATTR_PRIORITY = 2; + ACL_ENTRY_ATTR_ADMIN_STATE = 3; + ACL_ENTRY_ATTR_FIELD_SRC_IPV6 = 4; + ACL_ENTRY_ATTR_FIELD_SRC_IPV6_WORD3 = 5; + ACL_ENTRY_ATTR_FIELD_SRC_IPV6_WORD2 = 6; + ACL_ENTRY_ATTR_FIELD_SRC_IPV6_WORD1 = 7; + ACL_ENTRY_ATTR_FIELD_SRC_IPV6_WORD0 = 8; + ACL_ENTRY_ATTR_FIELD_DST_IPV6 = 9; + ACL_ENTRY_ATTR_FIELD_DST_IPV6_WORD3 = 10; + ACL_ENTRY_ATTR_FIELD_DST_IPV6_WORD2 = 11; + ACL_ENTRY_ATTR_FIELD_DST_IPV6_WORD1 = 12; + ACL_ENTRY_ATTR_FIELD_DST_IPV6_WORD0 = 13; + ACL_ENTRY_ATTR_FIELD_INNER_SRC_IPV6 = 14; + ACL_ENTRY_ATTR_FIELD_INNER_DST_IPV6 = 15; + ACL_ENTRY_ATTR_FIELD_SRC_MAC = 16; + ACL_ENTRY_ATTR_FIELD_DST_MAC = 17; + ACL_ENTRY_ATTR_FIELD_SRC_IP = 18; + ACL_ENTRY_ATTR_FIELD_DST_IP = 19; + ACL_ENTRY_ATTR_FIELD_INNER_SRC_IP = 20; + ACL_ENTRY_ATTR_FIELD_INNER_DST_IP = 21; + ACL_ENTRY_ATTR_FIELD_IN_PORTS = 22; + ACL_ENTRY_ATTR_FIELD_OUT_PORTS = 23; + ACL_ENTRY_ATTR_FIELD_IN_PORT = 24; + ACL_ENTRY_ATTR_FIELD_OUT_PORT = 25; + ACL_ENTRY_ATTR_FIELD_SRC_PORT = 26; + ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_ID = 27; + ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_PRI = 28; + ACL_ENTRY_ATTR_FIELD_OUTER_VLAN_CFI = 29; + ACL_ENTRY_ATTR_FIELD_INNER_VLAN_ID = 30; + ACL_ENTRY_ATTR_FIELD_INNER_VLAN_PRI = 31; + ACL_ENTRY_ATTR_FIELD_INNER_VLAN_CFI = 32; + ACL_ENTRY_ATTR_FIELD_L4_SRC_PORT = 33; + ACL_ENTRY_ATTR_FIELD_L4_DST_PORT = 34; + ACL_ENTRY_ATTR_FIELD_INNER_L4_SRC_PORT = 35; + ACL_ENTRY_ATTR_FIELD_INNER_L4_DST_PORT = 36; + ACL_ENTRY_ATTR_FIELD_ETHER_TYPE = 37; + ACL_ENTRY_ATTR_FIELD_INNER_ETHER_TYPE = 38; + ACL_ENTRY_ATTR_FIELD_IP_PROTOCOL = 39; + ACL_ENTRY_ATTR_FIELD_INNER_IP_PROTOCOL = 40; + ACL_ENTRY_ATTR_FIELD_IP_IDENTIFICATION = 41; + ACL_ENTRY_ATTR_FIELD_DSCP = 42; + ACL_ENTRY_ATTR_FIELD_ECN = 43; + ACL_ENTRY_ATTR_FIELD_TTL = 44; + ACL_ENTRY_ATTR_FIELD_TOS = 45; + ACL_ENTRY_ATTR_FIELD_IP_FLAGS = 46; + ACL_ENTRY_ATTR_FIELD_TCP_FLAGS = 47; + ACL_ENTRY_ATTR_FIELD_ACL_IP_TYPE = 48; + ACL_ENTRY_ATTR_FIELD_ACL_IP_FRAG = 49; + ACL_ENTRY_ATTR_FIELD_IPV6_FLOW_LABEL = 50; + ACL_ENTRY_ATTR_FIELD_TC = 51; + ACL_ENTRY_ATTR_FIELD_ICMP_TYPE = 52; + ACL_ENTRY_ATTR_FIELD_ICMP_CODE = 53; + ACL_ENTRY_ATTR_FIELD_ICMPV6_TYPE = 54; + ACL_ENTRY_ATTR_FIELD_ICMPV6_CODE = 55; + ACL_ENTRY_ATTR_FIELD_PACKET_VLAN = 56; + ACL_ENTRY_ATTR_FIELD_TUNNEL_VNI = 57; + ACL_ENTRY_ATTR_FIELD_HAS_VLAN_TAG = 58; + ACL_ENTRY_ATTR_FIELD_MACSEC_SCI = 59; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL0_LABEL = 60; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL0_TTL = 61; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL0_EXP = 62; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL0_BOS = 63; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL1_LABEL = 64; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL1_TTL = 65; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL1_EXP = 66; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL1_BOS = 67; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL2_LABEL = 68; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL2_TTL = 69; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL2_EXP = 70; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL2_BOS = 71; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL3_LABEL = 72; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL3_TTL = 73; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL3_EXP = 74; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL3_BOS = 75; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL4_LABEL = 76; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL4_TTL = 77; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL4_EXP = 78; + ACL_ENTRY_ATTR_FIELD_MPLS_LABEL4_BOS = 79; + ACL_ENTRY_ATTR_FIELD_FDB_DST_USER_META = 80; + ACL_ENTRY_ATTR_FIELD_ROUTE_DST_USER_META = 81; + ACL_ENTRY_ATTR_FIELD_NEIGHBOR_DST_USER_META = 82; + ACL_ENTRY_ATTR_FIELD_PORT_USER_META = 83; + ACL_ENTRY_ATTR_FIELD_VLAN_USER_META = 84; + ACL_ENTRY_ATTR_FIELD_ACL_USER_META = 85; + ACL_ENTRY_ATTR_FIELD_FDB_NPU_META_DST_HIT = 86; + ACL_ENTRY_ATTR_FIELD_NEIGHBOR_NPU_META_DST_HIT = 87; + ACL_ENTRY_ATTR_FIELD_ROUTE_NPU_META_DST_HIT = 88; + ACL_ENTRY_ATTR_FIELD_BTH_OPCODE = 89; + ACL_ENTRY_ATTR_FIELD_AETH_SYNDROME = 90; + ACL_ENTRY_ATTR_USER_DEFINED_FIELD_GROUP_MIN = 91; + ACL_ENTRY_ATTR_USER_DEFINED_FIELD_GROUP_MAX = 92; + ACL_ENTRY_ATTR_FIELD_ACL_RANGE_TYPE = 93; + ACL_ENTRY_ATTR_FIELD_IPV6_NEXT_HEADER = 94; + ACL_ENTRY_ATTR_FIELD_GRE_KEY = 95; + ACL_ENTRY_ATTR_FIELD_TAM_INT_TYPE = 96; + ACL_ENTRY_ATTR_ACTION_REDIRECT = 97; + ACL_ENTRY_ATTR_ACTION_ENDPOINT_IP = 98; + ACL_ENTRY_ATTR_ACTION_REDIRECT_LIST = 99; + ACL_ENTRY_ATTR_ACTION_PACKET_ACTION = 100; + ACL_ENTRY_ATTR_ACTION_FLOOD = 101; + ACL_ENTRY_ATTR_ACTION_COUNTER = 102; + ACL_ENTRY_ATTR_ACTION_MIRROR_INGRESS = 103; + ACL_ENTRY_ATTR_ACTION_MIRROR_EGRESS = 104; + ACL_ENTRY_ATTR_ACTION_SET_POLICER = 105; + ACL_ENTRY_ATTR_ACTION_DECREMENT_TTL = 106; + ACL_ENTRY_ATTR_ACTION_SET_TC = 107; + ACL_ENTRY_ATTR_ACTION_SET_PACKET_COLOR = 108; + ACL_ENTRY_ATTR_ACTION_SET_INNER_VLAN_ID = 109; + ACL_ENTRY_ATTR_ACTION_SET_INNER_VLAN_PRI = 110; + ACL_ENTRY_ATTR_ACTION_SET_OUTER_VLAN_ID = 111; + ACL_ENTRY_ATTR_ACTION_SET_OUTER_VLAN_PRI = 112; + ACL_ENTRY_ATTR_ACTION_ADD_VLAN_ID = 113; + ACL_ENTRY_ATTR_ACTION_ADD_VLAN_PRI = 114; + ACL_ENTRY_ATTR_ACTION_SET_SRC_MAC = 115; + ACL_ENTRY_ATTR_ACTION_SET_DST_MAC = 116; + ACL_ENTRY_ATTR_ACTION_SET_SRC_IP = 117; + ACL_ENTRY_ATTR_ACTION_SET_DST_IP = 118; + ACL_ENTRY_ATTR_ACTION_SET_SRC_IPV6 = 119; + ACL_ENTRY_ATTR_ACTION_SET_DST_IPV6 = 120; + ACL_ENTRY_ATTR_ACTION_SET_DSCP = 121; + ACL_ENTRY_ATTR_ACTION_SET_ECN = 122; + ACL_ENTRY_ATTR_ACTION_SET_L4_SRC_PORT = 123; + ACL_ENTRY_ATTR_ACTION_SET_L4_DST_PORT = 124; + ACL_ENTRY_ATTR_ACTION_INGRESS_SAMPLEPACKET_ENABLE = 125; + ACL_ENTRY_ATTR_ACTION_EGRESS_SAMPLEPACKET_ENABLE = 126; + ACL_ENTRY_ATTR_ACTION_SET_ACL_META_DATA = 127; + ACL_ENTRY_ATTR_ACTION_EGRESS_BLOCK_PORT_LIST = 128; + ACL_ENTRY_ATTR_ACTION_SET_USER_TRAP_ID = 129; + ACL_ENTRY_ATTR_ACTION_SET_DO_NOT_LEARN = 130; + ACL_ENTRY_ATTR_ACTION_ACL_DTEL_FLOW_OP = 131; + ACL_ENTRY_ATTR_ACTION_DTEL_INT_SESSION = 132; + ACL_ENTRY_ATTR_ACTION_DTEL_DROP_REPORT_ENABLE = 133; + ACL_ENTRY_ATTR_ACTION_DTEL_TAIL_DROP_REPORT_ENABLE = 134; + ACL_ENTRY_ATTR_ACTION_DTEL_FLOW_SAMPLE_PERCENT = 135; + ACL_ENTRY_ATTR_ACTION_DTEL_REPORT_ALL_PACKETS = 136; + ACL_ENTRY_ATTR_ACTION_NO_NAT = 137; + ACL_ENTRY_ATTR_ACTION_INT_INSERT = 138; + ACL_ENTRY_ATTR_ACTION_INT_DELETE = 139; + ACL_ENTRY_ATTR_ACTION_INT_REPORT_FLOW = 140; + ACL_ENTRY_ATTR_ACTION_INT_REPORT_DROPS = 141; + ACL_ENTRY_ATTR_ACTION_INT_REPORT_TAIL_DROPS = 142; + ACL_ENTRY_ATTR_ACTION_TAM_INT_OBJECT = 143; + ACL_ENTRY_ATTR_ACTION_SET_ISOLATION_GROUP = 144; + ACL_ENTRY_ATTR_ACTION_MACSEC_FLOW = 145; + ACL_ENTRY_ATTR_ACTION_SET_LAG_HASH_ID = 146; + ACL_ENTRY_ATTR_ACTION_SET_ECMP_HASH_ID = 147; + ACL_ENTRY_ATTR_ACTION_SET_VRF = 148; + ACL_ENTRY_ATTR_ACTION_SET_FORWARDING_CLASS = 149; } enum AclCounterAttr { - ACL_COUNTER_ATTR_UNSPECIFIED = 0; - ACL_COUNTER_ATTR_TABLE_ID = 1; - ACL_COUNTER_ATTR_ENABLE_PACKET_COUNT = 2; - ACL_COUNTER_ATTR_ENABLE_BYTE_COUNT = 3; - ACL_COUNTER_ATTR_PACKETS = 4; - ACL_COUNTER_ATTR_BYTES = 5; + ACL_COUNTER_ATTR_UNSPECIFIED = 0; + ACL_COUNTER_ATTR_TABLE_ID = 1; + ACL_COUNTER_ATTR_ENABLE_PACKET_COUNT = 2; + ACL_COUNTER_ATTR_ENABLE_BYTE_COUNT = 3; + ACL_COUNTER_ATTR_PACKETS = 4; + ACL_COUNTER_ATTR_BYTES = 5; } enum AclRangeAttr { - ACL_RANGE_ATTR_UNSPECIFIED = 0; - ACL_RANGE_ATTR_TYPE = 1; - ACL_RANGE_ATTR_LIMIT = 2; + ACL_RANGE_ATTR_UNSPECIFIED = 0; + ACL_RANGE_ATTR_TYPE = 1; + ACL_RANGE_ATTR_LIMIT = 2; } enum AclTableGroupAttr { - ACL_TABLE_GROUP_ATTR_UNSPECIFIED = 0; - ACL_TABLE_GROUP_ATTR_ACL_STAGE = 1; - ACL_TABLE_GROUP_ATTR_ACL_BIND_POINT_TYPE_LIST = 2; - ACL_TABLE_GROUP_ATTR_TYPE = 3; - ACL_TABLE_GROUP_ATTR_MEMBER_LIST = 4; + ACL_TABLE_GROUP_ATTR_UNSPECIFIED = 0; + ACL_TABLE_GROUP_ATTR_ACL_STAGE = 1; + ACL_TABLE_GROUP_ATTR_ACL_BIND_POINT_TYPE_LIST = 2; + ACL_TABLE_GROUP_ATTR_TYPE = 3; + ACL_TABLE_GROUP_ATTR_MEMBER_LIST = 4; } enum AclTableGroupMemberAttr { - ACL_TABLE_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; - ACL_TABLE_GROUP_MEMBER_ATTR_ACL_TABLE_GROUP_ID = 1; - ACL_TABLE_GROUP_MEMBER_ATTR_ACL_TABLE_ID = 2; - ACL_TABLE_GROUP_MEMBER_ATTR_PRIORITY = 3; + ACL_TABLE_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; + ACL_TABLE_GROUP_MEMBER_ATTR_ACL_TABLE_GROUP_ID = 1; + ACL_TABLE_GROUP_MEMBER_ATTR_ACL_TABLE_ID = 2; + ACL_TABLE_GROUP_MEMBER_ATTR_PRIORITY = 3; } message CreateAclTableRequest { - uint64 switch = 1; - - AclStage acl_stage = 2; - repeated AclBindPointType acl_bind_point_type_list = 3; - uint32 size = 4; - repeated AclActionType acl_action_type_list = 5; - bool field_src_ipv6 = 6; - bool field_src_ipv6_word3 = 7; - bool field_src_ipv6_word2 = 8; - bool field_src_ipv6_word1 = 9; - bool field_src_ipv6_word0 = 10; - bool field_dst_ipv6 = 11; - bool field_dst_ipv6_word3 = 12; - bool field_dst_ipv6_word2 = 13; - bool field_dst_ipv6_word1 = 14; - bool field_dst_ipv6_word0 = 15; - bool field_inner_src_ipv6 = 16; - bool field_inner_dst_ipv6 = 17; - bool field_src_mac = 18; - bool field_dst_mac = 19; - bool field_src_ip = 20; - bool field_dst_ip = 21; - bool field_inner_src_ip = 22; - bool field_inner_dst_ip = 23; - bool field_in_ports = 24; - bool field_out_ports = 25; - bool field_in_port = 26; - bool field_out_port = 27; - bool field_src_port = 28; - bool field_outer_vlan_id = 29; - bool field_outer_vlan_pri = 30; - bool field_outer_vlan_cfi = 31; - bool field_inner_vlan_id = 32; - bool field_inner_vlan_pri = 33; - bool field_inner_vlan_cfi = 34; - bool field_l4_src_port = 35; - bool field_l4_dst_port = 36; - bool field_inner_l4_src_port = 37; - bool field_inner_l4_dst_port = 38; - bool field_ether_type = 39; - bool field_inner_ether_type = 40; - bool field_ip_protocol = 41; - bool field_inner_ip_protocol = 42; - bool field_ip_identification = 43; - bool field_dscp = 44; - bool field_ecn = 45; - bool field_ttl = 46; - bool field_tos = 47; - bool field_ip_flags = 48; - bool field_tcp_flags = 49; - bool field_acl_ip_type = 50; - bool field_acl_ip_frag = 51; - bool field_ipv6_flow_label = 52; - bool field_tc = 53; - bool field_icmp_type = 54; - bool field_icmp_code = 55; - bool field_icmpv6_type = 56; - bool field_icmpv6_code = 57; - bool field_packet_vlan = 58; - bool field_tunnel_vni = 59; - bool field_has_vlan_tag = 60; - bool field_macsec_sci = 61; - bool field_mpls_label0_label = 62; - bool field_mpls_label0_ttl = 63; - bool field_mpls_label0_exp = 64; - bool field_mpls_label0_bos = 65; - bool field_mpls_label1_label = 66; - bool field_mpls_label1_ttl = 67; - bool field_mpls_label1_exp = 68; - bool field_mpls_label1_bos = 69; - bool field_mpls_label2_label = 70; - bool field_mpls_label2_ttl = 71; - bool field_mpls_label2_exp = 72; - bool field_mpls_label2_bos = 73; - bool field_mpls_label3_label = 74; - bool field_mpls_label3_ttl = 75; - bool field_mpls_label3_exp = 76; - bool field_mpls_label3_bos = 77; - bool field_mpls_label4_label = 78; - bool field_mpls_label4_ttl = 79; - bool field_mpls_label4_exp = 80; - bool field_mpls_label4_bos = 81; - bool field_fdb_dst_user_meta = 82; - bool field_route_dst_user_meta = 83; - bool field_neighbor_dst_user_meta = 84; - bool field_port_user_meta = 85; - bool field_vlan_user_meta = 86; - bool field_acl_user_meta = 87; - bool field_fdb_npu_meta_dst_hit = 88; - bool field_neighbor_npu_meta_dst_hit = 89; - bool field_route_npu_meta_dst_hit = 90; - bool field_bth_opcode = 91; - bool field_aeth_syndrome = 92; - uint64 user_defined_field_group_min = 93; - uint64 user_defined_field_group_max = 94; - repeated AclRangeType field_acl_range_type = 95; - bool field_ipv6_next_header = 96; - bool field_gre_key = 97; - bool field_tam_int_type = 98; - + uint64 switch = 1; + optional AclStage acl_stage = 2 [(attr_enum_value) = 1]; + repeated AclBindPointType acl_bind_point_type_list = 3 + [(attr_enum_value) = 2]; + optional uint32 size = 4 [(attr_enum_value) = 3]; + repeated AclActionType acl_action_type_list = 5 [(attr_enum_value) = 4]; + optional bool field_src_ipv6 = 6 [(attr_enum_value) = 5]; + optional bool field_src_ipv6_word3 = 7 [(attr_enum_value) = 6]; + optional bool field_src_ipv6_word2 = 8 [(attr_enum_value) = 7]; + optional bool field_src_ipv6_word1 = 9 [(attr_enum_value) = 8]; + optional bool field_src_ipv6_word0 = 10 [(attr_enum_value) = 9]; + optional bool field_dst_ipv6 = 11 [(attr_enum_value) = 10]; + optional bool field_dst_ipv6_word3 = 12 [(attr_enum_value) = 11]; + optional bool field_dst_ipv6_word2 = 13 [(attr_enum_value) = 12]; + optional bool field_dst_ipv6_word1 = 14 [(attr_enum_value) = 13]; + optional bool field_dst_ipv6_word0 = 15 [(attr_enum_value) = 14]; + optional bool field_inner_src_ipv6 = 16 [(attr_enum_value) = 15]; + optional bool field_inner_dst_ipv6 = 17 [(attr_enum_value) = 16]; + optional bool field_src_mac = 18 [(attr_enum_value) = 17]; + optional bool field_dst_mac = 19 [(attr_enum_value) = 18]; + optional bool field_src_ip = 20 [(attr_enum_value) = 19]; + optional bool field_dst_ip = 21 [(attr_enum_value) = 20]; + optional bool field_inner_src_ip = 22 [(attr_enum_value) = 21]; + optional bool field_inner_dst_ip = 23 [(attr_enum_value) = 22]; + optional bool field_in_ports = 24 [(attr_enum_value) = 23]; + optional bool field_out_ports = 25 [(attr_enum_value) = 24]; + optional bool field_in_port = 26 [(attr_enum_value) = 25]; + optional bool field_out_port = 27 [(attr_enum_value) = 26]; + optional bool field_src_port = 28 [(attr_enum_value) = 27]; + optional bool field_outer_vlan_id = 29 [(attr_enum_value) = 28]; + optional bool field_outer_vlan_pri = 30 [(attr_enum_value) = 29]; + optional bool field_outer_vlan_cfi = 31 [(attr_enum_value) = 30]; + optional bool field_inner_vlan_id = 32 [(attr_enum_value) = 31]; + optional bool field_inner_vlan_pri = 33 [(attr_enum_value) = 32]; + optional bool field_inner_vlan_cfi = 34 [(attr_enum_value) = 33]; + optional bool field_l4_src_port = 35 [(attr_enum_value) = 34]; + optional bool field_l4_dst_port = 36 [(attr_enum_value) = 35]; + optional bool field_inner_l4_src_port = 37 [(attr_enum_value) = 36]; + optional bool field_inner_l4_dst_port = 38 [(attr_enum_value) = 37]; + optional bool field_ether_type = 39 [(attr_enum_value) = 38]; + optional bool field_inner_ether_type = 40 [(attr_enum_value) = 39]; + optional bool field_ip_protocol = 41 [(attr_enum_value) = 40]; + optional bool field_inner_ip_protocol = 42 [(attr_enum_value) = 41]; + optional bool field_ip_identification = 43 [(attr_enum_value) = 42]; + optional bool field_dscp = 44 [(attr_enum_value) = 43]; + optional bool field_ecn = 45 [(attr_enum_value) = 44]; + optional bool field_ttl = 46 [(attr_enum_value) = 45]; + optional bool field_tos = 47 [(attr_enum_value) = 46]; + optional bool field_ip_flags = 48 [(attr_enum_value) = 47]; + optional bool field_tcp_flags = 49 [(attr_enum_value) = 48]; + optional bool field_acl_ip_type = 50 [(attr_enum_value) = 49]; + optional bool field_acl_ip_frag = 51 [(attr_enum_value) = 50]; + optional bool field_ipv6_flow_label = 52 [(attr_enum_value) = 51]; + optional bool field_tc = 53 [(attr_enum_value) = 52]; + optional bool field_icmp_type = 54 [(attr_enum_value) = 53]; + optional bool field_icmp_code = 55 [(attr_enum_value) = 54]; + optional bool field_icmpv6_type = 56 [(attr_enum_value) = 55]; + optional bool field_icmpv6_code = 57 [(attr_enum_value) = 56]; + optional bool field_packet_vlan = 58 [(attr_enum_value) = 57]; + optional bool field_tunnel_vni = 59 [(attr_enum_value) = 58]; + optional bool field_has_vlan_tag = 60 [(attr_enum_value) = 59]; + optional bool field_macsec_sci = 61 [(attr_enum_value) = 60]; + optional bool field_mpls_label0_label = 62 [(attr_enum_value) = 61]; + optional bool field_mpls_label0_ttl = 63 [(attr_enum_value) = 62]; + optional bool field_mpls_label0_exp = 64 [(attr_enum_value) = 63]; + optional bool field_mpls_label0_bos = 65 [(attr_enum_value) = 64]; + optional bool field_mpls_label1_label = 66 [(attr_enum_value) = 65]; + optional bool field_mpls_label1_ttl = 67 [(attr_enum_value) = 66]; + optional bool field_mpls_label1_exp = 68 [(attr_enum_value) = 67]; + optional bool field_mpls_label1_bos = 69 [(attr_enum_value) = 68]; + optional bool field_mpls_label2_label = 70 [(attr_enum_value) = 69]; + optional bool field_mpls_label2_ttl = 71 [(attr_enum_value) = 70]; + optional bool field_mpls_label2_exp = 72 [(attr_enum_value) = 71]; + optional bool field_mpls_label2_bos = 73 [(attr_enum_value) = 72]; + optional bool field_mpls_label3_label = 74 [(attr_enum_value) = 73]; + optional bool field_mpls_label3_ttl = 75 [(attr_enum_value) = 74]; + optional bool field_mpls_label3_exp = 76 [(attr_enum_value) = 75]; + optional bool field_mpls_label3_bos = 77 [(attr_enum_value) = 76]; + optional bool field_mpls_label4_label = 78 [(attr_enum_value) = 77]; + optional bool field_mpls_label4_ttl = 79 [(attr_enum_value) = 78]; + optional bool field_mpls_label4_exp = 80 [(attr_enum_value) = 79]; + optional bool field_mpls_label4_bos = 81 [(attr_enum_value) = 80]; + optional bool field_fdb_dst_user_meta = 82 [(attr_enum_value) = 81]; + optional bool field_route_dst_user_meta = 83 [(attr_enum_value) = 82]; + optional bool field_neighbor_dst_user_meta = 84 [(attr_enum_value) = 83]; + optional bool field_port_user_meta = 85 [(attr_enum_value) = 84]; + optional bool field_vlan_user_meta = 86 [(attr_enum_value) = 85]; + optional bool field_acl_user_meta = 87 [(attr_enum_value) = 86]; + optional bool field_fdb_npu_meta_dst_hit = 88 [(attr_enum_value) = 87]; + optional bool field_neighbor_npu_meta_dst_hit = 89 [(attr_enum_value) = 88]; + optional bool field_route_npu_meta_dst_hit = 90 [(attr_enum_value) = 89]; + optional bool field_bth_opcode = 91 [(attr_enum_value) = 90]; + optional bool field_aeth_syndrome = 92 [(attr_enum_value) = 91]; + optional uint64 user_defined_field_group_min = 93 [(attr_enum_value) = 92]; + optional uint64 user_defined_field_group_max = 94 [(attr_enum_value) = 93]; + repeated AclRangeType field_acl_range_type = 95 [(attr_enum_value) = 94]; + optional bool field_ipv6_next_header = 96 [(attr_enum_value) = 95]; + optional bool field_gre_key = 97 [(attr_enum_value) = 96]; + optional bool field_tam_int_type = 98 [(attr_enum_value) = 97]; } message CreateAclTableResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveAclTableRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveAclTableResponse { - - -} +message RemoveAclTableResponse {} message GetAclTableAttributeRequest { - uint64 oid = 1; - repeated AclTableAttr attr_type = 2; - - + uint64 oid = 1; + repeated AclTableAttr attr_type = 2; } message GetAclTableAttributeResponse { - repeated AclTableAttribute attr = 1; - - + AclTableAttribute attr = 1; } message CreateAclEntryRequest { - uint64 switch = 1; - - uint64 table_id = 2; - uint32 priority = 3; - bool admin_state = 4; - AclFieldData field_src_ipv6 = 5; - AclFieldData field_src_ipv6_word3 = 6; - AclFieldData field_src_ipv6_word2 = 7; - AclFieldData field_src_ipv6_word1 = 8; - AclFieldData field_src_ipv6_word0 = 9; - AclFieldData field_dst_ipv6 = 10; - AclFieldData field_dst_ipv6_word3 = 11; - AclFieldData field_dst_ipv6_word2 = 12; - AclFieldData field_dst_ipv6_word1 = 13; - AclFieldData field_dst_ipv6_word0 = 14; - AclFieldData field_inner_src_ipv6 = 15; - AclFieldData field_inner_dst_ipv6 = 16; - AclFieldData field_src_mac = 17; - AclFieldData field_dst_mac = 18; - AclFieldData field_src_ip = 19; - AclFieldData field_dst_ip = 20; - AclFieldData field_inner_src_ip = 21; - AclFieldData field_inner_dst_ip = 22; - AclFieldData field_in_ports = 23; - AclFieldData field_out_ports = 24; - AclFieldData field_in_port = 25; - AclFieldData field_out_port = 26; - AclFieldData field_src_port = 27; - AclFieldData field_outer_vlan_id = 28; - AclFieldData field_outer_vlan_pri = 29; - AclFieldData field_outer_vlan_cfi = 30; - AclFieldData field_inner_vlan_id = 31; - AclFieldData field_inner_vlan_pri = 32; - AclFieldData field_inner_vlan_cfi = 33; - AclFieldData field_l4_src_port = 34; - AclFieldData field_l4_dst_port = 35; - AclFieldData field_inner_l4_src_port = 36; - AclFieldData field_inner_l4_dst_port = 37; - AclFieldData field_ether_type = 38; - AclFieldData field_inner_ether_type = 39; - AclFieldData field_ip_protocol = 40; - AclFieldData field_inner_ip_protocol = 41; - AclFieldData field_ip_identification = 42; - AclFieldData field_dscp = 43; - AclFieldData field_ecn = 44; - AclFieldData field_ttl = 45; - AclFieldData field_tos = 46; - AclFieldData field_ip_flags = 47; - AclFieldData field_tcp_flags = 48; - AclFieldData field_acl_ip_type = 49; - AclFieldData field_acl_ip_frag = 50; - AclFieldData field_ipv6_flow_label = 51; - AclFieldData field_tc = 52; - AclFieldData field_icmp_type = 53; - AclFieldData field_icmp_code = 54; - AclFieldData field_icmpv6_type = 55; - AclFieldData field_icmpv6_code = 56; - AclFieldData field_packet_vlan = 57; - AclFieldData field_tunnel_vni = 58; - AclFieldData field_has_vlan_tag = 59; - AclFieldData field_macsec_sci = 60; - AclFieldData field_mpls_label0_label = 61; - AclFieldData field_mpls_label0_ttl = 62; - AclFieldData field_mpls_label0_exp = 63; - AclFieldData field_mpls_label0_bos = 64; - AclFieldData field_mpls_label1_label = 65; - AclFieldData field_mpls_label1_ttl = 66; - AclFieldData field_mpls_label1_exp = 67; - AclFieldData field_mpls_label1_bos = 68; - AclFieldData field_mpls_label2_label = 69; - AclFieldData field_mpls_label2_ttl = 70; - AclFieldData field_mpls_label2_exp = 71; - AclFieldData field_mpls_label2_bos = 72; - AclFieldData field_mpls_label3_label = 73; - AclFieldData field_mpls_label3_ttl = 74; - AclFieldData field_mpls_label3_exp = 75; - AclFieldData field_mpls_label3_bos = 76; - AclFieldData field_mpls_label4_label = 77; - AclFieldData field_mpls_label4_ttl = 78; - AclFieldData field_mpls_label4_exp = 79; - AclFieldData field_mpls_label4_bos = 80; - AclFieldData field_fdb_dst_user_meta = 81; - AclFieldData field_route_dst_user_meta = 82; - AclFieldData field_neighbor_dst_user_meta = 83; - AclFieldData field_port_user_meta = 84; - AclFieldData field_vlan_user_meta = 85; - AclFieldData field_acl_user_meta = 86; - AclFieldData field_fdb_npu_meta_dst_hit = 87; - AclFieldData field_neighbor_npu_meta_dst_hit = 88; - AclFieldData field_route_npu_meta_dst_hit = 89; - AclFieldData field_bth_opcode = 90; - AclFieldData field_aeth_syndrome = 91; - AclFieldData user_defined_field_group_min = 92; - AclFieldData user_defined_field_group_max = 93; - AclFieldData field_acl_range_type = 94; - AclFieldData field_ipv6_next_header = 95; - AclFieldData field_gre_key = 96; - AclFieldData field_tam_int_type = 97; - AclActionData action_redirect = 98; - AclActionData action_endpoint_ip = 99; - AclActionData action_redirect_list = 100; - AclActionData action_packet_action = 101; - AclActionData action_flood = 102; - AclActionData action_counter = 103; - AclActionData action_mirror_ingress = 104; - AclActionData action_mirror_egress = 105; - AclActionData action_set_policer = 106; - AclActionData action_decrement_ttl = 107; - AclActionData action_set_tc = 108; - AclActionData action_set_packet_color = 109; - AclActionData action_set_inner_vlan_id = 110; - AclActionData action_set_inner_vlan_pri = 111; - AclActionData action_set_outer_vlan_id = 112; - AclActionData action_set_outer_vlan_pri = 113; - AclActionData action_add_vlan_id = 114; - AclActionData action_add_vlan_pri = 115; - AclActionData action_set_src_mac = 116; - AclActionData action_set_dst_mac = 117; - AclActionData action_set_src_ip = 118; - AclActionData action_set_dst_ip = 119; - AclActionData action_set_src_ipv6 = 120; - AclActionData action_set_dst_ipv6 = 121; - AclActionData action_set_dscp = 122; - AclActionData action_set_ecn = 123; - AclActionData action_set_l4_src_port = 124; - AclActionData action_set_l4_dst_port = 125; - AclActionData action_ingress_samplepacket_enable = 126; - AclActionData action_egress_samplepacket_enable = 127; - AclActionData action_set_acl_meta_data = 128; - AclActionData action_egress_block_port_list = 129; - AclActionData action_set_user_trap_id = 130; - AclActionData action_set_do_not_learn = 131; - AclActionData action_acl_dtel_flow_op = 132; - AclActionData action_dtel_int_session = 133; - AclActionData action_dtel_drop_report_enable = 134; - AclActionData action_dtel_tail_drop_report_enable = 135; - AclActionData action_dtel_flow_sample_percent = 136; - AclActionData action_dtel_report_all_packets = 137; - AclActionData action_no_nat = 138; - AclActionData action_int_insert = 139; - AclActionData action_int_delete = 140; - AclActionData action_int_report_flow = 141; - AclActionData action_int_report_drops = 142; - AclActionData action_int_report_tail_drops = 143; - AclActionData action_tam_int_object = 144; - AclActionData action_set_isolation_group = 145; - AclActionData action_macsec_flow = 146; - AclActionData action_set_lag_hash_id = 147; - AclActionData action_set_ecmp_hash_id = 148; - AclActionData action_set_vrf = 149; - AclActionData action_set_forwarding_class = 150; - + uint64 switch = 1; + optional uint64 table_id = 2 [(attr_enum_value) = 1]; + optional uint32 priority = 3 [(attr_enum_value) = 2]; + optional bool admin_state = 4 [(attr_enum_value) = 3]; + optional AclFieldData field_src_ipv6 = 5 [(attr_enum_value) = 4]; + optional AclFieldData field_src_ipv6_word3 = 6 [(attr_enum_value) = 5]; + optional AclFieldData field_src_ipv6_word2 = 7 [(attr_enum_value) = 6]; + optional AclFieldData field_src_ipv6_word1 = 8 [(attr_enum_value) = 7]; + optional AclFieldData field_src_ipv6_word0 = 9 [(attr_enum_value) = 8]; + optional AclFieldData field_dst_ipv6 = 10 [(attr_enum_value) = 9]; + optional AclFieldData field_dst_ipv6_word3 = 11 [(attr_enum_value) = 10]; + optional AclFieldData field_dst_ipv6_word2 = 12 [(attr_enum_value) = 11]; + optional AclFieldData field_dst_ipv6_word1 = 13 [(attr_enum_value) = 12]; + optional AclFieldData field_dst_ipv6_word0 = 14 [(attr_enum_value) = 13]; + optional AclFieldData field_inner_src_ipv6 = 15 [(attr_enum_value) = 14]; + optional AclFieldData field_inner_dst_ipv6 = 16 [(attr_enum_value) = 15]; + optional AclFieldData field_src_mac = 17 [(attr_enum_value) = 16]; + optional AclFieldData field_dst_mac = 18 [(attr_enum_value) = 17]; + optional AclFieldData field_src_ip = 19 [(attr_enum_value) = 18]; + optional AclFieldData field_dst_ip = 20 [(attr_enum_value) = 19]; + optional AclFieldData field_inner_src_ip = 21 [(attr_enum_value) = 20]; + optional AclFieldData field_inner_dst_ip = 22 [(attr_enum_value) = 21]; + optional AclFieldData field_in_ports = 23 [(attr_enum_value) = 22]; + optional AclFieldData field_out_ports = 24 [(attr_enum_value) = 23]; + optional AclFieldData field_in_port = 25 [(attr_enum_value) = 24]; + optional AclFieldData field_out_port = 26 [(attr_enum_value) = 25]; + optional AclFieldData field_src_port = 27 [(attr_enum_value) = 26]; + optional AclFieldData field_outer_vlan_id = 28 [(attr_enum_value) = 27]; + optional AclFieldData field_outer_vlan_pri = 29 [(attr_enum_value) = 28]; + optional AclFieldData field_outer_vlan_cfi = 30 [(attr_enum_value) = 29]; + optional AclFieldData field_inner_vlan_id = 31 [(attr_enum_value) = 30]; + optional AclFieldData field_inner_vlan_pri = 32 [(attr_enum_value) = 31]; + optional AclFieldData field_inner_vlan_cfi = 33 [(attr_enum_value) = 32]; + optional AclFieldData field_l4_src_port = 34 [(attr_enum_value) = 33]; + optional AclFieldData field_l4_dst_port = 35 [(attr_enum_value) = 34]; + optional AclFieldData field_inner_l4_src_port = 36 [(attr_enum_value) = 35]; + optional AclFieldData field_inner_l4_dst_port = 37 [(attr_enum_value) = 36]; + optional AclFieldData field_ether_type = 38 [(attr_enum_value) = 37]; + optional AclFieldData field_inner_ether_type = 39 [(attr_enum_value) = 38]; + optional AclFieldData field_ip_protocol = 40 [(attr_enum_value) = 39]; + optional AclFieldData field_inner_ip_protocol = 41 [(attr_enum_value) = 40]; + optional AclFieldData field_ip_identification = 42 [(attr_enum_value) = 41]; + optional AclFieldData field_dscp = 43 [(attr_enum_value) = 42]; + optional AclFieldData field_ecn = 44 [(attr_enum_value) = 43]; + optional AclFieldData field_ttl = 45 [(attr_enum_value) = 44]; + optional AclFieldData field_tos = 46 [(attr_enum_value) = 45]; + optional AclFieldData field_ip_flags = 47 [(attr_enum_value) = 46]; + optional AclFieldData field_tcp_flags = 48 [(attr_enum_value) = 47]; + optional AclFieldData field_acl_ip_type = 49 [(attr_enum_value) = 48]; + optional AclFieldData field_acl_ip_frag = 50 [(attr_enum_value) = 49]; + optional AclFieldData field_ipv6_flow_label = 51 [(attr_enum_value) = 50]; + optional AclFieldData field_tc = 52 [(attr_enum_value) = 51]; + optional AclFieldData field_icmp_type = 53 [(attr_enum_value) = 52]; + optional AclFieldData field_icmp_code = 54 [(attr_enum_value) = 53]; + optional AclFieldData field_icmpv6_type = 55 [(attr_enum_value) = 54]; + optional AclFieldData field_icmpv6_code = 56 [(attr_enum_value) = 55]; + optional AclFieldData field_packet_vlan = 57 [(attr_enum_value) = 56]; + optional AclFieldData field_tunnel_vni = 58 [(attr_enum_value) = 57]; + optional AclFieldData field_has_vlan_tag = 59 [(attr_enum_value) = 58]; + optional AclFieldData field_macsec_sci = 60 [(attr_enum_value) = 59]; + optional AclFieldData field_mpls_label0_label = 61 [(attr_enum_value) = 60]; + optional AclFieldData field_mpls_label0_ttl = 62 [(attr_enum_value) = 61]; + optional AclFieldData field_mpls_label0_exp = 63 [(attr_enum_value) = 62]; + optional AclFieldData field_mpls_label0_bos = 64 [(attr_enum_value) = 63]; + optional AclFieldData field_mpls_label1_label = 65 [(attr_enum_value) = 64]; + optional AclFieldData field_mpls_label1_ttl = 66 [(attr_enum_value) = 65]; + optional AclFieldData field_mpls_label1_exp = 67 [(attr_enum_value) = 66]; + optional AclFieldData field_mpls_label1_bos = 68 [(attr_enum_value) = 67]; + optional AclFieldData field_mpls_label2_label = 69 [(attr_enum_value) = 68]; + optional AclFieldData field_mpls_label2_ttl = 70 [(attr_enum_value) = 69]; + optional AclFieldData field_mpls_label2_exp = 71 [(attr_enum_value) = 70]; + optional AclFieldData field_mpls_label2_bos = 72 [(attr_enum_value) = 71]; + optional AclFieldData field_mpls_label3_label = 73 [(attr_enum_value) = 72]; + optional AclFieldData field_mpls_label3_ttl = 74 [(attr_enum_value) = 73]; + optional AclFieldData field_mpls_label3_exp = 75 [(attr_enum_value) = 74]; + optional AclFieldData field_mpls_label3_bos = 76 [(attr_enum_value) = 75]; + optional AclFieldData field_mpls_label4_label = 77 [(attr_enum_value) = 76]; + optional AclFieldData field_mpls_label4_ttl = 78 [(attr_enum_value) = 77]; + optional AclFieldData field_mpls_label4_exp = 79 [(attr_enum_value) = 78]; + optional AclFieldData field_mpls_label4_bos = 80 [(attr_enum_value) = 79]; + optional AclFieldData field_fdb_dst_user_meta = 81 [(attr_enum_value) = 80]; + optional AclFieldData field_route_dst_user_meta = 82 [(attr_enum_value) = 81]; + optional AclFieldData field_neighbor_dst_user_meta = 83 + [(attr_enum_value) = 82]; + optional AclFieldData field_port_user_meta = 84 [(attr_enum_value) = 83]; + optional AclFieldData field_vlan_user_meta = 85 [(attr_enum_value) = 84]; + optional AclFieldData field_acl_user_meta = 86 [(attr_enum_value) = 85]; + optional AclFieldData field_fdb_npu_meta_dst_hit = 87 + [(attr_enum_value) = 86]; + optional AclFieldData field_neighbor_npu_meta_dst_hit = 88 + [(attr_enum_value) = 87]; + optional AclFieldData field_route_npu_meta_dst_hit = 89 + [(attr_enum_value) = 88]; + optional AclFieldData field_bth_opcode = 90 [(attr_enum_value) = 89]; + optional AclFieldData field_aeth_syndrome = 91 [(attr_enum_value) = 90]; + optional AclFieldData user_defined_field_group_min = 92 + [(attr_enum_value) = 91]; + optional AclFieldData user_defined_field_group_max = 93 + [(attr_enum_value) = 92]; + optional AclFieldData field_acl_range_type = 94 [(attr_enum_value) = 93]; + optional AclFieldData field_ipv6_next_header = 95 [(attr_enum_value) = 94]; + optional AclFieldData field_gre_key = 96 [(attr_enum_value) = 95]; + optional AclFieldData field_tam_int_type = 97 [(attr_enum_value) = 96]; + optional AclActionData action_redirect = 98 [(attr_enum_value) = 97]; + optional AclActionData action_endpoint_ip = 99 [(attr_enum_value) = 98]; + optional AclActionData action_redirect_list = 100 [(attr_enum_value) = 99]; + optional AclActionData action_packet_action = 101 [(attr_enum_value) = 100]; + optional AclActionData action_flood = 102 [(attr_enum_value) = 101]; + optional AclActionData action_counter = 103 [(attr_enum_value) = 102]; + optional AclActionData action_mirror_ingress = 104 [(attr_enum_value) = 103]; + optional AclActionData action_mirror_egress = 105 [(attr_enum_value) = 104]; + optional AclActionData action_set_policer = 106 [(attr_enum_value) = 105]; + optional AclActionData action_decrement_ttl = 107 [(attr_enum_value) = 106]; + optional AclActionData action_set_tc = 108 [(attr_enum_value) = 107]; + optional AclActionData action_set_packet_color = 109 + [(attr_enum_value) = 108]; + optional AclActionData action_set_inner_vlan_id = 110 + [(attr_enum_value) = 109]; + optional AclActionData action_set_inner_vlan_pri = 111 + [(attr_enum_value) = 110]; + optional AclActionData action_set_outer_vlan_id = 112 + [(attr_enum_value) = 111]; + optional AclActionData action_set_outer_vlan_pri = 113 + [(attr_enum_value) = 112]; + optional AclActionData action_add_vlan_id = 114 [(attr_enum_value) = 113]; + optional AclActionData action_add_vlan_pri = 115 [(attr_enum_value) = 114]; + optional AclActionData action_set_src_mac = 116 [(attr_enum_value) = 115]; + optional AclActionData action_set_dst_mac = 117 [(attr_enum_value) = 116]; + optional AclActionData action_set_src_ip = 118 [(attr_enum_value) = 117]; + optional AclActionData action_set_dst_ip = 119 [(attr_enum_value) = 118]; + optional AclActionData action_set_src_ipv6 = 120 [(attr_enum_value) = 119]; + optional AclActionData action_set_dst_ipv6 = 121 [(attr_enum_value) = 120]; + optional AclActionData action_set_dscp = 122 [(attr_enum_value) = 121]; + optional AclActionData action_set_ecn = 123 [(attr_enum_value) = 122]; + optional AclActionData action_set_l4_src_port = 124 [(attr_enum_value) = 123]; + optional AclActionData action_set_l4_dst_port = 125 [(attr_enum_value) = 124]; + optional AclActionData action_ingress_samplepacket_enable = 126 + [(attr_enum_value) = 125]; + optional AclActionData action_egress_samplepacket_enable = 127 + [(attr_enum_value) = 126]; + optional AclActionData action_set_acl_meta_data = 128 + [(attr_enum_value) = 127]; + optional AclActionData action_egress_block_port_list = 129 + [(attr_enum_value) = 128]; + optional AclActionData action_set_user_trap_id = 130 + [(attr_enum_value) = 129]; + optional AclActionData action_set_do_not_learn = 131 + [(attr_enum_value) = 130]; + optional AclActionData action_acl_dtel_flow_op = 132 + [(attr_enum_value) = 131]; + optional AclActionData action_dtel_int_session = 133 + [(attr_enum_value) = 132]; + optional AclActionData action_dtel_drop_report_enable = 134 + [(attr_enum_value) = 133]; + optional AclActionData action_dtel_tail_drop_report_enable = 135 + [(attr_enum_value) = 134]; + optional AclActionData action_dtel_flow_sample_percent = 136 + [(attr_enum_value) = 135]; + optional AclActionData action_dtel_report_all_packets = 137 + [(attr_enum_value) = 136]; + optional AclActionData action_no_nat = 138 [(attr_enum_value) = 137]; + optional AclActionData action_int_insert = 139 [(attr_enum_value) = 138]; + optional AclActionData action_int_delete = 140 [(attr_enum_value) = 139]; + optional AclActionData action_int_report_flow = 141 [(attr_enum_value) = 140]; + optional AclActionData action_int_report_drops = 142 + [(attr_enum_value) = 141]; + optional AclActionData action_int_report_tail_drops = 143 + [(attr_enum_value) = 142]; + optional AclActionData action_tam_int_object = 144 [(attr_enum_value) = 143]; + optional AclActionData action_set_isolation_group = 145 + [(attr_enum_value) = 144]; + optional AclActionData action_macsec_flow = 146 [(attr_enum_value) = 145]; + optional AclActionData action_set_lag_hash_id = 147 [(attr_enum_value) = 146]; + optional AclActionData action_set_ecmp_hash_id = 148 + [(attr_enum_value) = 147]; + optional AclActionData action_set_vrf = 149 [(attr_enum_value) = 148]; + optional AclActionData action_set_forwarding_class = 150 + [(attr_enum_value) = 149]; } message CreateAclEntryResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveAclEntryRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveAclEntryResponse { - - -} +message RemoveAclEntryResponse {} message SetAclEntryAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 priority = 2; - bool admin_state = 3; - AclFieldData field_src_ipv6 = 4; - AclFieldData field_src_ipv6_word3 = 5; - AclFieldData field_src_ipv6_word2 = 6; - AclFieldData field_src_ipv6_word1 = 7; - AclFieldData field_src_ipv6_word0 = 8; - AclFieldData field_dst_ipv6 = 9; - AclFieldData field_dst_ipv6_word3 = 10; - AclFieldData field_dst_ipv6_word2 = 11; - AclFieldData field_dst_ipv6_word1 = 12; - AclFieldData field_dst_ipv6_word0 = 13; - AclFieldData field_inner_src_ipv6 = 14; - AclFieldData field_inner_dst_ipv6 = 15; - AclFieldData field_src_mac = 16; - AclFieldData field_dst_mac = 17; - AclFieldData field_src_ip = 18; - AclFieldData field_dst_ip = 19; - AclFieldData field_inner_src_ip = 20; - AclFieldData field_inner_dst_ip = 21; - AclFieldData field_in_ports = 22; - AclFieldData field_out_ports = 23; - AclFieldData field_in_port = 24; - AclFieldData field_out_port = 25; - AclFieldData field_src_port = 26; - AclFieldData field_outer_vlan_id = 27; - AclFieldData field_outer_vlan_pri = 28; - AclFieldData field_outer_vlan_cfi = 29; - AclFieldData field_inner_vlan_id = 30; - AclFieldData field_inner_vlan_pri = 31; - AclFieldData field_inner_vlan_cfi = 32; - AclFieldData field_l4_src_port = 33; - AclFieldData field_l4_dst_port = 34; - AclFieldData field_inner_l4_src_port = 35; - AclFieldData field_inner_l4_dst_port = 36; - AclFieldData field_ether_type = 37; - AclFieldData field_inner_ether_type = 38; - AclFieldData field_ip_protocol = 39; - AclFieldData field_inner_ip_protocol = 40; - AclFieldData field_ip_identification = 41; - AclFieldData field_dscp = 42; - AclFieldData field_ecn = 43; - AclFieldData field_ttl = 44; - AclFieldData field_tos = 45; - AclFieldData field_ip_flags = 46; - AclFieldData field_tcp_flags = 47; - AclFieldData field_acl_ip_type = 48; - AclFieldData field_acl_ip_frag = 49; - AclFieldData field_ipv6_flow_label = 50; - AclFieldData field_tc = 51; - AclFieldData field_icmp_type = 52; - AclFieldData field_icmp_code = 53; - AclFieldData field_icmpv6_type = 54; - AclFieldData field_icmpv6_code = 55; - AclFieldData field_packet_vlan = 56; - AclFieldData field_tunnel_vni = 57; - AclFieldData field_has_vlan_tag = 58; - AclFieldData field_macsec_sci = 59; - AclFieldData field_mpls_label0_label = 60; - AclFieldData field_mpls_label0_ttl = 61; - AclFieldData field_mpls_label0_exp = 62; - AclFieldData field_mpls_label0_bos = 63; - AclFieldData field_mpls_label1_label = 64; - AclFieldData field_mpls_label1_ttl = 65; - AclFieldData field_mpls_label1_exp = 66; - AclFieldData field_mpls_label1_bos = 67; - AclFieldData field_mpls_label2_label = 68; - AclFieldData field_mpls_label2_ttl = 69; - AclFieldData field_mpls_label2_exp = 70; - AclFieldData field_mpls_label2_bos = 71; - AclFieldData field_mpls_label3_label = 72; - AclFieldData field_mpls_label3_ttl = 73; - AclFieldData field_mpls_label3_exp = 74; - AclFieldData field_mpls_label3_bos = 75; - AclFieldData field_mpls_label4_label = 76; - AclFieldData field_mpls_label4_ttl = 77; - AclFieldData field_mpls_label4_exp = 78; - AclFieldData field_mpls_label4_bos = 79; - AclFieldData field_fdb_dst_user_meta = 80; - AclFieldData field_route_dst_user_meta = 81; - AclFieldData field_neighbor_dst_user_meta = 82; - AclFieldData field_port_user_meta = 83; - AclFieldData field_vlan_user_meta = 84; - AclFieldData field_acl_user_meta = 85; - AclFieldData field_fdb_npu_meta_dst_hit = 86; - AclFieldData field_neighbor_npu_meta_dst_hit = 87; - AclFieldData field_route_npu_meta_dst_hit = 88; - AclFieldData field_bth_opcode = 89; - AclFieldData field_aeth_syndrome = 90; - AclFieldData user_defined_field_group_min = 91; - AclFieldData user_defined_field_group_max = 92; - AclFieldData field_acl_range_type = 93; - AclFieldData field_ipv6_next_header = 94; - AclFieldData field_gre_key = 95; - AclFieldData field_tam_int_type = 96; - AclActionData action_redirect = 97; - AclActionData action_endpoint_ip = 98; - AclActionData action_redirect_list = 99; - AclActionData action_packet_action = 100; - AclActionData action_flood = 101; - AclActionData action_counter = 102; - AclActionData action_mirror_ingress = 103; - AclActionData action_mirror_egress = 104; - AclActionData action_set_policer = 105; - AclActionData action_decrement_ttl = 106; - AclActionData action_set_tc = 107; - AclActionData action_set_packet_color = 108; - AclActionData action_set_inner_vlan_id = 109; - AclActionData action_set_inner_vlan_pri = 110; - AclActionData action_set_outer_vlan_id = 111; - AclActionData action_set_outer_vlan_pri = 112; - AclActionData action_add_vlan_id = 113; - AclActionData action_add_vlan_pri = 114; - AclActionData action_set_src_mac = 115; - AclActionData action_set_dst_mac = 116; - AclActionData action_set_src_ip = 117; - AclActionData action_set_dst_ip = 118; - AclActionData action_set_src_ipv6 = 119; - AclActionData action_set_dst_ipv6 = 120; - AclActionData action_set_dscp = 121; - AclActionData action_set_ecn = 122; - AclActionData action_set_l4_src_port = 123; - AclActionData action_set_l4_dst_port = 124; - AclActionData action_ingress_samplepacket_enable = 125; - AclActionData action_egress_samplepacket_enable = 126; - AclActionData action_set_acl_meta_data = 127; - AclActionData action_egress_block_port_list = 128; - AclActionData action_set_user_trap_id = 129; - AclActionData action_set_do_not_learn = 130; - AclActionData action_acl_dtel_flow_op = 131; - AclActionData action_dtel_int_session = 132; - AclActionData action_dtel_drop_report_enable = 133; - AclActionData action_dtel_tail_drop_report_enable = 134; - AclActionData action_dtel_flow_sample_percent = 135; - AclActionData action_dtel_report_all_packets = 136; - AclActionData action_no_nat = 137; - AclActionData action_int_insert = 138; - AclActionData action_int_delete = 139; - AclActionData action_int_report_flow = 140; - AclActionData action_int_report_drops = 141; - AclActionData action_int_report_tail_drops = 142; - AclActionData action_tam_int_object = 143; - AclActionData action_set_isolation_group = 144; - AclActionData action_macsec_flow = 145; - AclActionData action_set_lag_hash_id = 146; - AclActionData action_set_ecmp_hash_id = 147; - AclActionData action_set_vrf = 148; - AclActionData action_set_forwarding_class = 149; - } -} - -message SetAclEntryAttributeResponse { - - -} + uint64 oid = 1; + optional uint32 priority = 2 [(attr_enum_value) = 2]; + optional bool admin_state = 3 [(attr_enum_value) = 3]; + optional AclFieldData field_src_ipv6 = 4 [(attr_enum_value) = 4]; + optional AclFieldData field_src_ipv6_word3 = 5 [(attr_enum_value) = 5]; + optional AclFieldData field_src_ipv6_word2 = 6 [(attr_enum_value) = 6]; + optional AclFieldData field_src_ipv6_word1 = 7 [(attr_enum_value) = 7]; + optional AclFieldData field_src_ipv6_word0 = 8 [(attr_enum_value) = 8]; + optional AclFieldData field_dst_ipv6 = 9 [(attr_enum_value) = 9]; + optional AclFieldData field_dst_ipv6_word3 = 10 [(attr_enum_value) = 10]; + optional AclFieldData field_dst_ipv6_word2 = 11 [(attr_enum_value) = 11]; + optional AclFieldData field_dst_ipv6_word1 = 12 [(attr_enum_value) = 12]; + optional AclFieldData field_dst_ipv6_word0 = 13 [(attr_enum_value) = 13]; + optional AclFieldData field_inner_src_ipv6 = 14 [(attr_enum_value) = 14]; + optional AclFieldData field_inner_dst_ipv6 = 15 [(attr_enum_value) = 15]; + optional AclFieldData field_src_mac = 16 [(attr_enum_value) = 16]; + optional AclFieldData field_dst_mac = 17 [(attr_enum_value) = 17]; + optional AclFieldData field_src_ip = 18 [(attr_enum_value) = 18]; + optional AclFieldData field_dst_ip = 19 [(attr_enum_value) = 19]; + optional AclFieldData field_inner_src_ip = 20 [(attr_enum_value) = 20]; + optional AclFieldData field_inner_dst_ip = 21 [(attr_enum_value) = 21]; + optional AclFieldData field_in_ports = 22 [(attr_enum_value) = 22]; + optional AclFieldData field_out_ports = 23 [(attr_enum_value) = 23]; + optional AclFieldData field_in_port = 24 [(attr_enum_value) = 24]; + optional AclFieldData field_out_port = 25 [(attr_enum_value) = 25]; + optional AclFieldData field_src_port = 26 [(attr_enum_value) = 26]; + optional AclFieldData field_outer_vlan_id = 27 [(attr_enum_value) = 27]; + optional AclFieldData field_outer_vlan_pri = 28 [(attr_enum_value) = 28]; + optional AclFieldData field_outer_vlan_cfi = 29 [(attr_enum_value) = 29]; + optional AclFieldData field_inner_vlan_id = 30 [(attr_enum_value) = 30]; + optional AclFieldData field_inner_vlan_pri = 31 [(attr_enum_value) = 31]; + optional AclFieldData field_inner_vlan_cfi = 32 [(attr_enum_value) = 32]; + optional AclFieldData field_l4_src_port = 33 [(attr_enum_value) = 33]; + optional AclFieldData field_l4_dst_port = 34 [(attr_enum_value) = 34]; + optional AclFieldData field_inner_l4_src_port = 35 [(attr_enum_value) = 35]; + optional AclFieldData field_inner_l4_dst_port = 36 [(attr_enum_value) = 36]; + optional AclFieldData field_ether_type = 37 [(attr_enum_value) = 37]; + optional AclFieldData field_inner_ether_type = 38 [(attr_enum_value) = 38]; + optional AclFieldData field_ip_protocol = 39 [(attr_enum_value) = 39]; + optional AclFieldData field_inner_ip_protocol = 40 [(attr_enum_value) = 40]; + optional AclFieldData field_ip_identification = 41 [(attr_enum_value) = 41]; + optional AclFieldData field_dscp = 42 [(attr_enum_value) = 42]; + optional AclFieldData field_ecn = 43 [(attr_enum_value) = 43]; + optional AclFieldData field_ttl = 44 [(attr_enum_value) = 44]; + optional AclFieldData field_tos = 45 [(attr_enum_value) = 45]; + optional AclFieldData field_ip_flags = 46 [(attr_enum_value) = 46]; + optional AclFieldData field_tcp_flags = 47 [(attr_enum_value) = 47]; + optional AclFieldData field_acl_ip_type = 48 [(attr_enum_value) = 48]; + optional AclFieldData field_acl_ip_frag = 49 [(attr_enum_value) = 49]; + optional AclFieldData field_ipv6_flow_label = 50 [(attr_enum_value) = 50]; + optional AclFieldData field_tc = 51 [(attr_enum_value) = 51]; + optional AclFieldData field_icmp_type = 52 [(attr_enum_value) = 52]; + optional AclFieldData field_icmp_code = 53 [(attr_enum_value) = 53]; + optional AclFieldData field_icmpv6_type = 54 [(attr_enum_value) = 54]; + optional AclFieldData field_icmpv6_code = 55 [(attr_enum_value) = 55]; + optional AclFieldData field_packet_vlan = 56 [(attr_enum_value) = 56]; + optional AclFieldData field_tunnel_vni = 57 [(attr_enum_value) = 57]; + optional AclFieldData field_has_vlan_tag = 58 [(attr_enum_value) = 58]; + optional AclFieldData field_macsec_sci = 59 [(attr_enum_value) = 59]; + optional AclFieldData field_mpls_label0_label = 60 [(attr_enum_value) = 60]; + optional AclFieldData field_mpls_label0_ttl = 61 [(attr_enum_value) = 61]; + optional AclFieldData field_mpls_label0_exp = 62 [(attr_enum_value) = 62]; + optional AclFieldData field_mpls_label0_bos = 63 [(attr_enum_value) = 63]; + optional AclFieldData field_mpls_label1_label = 64 [(attr_enum_value) = 64]; + optional AclFieldData field_mpls_label1_ttl = 65 [(attr_enum_value) = 65]; + optional AclFieldData field_mpls_label1_exp = 66 [(attr_enum_value) = 66]; + optional AclFieldData field_mpls_label1_bos = 67 [(attr_enum_value) = 67]; + optional AclFieldData field_mpls_label2_label = 68 [(attr_enum_value) = 68]; + optional AclFieldData field_mpls_label2_ttl = 69 [(attr_enum_value) = 69]; + optional AclFieldData field_mpls_label2_exp = 70 [(attr_enum_value) = 70]; + optional AclFieldData field_mpls_label2_bos = 71 [(attr_enum_value) = 71]; + optional AclFieldData field_mpls_label3_label = 72 [(attr_enum_value) = 72]; + optional AclFieldData field_mpls_label3_ttl = 73 [(attr_enum_value) = 73]; + optional AclFieldData field_mpls_label3_exp = 74 [(attr_enum_value) = 74]; + optional AclFieldData field_mpls_label3_bos = 75 [(attr_enum_value) = 75]; + optional AclFieldData field_mpls_label4_label = 76 [(attr_enum_value) = 76]; + optional AclFieldData field_mpls_label4_ttl = 77 [(attr_enum_value) = 77]; + optional AclFieldData field_mpls_label4_exp = 78 [(attr_enum_value) = 78]; + optional AclFieldData field_mpls_label4_bos = 79 [(attr_enum_value) = 79]; + optional AclFieldData field_fdb_dst_user_meta = 80 [(attr_enum_value) = 80]; + optional AclFieldData field_route_dst_user_meta = 81 [(attr_enum_value) = 81]; + optional AclFieldData field_neighbor_dst_user_meta = 82 + [(attr_enum_value) = 82]; + optional AclFieldData field_port_user_meta = 83 [(attr_enum_value) = 83]; + optional AclFieldData field_vlan_user_meta = 84 [(attr_enum_value) = 84]; + optional AclFieldData field_acl_user_meta = 85 [(attr_enum_value) = 85]; + optional AclFieldData field_fdb_npu_meta_dst_hit = 86 + [(attr_enum_value) = 86]; + optional AclFieldData field_neighbor_npu_meta_dst_hit = 87 + [(attr_enum_value) = 87]; + optional AclFieldData field_route_npu_meta_dst_hit = 88 + [(attr_enum_value) = 88]; + optional AclFieldData field_bth_opcode = 89 [(attr_enum_value) = 89]; + optional AclFieldData field_aeth_syndrome = 90 [(attr_enum_value) = 90]; + optional AclFieldData user_defined_field_group_min = 91 + [(attr_enum_value) = 91]; + optional AclFieldData user_defined_field_group_max = 92 + [(attr_enum_value) = 92]; + optional AclFieldData field_acl_range_type = 93 [(attr_enum_value) = 93]; + optional AclFieldData field_ipv6_next_header = 94 [(attr_enum_value) = 94]; + optional AclFieldData field_gre_key = 95 [(attr_enum_value) = 95]; + optional AclFieldData field_tam_int_type = 96 [(attr_enum_value) = 96]; + optional AclActionData action_redirect = 97 [(attr_enum_value) = 97]; + optional AclActionData action_endpoint_ip = 98 [(attr_enum_value) = 98]; + optional AclActionData action_redirect_list = 99 [(attr_enum_value) = 99]; + optional AclActionData action_packet_action = 100 [(attr_enum_value) = 100]; + optional AclActionData action_flood = 101 [(attr_enum_value) = 101]; + optional AclActionData action_counter = 102 [(attr_enum_value) = 102]; + optional AclActionData action_mirror_ingress = 103 [(attr_enum_value) = 103]; + optional AclActionData action_mirror_egress = 104 [(attr_enum_value) = 104]; + optional AclActionData action_set_policer = 105 [(attr_enum_value) = 105]; + optional AclActionData action_decrement_ttl = 106 [(attr_enum_value) = 106]; + optional AclActionData action_set_tc = 107 [(attr_enum_value) = 107]; + optional AclActionData action_set_packet_color = 108 + [(attr_enum_value) = 108]; + optional AclActionData action_set_inner_vlan_id = 109 + [(attr_enum_value) = 109]; + optional AclActionData action_set_inner_vlan_pri = 110 + [(attr_enum_value) = 110]; + optional AclActionData action_set_outer_vlan_id = 111 + [(attr_enum_value) = 111]; + optional AclActionData action_set_outer_vlan_pri = 112 + [(attr_enum_value) = 112]; + optional AclActionData action_add_vlan_id = 113 [(attr_enum_value) = 113]; + optional AclActionData action_add_vlan_pri = 114 [(attr_enum_value) = 114]; + optional AclActionData action_set_src_mac = 115 [(attr_enum_value) = 115]; + optional AclActionData action_set_dst_mac = 116 [(attr_enum_value) = 116]; + optional AclActionData action_set_src_ip = 117 [(attr_enum_value) = 117]; + optional AclActionData action_set_dst_ip = 118 [(attr_enum_value) = 118]; + optional AclActionData action_set_src_ipv6 = 119 [(attr_enum_value) = 119]; + optional AclActionData action_set_dst_ipv6 = 120 [(attr_enum_value) = 120]; + optional AclActionData action_set_dscp = 121 [(attr_enum_value) = 121]; + optional AclActionData action_set_ecn = 122 [(attr_enum_value) = 122]; + optional AclActionData action_set_l4_src_port = 123 [(attr_enum_value) = 123]; + optional AclActionData action_set_l4_dst_port = 124 [(attr_enum_value) = 124]; + optional AclActionData action_ingress_samplepacket_enable = 125 + [(attr_enum_value) = 125]; + optional AclActionData action_egress_samplepacket_enable = 126 + [(attr_enum_value) = 126]; + optional AclActionData action_set_acl_meta_data = 127 + [(attr_enum_value) = 127]; + optional AclActionData action_egress_block_port_list = 128 + [(attr_enum_value) = 128]; + optional AclActionData action_set_user_trap_id = 129 + [(attr_enum_value) = 129]; + optional AclActionData action_set_do_not_learn = 130 + [(attr_enum_value) = 130]; + optional AclActionData action_acl_dtel_flow_op = 131 + [(attr_enum_value) = 131]; + optional AclActionData action_dtel_int_session = 132 + [(attr_enum_value) = 132]; + optional AclActionData action_dtel_drop_report_enable = 133 + [(attr_enum_value) = 133]; + optional AclActionData action_dtel_tail_drop_report_enable = 134 + [(attr_enum_value) = 134]; + optional AclActionData action_dtel_flow_sample_percent = 135 + [(attr_enum_value) = 135]; + optional AclActionData action_dtel_report_all_packets = 136 + [(attr_enum_value) = 136]; + optional AclActionData action_no_nat = 137 [(attr_enum_value) = 137]; + optional AclActionData action_int_insert = 138 [(attr_enum_value) = 138]; + optional AclActionData action_int_delete = 139 [(attr_enum_value) = 139]; + optional AclActionData action_int_report_flow = 140 [(attr_enum_value) = 140]; + optional AclActionData action_int_report_drops = 141 + [(attr_enum_value) = 141]; + optional AclActionData action_int_report_tail_drops = 142 + [(attr_enum_value) = 142]; + optional AclActionData action_tam_int_object = 143 [(attr_enum_value) = 143]; + optional AclActionData action_set_isolation_group = 144 + [(attr_enum_value) = 144]; + optional AclActionData action_macsec_flow = 145 [(attr_enum_value) = 145]; + optional AclActionData action_set_lag_hash_id = 146 [(attr_enum_value) = 146]; + optional AclActionData action_set_ecmp_hash_id = 147 + [(attr_enum_value) = 147]; + optional AclActionData action_set_vrf = 148 [(attr_enum_value) = 148]; + optional AclActionData action_set_forwarding_class = 149 + [(attr_enum_value) = 149]; +} + +message SetAclEntryAttributeResponse {} message GetAclEntryAttributeRequest { - uint64 oid = 1; - repeated AclEntryAttr attr_type = 2; - - + uint64 oid = 1; + repeated AclEntryAttr attr_type = 2; } message GetAclEntryAttributeResponse { - repeated AclEntryAttribute attr = 1; - - + AclEntryAttribute attr = 1; } message CreateAclCounterRequest { - uint64 switch = 1; - - uint64 table_id = 2; - bool enable_packet_count = 3; - bool enable_byte_count = 4; - uint64 packets = 5; - uint64 bytes = 6; - + uint64 switch = 1; + optional uint64 table_id = 2 [(attr_enum_value) = 1]; + optional bool enable_packet_count = 3 [(attr_enum_value) = 2]; + optional bool enable_byte_count = 4 [(attr_enum_value) = 3]; + optional uint64 packets = 5 [(attr_enum_value) = 4]; + optional uint64 bytes = 6 [(attr_enum_value) = 5]; } message CreateAclCounterResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveAclCounterRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveAclCounterResponse { - - -} +message RemoveAclCounterResponse {} message SetAclCounterAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 packets = 2; - uint64 bytes = 3; - } + uint64 oid = 1; + optional uint64 packets = 2 [(attr_enum_value) = 4]; + optional uint64 bytes = 3 [(attr_enum_value) = 5]; } -message SetAclCounterAttributeResponse { - - -} +message SetAclCounterAttributeResponse {} message GetAclCounterAttributeRequest { - uint64 oid = 1; - repeated AclCounterAttr attr_type = 2; - - + uint64 oid = 1; + repeated AclCounterAttr attr_type = 2; } message GetAclCounterAttributeResponse { - repeated AclCounterAttribute attr = 1; - - + AclCounterAttribute attr = 1; } message CreateAclRangeRequest { - uint64 switch = 1; - - AclRangeType type = 2; - Uint32Range limit = 3; - + uint64 switch = 1; + optional AclRangeType type = 2 [(attr_enum_value) = 1]; + optional Uint32Range limit = 3 [(attr_enum_value) = 2]; } message CreateAclRangeResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveAclRangeRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveAclRangeResponse { - - -} +message RemoveAclRangeResponse {} message GetAclRangeAttributeRequest { - uint64 oid = 1; - repeated AclRangeAttr attr_type = 2; - - + uint64 oid = 1; + repeated AclRangeAttr attr_type = 2; } message GetAclRangeAttributeResponse { - repeated AclRangeAttribute attr = 1; - - + AclRangeAttribute attr = 1; } message CreateAclTableGroupRequest { - uint64 switch = 1; - - AclStage acl_stage = 2; - repeated AclBindPointType acl_bind_point_type_list = 3; - AclTableGroupType type = 4; - + uint64 switch = 1; + optional AclStage acl_stage = 2 [(attr_enum_value) = 1]; + repeated AclBindPointType acl_bind_point_type_list = 3 + [(attr_enum_value) = 2]; + optional AclTableGroupType type = 4 [(attr_enum_value) = 3]; } message CreateAclTableGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveAclTableGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveAclTableGroupResponse { - - -} +message RemoveAclTableGroupResponse {} message GetAclTableGroupAttributeRequest { - uint64 oid = 1; - repeated AclTableGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated AclTableGroupAttr attr_type = 2; } message GetAclTableGroupAttributeResponse { - repeated AclTableGroupAttribute attr = 1; - - + AclTableGroupAttribute attr = 1; } message CreateAclTableGroupMemberRequest { - uint64 switch = 1; - - uint64 acl_table_group_id = 2; - uint64 acl_table_id = 3; - uint32 priority = 4; - + uint64 switch = 1; + optional uint64 acl_table_group_id = 2 [(attr_enum_value) = 1]; + optional uint64 acl_table_id = 3 [(attr_enum_value) = 2]; + optional uint32 priority = 4 [(attr_enum_value) = 3]; } message CreateAclTableGroupMemberResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveAclTableGroupMemberRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveAclTableGroupMemberResponse { - - -} +message RemoveAclTableGroupMemberResponse {} message GetAclTableGroupMemberAttributeRequest { - uint64 oid = 1; - repeated AclTableGroupMemberAttr attr_type = 2; - - + uint64 oid = 1; + repeated AclTableGroupMemberAttr attr_type = 2; } message GetAclTableGroupMemberAttributeResponse { - repeated AclTableGroupMemberAttribute attr = 1; - - + AclTableGroupMemberAttribute attr = 1; } - service Acl { - rpc CreateAclTable (CreateAclTableRequest) returns (CreateAclTableResponse) {} - rpc RemoveAclTable (RemoveAclTableRequest) returns (RemoveAclTableResponse) {} - rpc GetAclTableAttribute (GetAclTableAttributeRequest) returns (GetAclTableAttributeResponse) {} - rpc CreateAclEntry (CreateAclEntryRequest) returns (CreateAclEntryResponse) {} - rpc RemoveAclEntry (RemoveAclEntryRequest) returns (RemoveAclEntryResponse) {} - rpc SetAclEntryAttribute (SetAclEntryAttributeRequest) returns (SetAclEntryAttributeResponse) {} - rpc GetAclEntryAttribute (GetAclEntryAttributeRequest) returns (GetAclEntryAttributeResponse) {} - rpc CreateAclCounter (CreateAclCounterRequest) returns (CreateAclCounterResponse) {} - rpc RemoveAclCounter (RemoveAclCounterRequest) returns (RemoveAclCounterResponse) {} - rpc SetAclCounterAttribute (SetAclCounterAttributeRequest) returns (SetAclCounterAttributeResponse) {} - rpc GetAclCounterAttribute (GetAclCounterAttributeRequest) returns (GetAclCounterAttributeResponse) {} - rpc CreateAclRange (CreateAclRangeRequest) returns (CreateAclRangeResponse) {} - rpc RemoveAclRange (RemoveAclRangeRequest) returns (RemoveAclRangeResponse) {} - rpc GetAclRangeAttribute (GetAclRangeAttributeRequest) returns (GetAclRangeAttributeResponse) {} - rpc CreateAclTableGroup (CreateAclTableGroupRequest) returns (CreateAclTableGroupResponse) {} - rpc RemoveAclTableGroup (RemoveAclTableGroupRequest) returns (RemoveAclTableGroupResponse) {} - rpc GetAclTableGroupAttribute (GetAclTableGroupAttributeRequest) returns (GetAclTableGroupAttributeResponse) {} - rpc CreateAclTableGroupMember (CreateAclTableGroupMemberRequest) returns (CreateAclTableGroupMemberResponse) {} - rpc RemoveAclTableGroupMember (RemoveAclTableGroupMemberRequest) returns (RemoveAclTableGroupMemberResponse) {} - rpc GetAclTableGroupMemberAttribute (GetAclTableGroupMemberAttributeRequest) returns (GetAclTableGroupMemberAttributeResponse) {} + rpc CreateAclTable(CreateAclTableRequest) returns (CreateAclTableResponse) {} + rpc RemoveAclTable(RemoveAclTableRequest) returns (RemoveAclTableResponse) {} + rpc GetAclTableAttribute(GetAclTableAttributeRequest) + returns (GetAclTableAttributeResponse) {} + rpc CreateAclEntry(CreateAclEntryRequest) returns (CreateAclEntryResponse) {} + rpc RemoveAclEntry(RemoveAclEntryRequest) returns (RemoveAclEntryResponse) {} + rpc SetAclEntryAttribute(SetAclEntryAttributeRequest) + returns (SetAclEntryAttributeResponse) {} + rpc GetAclEntryAttribute(GetAclEntryAttributeRequest) + returns (GetAclEntryAttributeResponse) {} + rpc CreateAclCounter(CreateAclCounterRequest) + returns (CreateAclCounterResponse) {} + rpc RemoveAclCounter(RemoveAclCounterRequest) + returns (RemoveAclCounterResponse) {} + rpc SetAclCounterAttribute(SetAclCounterAttributeRequest) + returns (SetAclCounterAttributeResponse) {} + rpc GetAclCounterAttribute(GetAclCounterAttributeRequest) + returns (GetAclCounterAttributeResponse) {} + rpc CreateAclRange(CreateAclRangeRequest) returns (CreateAclRangeResponse) {} + rpc RemoveAclRange(RemoveAclRangeRequest) returns (RemoveAclRangeResponse) {} + rpc GetAclRangeAttribute(GetAclRangeAttributeRequest) + returns (GetAclRangeAttributeResponse) {} + rpc CreateAclTableGroup(CreateAclTableGroupRequest) + returns (CreateAclTableGroupResponse) {} + rpc RemoveAclTableGroup(RemoveAclTableGroupRequest) + returns (RemoveAclTableGroupResponse) {} + rpc GetAclTableGroupAttribute(GetAclTableGroupAttributeRequest) + returns (GetAclTableGroupAttributeResponse) {} + rpc CreateAclTableGroupMember(CreateAclTableGroupMemberRequest) + returns (CreateAclTableGroupMemberResponse) {} + rpc RemoveAclTableGroupMember(RemoveAclTableGroupMemberRequest) + returns (RemoveAclTableGroupMemberResponse) {} + rpc GetAclTableGroupMemberAttribute(GetAclTableGroupMemberAttributeRequest) + returns (GetAclTableGroupMemberAttributeResponse) {} } diff --git a/dataplane/standalone/proto/bfd.pb.go b/dataplane/standalone/proto/bfd.pb.go index 6c04eb26..fad7687a 100755 --- a/dataplane/standalone/proto/bfd.pb.go +++ b/dataplane/standalone/proto/bfd.pb.go @@ -192,39 +192,39 @@ type CreateBfdSessionRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type BfdSessionType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BfdSessionType" json:"type,omitempty"` - HwLookupValid bool `protobuf:"varint,3,opt,name=hw_lookup_valid,json=hwLookupValid,proto3" json:"hw_lookup_valid,omitempty"` - VirtualRouter uint64 `protobuf:"varint,4,opt,name=virtual_router,json=virtualRouter,proto3" json:"virtual_router,omitempty"` - Port uint64 `protobuf:"varint,5,opt,name=port,proto3" json:"port,omitempty"` - LocalDiscriminator uint32 `protobuf:"varint,6,opt,name=local_discriminator,json=localDiscriminator,proto3" json:"local_discriminator,omitempty"` - RemoteDiscriminator uint32 `protobuf:"varint,7,opt,name=remote_discriminator,json=remoteDiscriminator,proto3" json:"remote_discriminator,omitempty"` - UdpSrcPort uint32 `protobuf:"varint,8,opt,name=udp_src_port,json=udpSrcPort,proto3" json:"udp_src_port,omitempty"` - Tc uint32 `protobuf:"varint,9,opt,name=tc,proto3" json:"tc,omitempty"` - VlanTpid uint32 `protobuf:"varint,10,opt,name=vlan_tpid,json=vlanTpid,proto3" json:"vlan_tpid,omitempty"` - VlanId uint32 `protobuf:"varint,11,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - VlanPri uint32 `protobuf:"varint,12,opt,name=vlan_pri,json=vlanPri,proto3" json:"vlan_pri,omitempty"` - VlanCfi uint32 `protobuf:"varint,13,opt,name=vlan_cfi,json=vlanCfi,proto3" json:"vlan_cfi,omitempty"` - VlanHeaderValid bool `protobuf:"varint,14,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3" json:"vlan_header_valid,omitempty"` - BfdEncapsulationType BfdEncapsulationType `protobuf:"varint,15,opt,name=bfd_encapsulation_type,json=bfdEncapsulationType,proto3,enum=lemming.dataplane.sai.BfdEncapsulationType" json:"bfd_encapsulation_type,omitempty"` - IphdrVersion uint32 `protobuf:"varint,16,opt,name=iphdr_version,json=iphdrVersion,proto3" json:"iphdr_version,omitempty"` - Tos uint32 `protobuf:"varint,17,opt,name=tos,proto3" json:"tos,omitempty"` - Ttl uint32 `protobuf:"varint,18,opt,name=ttl,proto3" json:"ttl,omitempty"` - SrcIpAddress []byte `protobuf:"bytes,19,opt,name=src_ip_address,json=srcIpAddress,proto3" json:"src_ip_address,omitempty"` - DstIpAddress []byte `protobuf:"bytes,20,opt,name=dst_ip_address,json=dstIpAddress,proto3" json:"dst_ip_address,omitempty"` - TunnelTos uint32 `protobuf:"varint,21,opt,name=tunnel_tos,json=tunnelTos,proto3" json:"tunnel_tos,omitempty"` - TunnelTtl uint32 `protobuf:"varint,22,opt,name=tunnel_ttl,json=tunnelTtl,proto3" json:"tunnel_ttl,omitempty"` - TunnelSrcIpAddress []byte `protobuf:"bytes,23,opt,name=tunnel_src_ip_address,json=tunnelSrcIpAddress,proto3" json:"tunnel_src_ip_address,omitempty"` - TunnelDstIpAddress []byte `protobuf:"bytes,24,opt,name=tunnel_dst_ip_address,json=tunnelDstIpAddress,proto3" json:"tunnel_dst_ip_address,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,25,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - DstMacAddress []byte `protobuf:"bytes,26,opt,name=dst_mac_address,json=dstMacAddress,proto3" json:"dst_mac_address,omitempty"` - EchoEnable bool `protobuf:"varint,27,opt,name=echo_enable,json=echoEnable,proto3" json:"echo_enable,omitempty"` - Multihop bool `protobuf:"varint,28,opt,name=multihop,proto3" json:"multihop,omitempty"` - Cbit bool `protobuf:"varint,29,opt,name=cbit,proto3" json:"cbit,omitempty"` - MinTx uint32 `protobuf:"varint,30,opt,name=min_tx,json=minTx,proto3" json:"min_tx,omitempty"` - MinRx uint32 `protobuf:"varint,31,opt,name=min_rx,json=minRx,proto3" json:"min_rx,omitempty"` - Multiplier uint32 `protobuf:"varint,32,opt,name=multiplier,proto3" json:"multiplier,omitempty"` - OffloadType BfdSessionOffloadType `protobuf:"varint,33,opt,name=offload_type,json=offloadType,proto3,enum=lemming.dataplane.sai.BfdSessionOffloadType" json:"offload_type,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *BfdSessionType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BfdSessionType,oneof" json:"type,omitempty"` + HwLookupValid *bool `protobuf:"varint,3,opt,name=hw_lookup_valid,json=hwLookupValid,proto3,oneof" json:"hw_lookup_valid,omitempty"` + VirtualRouter *uint64 `protobuf:"varint,4,opt,name=virtual_router,json=virtualRouter,proto3,oneof" json:"virtual_router,omitempty"` + Port *uint64 `protobuf:"varint,5,opt,name=port,proto3,oneof" json:"port,omitempty"` + LocalDiscriminator *uint32 `protobuf:"varint,6,opt,name=local_discriminator,json=localDiscriminator,proto3,oneof" json:"local_discriminator,omitempty"` + RemoteDiscriminator *uint32 `protobuf:"varint,7,opt,name=remote_discriminator,json=remoteDiscriminator,proto3,oneof" json:"remote_discriminator,omitempty"` + UdpSrcPort *uint32 `protobuf:"varint,8,opt,name=udp_src_port,json=udpSrcPort,proto3,oneof" json:"udp_src_port,omitempty"` + Tc *uint32 `protobuf:"varint,9,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + VlanTpid *uint32 `protobuf:"varint,10,opt,name=vlan_tpid,json=vlanTpid,proto3,oneof" json:"vlan_tpid,omitempty"` + VlanId *uint32 `protobuf:"varint,11,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + VlanPri *uint32 `protobuf:"varint,12,opt,name=vlan_pri,json=vlanPri,proto3,oneof" json:"vlan_pri,omitempty"` + VlanCfi *uint32 `protobuf:"varint,13,opt,name=vlan_cfi,json=vlanCfi,proto3,oneof" json:"vlan_cfi,omitempty"` + VlanHeaderValid *bool `protobuf:"varint,14,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3,oneof" json:"vlan_header_valid,omitempty"` + BfdEncapsulationType *BfdEncapsulationType `protobuf:"varint,15,opt,name=bfd_encapsulation_type,json=bfdEncapsulationType,proto3,enum=lemming.dataplane.sai.BfdEncapsulationType,oneof" json:"bfd_encapsulation_type,omitempty"` + IphdrVersion *uint32 `protobuf:"varint,16,opt,name=iphdr_version,json=iphdrVersion,proto3,oneof" json:"iphdr_version,omitempty"` + Tos *uint32 `protobuf:"varint,17,opt,name=tos,proto3,oneof" json:"tos,omitempty"` + Ttl *uint32 `protobuf:"varint,18,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + SrcIpAddress []byte `protobuf:"bytes,19,opt,name=src_ip_address,json=srcIpAddress,proto3,oneof" json:"src_ip_address,omitempty"` + DstIpAddress []byte `protobuf:"bytes,20,opt,name=dst_ip_address,json=dstIpAddress,proto3,oneof" json:"dst_ip_address,omitempty"` + TunnelTos *uint32 `protobuf:"varint,21,opt,name=tunnel_tos,json=tunnelTos,proto3,oneof" json:"tunnel_tos,omitempty"` + TunnelTtl *uint32 `protobuf:"varint,22,opt,name=tunnel_ttl,json=tunnelTtl,proto3,oneof" json:"tunnel_ttl,omitempty"` + TunnelSrcIpAddress []byte `protobuf:"bytes,23,opt,name=tunnel_src_ip_address,json=tunnelSrcIpAddress,proto3,oneof" json:"tunnel_src_ip_address,omitempty"` + TunnelDstIpAddress []byte `protobuf:"bytes,24,opt,name=tunnel_dst_ip_address,json=tunnelDstIpAddress,proto3,oneof" json:"tunnel_dst_ip_address,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,25,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + DstMacAddress []byte `protobuf:"bytes,26,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + EchoEnable *bool `protobuf:"varint,27,opt,name=echo_enable,json=echoEnable,proto3,oneof" json:"echo_enable,omitempty"` + Multihop *bool `protobuf:"varint,28,opt,name=multihop,proto3,oneof" json:"multihop,omitempty"` + Cbit *bool `protobuf:"varint,29,opt,name=cbit,proto3,oneof" json:"cbit,omitempty"` + MinTx *uint32 `protobuf:"varint,30,opt,name=min_tx,json=minTx,proto3,oneof" json:"min_tx,omitempty"` + MinRx *uint32 `protobuf:"varint,31,opt,name=min_rx,json=minRx,proto3,oneof" json:"min_rx,omitempty"` + Multiplier *uint32 `protobuf:"varint,32,opt,name=multiplier,proto3,oneof" json:"multiplier,omitempty"` + OffloadType *BfdSessionOffloadType `protobuf:"varint,33,opt,name=offload_type,json=offloadType,proto3,enum=lemming.dataplane.sai.BfdSessionOffloadType,oneof" json:"offload_type,omitempty"` } func (x *CreateBfdSessionRequest) Reset() { @@ -267,120 +267,120 @@ func (x *CreateBfdSessionRequest) GetSwitch() uint64 { } func (x *CreateBfdSessionRequest) GetType() BfdSessionType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return BfdSessionType_BFD_SESSION_TYPE_UNSPECIFIED } func (x *CreateBfdSessionRequest) GetHwLookupValid() bool { - if x != nil { - return x.HwLookupValid + if x != nil && x.HwLookupValid != nil { + return *x.HwLookupValid } return false } func (x *CreateBfdSessionRequest) GetVirtualRouter() uint64 { - if x != nil { - return x.VirtualRouter + if x != nil && x.VirtualRouter != nil { + return *x.VirtualRouter } return 0 } func (x *CreateBfdSessionRequest) GetPort() uint64 { - if x != nil { - return x.Port + if x != nil && x.Port != nil { + return *x.Port } return 0 } func (x *CreateBfdSessionRequest) GetLocalDiscriminator() uint32 { - if x != nil { - return x.LocalDiscriminator + if x != nil && x.LocalDiscriminator != nil { + return *x.LocalDiscriminator } return 0 } func (x *CreateBfdSessionRequest) GetRemoteDiscriminator() uint32 { - if x != nil { - return x.RemoteDiscriminator + if x != nil && x.RemoteDiscriminator != nil { + return *x.RemoteDiscriminator } return 0 } func (x *CreateBfdSessionRequest) GetUdpSrcPort() uint32 { - if x != nil { - return x.UdpSrcPort + if x != nil && x.UdpSrcPort != nil { + return *x.UdpSrcPort } return 0 } func (x *CreateBfdSessionRequest) GetTc() uint32 { - if x != nil { - return x.Tc + if x != nil && x.Tc != nil { + return *x.Tc } return 0 } func (x *CreateBfdSessionRequest) GetVlanTpid() uint32 { - if x != nil { - return x.VlanTpid + if x != nil && x.VlanTpid != nil { + return *x.VlanTpid } return 0 } func (x *CreateBfdSessionRequest) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *CreateBfdSessionRequest) GetVlanPri() uint32 { - if x != nil { - return x.VlanPri + if x != nil && x.VlanPri != nil { + return *x.VlanPri } return 0 } func (x *CreateBfdSessionRequest) GetVlanCfi() uint32 { - if x != nil { - return x.VlanCfi + if x != nil && x.VlanCfi != nil { + return *x.VlanCfi } return 0 } func (x *CreateBfdSessionRequest) GetVlanHeaderValid() bool { - if x != nil { - return x.VlanHeaderValid + if x != nil && x.VlanHeaderValid != nil { + return *x.VlanHeaderValid } return false } func (x *CreateBfdSessionRequest) GetBfdEncapsulationType() BfdEncapsulationType { - if x != nil { - return x.BfdEncapsulationType + if x != nil && x.BfdEncapsulationType != nil { + return *x.BfdEncapsulationType } return BfdEncapsulationType_BFD_ENCAPSULATION_TYPE_UNSPECIFIED } func (x *CreateBfdSessionRequest) GetIphdrVersion() uint32 { - if x != nil { - return x.IphdrVersion + if x != nil && x.IphdrVersion != nil { + return *x.IphdrVersion } return 0 } func (x *CreateBfdSessionRequest) GetTos() uint32 { - if x != nil { - return x.Tos + if x != nil && x.Tos != nil { + return *x.Tos } return 0 } func (x *CreateBfdSessionRequest) GetTtl() uint32 { - if x != nil { - return x.Ttl + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } @@ -400,15 +400,15 @@ func (x *CreateBfdSessionRequest) GetDstIpAddress() []byte { } func (x *CreateBfdSessionRequest) GetTunnelTos() uint32 { - if x != nil { - return x.TunnelTos + if x != nil && x.TunnelTos != nil { + return *x.TunnelTos } return 0 } func (x *CreateBfdSessionRequest) GetTunnelTtl() uint32 { - if x != nil { - return x.TunnelTtl + if x != nil && x.TunnelTtl != nil { + return *x.TunnelTtl } return 0 } @@ -442,50 +442,50 @@ func (x *CreateBfdSessionRequest) GetDstMacAddress() []byte { } func (x *CreateBfdSessionRequest) GetEchoEnable() bool { - if x != nil { - return x.EchoEnable + if x != nil && x.EchoEnable != nil { + return *x.EchoEnable } return false } func (x *CreateBfdSessionRequest) GetMultihop() bool { - if x != nil { - return x.Multihop + if x != nil && x.Multihop != nil { + return *x.Multihop } return false } func (x *CreateBfdSessionRequest) GetCbit() bool { - if x != nil { - return x.Cbit + if x != nil && x.Cbit != nil { + return *x.Cbit } return false } func (x *CreateBfdSessionRequest) GetMinTx() uint32 { - if x != nil { - return x.MinTx + if x != nil && x.MinTx != nil { + return *x.MinTx } return 0 } func (x *CreateBfdSessionRequest) GetMinRx() uint32 { - if x != nil { - return x.MinRx + if x != nil && x.MinRx != nil { + return *x.MinRx } return 0 } func (x *CreateBfdSessionRequest) GetMultiplier() uint32 { - if x != nil { - return x.Multiplier + if x != nil && x.Multiplier != nil { + return *x.Multiplier } return 0 } func (x *CreateBfdSessionRequest) GetOffloadType() BfdSessionOffloadType { - if x != nil { - return x.OffloadType + if x != nil && x.OffloadType != nil { + return *x.OffloadType } return BfdSessionOffloadType_BFD_SESSION_OFFLOAD_TYPE_UNSPECIFIED } @@ -627,27 +627,24 @@ type SetBfdSessionAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetBfdSessionAttributeRequest_VirtualRouter - // *SetBfdSessionAttributeRequest_Port - // *SetBfdSessionAttributeRequest_Tc - // *SetBfdSessionAttributeRequest_VlanTpid - // *SetBfdSessionAttributeRequest_VlanPri - // *SetBfdSessionAttributeRequest_VlanCfi - // *SetBfdSessionAttributeRequest_IphdrVersion - // *SetBfdSessionAttributeRequest_Tos - // *SetBfdSessionAttributeRequest_Ttl - // *SetBfdSessionAttributeRequest_TunnelTos - // *SetBfdSessionAttributeRequest_TunnelTtl - // *SetBfdSessionAttributeRequest_SrcMacAddress - // *SetBfdSessionAttributeRequest_DstMacAddress - // *SetBfdSessionAttributeRequest_EchoEnable - // *SetBfdSessionAttributeRequest_MinTx - // *SetBfdSessionAttributeRequest_MinRx - // *SetBfdSessionAttributeRequest_Multiplier - Attr isSetBfdSessionAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + VirtualRouter *uint64 `protobuf:"varint,2,opt,name=virtual_router,json=virtualRouter,proto3,oneof" json:"virtual_router,omitempty"` + Port *uint64 `protobuf:"varint,3,opt,name=port,proto3,oneof" json:"port,omitempty"` + Tc *uint32 `protobuf:"varint,4,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + VlanTpid *uint32 `protobuf:"varint,5,opt,name=vlan_tpid,json=vlanTpid,proto3,oneof" json:"vlan_tpid,omitempty"` + VlanPri *uint32 `protobuf:"varint,6,opt,name=vlan_pri,json=vlanPri,proto3,oneof" json:"vlan_pri,omitempty"` + VlanCfi *uint32 `protobuf:"varint,7,opt,name=vlan_cfi,json=vlanCfi,proto3,oneof" json:"vlan_cfi,omitempty"` + IphdrVersion *uint32 `protobuf:"varint,8,opt,name=iphdr_version,json=iphdrVersion,proto3,oneof" json:"iphdr_version,omitempty"` + Tos *uint32 `protobuf:"varint,9,opt,name=tos,proto3,oneof" json:"tos,omitempty"` + Ttl *uint32 `protobuf:"varint,10,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + TunnelTos *uint32 `protobuf:"varint,11,opt,name=tunnel_tos,json=tunnelTos,proto3,oneof" json:"tunnel_tos,omitempty"` + TunnelTtl *uint32 `protobuf:"varint,12,opt,name=tunnel_ttl,json=tunnelTtl,proto3,oneof" json:"tunnel_ttl,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,13,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + DstMacAddress []byte `protobuf:"bytes,14,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + EchoEnable *bool `protobuf:"varint,15,opt,name=echo_enable,json=echoEnable,proto3,oneof" json:"echo_enable,omitempty"` + MinTx *uint32 `protobuf:"varint,16,opt,name=min_tx,json=minTx,proto3,oneof" json:"min_tx,omitempty"` + MinRx *uint32 `protobuf:"varint,17,opt,name=min_rx,json=minRx,proto3,oneof" json:"min_rx,omitempty"` + Multiplier *uint32 `protobuf:"varint,18,opt,name=multiplier,proto3,oneof" json:"multiplier,omitempty"` } func (x *SetBfdSessionAttributeRequest) Reset() { @@ -689,238 +686,125 @@ func (x *SetBfdSessionAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetBfdSessionAttributeRequest) GetAttr() isSetBfdSessionAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetBfdSessionAttributeRequest) GetVirtualRouter() uint64 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_VirtualRouter); ok { - return x.VirtualRouter + if x != nil && x.VirtualRouter != nil { + return *x.VirtualRouter } return 0 } func (x *SetBfdSessionAttributeRequest) GetPort() uint64 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_Port); ok { - return x.Port + if x != nil && x.Port != nil { + return *x.Port } return 0 } func (x *SetBfdSessionAttributeRequest) GetTc() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_Tc); ok { - return x.Tc + if x != nil && x.Tc != nil { + return *x.Tc } return 0 } func (x *SetBfdSessionAttributeRequest) GetVlanTpid() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_VlanTpid); ok { - return x.VlanTpid + if x != nil && x.VlanTpid != nil { + return *x.VlanTpid } return 0 } func (x *SetBfdSessionAttributeRequest) GetVlanPri() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_VlanPri); ok { - return x.VlanPri + if x != nil && x.VlanPri != nil { + return *x.VlanPri } return 0 } func (x *SetBfdSessionAttributeRequest) GetVlanCfi() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_VlanCfi); ok { - return x.VlanCfi + if x != nil && x.VlanCfi != nil { + return *x.VlanCfi } return 0 } func (x *SetBfdSessionAttributeRequest) GetIphdrVersion() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_IphdrVersion); ok { - return x.IphdrVersion + if x != nil && x.IphdrVersion != nil { + return *x.IphdrVersion } return 0 } func (x *SetBfdSessionAttributeRequest) GetTos() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_Tos); ok { - return x.Tos + if x != nil && x.Tos != nil { + return *x.Tos } return 0 } func (x *SetBfdSessionAttributeRequest) GetTtl() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_Ttl); ok { - return x.Ttl + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } func (x *SetBfdSessionAttributeRequest) GetTunnelTos() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_TunnelTos); ok { - return x.TunnelTos + if x != nil && x.TunnelTos != nil { + return *x.TunnelTos } return 0 } func (x *SetBfdSessionAttributeRequest) GetTunnelTtl() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_TunnelTtl); ok { - return x.TunnelTtl + if x != nil && x.TunnelTtl != nil { + return *x.TunnelTtl } return 0 } func (x *SetBfdSessionAttributeRequest) GetSrcMacAddress() []byte { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_SrcMacAddress); ok { + if x != nil { return x.SrcMacAddress } return nil } func (x *SetBfdSessionAttributeRequest) GetDstMacAddress() []byte { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_DstMacAddress); ok { + if x != nil { return x.DstMacAddress } return nil } func (x *SetBfdSessionAttributeRequest) GetEchoEnable() bool { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_EchoEnable); ok { - return x.EchoEnable + if x != nil && x.EchoEnable != nil { + return *x.EchoEnable } return false } func (x *SetBfdSessionAttributeRequest) GetMinTx() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_MinTx); ok { - return x.MinTx + if x != nil && x.MinTx != nil { + return *x.MinTx } return 0 } func (x *SetBfdSessionAttributeRequest) GetMinRx() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_MinRx); ok { - return x.MinRx + if x != nil && x.MinRx != nil { + return *x.MinRx } return 0 } func (x *SetBfdSessionAttributeRequest) GetMultiplier() uint32 { - if x, ok := x.GetAttr().(*SetBfdSessionAttributeRequest_Multiplier); ok { - return x.Multiplier + if x != nil && x.Multiplier != nil { + return *x.Multiplier } return 0 } -type isSetBfdSessionAttributeRequest_Attr interface { - isSetBfdSessionAttributeRequest_Attr() -} - -type SetBfdSessionAttributeRequest_VirtualRouter struct { - VirtualRouter uint64 `protobuf:"varint,2,opt,name=virtual_router,json=virtualRouter,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_Port struct { - Port uint64 `protobuf:"varint,3,opt,name=port,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_Tc struct { - Tc uint32 `protobuf:"varint,4,opt,name=tc,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_VlanTpid struct { - VlanTpid uint32 `protobuf:"varint,5,opt,name=vlan_tpid,json=vlanTpid,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_VlanPri struct { - VlanPri uint32 `protobuf:"varint,6,opt,name=vlan_pri,json=vlanPri,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_VlanCfi struct { - VlanCfi uint32 `protobuf:"varint,7,opt,name=vlan_cfi,json=vlanCfi,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_IphdrVersion struct { - IphdrVersion uint32 `protobuf:"varint,8,opt,name=iphdr_version,json=iphdrVersion,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_Tos struct { - Tos uint32 `protobuf:"varint,9,opt,name=tos,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_Ttl struct { - Ttl uint32 `protobuf:"varint,10,opt,name=ttl,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_TunnelTos struct { - TunnelTos uint32 `protobuf:"varint,11,opt,name=tunnel_tos,json=tunnelTos,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_TunnelTtl struct { - TunnelTtl uint32 `protobuf:"varint,12,opt,name=tunnel_ttl,json=tunnelTtl,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_SrcMacAddress struct { - SrcMacAddress []byte `protobuf:"bytes,13,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_DstMacAddress struct { - DstMacAddress []byte `protobuf:"bytes,14,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_EchoEnable struct { - EchoEnable bool `protobuf:"varint,15,opt,name=echo_enable,json=echoEnable,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_MinTx struct { - MinTx uint32 `protobuf:"varint,16,opt,name=min_tx,json=minTx,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_MinRx struct { - MinRx uint32 `protobuf:"varint,17,opt,name=min_rx,json=minRx,proto3,oneof"` -} - -type SetBfdSessionAttributeRequest_Multiplier struct { - Multiplier uint32 `protobuf:"varint,18,opt,name=multiplier,proto3,oneof"` -} - -func (*SetBfdSessionAttributeRequest_VirtualRouter) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_Port) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_Tc) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_VlanTpid) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_VlanPri) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_VlanCfi) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_IphdrVersion) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_Tos) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_Ttl) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_TunnelTos) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_TunnelTtl) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_SrcMacAddress) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_DstMacAddress) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_EchoEnable) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_MinTx) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_MinRx) isSetBfdSessionAttributeRequest_Attr() {} - -func (*SetBfdSessionAttributeRequest_Multiplier) isSetBfdSessionAttributeRequest_Attr() {} - type SetBfdSessionAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1019,7 +903,7 @@ type GetBfdSessionAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*BfdSessionAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *BfdSessionAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetBfdSessionAttributeResponse) Reset() { @@ -1054,7 +938,7 @@ func (*GetBfdSessionAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_bfd_proto_rawDescGZIP(), []int{7} } -func (x *GetBfdSessionAttributeResponse) GetAttr() []*BfdSessionAttribute { +func (x *GetBfdSessionAttributeResponse) GetAttr() *BfdSessionAttribute { if x != nil { return x.Attr } @@ -1070,270 +954,348 @@ var file_dataplane_standalone_proto_bfd_proto_rawDesc = []byte{ 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd9, 0x09, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbe, 0x10, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x68, 0x77, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, - 0x75, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x68, 0x77, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x63, - 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, - 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0c, - 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x74, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x74, 0x63, 0x12, 0x1b, - 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, - 0x61, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, - 0x19, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x61, 0x0a, 0x16, 0x62, 0x66, 0x64, 0x5f, 0x65, 0x6e, - 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, - 0x66, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x14, 0x62, 0x66, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x68, - 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x6f, 0x73, - 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, - 0x74, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x49, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, - 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x12, 0x31, 0x0a, 0x15, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x53, 0x72, 0x63, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x31, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x72, 0x63, - 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x73, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x65, 0x63, 0x68, 0x6f, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x62, 0x69, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, - 0x62, 0x69, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x18, 0x1e, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x54, 0x78, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x69, - 0x6e, 0x5f, 0x72, 0x78, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x52, - 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, - 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, - 0x72, 0x12, 0x4f, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x66, 0x64, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, - 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x04, 0x0a, 0x1d, 0x53, 0x65, - 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x27, 0x0a, - 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x02, - 0x74, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x02, 0x74, 0x63, 0x12, 0x1d, + 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x31, 0x0a, 0x0f, 0x68, 0x77, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0d, 0x68, 0x77, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x69, + 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x3c, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, + 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x69, + 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0a, 0x75, 0x64, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x02, 0x74, + 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, + 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, + 0x08, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, + 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x07, 0x76, 0x6c, + 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x63, 0x66, 0x69, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, + 0x48, 0x0b, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x35, + 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, + 0x0c, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x16, 0x62, 0x66, 0x64, 0x5f, 0x65, 0x6e, 0x63, + 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, + 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x14, 0x62, 0x66, 0x64, 0x45, + 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x69, 0x70, 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, + 0x48, 0x0e, 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x0c, 0x73, + 0x72, 0x63, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x0c, + 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x13, 0x52, 0x09, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x15, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x53, 0x72, 0x63, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x16, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x44, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x17, + 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x19, 0x48, 0x18, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, + 0x48, 0x19, 0x52, 0x0a, 0x65, 0x63, 0x68, 0x6f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x08, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1b, 0x48, 0x1a, 0x52, 0x08, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x68, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x63, 0x62, 0x69, 0x74, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1c, 0x48, 0x1b, 0x52, 0x04, + 0x63, 0x62, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x74, + 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1d, 0x48, 0x1c, 0x52, + 0x05, 0x6d, 0x69, 0x6e, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6d, 0x69, 0x6e, + 0x5f, 0x72, 0x78, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, + 0x1d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0a, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x1f, 0x48, 0x1e, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, + 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x23, + 0x48, 0x1f, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x68, 0x77, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, + 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x05, 0x0a, + 0x03, 0x5f, 0x74, 0x63, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, + 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, + 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x74, 0x6f, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6f, 0x73, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x62, 0x69, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, + 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x66, 0x64, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, + 0x07, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x12, 0x30, 0x0a, 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x00, 0x52, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x02, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x1b, 0x0a, - 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x08, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, - 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x25, 0x0a, 0x0d, 0x69, 0x70, 0x68, 0x64, 0x72, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, - 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x74, - 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x74, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, 0x73, 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, - 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0c, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0d, 0x64, - 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0b, - 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x63, 0x68, 0x6f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x17, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x54, 0x78, 0x12, 0x17, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, - 0x72, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x52, - 0x78, 0x12, 0x20, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x69, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x03, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, + 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, + 0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x04, + 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x05, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x69, 0x70, 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, + 0x06, 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x07, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x11, 0x48, 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x09, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x54, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, + 0x48, 0x0a, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, + 0x0b, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x19, 0x48, 0x0c, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x1a, 0x48, 0x0d, 0x52, 0x0a, 0x65, 0x63, 0x68, 0x6f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1d, 0x48, 0x0e, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x78, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, 0x0f, 0x52, 0x05, 0x6d, 0x69, + 0x6e, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x69, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1f, + 0x48, 0x10, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x05, 0x0a, + 0x03, 0x5f, 0x74, 0x63, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, + 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x69, 0x70, 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, + 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x8e, 0x0b, 0x0a, 0x0e, 0x42, 0x66, 0x64, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, 0x44, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, + 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x2a, 0x8e, 0x0b, 0x0a, 0x0e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x46, 0x44, + 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x57, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, + 0x55, 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x46, + 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, + 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, + 0x19, 0x0a, 0x15, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x46, + 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, + 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x52, 0x49, 0x4d, 0x49, 0x4e, 0x41, 0x54, + 0x4f, 0x52, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x52, 0x49, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x06, 0x12, + 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x43, 0x10, 0x08, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x57, 0x5f, 0x4c, 0x4f, - 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, - 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, - 0x03, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, - 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x52, 0x49, 0x4d, 0x49, 0x4e, - 0x41, 0x54, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, - 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x52, 0x49, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x4f, 0x52, 0x10, - 0x06, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x43, 0x10, 0x08, 0x12, 0x1e, 0x0a, - 0x1a, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x09, 0x12, 0x1c, 0x0a, - 0x18, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x42, + 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x09, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x46, - 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, - 0x4c, 0x41, 0x4e, 0x5f, 0x43, 0x46, 0x49, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x46, 0x44, + 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, - 0x41, 0x4e, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, - 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, - 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0e, 0x12, 0x22, - 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x49, 0x50, 0x48, 0x44, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, - 0x10, 0x0f, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x4f, 0x53, 0x10, 0x10, 0x12, 0x18, 0x0a, 0x14, - 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x11, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, - 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x12, 0x12, 0x23, 0x0a, 0x1f, 0x42, - 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x13, - 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x4f, 0x53, 0x10, - 0x14, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x54, 0x4c, - 0x10, 0x15, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x52, - 0x43, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x16, 0x12, 0x2a, - 0x0a, 0x26, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, - 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x17, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x46, - 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, - 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x18, - 0x12, 0x24, 0x0a, 0x20, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, - 0x52, 0x45, 0x53, 0x53, 0x10, 0x19, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x48, 0x4f, 0x5f, - 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x1a, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x46, 0x44, 0x5f, - 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x55, 0x4c, - 0x54, 0x49, 0x48, 0x4f, 0x50, 0x10, 0x1b, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x46, 0x44, 0x5f, 0x53, - 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x42, 0x49, 0x54, - 0x10, 0x1c, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x58, 0x10, 0x1d, 0x12, - 0x1b, 0x0a, 0x17, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x52, 0x58, 0x10, 0x1e, 0x12, 0x1f, 0x0a, 0x1b, + 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x46, 0x44, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x43, 0x46, 0x49, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x46, 0x44, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, + 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x0d, 0x12, + 0x2b, 0x0a, 0x27, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x49, 0x45, 0x52, 0x10, 0x1f, 0x12, 0x22, 0x0a, - 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x58, 0x10, - 0x20, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x4d, 0x49, 0x4e, - 0x5f, 0x52, 0x58, 0x10, 0x21, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, - 0x22, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x10, 0x23, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x47, 0x4f, 0x54, 0x49, 0x41, - 0x54, 0x45, 0x44, 0x5f, 0x54, 0x58, 0x10, 0x24, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, - 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x47, - 0x4f, 0x54, 0x49, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x58, 0x10, 0x25, 0x12, 0x1f, 0x0a, 0x1b, + 0x5f, 0x49, 0x50, 0x48, 0x44, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x0f, + 0x12, 0x18, 0x0a, 0x14, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x4f, 0x53, 0x10, 0x10, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x46, + 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x54, 0x4c, 0x10, 0x11, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x5f, + 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x12, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x46, 0x44, + 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, + 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x13, 0x12, 0x1f, + 0x0a, 0x1b, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x4f, 0x53, 0x10, 0x14, 0x12, + 0x1f, 0x0a, 0x1b, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x15, + 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x52, 0x43, 0x5f, + 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x41, 0x47, 0x10, 0x26, 0x12, 0x20, 0x0a, - 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x41, 0x47, 0x10, 0x27, 0x12, - 0x26, 0x0a, 0x22, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, - 0x50, 0x4c, 0x49, 0x45, 0x52, 0x10, 0x28, 0x32, 0x87, 0x04, 0x0a, 0x03, 0x42, 0x66, 0x64, 0x12, - 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, - 0x0a, 0x16, 0x53, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x41, + 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x17, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x46, 0x44, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, + 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x18, 0x12, 0x24, + 0x0a, 0x20, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x19, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x48, 0x4f, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x1a, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, + 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, + 0x48, 0x4f, 0x50, 0x10, 0x1b, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, + 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x42, 0x49, 0x54, 0x10, 0x1c, + 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x58, 0x10, 0x1d, 0x12, 0x1b, 0x0a, + 0x17, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x52, 0x58, 0x10, 0x1e, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x46, + 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, + 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x49, 0x45, 0x52, 0x10, 0x1f, 0x12, 0x22, 0x0a, 0x1e, 0x42, + 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x58, 0x10, 0x20, 0x12, + 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x52, + 0x58, 0x10, 0x21, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x22, 0x12, + 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x10, 0x23, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x47, 0x4f, 0x54, 0x49, 0x41, 0x54, 0x45, + 0x44, 0x5f, 0x54, 0x58, 0x10, 0x24, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, + 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x47, 0x4f, 0x54, + 0x49, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x58, 0x10, 0x25, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x46, + 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, + 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x41, 0x47, 0x10, 0x26, 0x12, 0x20, 0x0a, 0x1c, 0x42, + 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x41, 0x47, 0x10, 0x27, 0x12, 0x26, 0x0a, + 0x22, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, + 0x49, 0x45, 0x52, 0x10, 0x28, 0x32, 0x87, 0x04, 0x0a, 0x03, 0x42, 0x66, 0x64, 0x12, 0x75, 0x0a, + 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x66, + 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, - 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x66, - 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, + 0x53, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x66, 0x64, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, + 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1490,25 +1452,8 @@ func file_dataplane_standalone_proto_bfd_proto_init() { } } } - file_dataplane_standalone_proto_bfd_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetBfdSessionAttributeRequest_VirtualRouter)(nil), - (*SetBfdSessionAttributeRequest_Port)(nil), - (*SetBfdSessionAttributeRequest_Tc)(nil), - (*SetBfdSessionAttributeRequest_VlanTpid)(nil), - (*SetBfdSessionAttributeRequest_VlanPri)(nil), - (*SetBfdSessionAttributeRequest_VlanCfi)(nil), - (*SetBfdSessionAttributeRequest_IphdrVersion)(nil), - (*SetBfdSessionAttributeRequest_Tos)(nil), - (*SetBfdSessionAttributeRequest_Ttl)(nil), - (*SetBfdSessionAttributeRequest_TunnelTos)(nil), - (*SetBfdSessionAttributeRequest_TunnelTtl)(nil), - (*SetBfdSessionAttributeRequest_SrcMacAddress)(nil), - (*SetBfdSessionAttributeRequest_DstMacAddress)(nil), - (*SetBfdSessionAttributeRequest_EchoEnable)(nil), - (*SetBfdSessionAttributeRequest_MinTx)(nil), - (*SetBfdSessionAttributeRequest_MinRx)(nil), - (*SetBfdSessionAttributeRequest_Multiplier)(nil), - } + file_dataplane_standalone_proto_bfd_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_bfd_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/bfd.proto b/dataplane/standalone/proto/bfd.proto index a00f4807..91b7b8b0 100644 --- a/dataplane/standalone/proto/bfd.proto +++ b/dataplane/standalone/proto/bfd.proto @@ -7,151 +7,136 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum BfdSessionAttr { - BFD_SESSION_ATTR_UNSPECIFIED = 0; - BFD_SESSION_ATTR_TYPE = 1; - BFD_SESSION_ATTR_HW_LOOKUP_VALID = 2; - BFD_SESSION_ATTR_VIRTUAL_ROUTER = 3; - BFD_SESSION_ATTR_PORT = 4; - BFD_SESSION_ATTR_LOCAL_DISCRIMINATOR = 5; - BFD_SESSION_ATTR_REMOTE_DISCRIMINATOR = 6; - BFD_SESSION_ATTR_UDP_SRC_PORT = 7; - BFD_SESSION_ATTR_TC = 8; - BFD_SESSION_ATTR_VLAN_TPID = 9; - BFD_SESSION_ATTR_VLAN_ID = 10; - BFD_SESSION_ATTR_VLAN_PRI = 11; - BFD_SESSION_ATTR_VLAN_CFI = 12; - BFD_SESSION_ATTR_VLAN_HEADER_VALID = 13; - BFD_SESSION_ATTR_BFD_ENCAPSULATION_TYPE = 14; - BFD_SESSION_ATTR_IPHDR_VERSION = 15; - BFD_SESSION_ATTR_TOS = 16; - BFD_SESSION_ATTR_TTL = 17; - BFD_SESSION_ATTR_SRC_IP_ADDRESS = 18; - BFD_SESSION_ATTR_DST_IP_ADDRESS = 19; - BFD_SESSION_ATTR_TUNNEL_TOS = 20; - BFD_SESSION_ATTR_TUNNEL_TTL = 21; - BFD_SESSION_ATTR_TUNNEL_SRC_IP_ADDRESS = 22; - BFD_SESSION_ATTR_TUNNEL_DST_IP_ADDRESS = 23; - BFD_SESSION_ATTR_SRC_MAC_ADDRESS = 24; - BFD_SESSION_ATTR_DST_MAC_ADDRESS = 25; - BFD_SESSION_ATTR_ECHO_ENABLE = 26; - BFD_SESSION_ATTR_MULTIHOP = 27; - BFD_SESSION_ATTR_CBIT = 28; - BFD_SESSION_ATTR_MIN_TX = 29; - BFD_SESSION_ATTR_MIN_RX = 30; - BFD_SESSION_ATTR_MULTIPLIER = 31; - BFD_SESSION_ATTR_REMOTE_MIN_TX = 32; - BFD_SESSION_ATTR_REMOTE_MIN_RX = 33; - BFD_SESSION_ATTR_STATE = 34; - BFD_SESSION_ATTR_OFFLOAD_TYPE = 35; - BFD_SESSION_ATTR_NEGOTIATED_TX = 36; - BFD_SESSION_ATTR_NEGOTIATED_RX = 37; - BFD_SESSION_ATTR_LOCAL_DIAG = 38; - BFD_SESSION_ATTR_REMOTE_DIAG = 39; - BFD_SESSION_ATTR_REMOTE_MULTIPLIER = 40; + BFD_SESSION_ATTR_UNSPECIFIED = 0; + BFD_SESSION_ATTR_TYPE = 1; + BFD_SESSION_ATTR_HW_LOOKUP_VALID = 2; + BFD_SESSION_ATTR_VIRTUAL_ROUTER = 3; + BFD_SESSION_ATTR_PORT = 4; + BFD_SESSION_ATTR_LOCAL_DISCRIMINATOR = 5; + BFD_SESSION_ATTR_REMOTE_DISCRIMINATOR = 6; + BFD_SESSION_ATTR_UDP_SRC_PORT = 7; + BFD_SESSION_ATTR_TC = 8; + BFD_SESSION_ATTR_VLAN_TPID = 9; + BFD_SESSION_ATTR_VLAN_ID = 10; + BFD_SESSION_ATTR_VLAN_PRI = 11; + BFD_SESSION_ATTR_VLAN_CFI = 12; + BFD_SESSION_ATTR_VLAN_HEADER_VALID = 13; + BFD_SESSION_ATTR_BFD_ENCAPSULATION_TYPE = 14; + BFD_SESSION_ATTR_IPHDR_VERSION = 15; + BFD_SESSION_ATTR_TOS = 16; + BFD_SESSION_ATTR_TTL = 17; + BFD_SESSION_ATTR_SRC_IP_ADDRESS = 18; + BFD_SESSION_ATTR_DST_IP_ADDRESS = 19; + BFD_SESSION_ATTR_TUNNEL_TOS = 20; + BFD_SESSION_ATTR_TUNNEL_TTL = 21; + BFD_SESSION_ATTR_TUNNEL_SRC_IP_ADDRESS = 22; + BFD_SESSION_ATTR_TUNNEL_DST_IP_ADDRESS = 23; + BFD_SESSION_ATTR_SRC_MAC_ADDRESS = 24; + BFD_SESSION_ATTR_DST_MAC_ADDRESS = 25; + BFD_SESSION_ATTR_ECHO_ENABLE = 26; + BFD_SESSION_ATTR_MULTIHOP = 27; + BFD_SESSION_ATTR_CBIT = 28; + BFD_SESSION_ATTR_MIN_TX = 29; + BFD_SESSION_ATTR_MIN_RX = 30; + BFD_SESSION_ATTR_MULTIPLIER = 31; + BFD_SESSION_ATTR_REMOTE_MIN_TX = 32; + BFD_SESSION_ATTR_REMOTE_MIN_RX = 33; + BFD_SESSION_ATTR_STATE = 34; + BFD_SESSION_ATTR_OFFLOAD_TYPE = 35; + BFD_SESSION_ATTR_NEGOTIATED_TX = 36; + BFD_SESSION_ATTR_NEGOTIATED_RX = 37; + BFD_SESSION_ATTR_LOCAL_DIAG = 38; + BFD_SESSION_ATTR_REMOTE_DIAG = 39; + BFD_SESSION_ATTR_REMOTE_MULTIPLIER = 40; } message CreateBfdSessionRequest { - uint64 switch = 1; - - BfdSessionType type = 2; - bool hw_lookup_valid = 3; - uint64 virtual_router = 4; - uint64 port = 5; - uint32 local_discriminator = 6; - uint32 remote_discriminator = 7; - uint32 udp_src_port = 8; - uint32 tc = 9; - uint32 vlan_tpid = 10; - uint32 vlan_id = 11; - uint32 vlan_pri = 12; - uint32 vlan_cfi = 13; - bool vlan_header_valid = 14; - BfdEncapsulationType bfd_encapsulation_type = 15; - uint32 iphdr_version = 16; - uint32 tos = 17; - uint32 ttl = 18; - bytes src_ip_address = 19; - bytes dst_ip_address = 20; - uint32 tunnel_tos = 21; - uint32 tunnel_ttl = 22; - bytes tunnel_src_ip_address = 23; - bytes tunnel_dst_ip_address = 24; - bytes src_mac_address = 25; - bytes dst_mac_address = 26; - bool echo_enable = 27; - bool multihop = 28; - bool cbit = 29; - uint32 min_tx = 30; - uint32 min_rx = 31; - uint32 multiplier = 32; - BfdSessionOffloadType offload_type = 33; - + uint64 switch = 1; + optional BfdSessionType type = 2 [(attr_enum_value) = 1]; + optional bool hw_lookup_valid = 3 [(attr_enum_value) = 2]; + optional uint64 virtual_router = 4 [(attr_enum_value) = 3]; + optional uint64 port = 5 [(attr_enum_value) = 4]; + optional uint32 local_discriminator = 6 [(attr_enum_value) = 5]; + optional uint32 remote_discriminator = 7 [(attr_enum_value) = 6]; + optional uint32 udp_src_port = 8 [(attr_enum_value) = 7]; + optional uint32 tc = 9 [(attr_enum_value) = 8]; + optional uint32 vlan_tpid = 10 [(attr_enum_value) = 9]; + optional uint32 vlan_id = 11 [(attr_enum_value) = 10]; + optional uint32 vlan_pri = 12 [(attr_enum_value) = 11]; + optional uint32 vlan_cfi = 13 [(attr_enum_value) = 12]; + optional bool vlan_header_valid = 14 [(attr_enum_value) = 13]; + optional BfdEncapsulationType bfd_encapsulation_type = 15 + [(attr_enum_value) = 14]; + optional uint32 iphdr_version = 16 [(attr_enum_value) = 15]; + optional uint32 tos = 17 [(attr_enum_value) = 16]; + optional uint32 ttl = 18 [(attr_enum_value) = 17]; + optional bytes src_ip_address = 19 [(attr_enum_value) = 18]; + optional bytes dst_ip_address = 20 [(attr_enum_value) = 19]; + optional uint32 tunnel_tos = 21 [(attr_enum_value) = 20]; + optional uint32 tunnel_ttl = 22 [(attr_enum_value) = 21]; + optional bytes tunnel_src_ip_address = 23 [(attr_enum_value) = 22]; + optional bytes tunnel_dst_ip_address = 24 [(attr_enum_value) = 23]; + optional bytes src_mac_address = 25 [(attr_enum_value) = 24]; + optional bytes dst_mac_address = 26 [(attr_enum_value) = 25]; + optional bool echo_enable = 27 [(attr_enum_value) = 26]; + optional bool multihop = 28 [(attr_enum_value) = 27]; + optional bool cbit = 29 [(attr_enum_value) = 28]; + optional uint32 min_tx = 30 [(attr_enum_value) = 29]; + optional uint32 min_rx = 31 [(attr_enum_value) = 30]; + optional uint32 multiplier = 32 [(attr_enum_value) = 31]; + optional BfdSessionOffloadType offload_type = 33 [(attr_enum_value) = 35]; } message CreateBfdSessionResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveBfdSessionRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveBfdSessionResponse { - - -} +message RemoveBfdSessionResponse {} message SetBfdSessionAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 virtual_router = 2; - uint64 port = 3; - uint32 tc = 4; - uint32 vlan_tpid = 5; - uint32 vlan_pri = 6; - uint32 vlan_cfi = 7; - uint32 iphdr_version = 8; - uint32 tos = 9; - uint32 ttl = 10; - uint32 tunnel_tos = 11; - uint32 tunnel_ttl = 12; - bytes src_mac_address = 13; - bytes dst_mac_address = 14; - bool echo_enable = 15; - uint32 min_tx = 16; - uint32 min_rx = 17; - uint32 multiplier = 18; - } + uint64 oid = 1; + optional uint64 virtual_router = 2 [(attr_enum_value) = 3]; + optional uint64 port = 3 [(attr_enum_value) = 4]; + optional uint32 tc = 4 [(attr_enum_value) = 8]; + optional uint32 vlan_tpid = 5 [(attr_enum_value) = 9]; + optional uint32 vlan_pri = 6 [(attr_enum_value) = 11]; + optional uint32 vlan_cfi = 7 [(attr_enum_value) = 12]; + optional uint32 iphdr_version = 8 [(attr_enum_value) = 15]; + optional uint32 tos = 9 [(attr_enum_value) = 16]; + optional uint32 ttl = 10 [(attr_enum_value) = 17]; + optional uint32 tunnel_tos = 11 [(attr_enum_value) = 20]; + optional uint32 tunnel_ttl = 12 [(attr_enum_value) = 21]; + optional bytes src_mac_address = 13 [(attr_enum_value) = 24]; + optional bytes dst_mac_address = 14 [(attr_enum_value) = 25]; + optional bool echo_enable = 15 [(attr_enum_value) = 26]; + optional uint32 min_tx = 16 [(attr_enum_value) = 29]; + optional uint32 min_rx = 17 [(attr_enum_value) = 30]; + optional uint32 multiplier = 18 [(attr_enum_value) = 31]; } -message SetBfdSessionAttributeResponse { - - -} +message SetBfdSessionAttributeResponse {} message GetBfdSessionAttributeRequest { - uint64 oid = 1; - repeated BfdSessionAttr attr_type = 2; - - + uint64 oid = 1; + repeated BfdSessionAttr attr_type = 2; } message GetBfdSessionAttributeResponse { - repeated BfdSessionAttribute attr = 1; - - + BfdSessionAttribute attr = 1; } - service Bfd { - rpc CreateBfdSession (CreateBfdSessionRequest) returns (CreateBfdSessionResponse) {} - rpc RemoveBfdSession (RemoveBfdSessionRequest) returns (RemoveBfdSessionResponse) {} - rpc SetBfdSessionAttribute (SetBfdSessionAttributeRequest) returns (SetBfdSessionAttributeResponse) {} - rpc GetBfdSessionAttribute (GetBfdSessionAttributeRequest) returns (GetBfdSessionAttributeResponse) {} + rpc CreateBfdSession(CreateBfdSessionRequest) + returns (CreateBfdSessionResponse) {} + rpc RemoveBfdSession(RemoveBfdSessionRequest) + returns (RemoveBfdSessionResponse) {} + rpc SetBfdSessionAttribute(SetBfdSessionAttributeRequest) + returns (SetBfdSessionAttributeResponse) {} + rpc GetBfdSessionAttribute(GetBfdSessionAttributeRequest) + returns (GetBfdSessionAttributeResponse) {} } diff --git a/dataplane/standalone/proto/bridge.pb.go b/dataplane/standalone/proto/bridge.pb.go index 2a15cc0e..8fb060a2 100755 --- a/dataplane/standalone/proto/bridge.pb.go +++ b/dataplane/standalone/proto/bridge.pb.go @@ -187,16 +187,16 @@ type CreateBridgeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type BridgeType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BridgeType" json:"type,omitempty"` - MaxLearnedAddresses uint32 `protobuf:"varint,3,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3" json:"max_learned_addresses,omitempty"` - LearnDisable bool `protobuf:"varint,4,opt,name=learn_disable,json=learnDisable,proto3" json:"learn_disable,omitempty"` - UnknownUnicastFloodControlType BridgeFloodControlType `protobuf:"varint,5,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType" json:"unknown_unicast_flood_control_type,omitempty"` - UnknownUnicastFloodGroup uint64 `protobuf:"varint,6,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3" json:"unknown_unicast_flood_group,omitempty"` - UnknownMulticastFloodControlType BridgeFloodControlType `protobuf:"varint,7,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType" json:"unknown_multicast_flood_control_type,omitempty"` - UnknownMulticastFloodGroup uint64 `protobuf:"varint,8,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3" json:"unknown_multicast_flood_group,omitempty"` - BroadcastFloodControlType BridgeFloodControlType `protobuf:"varint,9,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType" json:"broadcast_flood_control_type,omitempty"` - BroadcastFloodGroup uint64 `protobuf:"varint,10,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3" json:"broadcast_flood_group,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *BridgeType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BridgeType,oneof" json:"type,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,3,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + LearnDisable *bool `protobuf:"varint,4,opt,name=learn_disable,json=learnDisable,proto3,oneof" json:"learn_disable,omitempty"` + UnknownUnicastFloodControlType *BridgeFloodControlType `protobuf:"varint,5,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"unknown_unicast_flood_control_type,omitempty"` + UnknownUnicastFloodGroup *uint64 `protobuf:"varint,6,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3,oneof" json:"unknown_unicast_flood_group,omitempty"` + UnknownMulticastFloodControlType *BridgeFloodControlType `protobuf:"varint,7,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"unknown_multicast_flood_control_type,omitempty"` + UnknownMulticastFloodGroup *uint64 `protobuf:"varint,8,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3,oneof" json:"unknown_multicast_flood_group,omitempty"` + BroadcastFloodControlType *BridgeFloodControlType `protobuf:"varint,9,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"broadcast_flood_control_type,omitempty"` + BroadcastFloodGroup *uint64 `protobuf:"varint,10,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3,oneof" json:"broadcast_flood_group,omitempty"` } func (x *CreateBridgeRequest) Reset() { @@ -239,64 +239,64 @@ func (x *CreateBridgeRequest) GetSwitch() uint64 { } func (x *CreateBridgeRequest) GetType() BridgeType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return BridgeType_BRIDGE_TYPE_UNSPECIFIED } func (x *CreateBridgeRequest) GetMaxLearnedAddresses() uint32 { - if x != nil { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *CreateBridgeRequest) GetLearnDisable() bool { - if x != nil { - return x.LearnDisable + if x != nil && x.LearnDisable != nil { + return *x.LearnDisable } return false } func (x *CreateBridgeRequest) GetUnknownUnicastFloodControlType() BridgeFloodControlType { - if x != nil { - return x.UnknownUnicastFloodControlType + if x != nil && x.UnknownUnicastFloodControlType != nil { + return *x.UnknownUnicastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *CreateBridgeRequest) GetUnknownUnicastFloodGroup() uint64 { - if x != nil { - return x.UnknownUnicastFloodGroup + if x != nil && x.UnknownUnicastFloodGroup != nil { + return *x.UnknownUnicastFloodGroup } return 0 } func (x *CreateBridgeRequest) GetUnknownMulticastFloodControlType() BridgeFloodControlType { - if x != nil { - return x.UnknownMulticastFloodControlType + if x != nil && x.UnknownMulticastFloodControlType != nil { + return *x.UnknownMulticastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *CreateBridgeRequest) GetUnknownMulticastFloodGroup() uint64 { - if x != nil { - return x.UnknownMulticastFloodGroup + if x != nil && x.UnknownMulticastFloodGroup != nil { + return *x.UnknownMulticastFloodGroup } return 0 } func (x *CreateBridgeRequest) GetBroadcastFloodControlType() BridgeFloodControlType { - if x != nil { - return x.BroadcastFloodControlType + if x != nil && x.BroadcastFloodControlType != nil { + return *x.BroadcastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *CreateBridgeRequest) GetBroadcastFloodGroup() uint64 { - if x != nil { - return x.BroadcastFloodGroup + if x != nil && x.BroadcastFloodGroup != nil { + return *x.BroadcastFloodGroup } return 0 } @@ -438,18 +438,15 @@ type SetBridgeAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetBridgeAttributeRequest_MaxLearnedAddresses - // *SetBridgeAttributeRequest_LearnDisable - // *SetBridgeAttributeRequest_UnknownUnicastFloodControlType - // *SetBridgeAttributeRequest_UnknownUnicastFloodGroup - // *SetBridgeAttributeRequest_UnknownMulticastFloodControlType - // *SetBridgeAttributeRequest_UnknownMulticastFloodGroup - // *SetBridgeAttributeRequest_BroadcastFloodControlType - // *SetBridgeAttributeRequest_BroadcastFloodGroup - Attr isSetBridgeAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,2,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + LearnDisable *bool `protobuf:"varint,3,opt,name=learn_disable,json=learnDisable,proto3,oneof" json:"learn_disable,omitempty"` + UnknownUnicastFloodControlType *BridgeFloodControlType `protobuf:"varint,4,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"unknown_unicast_flood_control_type,omitempty"` + UnknownUnicastFloodGroup *uint64 `protobuf:"varint,5,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3,oneof" json:"unknown_unicast_flood_group,omitempty"` + UnknownMulticastFloodControlType *BridgeFloodControlType `protobuf:"varint,6,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"unknown_multicast_flood_control_type,omitempty"` + UnknownMulticastFloodGroup *uint64 `protobuf:"varint,7,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3,oneof" json:"unknown_multicast_flood_group,omitempty"` + BroadcastFloodControlType *BridgeFloodControlType `protobuf:"varint,8,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"broadcast_flood_control_type,omitempty"` + BroadcastFloodGroup *uint64 `protobuf:"varint,9,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3,oneof" json:"broadcast_flood_group,omitempty"` } func (x *SetBridgeAttributeRequest) Reset() { @@ -491,122 +488,62 @@ func (x *SetBridgeAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetBridgeAttributeRequest) GetAttr() isSetBridgeAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetBridgeAttributeRequest) GetMaxLearnedAddresses() uint32 { - if x, ok := x.GetAttr().(*SetBridgeAttributeRequest_MaxLearnedAddresses); ok { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *SetBridgeAttributeRequest) GetLearnDisable() bool { - if x, ok := x.GetAttr().(*SetBridgeAttributeRequest_LearnDisable); ok { - return x.LearnDisable + if x != nil && x.LearnDisable != nil { + return *x.LearnDisable } return false } func (x *SetBridgeAttributeRequest) GetUnknownUnicastFloodControlType() BridgeFloodControlType { - if x, ok := x.GetAttr().(*SetBridgeAttributeRequest_UnknownUnicastFloodControlType); ok { - return x.UnknownUnicastFloodControlType + if x != nil && x.UnknownUnicastFloodControlType != nil { + return *x.UnknownUnicastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *SetBridgeAttributeRequest) GetUnknownUnicastFloodGroup() uint64 { - if x, ok := x.GetAttr().(*SetBridgeAttributeRequest_UnknownUnicastFloodGroup); ok { - return x.UnknownUnicastFloodGroup + if x != nil && x.UnknownUnicastFloodGroup != nil { + return *x.UnknownUnicastFloodGroup } return 0 } func (x *SetBridgeAttributeRequest) GetUnknownMulticastFloodControlType() BridgeFloodControlType { - if x, ok := x.GetAttr().(*SetBridgeAttributeRequest_UnknownMulticastFloodControlType); ok { - return x.UnknownMulticastFloodControlType + if x != nil && x.UnknownMulticastFloodControlType != nil { + return *x.UnknownMulticastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *SetBridgeAttributeRequest) GetUnknownMulticastFloodGroup() uint64 { - if x, ok := x.GetAttr().(*SetBridgeAttributeRequest_UnknownMulticastFloodGroup); ok { - return x.UnknownMulticastFloodGroup + if x != nil && x.UnknownMulticastFloodGroup != nil { + return *x.UnknownMulticastFloodGroup } return 0 } func (x *SetBridgeAttributeRequest) GetBroadcastFloodControlType() BridgeFloodControlType { - if x, ok := x.GetAttr().(*SetBridgeAttributeRequest_BroadcastFloodControlType); ok { - return x.BroadcastFloodControlType + if x != nil && x.BroadcastFloodControlType != nil { + return *x.BroadcastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *SetBridgeAttributeRequest) GetBroadcastFloodGroup() uint64 { - if x, ok := x.GetAttr().(*SetBridgeAttributeRequest_BroadcastFloodGroup); ok { - return x.BroadcastFloodGroup + if x != nil && x.BroadcastFloodGroup != nil { + return *x.BroadcastFloodGroup } return 0 } -type isSetBridgeAttributeRequest_Attr interface { - isSetBridgeAttributeRequest_Attr() -} - -type SetBridgeAttributeRequest_MaxLearnedAddresses struct { - MaxLearnedAddresses uint32 `protobuf:"varint,2,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof"` -} - -type SetBridgeAttributeRequest_LearnDisable struct { - LearnDisable bool `protobuf:"varint,3,opt,name=learn_disable,json=learnDisable,proto3,oneof"` -} - -type SetBridgeAttributeRequest_UnknownUnicastFloodControlType struct { - UnknownUnicastFloodControlType BridgeFloodControlType `protobuf:"varint,4,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof"` -} - -type SetBridgeAttributeRequest_UnknownUnicastFloodGroup struct { - UnknownUnicastFloodGroup uint64 `protobuf:"varint,5,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3,oneof"` -} - -type SetBridgeAttributeRequest_UnknownMulticastFloodControlType struct { - UnknownMulticastFloodControlType BridgeFloodControlType `protobuf:"varint,6,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof"` -} - -type SetBridgeAttributeRequest_UnknownMulticastFloodGroup struct { - UnknownMulticastFloodGroup uint64 `protobuf:"varint,7,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3,oneof"` -} - -type SetBridgeAttributeRequest_BroadcastFloodControlType struct { - BroadcastFloodControlType BridgeFloodControlType `protobuf:"varint,8,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof"` -} - -type SetBridgeAttributeRequest_BroadcastFloodGroup struct { - BroadcastFloodGroup uint64 `protobuf:"varint,9,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3,oneof"` -} - -func (*SetBridgeAttributeRequest_MaxLearnedAddresses) isSetBridgeAttributeRequest_Attr() {} - -func (*SetBridgeAttributeRequest_LearnDisable) isSetBridgeAttributeRequest_Attr() {} - -func (*SetBridgeAttributeRequest_UnknownUnicastFloodControlType) isSetBridgeAttributeRequest_Attr() {} - -func (*SetBridgeAttributeRequest_UnknownUnicastFloodGroup) isSetBridgeAttributeRequest_Attr() {} - -func (*SetBridgeAttributeRequest_UnknownMulticastFloodControlType) isSetBridgeAttributeRequest_Attr() { -} - -func (*SetBridgeAttributeRequest_UnknownMulticastFloodGroup) isSetBridgeAttributeRequest_Attr() {} - -func (*SetBridgeAttributeRequest_BroadcastFloodControlType) isSetBridgeAttributeRequest_Attr() {} - -func (*SetBridgeAttributeRequest_BroadcastFloodGroup) isSetBridgeAttributeRequest_Attr() {} - type SetBridgeAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -705,7 +642,7 @@ type GetBridgeAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*BridgeAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *BridgeAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetBridgeAttributeResponse) Reset() { @@ -740,7 +677,7 @@ func (*GetBridgeAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_bridge_proto_rawDescGZIP(), []int{7} } -func (x *GetBridgeAttributeResponse) GetAttr() []*BridgeAttribute { +func (x *GetBridgeAttributeResponse) GetAttr() *BridgeAttribute { if x != nil { return x.Attr } @@ -752,21 +689,21 @@ type CreateBridgePortRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type BridgePortType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BridgePortType" json:"type,omitempty"` - PortId uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - TaggingMode BridgePortTaggingMode `protobuf:"varint,4,opt,name=tagging_mode,json=taggingMode,proto3,enum=lemming.dataplane.sai.BridgePortTaggingMode" json:"tagging_mode,omitempty"` - VlanId uint32 `protobuf:"varint,5,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - RifId uint64 `protobuf:"varint,6,opt,name=rif_id,json=rifId,proto3" json:"rif_id,omitempty"` - TunnelId uint64 `protobuf:"varint,7,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"` - BridgeId uint64 `protobuf:"varint,8,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - FdbLearningMode BridgePortFdbLearningMode `protobuf:"varint,9,opt,name=fdb_learning_mode,json=fdbLearningMode,proto3,enum=lemming.dataplane.sai.BridgePortFdbLearningMode" json:"fdb_learning_mode,omitempty"` - MaxLearnedAddresses uint32 `protobuf:"varint,10,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3" json:"max_learned_addresses,omitempty"` - FdbLearningLimitViolationPacketAction PacketAction `protobuf:"varint,11,opt,name=fdb_learning_limit_violation_packet_action,json=fdbLearningLimitViolationPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"fdb_learning_limit_violation_packet_action,omitempty"` - AdminState bool `protobuf:"varint,12,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - IngressFiltering bool `protobuf:"varint,13,opt,name=ingress_filtering,json=ingressFiltering,proto3" json:"ingress_filtering,omitempty"` - EgressFiltering bool `protobuf:"varint,14,opt,name=egress_filtering,json=egressFiltering,proto3" json:"egress_filtering,omitempty"` - IsolationGroup uint64 `protobuf:"varint,15,opt,name=isolation_group,json=isolationGroup,proto3" json:"isolation_group,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *BridgePortType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BridgePortType,oneof" json:"type,omitempty"` + PortId *uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + TaggingMode *BridgePortTaggingMode `protobuf:"varint,4,opt,name=tagging_mode,json=taggingMode,proto3,enum=lemming.dataplane.sai.BridgePortTaggingMode,oneof" json:"tagging_mode,omitempty"` + VlanId *uint32 `protobuf:"varint,5,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + RifId *uint64 `protobuf:"varint,6,opt,name=rif_id,json=rifId,proto3,oneof" json:"rif_id,omitempty"` + TunnelId *uint64 `protobuf:"varint,7,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + BridgeId *uint64 `protobuf:"varint,8,opt,name=bridge_id,json=bridgeId,proto3,oneof" json:"bridge_id,omitempty"` + FdbLearningMode *BridgePortFdbLearningMode `protobuf:"varint,9,opt,name=fdb_learning_mode,json=fdbLearningMode,proto3,enum=lemming.dataplane.sai.BridgePortFdbLearningMode,oneof" json:"fdb_learning_mode,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,10,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + FdbLearningLimitViolationPacketAction *PacketAction `protobuf:"varint,11,opt,name=fdb_learning_limit_violation_packet_action,json=fdbLearningLimitViolationPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_learning_limit_violation_packet_action,omitempty"` + AdminState *bool `protobuf:"varint,12,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + IngressFiltering *bool `protobuf:"varint,13,opt,name=ingress_filtering,json=ingressFiltering,proto3,oneof" json:"ingress_filtering,omitempty"` + EgressFiltering *bool `protobuf:"varint,14,opt,name=egress_filtering,json=egressFiltering,proto3,oneof" json:"egress_filtering,omitempty"` + IsolationGroup *uint64 `protobuf:"varint,15,opt,name=isolation_group,json=isolationGroup,proto3,oneof" json:"isolation_group,omitempty"` } func (x *CreateBridgePortRequest) Reset() { @@ -809,99 +746,99 @@ func (x *CreateBridgePortRequest) GetSwitch() uint64 { } func (x *CreateBridgePortRequest) GetType() BridgePortType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return BridgePortType_BRIDGE_PORT_TYPE_UNSPECIFIED } func (x *CreateBridgePortRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *CreateBridgePortRequest) GetTaggingMode() BridgePortTaggingMode { - if x != nil { - return x.TaggingMode + if x != nil && x.TaggingMode != nil { + return *x.TaggingMode } return BridgePortTaggingMode_BRIDGE_PORT_TAGGING_MODE_UNSPECIFIED } func (x *CreateBridgePortRequest) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *CreateBridgePortRequest) GetRifId() uint64 { - if x != nil { - return x.RifId + if x != nil && x.RifId != nil { + return *x.RifId } return 0 } func (x *CreateBridgePortRequest) GetTunnelId() uint64 { - if x != nil { - return x.TunnelId + if x != nil && x.TunnelId != nil { + return *x.TunnelId } return 0 } func (x *CreateBridgePortRequest) GetBridgeId() uint64 { - if x != nil { - return x.BridgeId + if x != nil && x.BridgeId != nil { + return *x.BridgeId } return 0 } func (x *CreateBridgePortRequest) GetFdbLearningMode() BridgePortFdbLearningMode { - if x != nil { - return x.FdbLearningMode + if x != nil && x.FdbLearningMode != nil { + return *x.FdbLearningMode } return BridgePortFdbLearningMode_BRIDGE_PORT_FDB_LEARNING_MODE_UNSPECIFIED } func (x *CreateBridgePortRequest) GetMaxLearnedAddresses() uint32 { - if x != nil { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *CreateBridgePortRequest) GetFdbLearningLimitViolationPacketAction() PacketAction { - if x != nil { - return x.FdbLearningLimitViolationPacketAction + if x != nil && x.FdbLearningLimitViolationPacketAction != nil { + return *x.FdbLearningLimitViolationPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateBridgePortRequest) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *CreateBridgePortRequest) GetIngressFiltering() bool { - if x != nil { - return x.IngressFiltering + if x != nil && x.IngressFiltering != nil { + return *x.IngressFiltering } return false } func (x *CreateBridgePortRequest) GetEgressFiltering() bool { - if x != nil { - return x.EgressFiltering + if x != nil && x.EgressFiltering != nil { + return *x.EgressFiltering } return false } func (x *CreateBridgePortRequest) GetIsolationGroup() uint64 { - if x != nil { - return x.IsolationGroup + if x != nil && x.IsolationGroup != nil { + return *x.IsolationGroup } return 0 } @@ -1043,19 +980,16 @@ type SetBridgePortAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetBridgePortAttributeRequest_TaggingMode - // *SetBridgePortAttributeRequest_BridgeId - // *SetBridgePortAttributeRequest_FdbLearningMode - // *SetBridgePortAttributeRequest_MaxLearnedAddresses - // *SetBridgePortAttributeRequest_FdbLearningLimitViolationPacketAction - // *SetBridgePortAttributeRequest_AdminState - // *SetBridgePortAttributeRequest_IngressFiltering - // *SetBridgePortAttributeRequest_EgressFiltering - // *SetBridgePortAttributeRequest_IsolationGroup - Attr isSetBridgePortAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + TaggingMode *BridgePortTaggingMode `protobuf:"varint,2,opt,name=tagging_mode,json=taggingMode,proto3,enum=lemming.dataplane.sai.BridgePortTaggingMode,oneof" json:"tagging_mode,omitempty"` + BridgeId *uint64 `protobuf:"varint,3,opt,name=bridge_id,json=bridgeId,proto3,oneof" json:"bridge_id,omitempty"` + FdbLearningMode *BridgePortFdbLearningMode `protobuf:"varint,4,opt,name=fdb_learning_mode,json=fdbLearningMode,proto3,enum=lemming.dataplane.sai.BridgePortFdbLearningMode,oneof" json:"fdb_learning_mode,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,5,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + FdbLearningLimitViolationPacketAction *PacketAction `protobuf:"varint,6,opt,name=fdb_learning_limit_violation_packet_action,json=fdbLearningLimitViolationPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_learning_limit_violation_packet_action,omitempty"` + AdminState *bool `protobuf:"varint,7,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + IngressFiltering *bool `protobuf:"varint,8,opt,name=ingress_filtering,json=ingressFiltering,proto3,oneof" json:"ingress_filtering,omitempty"` + EgressFiltering *bool `protobuf:"varint,9,opt,name=egress_filtering,json=egressFiltering,proto3,oneof" json:"egress_filtering,omitempty"` + IsolationGroup *uint64 `protobuf:"varint,10,opt,name=isolation_group,json=isolationGroup,proto3,oneof" json:"isolation_group,omitempty"` } func (x *SetBridgePortAttributeRequest) Reset() { @@ -1097,135 +1031,69 @@ func (x *SetBridgePortAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetBridgePortAttributeRequest) GetAttr() isSetBridgePortAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetBridgePortAttributeRequest) GetTaggingMode() BridgePortTaggingMode { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_TaggingMode); ok { - return x.TaggingMode + if x != nil && x.TaggingMode != nil { + return *x.TaggingMode } return BridgePortTaggingMode_BRIDGE_PORT_TAGGING_MODE_UNSPECIFIED } func (x *SetBridgePortAttributeRequest) GetBridgeId() uint64 { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_BridgeId); ok { - return x.BridgeId + if x != nil && x.BridgeId != nil { + return *x.BridgeId } return 0 } func (x *SetBridgePortAttributeRequest) GetFdbLearningMode() BridgePortFdbLearningMode { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_FdbLearningMode); ok { - return x.FdbLearningMode + if x != nil && x.FdbLearningMode != nil { + return *x.FdbLearningMode } return BridgePortFdbLearningMode_BRIDGE_PORT_FDB_LEARNING_MODE_UNSPECIFIED } func (x *SetBridgePortAttributeRequest) GetMaxLearnedAddresses() uint32 { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_MaxLearnedAddresses); ok { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *SetBridgePortAttributeRequest) GetFdbLearningLimitViolationPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_FdbLearningLimitViolationPacketAction); ok { - return x.FdbLearningLimitViolationPacketAction + if x != nil && x.FdbLearningLimitViolationPacketAction != nil { + return *x.FdbLearningLimitViolationPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetBridgePortAttributeRequest) GetAdminState() bool { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_AdminState); ok { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *SetBridgePortAttributeRequest) GetIngressFiltering() bool { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_IngressFiltering); ok { - return x.IngressFiltering + if x != nil && x.IngressFiltering != nil { + return *x.IngressFiltering } return false } func (x *SetBridgePortAttributeRequest) GetEgressFiltering() bool { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_EgressFiltering); ok { - return x.EgressFiltering + if x != nil && x.EgressFiltering != nil { + return *x.EgressFiltering } return false } func (x *SetBridgePortAttributeRequest) GetIsolationGroup() uint64 { - if x, ok := x.GetAttr().(*SetBridgePortAttributeRequest_IsolationGroup); ok { - return x.IsolationGroup + if x != nil && x.IsolationGroup != nil { + return *x.IsolationGroup } return 0 } -type isSetBridgePortAttributeRequest_Attr interface { - isSetBridgePortAttributeRequest_Attr() -} - -type SetBridgePortAttributeRequest_TaggingMode struct { - TaggingMode BridgePortTaggingMode `protobuf:"varint,2,opt,name=tagging_mode,json=taggingMode,proto3,enum=lemming.dataplane.sai.BridgePortTaggingMode,oneof"` -} - -type SetBridgePortAttributeRequest_BridgeId struct { - BridgeId uint64 `protobuf:"varint,3,opt,name=bridge_id,json=bridgeId,proto3,oneof"` -} - -type SetBridgePortAttributeRequest_FdbLearningMode struct { - FdbLearningMode BridgePortFdbLearningMode `protobuf:"varint,4,opt,name=fdb_learning_mode,json=fdbLearningMode,proto3,enum=lemming.dataplane.sai.BridgePortFdbLearningMode,oneof"` -} - -type SetBridgePortAttributeRequest_MaxLearnedAddresses struct { - MaxLearnedAddresses uint32 `protobuf:"varint,5,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof"` -} - -type SetBridgePortAttributeRequest_FdbLearningLimitViolationPacketAction struct { - FdbLearningLimitViolationPacketAction PacketAction `protobuf:"varint,6,opt,name=fdb_learning_limit_violation_packet_action,json=fdbLearningLimitViolationPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetBridgePortAttributeRequest_AdminState struct { - AdminState bool `protobuf:"varint,7,opt,name=admin_state,json=adminState,proto3,oneof"` -} - -type SetBridgePortAttributeRequest_IngressFiltering struct { - IngressFiltering bool `protobuf:"varint,8,opt,name=ingress_filtering,json=ingressFiltering,proto3,oneof"` -} - -type SetBridgePortAttributeRequest_EgressFiltering struct { - EgressFiltering bool `protobuf:"varint,9,opt,name=egress_filtering,json=egressFiltering,proto3,oneof"` -} - -type SetBridgePortAttributeRequest_IsolationGroup struct { - IsolationGroup uint64 `protobuf:"varint,10,opt,name=isolation_group,json=isolationGroup,proto3,oneof"` -} - -func (*SetBridgePortAttributeRequest_TaggingMode) isSetBridgePortAttributeRequest_Attr() {} - -func (*SetBridgePortAttributeRequest_BridgeId) isSetBridgePortAttributeRequest_Attr() {} - -func (*SetBridgePortAttributeRequest_FdbLearningMode) isSetBridgePortAttributeRequest_Attr() {} - -func (*SetBridgePortAttributeRequest_MaxLearnedAddresses) isSetBridgePortAttributeRequest_Attr() {} - -func (*SetBridgePortAttributeRequest_FdbLearningLimitViolationPacketAction) isSetBridgePortAttributeRequest_Attr() { -} - -func (*SetBridgePortAttributeRequest_AdminState) isSetBridgePortAttributeRequest_Attr() {} - -func (*SetBridgePortAttributeRequest_IngressFiltering) isSetBridgePortAttributeRequest_Attr() {} - -func (*SetBridgePortAttributeRequest_EgressFiltering) isSetBridgePortAttributeRequest_Attr() {} - -func (*SetBridgePortAttributeRequest_IsolationGroup) isSetBridgePortAttributeRequest_Attr() {} - type SetBridgePortAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1324,7 +1192,7 @@ type GetBridgePortAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*BridgePortAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *BridgePortAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetBridgePortAttributeResponse) Reset() { @@ -1359,7 +1227,7 @@ func (*GetBridgePortAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_bridge_proto_rawDescGZIP(), []int{15} } -func (x *GetBridgePortAttributeResponse) GetAttr() []*BridgePortAttribute { +func (x *GetBridgePortAttributeResponse) GetAttr() *BridgePortAttribute { if x != nil { return x.Attr } @@ -1375,357 +1243,443 @@ var file_dataplane_standalone_proto_bridge_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdd, 0x05, 0x0a, 0x13, 0x43, 0x72, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x08, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x65, 0x61, - 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x79, 0x0a, 0x22, 0x75, 0x6e, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, - 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x7d, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x6e, 0x0a, 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, - 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbe, 0x05, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, - 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, - 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x6c, 0x65, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x6d, + 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x01, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6c, 0x65, + 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x84, 0x01, 0x0a, 0x22, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x1e, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, + 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x18, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, + 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x88, 0x01, 0x0a, 0x24, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x05, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, + 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, + 0x07, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, + 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, + 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x13, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf9, 0x07, 0x0a, 0x19, + 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x15, 0x6d, + 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x00, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x7b, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x1e, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x84, 0x01, 0x0a, 0x22, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x02, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, - 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, - 0x0a, 0x1b, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x7f, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x20, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x43, 0x0a, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x70, 0x0a, 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x19, 0x62, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x13, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, - 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x06, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xf4, 0x05, 0x0a, - 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x03, 0x52, 0x18, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, + 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x88, 0x01, 0x0a, 0x24, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x15, - 0x0a, 0x06, 0x72, 0x69, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x72, 0x69, 0x66, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, - 0x5c, 0x0a, 0x11, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, + 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x04, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, + 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x08, 0x48, 0x05, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x64, 0x62, - 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x66, 0x64, - 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, - 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, - 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x7e, 0x0a, 0x2a, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x25, 0x66, 0x64, 0x62, 0x4c, - 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x56, 0x69, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, - 0x29, 0x0a, 0x10, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x73, - 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, - 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x04, 0x0a, 0x1d, 0x53, - 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x51, - 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, - 0x64, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, - 0x12, 0x5e, 0x0a, 0x11, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x64, - 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, - 0x0f, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x2a, 0x66, 0x64, 0x62, 0x5f, 0x6c, + 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, + 0x06, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, + 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, + 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x07, 0x52, 0x13, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x65, 0x61, + 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1f, 0x0a, 0x1d, + 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, + 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x96, + 0x09, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0c, + 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0b, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, + 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x03, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, + 0x72, 0x69, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x04, 0x52, 0x05, 0x72, 0x69, 0x66, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x06, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x67, + 0x0a, 0x11, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x64, 0x62, 0x4c, + 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x08, 0x48, 0x07, 0x52, 0x0f, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, + 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x13, + 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x89, 0x01, 0x0a, 0x2a, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x25, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0b, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x11, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x10, 0x65, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, - 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xbb, 0x03, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, 0x49, 0x44, - 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, - 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45, 0x44, 0x5f, 0x41, - 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x45, 0x53, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x52, - 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x5f, - 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x52, 0x49, - 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x05, 0x12, 0x2b, 0x0a, - 0x27, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, - 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x06, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x52, - 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, - 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x07, - 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, - 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x08, 0x12, - 0x2c, 0x0a, 0x28, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, - 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x09, 0x12, 0x25, 0x0a, - 0x21, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x4f, - 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x10, 0x0a, 0x2a, 0xb5, 0x04, 0x0a, 0x0e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, - 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, 0x49, - 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, - 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, - 0x44, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x49, 0x46, 0x5f, 0x49, 0x44, 0x10, 0x05, - 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x06, - 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x07, - 0x12, 0x26, 0x0a, 0x22, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, - 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x08, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x52, 0x49, 0x44, - 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, - 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45, 0x44, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, - 0x45, 0x53, 0x10, 0x09, 0x12, 0x3f, 0x0a, 0x3b, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, - 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x56, 0x49, 0x4f, 0x4c, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x52, 0x49, 0x44, 0x47, - 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x0c, 0x12, - 0x25, 0x0a, 0x21, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, - 0x52, 0x49, 0x4e, 0x47, 0x10, 0x0d, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0e, 0x32, 0xda, 0x07, 0x0a, - 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, - 0x12, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, - 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x25, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, + 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, + 0x0b, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x10, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, + 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x0e, 0x69, + 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, + 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x69, 0x66, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x64, + 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x2d, 0x0a, 0x2b, 0x5f, 0x66, 0x64, + 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, + 0x07, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x12, 0x5a, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x67, 0x69, + 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x0b, + 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x01, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x11, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x46, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x66, 0x64, 0x62, + 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x09, 0x48, 0x03, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, + 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x89, + 0x01, 0x0a, 0x2a, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x04, + 0x52, 0x25, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x05, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x06, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x10, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x07, + 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0e, 0x48, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x61, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x64, 0x62, 0x5f, + 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x2d, 0x0a, 0x2b, 0x5f, 0x66, 0x64, 0x62, 0x5f, + 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x76, + 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, + 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x2a, 0xbb, 0x03, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, + 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, + 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, + 0x21, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, + 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45, 0x44, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, + 0x45, 0x53, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x04, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, + 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x52, 0x49, 0x44, 0x47, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x55, + 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x10, 0x06, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, + 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x07, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x52, + 0x49, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, + 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x08, 0x12, 0x2c, 0x0a, 0x28, 0x42, 0x52, 0x49, + 0x44, 0x47, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, + 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x09, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x52, 0x49, 0x44, 0x47, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, + 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x2a, 0xb5, + 0x04, 0x0a, 0x0e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x1c, + 0x0a, 0x18, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, + 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, + 0x1c, 0x0a, 0x18, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x1b, 0x0a, + 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x52, 0x49, 0x46, 0x5f, 0x49, 0x44, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x52, + 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x52, + 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, + 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x52, + 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x10, 0x08, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, + 0x45, 0x44, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x45, 0x53, 0x10, 0x09, 0x12, 0x3f, + 0x0a, 0x3b, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, + 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x56, 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, + 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, + 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, 0x49, + 0x4c, 0x54, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x52, 0x49, + 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, + 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x0d, + 0x12, 0x24, 0x0a, 0x20, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0e, 0x32, 0xda, 0x07, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2012,27 +1966,10 @@ func file_dataplane_standalone_proto_bridge_proto_init() { } } } - file_dataplane_standalone_proto_bridge_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetBridgeAttributeRequest_MaxLearnedAddresses)(nil), - (*SetBridgeAttributeRequest_LearnDisable)(nil), - (*SetBridgeAttributeRequest_UnknownUnicastFloodControlType)(nil), - (*SetBridgeAttributeRequest_UnknownUnicastFloodGroup)(nil), - (*SetBridgeAttributeRequest_UnknownMulticastFloodControlType)(nil), - (*SetBridgeAttributeRequest_UnknownMulticastFloodGroup)(nil), - (*SetBridgeAttributeRequest_BroadcastFloodControlType)(nil), - (*SetBridgeAttributeRequest_BroadcastFloodGroup)(nil), - } - file_dataplane_standalone_proto_bridge_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetBridgePortAttributeRequest_TaggingMode)(nil), - (*SetBridgePortAttributeRequest_BridgeId)(nil), - (*SetBridgePortAttributeRequest_FdbLearningMode)(nil), - (*SetBridgePortAttributeRequest_MaxLearnedAddresses)(nil), - (*SetBridgePortAttributeRequest_FdbLearningLimitViolationPacketAction)(nil), - (*SetBridgePortAttributeRequest_AdminState)(nil), - (*SetBridgePortAttributeRequest_IngressFiltering)(nil), - (*SetBridgePortAttributeRequest_EgressFiltering)(nil), - (*SetBridgePortAttributeRequest_IsolationGroup)(nil), - } + file_dataplane_standalone_proto_bridge_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_bridge_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_bridge_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_bridge_proto_msgTypes[12].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/bridge.proto b/dataplane/standalone/proto/bridge.proto index a23e7f3f..a3e86b1a 100644 --- a/dataplane/standalone/proto/bridge.proto +++ b/dataplane/standalone/proto/bridge.proto @@ -7,181 +7,159 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum BridgeAttr { - BRIDGE_ATTR_UNSPECIFIED = 0; - BRIDGE_ATTR_TYPE = 1; - BRIDGE_ATTR_PORT_LIST = 2; - BRIDGE_ATTR_MAX_LEARNED_ADDRESSES = 3; - BRIDGE_ATTR_LEARN_DISABLE = 4; - BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE = 5; - BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP = 6; - BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE = 7; - BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP = 8; - BRIDGE_ATTR_BROADCAST_FLOOD_CONTROL_TYPE = 9; - BRIDGE_ATTR_BROADCAST_FLOOD_GROUP = 10; + BRIDGE_ATTR_UNSPECIFIED = 0; + BRIDGE_ATTR_TYPE = 1; + BRIDGE_ATTR_PORT_LIST = 2; + BRIDGE_ATTR_MAX_LEARNED_ADDRESSES = 3; + BRIDGE_ATTR_LEARN_DISABLE = 4; + BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE = 5; + BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP = 6; + BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE = 7; + BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP = 8; + BRIDGE_ATTR_BROADCAST_FLOOD_CONTROL_TYPE = 9; + BRIDGE_ATTR_BROADCAST_FLOOD_GROUP = 10; } enum BridgePortAttr { - BRIDGE_PORT_ATTR_UNSPECIFIED = 0; - BRIDGE_PORT_ATTR_TYPE = 1; - BRIDGE_PORT_ATTR_PORT_ID = 2; - BRIDGE_PORT_ATTR_TAGGING_MODE = 3; - BRIDGE_PORT_ATTR_VLAN_ID = 4; - BRIDGE_PORT_ATTR_RIF_ID = 5; - BRIDGE_PORT_ATTR_TUNNEL_ID = 6; - BRIDGE_PORT_ATTR_BRIDGE_ID = 7; - BRIDGE_PORT_ATTR_FDB_LEARNING_MODE = 8; - BRIDGE_PORT_ATTR_MAX_LEARNED_ADDRESSES = 9; - BRIDGE_PORT_ATTR_FDB_LEARNING_LIMIT_VIOLATION_PACKET_ACTION = 10; - BRIDGE_PORT_ATTR_ADMIN_STATE = 11; - BRIDGE_PORT_ATTR_INGRESS_FILTERING = 12; - BRIDGE_PORT_ATTR_EGRESS_FILTERING = 13; - BRIDGE_PORT_ATTR_ISOLATION_GROUP = 14; + BRIDGE_PORT_ATTR_UNSPECIFIED = 0; + BRIDGE_PORT_ATTR_TYPE = 1; + BRIDGE_PORT_ATTR_PORT_ID = 2; + BRIDGE_PORT_ATTR_TAGGING_MODE = 3; + BRIDGE_PORT_ATTR_VLAN_ID = 4; + BRIDGE_PORT_ATTR_RIF_ID = 5; + BRIDGE_PORT_ATTR_TUNNEL_ID = 6; + BRIDGE_PORT_ATTR_BRIDGE_ID = 7; + BRIDGE_PORT_ATTR_FDB_LEARNING_MODE = 8; + BRIDGE_PORT_ATTR_MAX_LEARNED_ADDRESSES = 9; + BRIDGE_PORT_ATTR_FDB_LEARNING_LIMIT_VIOLATION_PACKET_ACTION = 10; + BRIDGE_PORT_ATTR_ADMIN_STATE = 11; + BRIDGE_PORT_ATTR_INGRESS_FILTERING = 12; + BRIDGE_PORT_ATTR_EGRESS_FILTERING = 13; + BRIDGE_PORT_ATTR_ISOLATION_GROUP = 14; } message CreateBridgeRequest { - uint64 switch = 1; - - BridgeType type = 2; - uint32 max_learned_addresses = 3; - bool learn_disable = 4; - BridgeFloodControlType unknown_unicast_flood_control_type = 5; - uint64 unknown_unicast_flood_group = 6; - BridgeFloodControlType unknown_multicast_flood_control_type = 7; - uint64 unknown_multicast_flood_group = 8; - BridgeFloodControlType broadcast_flood_control_type = 9; - uint64 broadcast_flood_group = 10; - + uint64 switch = 1; + optional BridgeType type = 2 [(attr_enum_value) = 1]; + optional uint32 max_learned_addresses = 3 [(attr_enum_value) = 3]; + optional bool learn_disable = 4 [(attr_enum_value) = 4]; + optional BridgeFloodControlType unknown_unicast_flood_control_type = 5 + [(attr_enum_value) = 5]; + optional uint64 unknown_unicast_flood_group = 6 [(attr_enum_value) = 6]; + optional BridgeFloodControlType unknown_multicast_flood_control_type = 7 + [(attr_enum_value) = 7]; + optional uint64 unknown_multicast_flood_group = 8 [(attr_enum_value) = 8]; + optional BridgeFloodControlType broadcast_flood_control_type = 9 + [(attr_enum_value) = 9]; + optional uint64 broadcast_flood_group = 10 [(attr_enum_value) = 10]; } message CreateBridgeResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveBridgeRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveBridgeResponse { - - -} +message RemoveBridgeResponse {} message SetBridgeAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 max_learned_addresses = 2; - bool learn_disable = 3; - BridgeFloodControlType unknown_unicast_flood_control_type = 4; - uint64 unknown_unicast_flood_group = 5; - BridgeFloodControlType unknown_multicast_flood_control_type = 6; - uint64 unknown_multicast_flood_group = 7; - BridgeFloodControlType broadcast_flood_control_type = 8; - uint64 broadcast_flood_group = 9; - } -} - -message SetBridgeAttributeResponse { - - -} + uint64 oid = 1; + optional uint32 max_learned_addresses = 2 [(attr_enum_value) = 3]; + optional bool learn_disable = 3 [(attr_enum_value) = 4]; + optional BridgeFloodControlType unknown_unicast_flood_control_type = 4 + [(attr_enum_value) = 5]; + optional uint64 unknown_unicast_flood_group = 5 [(attr_enum_value) = 6]; + optional BridgeFloodControlType unknown_multicast_flood_control_type = 6 + [(attr_enum_value) = 7]; + optional uint64 unknown_multicast_flood_group = 7 [(attr_enum_value) = 8]; + optional BridgeFloodControlType broadcast_flood_control_type = 8 + [(attr_enum_value) = 9]; + optional uint64 broadcast_flood_group = 9 [(attr_enum_value) = 10]; +} + +message SetBridgeAttributeResponse {} message GetBridgeAttributeRequest { - uint64 oid = 1; - repeated BridgeAttr attr_type = 2; - - + uint64 oid = 1; + repeated BridgeAttr attr_type = 2; } message GetBridgeAttributeResponse { - repeated BridgeAttribute attr = 1; - - + BridgeAttribute attr = 1; } message CreateBridgePortRequest { - uint64 switch = 1; - - BridgePortType type = 2; - uint64 port_id = 3; - BridgePortTaggingMode tagging_mode = 4; - uint32 vlan_id = 5; - uint64 rif_id = 6; - uint64 tunnel_id = 7; - uint64 bridge_id = 8; - BridgePortFdbLearningMode fdb_learning_mode = 9; - uint32 max_learned_addresses = 10; - PacketAction fdb_learning_limit_violation_packet_action = 11; - bool admin_state = 12; - bool ingress_filtering = 13; - bool egress_filtering = 14; - uint64 isolation_group = 15; - + uint64 switch = 1; + optional BridgePortType type = 2 [(attr_enum_value) = 1]; + optional uint64 port_id = 3 [(attr_enum_value) = 2]; + optional BridgePortTaggingMode tagging_mode = 4 [(attr_enum_value) = 3]; + optional uint32 vlan_id = 5 [(attr_enum_value) = 4]; + optional uint64 rif_id = 6 [(attr_enum_value) = 5]; + optional uint64 tunnel_id = 7 [(attr_enum_value) = 6]; + optional uint64 bridge_id = 8 [(attr_enum_value) = 7]; + optional BridgePortFdbLearningMode fdb_learning_mode = 9 + [(attr_enum_value) = 8]; + optional uint32 max_learned_addresses = 10 [(attr_enum_value) = 9]; + optional PacketAction fdb_learning_limit_violation_packet_action = 11 + [(attr_enum_value) = 10]; + optional bool admin_state = 12 [(attr_enum_value) = 11]; + optional bool ingress_filtering = 13 [(attr_enum_value) = 12]; + optional bool egress_filtering = 14 [(attr_enum_value) = 13]; + optional uint64 isolation_group = 15 [(attr_enum_value) = 14]; } message CreateBridgePortResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveBridgePortRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveBridgePortResponse { - - -} +message RemoveBridgePortResponse {} message SetBridgePortAttributeRequest { - uint64 oid = 1; - oneof attr { - BridgePortTaggingMode tagging_mode = 2; - uint64 bridge_id = 3; - BridgePortFdbLearningMode fdb_learning_mode = 4; - uint32 max_learned_addresses = 5; - PacketAction fdb_learning_limit_violation_packet_action = 6; - bool admin_state = 7; - bool ingress_filtering = 8; - bool egress_filtering = 9; - uint64 isolation_group = 10; - } -} - -message SetBridgePortAttributeResponse { - - -} + uint64 oid = 1; + optional BridgePortTaggingMode tagging_mode = 2 [(attr_enum_value) = 3]; + optional uint64 bridge_id = 3 [(attr_enum_value) = 7]; + optional BridgePortFdbLearningMode fdb_learning_mode = 4 + [(attr_enum_value) = 8]; + optional uint32 max_learned_addresses = 5 [(attr_enum_value) = 9]; + optional PacketAction fdb_learning_limit_violation_packet_action = 6 + [(attr_enum_value) = 10]; + optional bool admin_state = 7 [(attr_enum_value) = 11]; + optional bool ingress_filtering = 8 [(attr_enum_value) = 12]; + optional bool egress_filtering = 9 [(attr_enum_value) = 13]; + optional uint64 isolation_group = 10 [(attr_enum_value) = 14]; +} + +message SetBridgePortAttributeResponse {} message GetBridgePortAttributeRequest { - uint64 oid = 1; - repeated BridgePortAttr attr_type = 2; - - + uint64 oid = 1; + repeated BridgePortAttr attr_type = 2; } message GetBridgePortAttributeResponse { - repeated BridgePortAttribute attr = 1; - - + BridgePortAttribute attr = 1; } - service Bridge { - rpc CreateBridge (CreateBridgeRequest) returns (CreateBridgeResponse) {} - rpc RemoveBridge (RemoveBridgeRequest) returns (RemoveBridgeResponse) {} - rpc SetBridgeAttribute (SetBridgeAttributeRequest) returns (SetBridgeAttributeResponse) {} - rpc GetBridgeAttribute (GetBridgeAttributeRequest) returns (GetBridgeAttributeResponse) {} - rpc CreateBridgePort (CreateBridgePortRequest) returns (CreateBridgePortResponse) {} - rpc RemoveBridgePort (RemoveBridgePortRequest) returns (RemoveBridgePortResponse) {} - rpc SetBridgePortAttribute (SetBridgePortAttributeRequest) returns (SetBridgePortAttributeResponse) {} - rpc GetBridgePortAttribute (GetBridgePortAttributeRequest) returns (GetBridgePortAttributeResponse) {} + rpc CreateBridge(CreateBridgeRequest) returns (CreateBridgeResponse) {} + rpc RemoveBridge(RemoveBridgeRequest) returns (RemoveBridgeResponse) {} + rpc SetBridgeAttribute(SetBridgeAttributeRequest) + returns (SetBridgeAttributeResponse) {} + rpc GetBridgeAttribute(GetBridgeAttributeRequest) + returns (GetBridgeAttributeResponse) {} + rpc CreateBridgePort(CreateBridgePortRequest) + returns (CreateBridgePortResponse) {} + rpc RemoveBridgePort(RemoveBridgePortRequest) + returns (RemoveBridgePortResponse) {} + rpc SetBridgePortAttribute(SetBridgePortAttributeRequest) + returns (SetBridgePortAttributeResponse) {} + rpc GetBridgePortAttribute(GetBridgePortAttributeRequest) + returns (GetBridgePortAttributeResponse) {} } diff --git a/dataplane/standalone/proto/buffer.pb.go b/dataplane/standalone/proto/buffer.pb.go index 137e7fc6..3d21024b 100755 --- a/dataplane/standalone/proto/buffer.pb.go +++ b/dataplane/standalone/proto/buffer.pb.go @@ -215,13 +215,13 @@ type CreateBufferPoolRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type BufferPoolType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BufferPoolType" json:"type,omitempty"` - Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` - ThresholdMode BufferPoolThresholdMode `protobuf:"varint,4,opt,name=threshold_mode,json=thresholdMode,proto3,enum=lemming.dataplane.sai.BufferPoolThresholdMode" json:"threshold_mode,omitempty"` - Tam []uint64 `protobuf:"varint,5,rep,packed,name=tam,proto3" json:"tam,omitempty"` - XoffSize uint64 `protobuf:"varint,6,opt,name=xoff_size,json=xoffSize,proto3" json:"xoff_size,omitempty"` - WredProfileId uint64 `protobuf:"varint,7,opt,name=wred_profile_id,json=wredProfileId,proto3" json:"wred_profile_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *BufferPoolType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BufferPoolType,oneof" json:"type,omitempty"` + Size *uint64 `protobuf:"varint,3,opt,name=size,proto3,oneof" json:"size,omitempty"` + ThresholdMode *BufferPoolThresholdMode `protobuf:"varint,4,opt,name=threshold_mode,json=thresholdMode,proto3,enum=lemming.dataplane.sai.BufferPoolThresholdMode,oneof" json:"threshold_mode,omitempty"` + Tam []uint64 `protobuf:"varint,5,rep,packed,name=tam,proto3" json:"tam,omitempty"` + XoffSize *uint64 `protobuf:"varint,6,opt,name=xoff_size,json=xoffSize,proto3,oneof" json:"xoff_size,omitempty"` + WredProfileId *uint64 `protobuf:"varint,7,opt,name=wred_profile_id,json=wredProfileId,proto3,oneof" json:"wred_profile_id,omitempty"` } func (x *CreateBufferPoolRequest) Reset() { @@ -264,22 +264,22 @@ func (x *CreateBufferPoolRequest) GetSwitch() uint64 { } func (x *CreateBufferPoolRequest) GetType() BufferPoolType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return BufferPoolType_BUFFER_POOL_TYPE_UNSPECIFIED } func (x *CreateBufferPoolRequest) GetSize() uint64 { - if x != nil { - return x.Size + if x != nil && x.Size != nil { + return *x.Size } return 0 } func (x *CreateBufferPoolRequest) GetThresholdMode() BufferPoolThresholdMode { - if x != nil { - return x.ThresholdMode + if x != nil && x.ThresholdMode != nil { + return *x.ThresholdMode } return BufferPoolThresholdMode_BUFFER_POOL_THRESHOLD_MODE_UNSPECIFIED } @@ -292,15 +292,15 @@ func (x *CreateBufferPoolRequest) GetTam() []uint64 { } func (x *CreateBufferPoolRequest) GetXoffSize() uint64 { - if x != nil { - return x.XoffSize + if x != nil && x.XoffSize != nil { + return *x.XoffSize } return 0 } func (x *CreateBufferPoolRequest) GetWredProfileId() uint64 { - if x != nil { - return x.WredProfileId + if x != nil && x.WredProfileId != nil { + return *x.WredProfileId } return 0 } @@ -442,14 +442,11 @@ type SetBufferPoolAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetBufferPoolAttributeRequest_Size - // *SetBufferPoolAttributeRequest_Tam - // *SetBufferPoolAttributeRequest_XoffSize - // *SetBufferPoolAttributeRequest_WredProfileId - Attr isSetBufferPoolAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Size *uint64 `protobuf:"varint,2,opt,name=size,proto3,oneof" json:"size,omitempty"` + Tam []uint64 `protobuf:"varint,3,rep,packed,name=tam,proto3" json:"tam,omitempty"` + XoffSize *uint64 `protobuf:"varint,4,opt,name=xoff_size,json=xoffSize,proto3,oneof" json:"xoff_size,omitempty"` + WredProfileId *uint64 `protobuf:"varint,5,opt,name=wred_profile_id,json=wredProfileId,proto3,oneof" json:"wred_profile_id,omitempty"` } func (x *SetBufferPoolAttributeRequest) Reset() { @@ -491,69 +488,34 @@ func (x *SetBufferPoolAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetBufferPoolAttributeRequest) GetAttr() isSetBufferPoolAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetBufferPoolAttributeRequest) GetSize() uint64 { - if x, ok := x.GetAttr().(*SetBufferPoolAttributeRequest_Size); ok { - return x.Size + if x != nil && x.Size != nil { + return *x.Size } return 0 } -func (x *SetBufferPoolAttributeRequest) GetTam() *Uint64List { - if x, ok := x.GetAttr().(*SetBufferPoolAttributeRequest_Tam); ok { +func (x *SetBufferPoolAttributeRequest) GetTam() []uint64 { + if x != nil { return x.Tam } return nil } func (x *SetBufferPoolAttributeRequest) GetXoffSize() uint64 { - if x, ok := x.GetAttr().(*SetBufferPoolAttributeRequest_XoffSize); ok { - return x.XoffSize + if x != nil && x.XoffSize != nil { + return *x.XoffSize } return 0 } func (x *SetBufferPoolAttributeRequest) GetWredProfileId() uint64 { - if x, ok := x.GetAttr().(*SetBufferPoolAttributeRequest_WredProfileId); ok { - return x.WredProfileId + if x != nil && x.WredProfileId != nil { + return *x.WredProfileId } return 0 } -type isSetBufferPoolAttributeRequest_Attr interface { - isSetBufferPoolAttributeRequest_Attr() -} - -type SetBufferPoolAttributeRequest_Size struct { - Size uint64 `protobuf:"varint,2,opt,name=size,proto3,oneof"` -} - -type SetBufferPoolAttributeRequest_Tam struct { - Tam *Uint64List `protobuf:"bytes,3,opt,name=tam,proto3,oneof"` -} - -type SetBufferPoolAttributeRequest_XoffSize struct { - XoffSize uint64 `protobuf:"varint,4,opt,name=xoff_size,json=xoffSize,proto3,oneof"` -} - -type SetBufferPoolAttributeRequest_WredProfileId struct { - WredProfileId uint64 `protobuf:"varint,5,opt,name=wred_profile_id,json=wredProfileId,proto3,oneof"` -} - -func (*SetBufferPoolAttributeRequest_Size) isSetBufferPoolAttributeRequest_Attr() {} - -func (*SetBufferPoolAttributeRequest_Tam) isSetBufferPoolAttributeRequest_Attr() {} - -func (*SetBufferPoolAttributeRequest_XoffSize) isSetBufferPoolAttributeRequest_Attr() {} - -func (*SetBufferPoolAttributeRequest_WredProfileId) isSetBufferPoolAttributeRequest_Attr() {} - type SetBufferPoolAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -652,7 +614,7 @@ type GetBufferPoolAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*BufferPoolAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *BufferPoolAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetBufferPoolAttributeResponse) Reset() { @@ -687,7 +649,7 @@ func (*GetBufferPoolAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_buffer_proto_rawDescGZIP(), []int{7} } -func (x *GetBufferPoolAttributeResponse) GetAttr() []*BufferPoolAttribute { +func (x *GetBufferPoolAttributeResponse) GetAttr() *BufferPoolAttribute { if x != nil { return x.Attr } @@ -700,10 +662,10 @@ type CreateIngressPriorityGroupRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - BufferProfile uint64 `protobuf:"varint,2,opt,name=buffer_profile,json=bufferProfile,proto3" json:"buffer_profile,omitempty"` - Port uint64 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"` + BufferProfile *uint64 `protobuf:"varint,2,opt,name=buffer_profile,json=bufferProfile,proto3,oneof" json:"buffer_profile,omitempty"` + Port *uint64 `protobuf:"varint,3,opt,name=port,proto3,oneof" json:"port,omitempty"` Tam []uint64 `protobuf:"varint,4,rep,packed,name=tam,proto3" json:"tam,omitempty"` - Index uint32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` + Index *uint32 `protobuf:"varint,5,opt,name=index,proto3,oneof" json:"index,omitempty"` } func (x *CreateIngressPriorityGroupRequest) Reset() { @@ -746,15 +708,15 @@ func (x *CreateIngressPriorityGroupRequest) GetSwitch() uint64 { } func (x *CreateIngressPriorityGroupRequest) GetBufferProfile() uint64 { - if x != nil { - return x.BufferProfile + if x != nil && x.BufferProfile != nil { + return *x.BufferProfile } return 0 } func (x *CreateIngressPriorityGroupRequest) GetPort() uint64 { - if x != nil { - return x.Port + if x != nil && x.Port != nil { + return *x.Port } return 0 } @@ -767,8 +729,8 @@ func (x *CreateIngressPriorityGroupRequest) GetTam() []uint64 { } func (x *CreateIngressPriorityGroupRequest) GetIndex() uint32 { - if x != nil { - return x.Index + if x != nil && x.Index != nil { + return *x.Index } return 0 } @@ -910,12 +872,9 @@ type SetIngressPriorityGroupAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetIngressPriorityGroupAttributeRequest_BufferProfile - // *SetIngressPriorityGroupAttributeRequest_Tam - Attr isSetIngressPriorityGroupAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + BufferProfile *uint64 `protobuf:"varint,2,opt,name=buffer_profile,json=bufferProfile,proto3,oneof" json:"buffer_profile,omitempty"` + Tam []uint64 `protobuf:"varint,3,rep,packed,name=tam,proto3" json:"tam,omitempty"` } func (x *SetIngressPriorityGroupAttributeRequest) Reset() { @@ -957,45 +916,20 @@ func (x *SetIngressPriorityGroupAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetIngressPriorityGroupAttributeRequest) GetAttr() isSetIngressPriorityGroupAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetIngressPriorityGroupAttributeRequest) GetBufferProfile() uint64 { - if x, ok := x.GetAttr().(*SetIngressPriorityGroupAttributeRequest_BufferProfile); ok { - return x.BufferProfile + if x != nil && x.BufferProfile != nil { + return *x.BufferProfile } return 0 } -func (x *SetIngressPriorityGroupAttributeRequest) GetTam() *Uint64List { - if x, ok := x.GetAttr().(*SetIngressPriorityGroupAttributeRequest_Tam); ok { +func (x *SetIngressPriorityGroupAttributeRequest) GetTam() []uint64 { + if x != nil { return x.Tam } return nil } -type isSetIngressPriorityGroupAttributeRequest_Attr interface { - isSetIngressPriorityGroupAttributeRequest_Attr() -} - -type SetIngressPriorityGroupAttributeRequest_BufferProfile struct { - BufferProfile uint64 `protobuf:"varint,2,opt,name=buffer_profile,json=bufferProfile,proto3,oneof"` -} - -type SetIngressPriorityGroupAttributeRequest_Tam struct { - Tam *Uint64List `protobuf:"bytes,3,opt,name=tam,proto3,oneof"` -} - -func (*SetIngressPriorityGroupAttributeRequest_BufferProfile) isSetIngressPriorityGroupAttributeRequest_Attr() { -} - -func (*SetIngressPriorityGroupAttributeRequest_Tam) isSetIngressPriorityGroupAttributeRequest_Attr() { -} - type SetIngressPriorityGroupAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1094,7 +1028,7 @@ type GetIngressPriorityGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IngressPriorityGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IngressPriorityGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIngressPriorityGroupAttributeResponse) Reset() { @@ -1129,7 +1063,7 @@ func (*GetIngressPriorityGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_buffer_proto_rawDescGZIP(), []int{15} } -func (x *GetIngressPriorityGroupAttributeResponse) GetAttr() []*IngressPriorityGroupAttribute { +func (x *GetIngressPriorityGroupAttributeResponse) GetAttr() *IngressPriorityGroupAttribute { if x != nil { return x.Attr } @@ -1141,15 +1075,15 @@ type CreateBufferProfileRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - PoolId uint64 `protobuf:"varint,2,opt,name=pool_id,json=poolId,proto3" json:"pool_id,omitempty"` - ReservedBufferSize uint64 `protobuf:"varint,3,opt,name=reserved_buffer_size,json=reservedBufferSize,proto3" json:"reserved_buffer_size,omitempty"` - ThresholdMode BufferProfileThresholdMode `protobuf:"varint,4,opt,name=threshold_mode,json=thresholdMode,proto3,enum=lemming.dataplane.sai.BufferProfileThresholdMode" json:"threshold_mode,omitempty"` - SharedDynamicTh int32 `protobuf:"varint,5,opt,name=shared_dynamic_th,json=sharedDynamicTh,proto3" json:"shared_dynamic_th,omitempty"` - SharedStaticTh uint64 `protobuf:"varint,6,opt,name=shared_static_th,json=sharedStaticTh,proto3" json:"shared_static_th,omitempty"` - XoffTh uint64 `protobuf:"varint,7,opt,name=xoff_th,json=xoffTh,proto3" json:"xoff_th,omitempty"` - XonTh uint64 `protobuf:"varint,8,opt,name=xon_th,json=xonTh,proto3" json:"xon_th,omitempty"` - XonOffsetTh uint64 `protobuf:"varint,9,opt,name=xon_offset_th,json=xonOffsetTh,proto3" json:"xon_offset_th,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + PoolId *uint64 `protobuf:"varint,2,opt,name=pool_id,json=poolId,proto3,oneof" json:"pool_id,omitempty"` + ReservedBufferSize *uint64 `protobuf:"varint,3,opt,name=reserved_buffer_size,json=reservedBufferSize,proto3,oneof" json:"reserved_buffer_size,omitempty"` + ThresholdMode *BufferProfileThresholdMode `protobuf:"varint,4,opt,name=threshold_mode,json=thresholdMode,proto3,enum=lemming.dataplane.sai.BufferProfileThresholdMode,oneof" json:"threshold_mode,omitempty"` + SharedDynamicTh *int32 `protobuf:"varint,5,opt,name=shared_dynamic_th,json=sharedDynamicTh,proto3,oneof" json:"shared_dynamic_th,omitempty"` + SharedStaticTh *uint64 `protobuf:"varint,6,opt,name=shared_static_th,json=sharedStaticTh,proto3,oneof" json:"shared_static_th,omitempty"` + XoffTh *uint64 `protobuf:"varint,7,opt,name=xoff_th,json=xoffTh,proto3,oneof" json:"xoff_th,omitempty"` + XonTh *uint64 `protobuf:"varint,8,opt,name=xon_th,json=xonTh,proto3,oneof" json:"xon_th,omitempty"` + XonOffsetTh *uint64 `protobuf:"varint,9,opt,name=xon_offset_th,json=xonOffsetTh,proto3,oneof" json:"xon_offset_th,omitempty"` } func (x *CreateBufferProfileRequest) Reset() { @@ -1192,57 +1126,57 @@ func (x *CreateBufferProfileRequest) GetSwitch() uint64 { } func (x *CreateBufferProfileRequest) GetPoolId() uint64 { - if x != nil { - return x.PoolId + if x != nil && x.PoolId != nil { + return *x.PoolId } return 0 } func (x *CreateBufferProfileRequest) GetReservedBufferSize() uint64 { - if x != nil { - return x.ReservedBufferSize + if x != nil && x.ReservedBufferSize != nil { + return *x.ReservedBufferSize } return 0 } func (x *CreateBufferProfileRequest) GetThresholdMode() BufferProfileThresholdMode { - if x != nil { - return x.ThresholdMode + if x != nil && x.ThresholdMode != nil { + return *x.ThresholdMode } return BufferProfileThresholdMode_BUFFER_PROFILE_THRESHOLD_MODE_UNSPECIFIED } func (x *CreateBufferProfileRequest) GetSharedDynamicTh() int32 { - if x != nil { - return x.SharedDynamicTh + if x != nil && x.SharedDynamicTh != nil { + return *x.SharedDynamicTh } return 0 } func (x *CreateBufferProfileRequest) GetSharedStaticTh() uint64 { - if x != nil { - return x.SharedStaticTh + if x != nil && x.SharedStaticTh != nil { + return *x.SharedStaticTh } return 0 } func (x *CreateBufferProfileRequest) GetXoffTh() uint64 { - if x != nil { - return x.XoffTh + if x != nil && x.XoffTh != nil { + return *x.XoffTh } return 0 } func (x *CreateBufferProfileRequest) GetXonTh() uint64 { - if x != nil { - return x.XonTh + if x != nil && x.XonTh != nil { + return *x.XonTh } return 0 } func (x *CreateBufferProfileRequest) GetXonOffsetTh() uint64 { - if x != nil { - return x.XonOffsetTh + if x != nil && x.XonOffsetTh != nil { + return *x.XonOffsetTh } return 0 } @@ -1384,16 +1318,13 @@ type SetBufferProfileAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetBufferProfileAttributeRequest_ReservedBufferSize - // *SetBufferProfileAttributeRequest_SharedDynamicTh - // *SetBufferProfileAttributeRequest_SharedStaticTh - // *SetBufferProfileAttributeRequest_XoffTh - // *SetBufferProfileAttributeRequest_XonTh - // *SetBufferProfileAttributeRequest_XonOffsetTh - Attr isSetBufferProfileAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + ReservedBufferSize *uint64 `protobuf:"varint,2,opt,name=reserved_buffer_size,json=reservedBufferSize,proto3,oneof" json:"reserved_buffer_size,omitempty"` + SharedDynamicTh *int32 `protobuf:"varint,3,opt,name=shared_dynamic_th,json=sharedDynamicTh,proto3,oneof" json:"shared_dynamic_th,omitempty"` + SharedStaticTh *uint64 `protobuf:"varint,4,opt,name=shared_static_th,json=sharedStaticTh,proto3,oneof" json:"shared_static_th,omitempty"` + XoffTh *uint64 `protobuf:"varint,5,opt,name=xoff_th,json=xoffTh,proto3,oneof" json:"xoff_th,omitempty"` + XonTh *uint64 `protobuf:"varint,6,opt,name=xon_th,json=xonTh,proto3,oneof" json:"xon_th,omitempty"` + XonOffsetTh *uint64 `protobuf:"varint,7,opt,name=xon_offset_th,json=xonOffsetTh,proto3,oneof" json:"xon_offset_th,omitempty"` } func (x *SetBufferProfileAttributeRequest) Reset() { @@ -1435,96 +1366,48 @@ func (x *SetBufferProfileAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetBufferProfileAttributeRequest) GetAttr() isSetBufferProfileAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetBufferProfileAttributeRequest) GetReservedBufferSize() uint64 { - if x, ok := x.GetAttr().(*SetBufferProfileAttributeRequest_ReservedBufferSize); ok { - return x.ReservedBufferSize + if x != nil && x.ReservedBufferSize != nil { + return *x.ReservedBufferSize } return 0 } func (x *SetBufferProfileAttributeRequest) GetSharedDynamicTh() int32 { - if x, ok := x.GetAttr().(*SetBufferProfileAttributeRequest_SharedDynamicTh); ok { - return x.SharedDynamicTh + if x != nil && x.SharedDynamicTh != nil { + return *x.SharedDynamicTh } return 0 } func (x *SetBufferProfileAttributeRequest) GetSharedStaticTh() uint64 { - if x, ok := x.GetAttr().(*SetBufferProfileAttributeRequest_SharedStaticTh); ok { - return x.SharedStaticTh + if x != nil && x.SharedStaticTh != nil { + return *x.SharedStaticTh } return 0 } func (x *SetBufferProfileAttributeRequest) GetXoffTh() uint64 { - if x, ok := x.GetAttr().(*SetBufferProfileAttributeRequest_XoffTh); ok { - return x.XoffTh + if x != nil && x.XoffTh != nil { + return *x.XoffTh } return 0 } func (x *SetBufferProfileAttributeRequest) GetXonTh() uint64 { - if x, ok := x.GetAttr().(*SetBufferProfileAttributeRequest_XonTh); ok { - return x.XonTh + if x != nil && x.XonTh != nil { + return *x.XonTh } return 0 } func (x *SetBufferProfileAttributeRequest) GetXonOffsetTh() uint64 { - if x, ok := x.GetAttr().(*SetBufferProfileAttributeRequest_XonOffsetTh); ok { - return x.XonOffsetTh + if x != nil && x.XonOffsetTh != nil { + return *x.XonOffsetTh } return 0 } -type isSetBufferProfileAttributeRequest_Attr interface { - isSetBufferProfileAttributeRequest_Attr() -} - -type SetBufferProfileAttributeRequest_ReservedBufferSize struct { - ReservedBufferSize uint64 `protobuf:"varint,2,opt,name=reserved_buffer_size,json=reservedBufferSize,proto3,oneof"` -} - -type SetBufferProfileAttributeRequest_SharedDynamicTh struct { - SharedDynamicTh int32 `protobuf:"varint,3,opt,name=shared_dynamic_th,json=sharedDynamicTh,proto3,oneof"` -} - -type SetBufferProfileAttributeRequest_SharedStaticTh struct { - SharedStaticTh uint64 `protobuf:"varint,4,opt,name=shared_static_th,json=sharedStaticTh,proto3,oneof"` -} - -type SetBufferProfileAttributeRequest_XoffTh struct { - XoffTh uint64 `protobuf:"varint,5,opt,name=xoff_th,json=xoffTh,proto3,oneof"` -} - -type SetBufferProfileAttributeRequest_XonTh struct { - XonTh uint64 `protobuf:"varint,6,opt,name=xon_th,json=xonTh,proto3,oneof"` -} - -type SetBufferProfileAttributeRequest_XonOffsetTh struct { - XonOffsetTh uint64 `protobuf:"varint,7,opt,name=xon_offset_th,json=xonOffsetTh,proto3,oneof"` -} - -func (*SetBufferProfileAttributeRequest_ReservedBufferSize) isSetBufferProfileAttributeRequest_Attr() { -} - -func (*SetBufferProfileAttributeRequest_SharedDynamicTh) isSetBufferProfileAttributeRequest_Attr() {} - -func (*SetBufferProfileAttributeRequest_SharedStaticTh) isSetBufferProfileAttributeRequest_Attr() {} - -func (*SetBufferProfileAttributeRequest_XoffTh) isSetBufferProfileAttributeRequest_Attr() {} - -func (*SetBufferProfileAttributeRequest_XonTh) isSetBufferProfileAttributeRequest_Attr() {} - -func (*SetBufferProfileAttributeRequest_XonOffsetTh) isSetBufferProfileAttributeRequest_Attr() {} - type SetBufferProfileAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1623,7 +1506,7 @@ type GetBufferProfileAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*BufferProfileAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *BufferProfileAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetBufferProfileAttributeResponse) Reset() { @@ -1658,7 +1541,7 @@ func (*GetBufferProfileAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_buffer_proto_rawDescGZIP(), []int{23} } -func (x *GetBufferProfileAttributeResponse) GetAttr() []*BufferProfileAttribute { +func (x *GetBufferProfileAttributeResponse) GetAttr() *BufferProfileAttribute { if x != nil { return x.Attr } @@ -1674,72 +1557,87 @@ var file_dataplane_standalone_proto_buffer_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x02, 0x0a, 0x17, 0x43, 0x72, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb2, 0x03, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x39, 0x0a, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x55, 0x0a, 0x0e, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, - 0x52, 0x03, 0x74, 0x61, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x78, 0x6f, 0x66, 0x66, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x77, 0x72, 0x65, - 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, - 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x35, 0x0a, 0x03, 0x74, - 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x74, - 0x61, 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, 0x78, 0x6f, 0x66, 0x66, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x72, - 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, - 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x9e, - 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0e, - 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x74, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x60, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x02, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x52, 0x03, 0x74, 0x61, 0x6d, 0x12, 0x26, 0x0a, 0x09, + 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x03, 0x52, 0x08, 0x78, 0x6f, 0x66, 0x66, 0x53, 0x69, 0x7a, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x07, 0x48, 0x04, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, + 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x2c, + 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x52, 0x03, 0x74, 0x61, 0x6d, + 0x12, 0x26, 0x0a, 0x09, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x01, 0x52, 0x08, 0x78, 0x6f, 0x66, + 0x66, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, + 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x02, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x42, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, + 0x6c, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, + 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x22, 0xeb, 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, + 0x30, 0x0a, 0x0e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x0d, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x52, 0x03, 0x74, 0x61, 0x6d, 0x12, 0x1f, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x36, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, @@ -1749,269 +1647,293 @@ var file_dataplane_standalone_proto_buffer_proto_rawDesc = []byte{ 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x27, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x27, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x03, 0x74, - 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x74, - 0x61, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x2a, 0x0a, 0x28, 0x53, 0x65, - 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x74, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, + 0x69, 0x64, 0x12, 0x30, 0x0a, 0x0e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x0d, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x03, 0x74, 0x61, 0x6d, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, + 0x2a, 0x0a, 0x28, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x27, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x83, 0x03, 0x0a, 0x1a, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, - 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, + 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xe7, 0x04, + 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x70, + 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x58, 0x0a, 0x0e, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x64, - 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x54, 0x68, - 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x63, 0x5f, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x54, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x78, 0x6f, - 0x66, 0x66, 0x5f, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x78, 0x6f, 0x66, - 0x66, 0x54, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x78, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x78, 0x6f, 0x6e, 0x54, 0x68, 0x12, 0x22, 0x0a, 0x0d, 0x78, 0x6f, - 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x78, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x54, 0x68, 0x22, 0x2f, - 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x2e, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa4, - 0x02, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x79, - 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x54, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x63, 0x54, 0x68, 0x12, 0x19, 0x0a, 0x07, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x74, 0x68, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x78, 0x6f, 0x66, 0x66, 0x54, 0x68, 0x12, 0x17, - 0x0a, 0x06, 0x78, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x05, 0x78, 0x6f, 0x6e, 0x54, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x78, 0x6f, 0x6e, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x0b, 0x78, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x54, 0x68, 0x42, 0x06, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x20, 0x47, 0x65, - 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, - 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, - 0x8f, 0x02, 0x0a, 0x0e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, - 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, - 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, - 0x53, 0x49, 0x5a, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x02, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, - 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, - 0x04, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x42, - 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x42, - 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, - 0x07, 0x2a, 0xe9, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2b, - 0x0a, 0x27, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, - 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x49, - 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, - 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x49, - 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, - 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x41, 0x4d, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, - 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x04, 0x2a, 0xec, 0x02, - 0x0a, 0x11, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, - 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x55, 0x46, 0x46, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x12, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, + 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0f, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x54, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x05, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x63, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x74, + 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, + 0x06, 0x78, 0x6f, 0x66, 0x66, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x78, 0x6f, + 0x6e, 0x5f, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x05, 0x78, 0x6f, 0x6e, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, + 0x78, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0b, 0x78, 0x6f, 0x6e, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x54, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x64, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, + 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x78, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x03, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x42, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3b, + 0x0a, 0x14, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x00, 0x52, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x0f, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x54, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x02, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x63, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x78, 0x6f, 0x66, 0x66, 0x5f, + 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x03, + 0x52, 0x06, 0x78, 0x6f, 0x66, 0x66, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x78, + 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x04, 0x52, 0x05, 0x78, 0x6f, 0x6e, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x0d, 0x78, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x05, 0x52, 0x0b, 0x78, 0x6f, + 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x54, 0x68, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x68, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x78, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x78, 0x6f, 0x6e, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, + 0x0a, 0x20, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, 0x21, 0x47, + 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x2a, 0x8f, 0x02, 0x0a, 0x0e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, + 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, + 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x55, 0x46, 0x46, + 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x48, 0x41, + 0x52, 0x45, 0x44, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x55, + 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, + 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x03, + 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, + 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x10, 0x05, 0x12, + 0x1e, 0x0a, 0x1a, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x06, 0x12, + 0x24, 0x0a, 0x20, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, + 0x5f, 0x49, 0x44, 0x10, 0x07, 0x2a, 0xe9, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x12, 0x2b, 0x0a, 0x27, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x2e, 0x0a, 0x2a, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, + 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, + 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, + 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, + 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, + 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, + 0x04, 0x2a, 0xec, 0x02, 0x0a, 0x11, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x55, 0x46, 0x46, 0x45, + 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, + 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x2c, 0x0a, + 0x28, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x42, 0x55, + 0x46, 0x46, 0x45, 0x52, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x42, + 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x10, 0x03, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, + 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, + 0x44, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x54, 0x48, 0x10, 0x04, 0x12, 0x28, + 0x0a, 0x24, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x43, 0x5f, 0x54, 0x48, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x42, 0x55, 0x46, + 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x54, 0x48, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, - 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x55, 0x46, 0x46, 0x45, - 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, - 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, - 0x29, 0x0a, 0x25, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x59, - 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x54, 0x48, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x55, - 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x5f, - 0x54, 0x48, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, - 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x58, 0x4f, 0x46, 0x46, - 0x5f, 0x54, 0x48, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, - 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x58, 0x4f, 0x4e, - 0x5f, 0x54, 0x48, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, - 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x58, 0x4f, 0x4e, - 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x48, 0x10, 0x08, 0x32, 0xac, 0x0d, 0x0a, - 0x06, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x2e, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, - 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, - 0x6f, 0x6c, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, - 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, + 0x5f, 0x58, 0x4f, 0x4e, 0x5f, 0x54, 0x48, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x55, 0x46, + 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x58, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x48, 0x10, 0x08, + 0x32, 0xac, 0x0d, 0x0a, 0x06, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x75, 0x0a, 0x10, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, + 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x93, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x38, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa5, 0x01, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa5, 0x01, - 0x0a, 0x20, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x3e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x6c, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, + 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, + 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, - 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa5, 0x01, 0x0a, 0x20, 0x53, 0x65, + 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0xa5, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x53, 0x65, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, + 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -2058,53 +1980,50 @@ var file_dataplane_standalone_proto_buffer_proto_goTypes = []interface{}{ (*GetBufferProfileAttributeResponse)(nil), // 26: lemming.dataplane.sai.GetBufferProfileAttributeResponse (BufferPoolType)(0), // 27: lemming.dataplane.sai.BufferPoolType (BufferPoolThresholdMode)(0), // 28: lemming.dataplane.sai.BufferPoolThresholdMode - (*Uint64List)(nil), // 29: lemming.dataplane.sai.Uint64List - (*BufferPoolAttribute)(nil), // 30: lemming.dataplane.sai.BufferPoolAttribute - (*IngressPriorityGroupAttribute)(nil), // 31: lemming.dataplane.sai.IngressPriorityGroupAttribute - (BufferProfileThresholdMode)(0), // 32: lemming.dataplane.sai.BufferProfileThresholdMode - (*BufferProfileAttribute)(nil), // 33: lemming.dataplane.sai.BufferProfileAttribute + (*BufferPoolAttribute)(nil), // 29: lemming.dataplane.sai.BufferPoolAttribute + (*IngressPriorityGroupAttribute)(nil), // 30: lemming.dataplane.sai.IngressPriorityGroupAttribute + (BufferProfileThresholdMode)(0), // 31: lemming.dataplane.sai.BufferProfileThresholdMode + (*BufferProfileAttribute)(nil), // 32: lemming.dataplane.sai.BufferProfileAttribute } var file_dataplane_standalone_proto_buffer_proto_depIdxs = []int32{ 27, // 0: lemming.dataplane.sai.CreateBufferPoolRequest.type:type_name -> lemming.dataplane.sai.BufferPoolType 28, // 1: lemming.dataplane.sai.CreateBufferPoolRequest.threshold_mode:type_name -> lemming.dataplane.sai.BufferPoolThresholdMode - 29, // 2: lemming.dataplane.sai.SetBufferPoolAttributeRequest.tam:type_name -> lemming.dataplane.sai.Uint64List - 0, // 3: lemming.dataplane.sai.GetBufferPoolAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.BufferPoolAttr - 30, // 4: lemming.dataplane.sai.GetBufferPoolAttributeResponse.attr:type_name -> lemming.dataplane.sai.BufferPoolAttribute - 29, // 5: lemming.dataplane.sai.SetIngressPriorityGroupAttributeRequest.tam:type_name -> lemming.dataplane.sai.Uint64List - 1, // 6: lemming.dataplane.sai.GetIngressPriorityGroupAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.IngressPriorityGroupAttr - 31, // 7: lemming.dataplane.sai.GetIngressPriorityGroupAttributeResponse.attr:type_name -> lemming.dataplane.sai.IngressPriorityGroupAttribute - 32, // 8: lemming.dataplane.sai.CreateBufferProfileRequest.threshold_mode:type_name -> lemming.dataplane.sai.BufferProfileThresholdMode - 2, // 9: lemming.dataplane.sai.GetBufferProfileAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.BufferProfileAttr - 33, // 10: lemming.dataplane.sai.GetBufferProfileAttributeResponse.attr:type_name -> lemming.dataplane.sai.BufferProfileAttribute - 3, // 11: lemming.dataplane.sai.Buffer.CreateBufferPool:input_type -> lemming.dataplane.sai.CreateBufferPoolRequest - 5, // 12: lemming.dataplane.sai.Buffer.RemoveBufferPool:input_type -> lemming.dataplane.sai.RemoveBufferPoolRequest - 7, // 13: lemming.dataplane.sai.Buffer.SetBufferPoolAttribute:input_type -> lemming.dataplane.sai.SetBufferPoolAttributeRequest - 9, // 14: lemming.dataplane.sai.Buffer.GetBufferPoolAttribute:input_type -> lemming.dataplane.sai.GetBufferPoolAttributeRequest - 11, // 15: lemming.dataplane.sai.Buffer.CreateIngressPriorityGroup:input_type -> lemming.dataplane.sai.CreateIngressPriorityGroupRequest - 13, // 16: lemming.dataplane.sai.Buffer.RemoveIngressPriorityGroup:input_type -> lemming.dataplane.sai.RemoveIngressPriorityGroupRequest - 15, // 17: lemming.dataplane.sai.Buffer.SetIngressPriorityGroupAttribute:input_type -> lemming.dataplane.sai.SetIngressPriorityGroupAttributeRequest - 17, // 18: lemming.dataplane.sai.Buffer.GetIngressPriorityGroupAttribute:input_type -> lemming.dataplane.sai.GetIngressPriorityGroupAttributeRequest - 19, // 19: lemming.dataplane.sai.Buffer.CreateBufferProfile:input_type -> lemming.dataplane.sai.CreateBufferProfileRequest - 21, // 20: lemming.dataplane.sai.Buffer.RemoveBufferProfile:input_type -> lemming.dataplane.sai.RemoveBufferProfileRequest - 23, // 21: lemming.dataplane.sai.Buffer.SetBufferProfileAttribute:input_type -> lemming.dataplane.sai.SetBufferProfileAttributeRequest - 25, // 22: lemming.dataplane.sai.Buffer.GetBufferProfileAttribute:input_type -> lemming.dataplane.sai.GetBufferProfileAttributeRequest - 4, // 23: lemming.dataplane.sai.Buffer.CreateBufferPool:output_type -> lemming.dataplane.sai.CreateBufferPoolResponse - 6, // 24: lemming.dataplane.sai.Buffer.RemoveBufferPool:output_type -> lemming.dataplane.sai.RemoveBufferPoolResponse - 8, // 25: lemming.dataplane.sai.Buffer.SetBufferPoolAttribute:output_type -> lemming.dataplane.sai.SetBufferPoolAttributeResponse - 10, // 26: lemming.dataplane.sai.Buffer.GetBufferPoolAttribute:output_type -> lemming.dataplane.sai.GetBufferPoolAttributeResponse - 12, // 27: lemming.dataplane.sai.Buffer.CreateIngressPriorityGroup:output_type -> lemming.dataplane.sai.CreateIngressPriorityGroupResponse - 14, // 28: lemming.dataplane.sai.Buffer.RemoveIngressPriorityGroup:output_type -> lemming.dataplane.sai.RemoveIngressPriorityGroupResponse - 16, // 29: lemming.dataplane.sai.Buffer.SetIngressPriorityGroupAttribute:output_type -> lemming.dataplane.sai.SetIngressPriorityGroupAttributeResponse - 18, // 30: lemming.dataplane.sai.Buffer.GetIngressPriorityGroupAttribute:output_type -> lemming.dataplane.sai.GetIngressPriorityGroupAttributeResponse - 20, // 31: lemming.dataplane.sai.Buffer.CreateBufferProfile:output_type -> lemming.dataplane.sai.CreateBufferProfileResponse - 22, // 32: lemming.dataplane.sai.Buffer.RemoveBufferProfile:output_type -> lemming.dataplane.sai.RemoveBufferProfileResponse - 24, // 33: lemming.dataplane.sai.Buffer.SetBufferProfileAttribute:output_type -> lemming.dataplane.sai.SetBufferProfileAttributeResponse - 26, // 34: lemming.dataplane.sai.Buffer.GetBufferProfileAttribute:output_type -> lemming.dataplane.sai.GetBufferProfileAttributeResponse - 23, // [23:35] is the sub-list for method output_type - 11, // [11:23] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 0, // 2: lemming.dataplane.sai.GetBufferPoolAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.BufferPoolAttr + 29, // 3: lemming.dataplane.sai.GetBufferPoolAttributeResponse.attr:type_name -> lemming.dataplane.sai.BufferPoolAttribute + 1, // 4: lemming.dataplane.sai.GetIngressPriorityGroupAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.IngressPriorityGroupAttr + 30, // 5: lemming.dataplane.sai.GetIngressPriorityGroupAttributeResponse.attr:type_name -> lemming.dataplane.sai.IngressPriorityGroupAttribute + 31, // 6: lemming.dataplane.sai.CreateBufferProfileRequest.threshold_mode:type_name -> lemming.dataplane.sai.BufferProfileThresholdMode + 2, // 7: lemming.dataplane.sai.GetBufferProfileAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.BufferProfileAttr + 32, // 8: lemming.dataplane.sai.GetBufferProfileAttributeResponse.attr:type_name -> lemming.dataplane.sai.BufferProfileAttribute + 3, // 9: lemming.dataplane.sai.Buffer.CreateBufferPool:input_type -> lemming.dataplane.sai.CreateBufferPoolRequest + 5, // 10: lemming.dataplane.sai.Buffer.RemoveBufferPool:input_type -> lemming.dataplane.sai.RemoveBufferPoolRequest + 7, // 11: lemming.dataplane.sai.Buffer.SetBufferPoolAttribute:input_type -> lemming.dataplane.sai.SetBufferPoolAttributeRequest + 9, // 12: lemming.dataplane.sai.Buffer.GetBufferPoolAttribute:input_type -> lemming.dataplane.sai.GetBufferPoolAttributeRequest + 11, // 13: lemming.dataplane.sai.Buffer.CreateIngressPriorityGroup:input_type -> lemming.dataplane.sai.CreateIngressPriorityGroupRequest + 13, // 14: lemming.dataplane.sai.Buffer.RemoveIngressPriorityGroup:input_type -> lemming.dataplane.sai.RemoveIngressPriorityGroupRequest + 15, // 15: lemming.dataplane.sai.Buffer.SetIngressPriorityGroupAttribute:input_type -> lemming.dataplane.sai.SetIngressPriorityGroupAttributeRequest + 17, // 16: lemming.dataplane.sai.Buffer.GetIngressPriorityGroupAttribute:input_type -> lemming.dataplane.sai.GetIngressPriorityGroupAttributeRequest + 19, // 17: lemming.dataplane.sai.Buffer.CreateBufferProfile:input_type -> lemming.dataplane.sai.CreateBufferProfileRequest + 21, // 18: lemming.dataplane.sai.Buffer.RemoveBufferProfile:input_type -> lemming.dataplane.sai.RemoveBufferProfileRequest + 23, // 19: lemming.dataplane.sai.Buffer.SetBufferProfileAttribute:input_type -> lemming.dataplane.sai.SetBufferProfileAttributeRequest + 25, // 20: lemming.dataplane.sai.Buffer.GetBufferProfileAttribute:input_type -> lemming.dataplane.sai.GetBufferProfileAttributeRequest + 4, // 21: lemming.dataplane.sai.Buffer.CreateBufferPool:output_type -> lemming.dataplane.sai.CreateBufferPoolResponse + 6, // 22: lemming.dataplane.sai.Buffer.RemoveBufferPool:output_type -> lemming.dataplane.sai.RemoveBufferPoolResponse + 8, // 23: lemming.dataplane.sai.Buffer.SetBufferPoolAttribute:output_type -> lemming.dataplane.sai.SetBufferPoolAttributeResponse + 10, // 24: lemming.dataplane.sai.Buffer.GetBufferPoolAttribute:output_type -> lemming.dataplane.sai.GetBufferPoolAttributeResponse + 12, // 25: lemming.dataplane.sai.Buffer.CreateIngressPriorityGroup:output_type -> lemming.dataplane.sai.CreateIngressPriorityGroupResponse + 14, // 26: lemming.dataplane.sai.Buffer.RemoveIngressPriorityGroup:output_type -> lemming.dataplane.sai.RemoveIngressPriorityGroupResponse + 16, // 27: lemming.dataplane.sai.Buffer.SetIngressPriorityGroupAttribute:output_type -> lemming.dataplane.sai.SetIngressPriorityGroupAttributeResponse + 18, // 28: lemming.dataplane.sai.Buffer.GetIngressPriorityGroupAttribute:output_type -> lemming.dataplane.sai.GetIngressPriorityGroupAttributeResponse + 20, // 29: lemming.dataplane.sai.Buffer.CreateBufferProfile:output_type -> lemming.dataplane.sai.CreateBufferProfileResponse + 22, // 30: lemming.dataplane.sai.Buffer.RemoveBufferProfile:output_type -> lemming.dataplane.sai.RemoveBufferProfileResponse + 24, // 31: lemming.dataplane.sai.Buffer.SetBufferProfileAttribute:output_type -> lemming.dataplane.sai.SetBufferProfileAttributeResponse + 26, // 32: lemming.dataplane.sai.Buffer.GetBufferProfileAttribute:output_type -> lemming.dataplane.sai.GetBufferProfileAttributeResponse + 21, // [21:33] is the sub-list for method output_type + 9, // [9:21] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_buffer_proto_init() } @@ -2403,24 +2322,12 @@ func file_dataplane_standalone_proto_buffer_proto_init() { } } } - file_dataplane_standalone_proto_buffer_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetBufferPoolAttributeRequest_Size)(nil), - (*SetBufferPoolAttributeRequest_Tam)(nil), - (*SetBufferPoolAttributeRequest_XoffSize)(nil), - (*SetBufferPoolAttributeRequest_WredProfileId)(nil), - } - file_dataplane_standalone_proto_buffer_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetIngressPriorityGroupAttributeRequest_BufferProfile)(nil), - (*SetIngressPriorityGroupAttributeRequest_Tam)(nil), - } - file_dataplane_standalone_proto_buffer_proto_msgTypes[20].OneofWrappers = []interface{}{ - (*SetBufferProfileAttributeRequest_ReservedBufferSize)(nil), - (*SetBufferProfileAttributeRequest_SharedDynamicTh)(nil), - (*SetBufferProfileAttributeRequest_SharedStaticTh)(nil), - (*SetBufferProfileAttributeRequest_XoffTh)(nil), - (*SetBufferProfileAttributeRequest_XonTh)(nil), - (*SetBufferProfileAttributeRequest_XonOffsetTh)(nil), - } + file_dataplane_standalone_proto_buffer_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_buffer_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_buffer_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_buffer_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_buffer_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_buffer_proto_msgTypes[20].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/buffer.proto b/dataplane/standalone/proto/buffer.proto index 45254098..fb89ec69 100644 --- a/dataplane/standalone/proto/buffer.proto +++ b/dataplane/standalone/proto/buffer.proto @@ -7,221 +7,178 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum BufferPoolAttr { - BUFFER_POOL_ATTR_UNSPECIFIED = 0; - BUFFER_POOL_ATTR_SHARED_SIZE = 1; - BUFFER_POOL_ATTR_TYPE = 2; - BUFFER_POOL_ATTR_SIZE = 3; - BUFFER_POOL_ATTR_THRESHOLD_MODE = 4; - BUFFER_POOL_ATTR_TAM = 5; - BUFFER_POOL_ATTR_XOFF_SIZE = 6; - BUFFER_POOL_ATTR_WRED_PROFILE_ID = 7; + BUFFER_POOL_ATTR_UNSPECIFIED = 0; + BUFFER_POOL_ATTR_SHARED_SIZE = 1; + BUFFER_POOL_ATTR_TYPE = 2; + BUFFER_POOL_ATTR_SIZE = 3; + BUFFER_POOL_ATTR_THRESHOLD_MODE = 4; + BUFFER_POOL_ATTR_TAM = 5; + BUFFER_POOL_ATTR_XOFF_SIZE = 6; + BUFFER_POOL_ATTR_WRED_PROFILE_ID = 7; } enum IngressPriorityGroupAttr { - INGRESS_PRIORITY_GROUP_ATTR_UNSPECIFIED = 0; - INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE = 1; - INGRESS_PRIORITY_GROUP_ATTR_PORT = 2; - INGRESS_PRIORITY_GROUP_ATTR_TAM = 3; - INGRESS_PRIORITY_GROUP_ATTR_INDEX = 4; + INGRESS_PRIORITY_GROUP_ATTR_UNSPECIFIED = 0; + INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE = 1; + INGRESS_PRIORITY_GROUP_ATTR_PORT = 2; + INGRESS_PRIORITY_GROUP_ATTR_TAM = 3; + INGRESS_PRIORITY_GROUP_ATTR_INDEX = 4; } enum BufferProfileAttr { - BUFFER_PROFILE_ATTR_UNSPECIFIED = 0; - BUFFER_PROFILE_ATTR_POOL_ID = 1; - BUFFER_PROFILE_ATTR_RESERVED_BUFFER_SIZE = 2; - BUFFER_PROFILE_ATTR_THRESHOLD_MODE = 3; - BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH = 4; - BUFFER_PROFILE_ATTR_SHARED_STATIC_TH = 5; - BUFFER_PROFILE_ATTR_XOFF_TH = 6; - BUFFER_PROFILE_ATTR_XON_TH = 7; - BUFFER_PROFILE_ATTR_XON_OFFSET_TH = 8; + BUFFER_PROFILE_ATTR_UNSPECIFIED = 0; + BUFFER_PROFILE_ATTR_POOL_ID = 1; + BUFFER_PROFILE_ATTR_RESERVED_BUFFER_SIZE = 2; + BUFFER_PROFILE_ATTR_THRESHOLD_MODE = 3; + BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH = 4; + BUFFER_PROFILE_ATTR_SHARED_STATIC_TH = 5; + BUFFER_PROFILE_ATTR_XOFF_TH = 6; + BUFFER_PROFILE_ATTR_XON_TH = 7; + BUFFER_PROFILE_ATTR_XON_OFFSET_TH = 8; } message CreateBufferPoolRequest { - uint64 switch = 1; - - BufferPoolType type = 2; - uint64 size = 3; - BufferPoolThresholdMode threshold_mode = 4; - repeated uint64 tam = 5; - uint64 xoff_size = 6; - uint64 wred_profile_id = 7; - + uint64 switch = 1; + optional BufferPoolType type = 2 [(attr_enum_value) = 2]; + optional uint64 size = 3 [(attr_enum_value) = 3]; + optional BufferPoolThresholdMode threshold_mode = 4 [(attr_enum_value) = 4]; + repeated uint64 tam = 5 [(attr_enum_value) = 5]; + optional uint64 xoff_size = 6 [(attr_enum_value) = 6]; + optional uint64 wred_profile_id = 7 [(attr_enum_value) = 7]; } message CreateBufferPoolResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveBufferPoolRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveBufferPoolResponse { - - -} +message RemoveBufferPoolResponse {} message SetBufferPoolAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 size = 2; - Uint64List tam = 3; - uint64 xoff_size = 4; - uint64 wred_profile_id = 5; - } + uint64 oid = 1; + optional uint64 size = 2 [(attr_enum_value) = 3]; + repeated uint64 tam = 3 [(attr_enum_value) = 5]; + optional uint64 xoff_size = 4 [(attr_enum_value) = 6]; + optional uint64 wred_profile_id = 5 [(attr_enum_value) = 7]; } -message SetBufferPoolAttributeResponse { - - -} +message SetBufferPoolAttributeResponse {} message GetBufferPoolAttributeRequest { - uint64 oid = 1; - repeated BufferPoolAttr attr_type = 2; - - + uint64 oid = 1; + repeated BufferPoolAttr attr_type = 2; } message GetBufferPoolAttributeResponse { - repeated BufferPoolAttribute attr = 1; - - + BufferPoolAttribute attr = 1; } message CreateIngressPriorityGroupRequest { - uint64 switch = 1; - - uint64 buffer_profile = 2; - uint64 port = 3; - repeated uint64 tam = 4; - uint32 index = 5; - + uint64 switch = 1; + optional uint64 buffer_profile = 2 [(attr_enum_value) = 1]; + optional uint64 port = 3 [(attr_enum_value) = 2]; + repeated uint64 tam = 4 [(attr_enum_value) = 3]; + optional uint32 index = 5 [(attr_enum_value) = 4]; } message CreateIngressPriorityGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveIngressPriorityGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveIngressPriorityGroupResponse { - - -} +message RemoveIngressPriorityGroupResponse {} message SetIngressPriorityGroupAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 buffer_profile = 2; - Uint64List tam = 3; - } + uint64 oid = 1; + optional uint64 buffer_profile = 2 [(attr_enum_value) = 1]; + repeated uint64 tam = 3 [(attr_enum_value) = 3]; } -message SetIngressPriorityGroupAttributeResponse { - - -} +message SetIngressPriorityGroupAttributeResponse {} message GetIngressPriorityGroupAttributeRequest { - uint64 oid = 1; - repeated IngressPriorityGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated IngressPriorityGroupAttr attr_type = 2; } message GetIngressPriorityGroupAttributeResponse { - repeated IngressPriorityGroupAttribute attr = 1; - - + IngressPriorityGroupAttribute attr = 1; } message CreateBufferProfileRequest { - uint64 switch = 1; - - uint64 pool_id = 2; - uint64 reserved_buffer_size = 3; - BufferProfileThresholdMode threshold_mode = 4; - int32 shared_dynamic_th = 5; - uint64 shared_static_th = 6; - uint64 xoff_th = 7; - uint64 xon_th = 8; - uint64 xon_offset_th = 9; - + uint64 switch = 1; + optional uint64 pool_id = 2 [(attr_enum_value) = 1]; + optional uint64 reserved_buffer_size = 3 [(attr_enum_value) = 2]; + optional BufferProfileThresholdMode threshold_mode = 4 + [(attr_enum_value) = 3]; + optional int32 shared_dynamic_th = 5 [(attr_enum_value) = 4]; + optional uint64 shared_static_th = 6 [(attr_enum_value) = 5]; + optional uint64 xoff_th = 7 [(attr_enum_value) = 6]; + optional uint64 xon_th = 8 [(attr_enum_value) = 7]; + optional uint64 xon_offset_th = 9 [(attr_enum_value) = 8]; } message CreateBufferProfileResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveBufferProfileRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveBufferProfileResponse { - - -} +message RemoveBufferProfileResponse {} message SetBufferProfileAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 reserved_buffer_size = 2; - int32 shared_dynamic_th = 3; - uint64 shared_static_th = 4; - uint64 xoff_th = 5; - uint64 xon_th = 6; - uint64 xon_offset_th = 7; - } + uint64 oid = 1; + optional uint64 reserved_buffer_size = 2 [(attr_enum_value) = 2]; + optional int32 shared_dynamic_th = 3 [(attr_enum_value) = 4]; + optional uint64 shared_static_th = 4 [(attr_enum_value) = 5]; + optional uint64 xoff_th = 5 [(attr_enum_value) = 6]; + optional uint64 xon_th = 6 [(attr_enum_value) = 7]; + optional uint64 xon_offset_th = 7 [(attr_enum_value) = 8]; } -message SetBufferProfileAttributeResponse { - - -} +message SetBufferProfileAttributeResponse {} message GetBufferProfileAttributeRequest { - uint64 oid = 1; - repeated BufferProfileAttr attr_type = 2; - - + uint64 oid = 1; + repeated BufferProfileAttr attr_type = 2; } message GetBufferProfileAttributeResponse { - repeated BufferProfileAttribute attr = 1; - - + BufferProfileAttribute attr = 1; } - service Buffer { - rpc CreateBufferPool (CreateBufferPoolRequest) returns (CreateBufferPoolResponse) {} - rpc RemoveBufferPool (RemoveBufferPoolRequest) returns (RemoveBufferPoolResponse) {} - rpc SetBufferPoolAttribute (SetBufferPoolAttributeRequest) returns (SetBufferPoolAttributeResponse) {} - rpc GetBufferPoolAttribute (GetBufferPoolAttributeRequest) returns (GetBufferPoolAttributeResponse) {} - rpc CreateIngressPriorityGroup (CreateIngressPriorityGroupRequest) returns (CreateIngressPriorityGroupResponse) {} - rpc RemoveIngressPriorityGroup (RemoveIngressPriorityGroupRequest) returns (RemoveIngressPriorityGroupResponse) {} - rpc SetIngressPriorityGroupAttribute (SetIngressPriorityGroupAttributeRequest) returns (SetIngressPriorityGroupAttributeResponse) {} - rpc GetIngressPriorityGroupAttribute (GetIngressPriorityGroupAttributeRequest) returns (GetIngressPriorityGroupAttributeResponse) {} - rpc CreateBufferProfile (CreateBufferProfileRequest) returns (CreateBufferProfileResponse) {} - rpc RemoveBufferProfile (RemoveBufferProfileRequest) returns (RemoveBufferProfileResponse) {} - rpc SetBufferProfileAttribute (SetBufferProfileAttributeRequest) returns (SetBufferProfileAttributeResponse) {} - rpc GetBufferProfileAttribute (GetBufferProfileAttributeRequest) returns (GetBufferProfileAttributeResponse) {} + rpc CreateBufferPool(CreateBufferPoolRequest) + returns (CreateBufferPoolResponse) {} + rpc RemoveBufferPool(RemoveBufferPoolRequest) + returns (RemoveBufferPoolResponse) {} + rpc SetBufferPoolAttribute(SetBufferPoolAttributeRequest) + returns (SetBufferPoolAttributeResponse) {} + rpc GetBufferPoolAttribute(GetBufferPoolAttributeRequest) + returns (GetBufferPoolAttributeResponse) {} + rpc CreateIngressPriorityGroup(CreateIngressPriorityGroupRequest) + returns (CreateIngressPriorityGroupResponse) {} + rpc RemoveIngressPriorityGroup(RemoveIngressPriorityGroupRequest) + returns (RemoveIngressPriorityGroupResponse) {} + rpc SetIngressPriorityGroupAttribute(SetIngressPriorityGroupAttributeRequest) + returns (SetIngressPriorityGroupAttributeResponse) {} + rpc GetIngressPriorityGroupAttribute(GetIngressPriorityGroupAttributeRequest) + returns (GetIngressPriorityGroupAttributeResponse) {} + rpc CreateBufferProfile(CreateBufferProfileRequest) + returns (CreateBufferProfileResponse) {} + rpc RemoveBufferProfile(RemoveBufferProfileRequest) + returns (RemoveBufferProfileResponse) {} + rpc SetBufferProfileAttribute(SetBufferProfileAttributeRequest) + returns (SetBufferProfileAttributeResponse) {} + rpc GetBufferProfileAttribute(GetBufferProfileAttributeRequest) + returns (GetBufferProfileAttributeResponse) {} } diff --git a/dataplane/standalone/proto/common.pb.go b/dataplane/standalone/proto/common.pb.go index caa2a056..17b95ee7 100755 --- a/dataplane/standalone/proto/common.pb.go +++ b/dataplane/standalone/proto/common.pb.go @@ -9,6 +9,7 @@ package proto import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" @@ -11736,6 +11737,53 @@ func (*AclFieldData_DataIp) isAclFieldData_Data() {} func (*AclFieldData_DataList) isAclFieldData_Data() {} +type Uint64List struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []uint64 `protobuf:"varint,1,rep,packed,name=list,proto3" json:"list,omitempty"` +} + +func (x *Uint64List) Reset() { + *x = Uint64List{} + if protoimpl.UnsafeEnabled { + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Uint64List) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Uint64List) ProtoMessage() {} + +func (x *Uint64List) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_common_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 Uint64List.ProtoReflect.Descriptor instead. +func (*Uint64List) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{3} +} + +func (x *Uint64List) GetList() []uint64 { + if x != nil { + return x.List + } + return nil +} + type ACLResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -11749,7 +11797,7 @@ type ACLResource struct { func (x *ACLResource) Reset() { *x = ACLResource{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[3] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11762,7 +11810,7 @@ func (x *ACLResource) String() string { func (*ACLResource) ProtoMessage() {} func (x *ACLResource) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[3] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11775,7 +11823,7 @@ func (x *ACLResource) ProtoReflect() protoreflect.Message { // Deprecated: Use ACLResource.ProtoReflect.Descriptor instead. func (*ACLResource) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{3} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{4} } func (x *ACLResource) GetStage() AclStage { @@ -11811,7 +11859,7 @@ type BfdSessionStateChangeNotificationData struct { func (x *BfdSessionStateChangeNotificationData) Reset() { *x = BfdSessionStateChangeNotificationData{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[4] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11824,7 +11872,7 @@ func (x *BfdSessionStateChangeNotificationData) String() string { func (*BfdSessionStateChangeNotificationData) ProtoMessage() {} func (x *BfdSessionStateChangeNotificationData) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[4] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11837,7 +11885,7 @@ func (x *BfdSessionStateChangeNotificationData) ProtoReflect() protoreflect.Mess // Deprecated: Use BfdSessionStateChangeNotificationData.ProtoReflect.Descriptor instead. func (*BfdSessionStateChangeNotificationData) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{4} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{5} } func (x *BfdSessionStateChangeNotificationData) GetBfdSessionId() uint64 { @@ -11866,7 +11914,7 @@ type FabricPortReachability struct { func (x *FabricPortReachability) Reset() { *x = FabricPortReachability{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[5] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11879,7 +11927,7 @@ func (x *FabricPortReachability) String() string { func (*FabricPortReachability) ProtoMessage() {} func (x *FabricPortReachability) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[5] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11892,7 +11940,7 @@ func (x *FabricPortReachability) ProtoReflect() protoreflect.Message { // Deprecated: Use FabricPortReachability.ProtoReflect.Descriptor instead. func (*FabricPortReachability) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{5} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{6} } func (x *FabricPortReachability) GetSwitchId() uint32 { @@ -11922,7 +11970,7 @@ type FdbEntry struct { func (x *FdbEntry) Reset() { *x = FdbEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[6] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11935,7 +11983,7 @@ func (x *FdbEntry) String() string { func (*FdbEntry) ProtoMessage() {} func (x *FdbEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[6] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11948,7 +11996,7 @@ func (x *FdbEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use FdbEntry.ProtoReflect.Descriptor instead. func (*FdbEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{6} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{7} } func (x *FdbEntry) GetSwitchId() uint64 { @@ -11985,7 +12033,7 @@ type FdbEventNotificationData struct { func (x *FdbEventNotificationData) Reset() { *x = FdbEventNotificationData{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[7] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11998,7 +12046,7 @@ func (x *FdbEventNotificationData) String() string { func (*FdbEventNotificationData) ProtoMessage() {} func (x *FdbEventNotificationData) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[7] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12011,7 +12059,7 @@ func (x *FdbEventNotificationData) ProtoReflect() protoreflect.Message { // Deprecated: Use FdbEventNotificationData.ProtoReflect.Descriptor instead. func (*FdbEventNotificationData) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{7} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{8} } func (x *FdbEventNotificationData) GetEventType() FdbEvent { @@ -12047,7 +12095,7 @@ type InsegEntry struct { func (x *InsegEntry) Reset() { *x = InsegEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[8] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12060,7 +12108,7 @@ func (x *InsegEntry) String() string { func (*InsegEntry) ProtoMessage() {} func (x *InsegEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[8] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12073,7 +12121,7 @@ func (x *InsegEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use InsegEntry.ProtoReflect.Descriptor instead. func (*InsegEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{8} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{9} } func (x *InsegEntry) GetSwitchId() uint64 { @@ -12102,7 +12150,7 @@ type IpPrefix struct { func (x *IpPrefix) Reset() { *x = IpPrefix{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[9] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12115,7 +12163,7 @@ func (x *IpPrefix) String() string { func (*IpPrefix) ProtoMessage() {} func (x *IpPrefix) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[9] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12128,7 +12176,7 @@ func (x *IpPrefix) ProtoReflect() protoreflect.Message { // Deprecated: Use IpPrefix.ProtoReflect.Descriptor instead. func (*IpPrefix) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{9} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{10} } func (x *IpPrefix) GetAddr() []byte { @@ -12160,7 +12208,7 @@ type IpmcEntry struct { func (x *IpmcEntry) Reset() { *x = IpmcEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[10] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12173,7 +12221,7 @@ func (x *IpmcEntry) String() string { func (*IpmcEntry) ProtoMessage() {} func (x *IpmcEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[10] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12186,7 +12234,7 @@ func (x *IpmcEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use IpmcEntry.ProtoReflect.Descriptor instead. func (*IpmcEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{10} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{11} } func (x *IpmcEntry) GetSwitchId() uint64 { @@ -12237,7 +12285,7 @@ type IpsecSaStatusNotificationData struct { func (x *IpsecSaStatusNotificationData) Reset() { *x = IpsecSaStatusNotificationData{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[11] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12250,7 +12298,7 @@ func (x *IpsecSaStatusNotificationData) String() string { func (*IpsecSaStatusNotificationData) ProtoMessage() {} func (x *IpsecSaStatusNotificationData) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[11] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12263,7 +12311,7 @@ func (x *IpsecSaStatusNotificationData) ProtoReflect() protoreflect.Message { // Deprecated: Use IpsecSaStatusNotificationData.ProtoReflect.Descriptor instead. func (*IpsecSaStatusNotificationData) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{11} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{12} } func (x *IpsecSaStatusNotificationData) GetIpsecSaId() uint64 { @@ -12302,7 +12350,7 @@ type L2McEntry struct { func (x *L2McEntry) Reset() { *x = L2McEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[12] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12315,7 +12363,7 @@ func (x *L2McEntry) String() string { func (*L2McEntry) ProtoMessage() {} func (x *L2McEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[12] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12328,7 +12376,7 @@ func (x *L2McEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use L2McEntry.ProtoReflect.Descriptor instead. func (*L2McEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{12} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{13} } func (x *L2McEntry) GetSwitchId() uint64 { @@ -12377,7 +12425,7 @@ type UintMap struct { func (x *UintMap) Reset() { *x = UintMap{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[13] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12390,7 +12438,7 @@ func (x *UintMap) String() string { func (*UintMap) ProtoMessage() {} func (x *UintMap) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[13] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12403,7 +12451,7 @@ func (x *UintMap) ProtoReflect() protoreflect.Message { // Deprecated: Use UintMap.ProtoReflect.Descriptor instead. func (*UintMap) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{13} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{14} } func (x *UintMap) GetUintmap() map[uint32]uint32 { @@ -12426,7 +12474,7 @@ type McastFdbEntry struct { func (x *McastFdbEntry) Reset() { *x = McastFdbEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[14] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12439,7 +12487,7 @@ func (x *McastFdbEntry) String() string { func (*McastFdbEntry) ProtoMessage() {} func (x *McastFdbEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[14] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12452,7 +12500,7 @@ func (x *McastFdbEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use McastFdbEntry.ProtoReflect.Descriptor instead. func (*McastFdbEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{14} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{15} } func (x *McastFdbEntry) GetSwitchId() uint64 { @@ -12493,7 +12541,7 @@ type MySidEntry struct { func (x *MySidEntry) Reset() { *x = MySidEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[15] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12506,7 +12554,7 @@ func (x *MySidEntry) String() string { func (*MySidEntry) ProtoMessage() {} func (x *MySidEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[15] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12519,7 +12567,7 @@ func (x *MySidEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use MySidEntry.ProtoReflect.Descriptor instead. func (*MySidEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{15} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{16} } func (x *MySidEntry) GetSwitchId() uint64 { @@ -12597,7 +12645,7 @@ type NatEntryData struct { func (x *NatEntryData) Reset() { *x = NatEntryData{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[16] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12610,7 +12658,7 @@ func (x *NatEntryData) String() string { func (*NatEntryData) ProtoMessage() {} func (x *NatEntryData) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[16] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12623,7 +12671,7 @@ func (x *NatEntryData) ProtoReflect() protoreflect.Message { // Deprecated: Use NatEntryData.ProtoReflect.Descriptor instead. func (*NatEntryData) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{16} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{17} } func (m *NatEntryData) GetKey() isNatEntryData_Key { @@ -12792,7 +12840,7 @@ type NatEntry struct { func (x *NatEntry) Reset() { *x = NatEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[17] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12805,7 +12853,7 @@ func (x *NatEntry) String() string { func (*NatEntry) ProtoMessage() {} func (x *NatEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[17] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12818,7 +12866,7 @@ func (x *NatEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use NatEntry.ProtoReflect.Descriptor instead. func (*NatEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{17} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{18} } func (x *NatEntry) GetSwitchId() uint64 { @@ -12862,7 +12910,7 @@ type NeighborEntry struct { func (x *NeighborEntry) Reset() { *x = NeighborEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[18] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12875,7 +12923,7 @@ func (x *NeighborEntry) String() string { func (*NeighborEntry) ProtoMessage() {} func (x *NeighborEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[18] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12888,7 +12936,7 @@ func (x *NeighborEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use NeighborEntry.ProtoReflect.Descriptor instead. func (*NeighborEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{18} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{19} } func (x *NeighborEntry) GetSwitchId() uint64 { @@ -12927,7 +12975,7 @@ type PortEyeValues struct { func (x *PortEyeValues) Reset() { *x = PortEyeValues{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[19] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12940,7 +12988,7 @@ func (x *PortEyeValues) String() string { func (*PortEyeValues) ProtoMessage() {} func (x *PortEyeValues) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[19] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12953,7 +13001,7 @@ func (x *PortEyeValues) ProtoReflect() protoreflect.Message { // Deprecated: Use PortEyeValues.ProtoReflect.Descriptor instead. func (*PortEyeValues) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{19} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{20} } func (x *PortEyeValues) GetLane() uint32 { @@ -13003,7 +13051,7 @@ type PortOperStatusNotification struct { func (x *PortOperStatusNotification) Reset() { *x = PortOperStatusNotification{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[20] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13016,7 +13064,7 @@ func (x *PortOperStatusNotification) String() string { func (*PortOperStatusNotification) ProtoMessage() {} func (x *PortOperStatusNotification) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[20] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13029,7 +13077,7 @@ func (x *PortOperStatusNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use PortOperStatusNotification.ProtoReflect.Descriptor instead. func (*PortOperStatusNotification) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{20} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{21} } func (x *PortOperStatusNotification) GetPortId() uint64 { @@ -13058,7 +13106,7 @@ type PRBS_RXState struct { func (x *PRBS_RXState) Reset() { *x = PRBS_RXState{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[21] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13071,7 +13119,7 @@ func (x *PRBS_RXState) String() string { func (*PRBS_RXState) ProtoMessage() {} func (x *PRBS_RXState) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[21] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13084,7 +13132,7 @@ func (x *PRBS_RXState) ProtoReflect() protoreflect.Message { // Deprecated: Use PRBS_RXState.ProtoReflect.Descriptor instead. func (*PRBS_RXState) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{21} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{22} } func (x *PRBS_RXState) GetRxStatus() PortPrbsRxStatus { @@ -13120,7 +13168,7 @@ type QOSMapParams struct { func (x *QOSMapParams) Reset() { *x = QOSMapParams{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[22] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13133,7 +13181,7 @@ func (x *QOSMapParams) String() string { func (*QOSMapParams) ProtoMessage() {} func (x *QOSMapParams) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[22] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13146,7 +13194,7 @@ func (x *QOSMapParams) ProtoReflect() protoreflect.Message { // Deprecated: Use QOSMapParams.ProtoReflect.Descriptor instead. func (*QOSMapParams) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{22} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{23} } func (x *QOSMapParams) GetTc() uint32 { @@ -13224,7 +13272,7 @@ type QOSMap struct { func (x *QOSMap) Reset() { *x = QOSMap{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[23] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13237,7 +13285,7 @@ func (x *QOSMap) String() string { func (*QOSMap) ProtoMessage() {} func (x *QOSMap) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[23] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13250,7 +13298,7 @@ func (x *QOSMap) ProtoReflect() protoreflect.Message { // Deprecated: Use QOSMap.ProtoReflect.Descriptor instead. func (*QOSMap) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{23} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{24} } func (x *QOSMap) GetKey() *QOSMapParams { @@ -13280,7 +13328,7 @@ type QueueDeadlockNotificationData struct { func (x *QueueDeadlockNotificationData) Reset() { *x = QueueDeadlockNotificationData{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[24] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13293,7 +13341,7 @@ func (x *QueueDeadlockNotificationData) String() string { func (*QueueDeadlockNotificationData) ProtoMessage() {} func (x *QueueDeadlockNotificationData) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[24] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13306,7 +13354,7 @@ func (x *QueueDeadlockNotificationData) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueDeadlockNotificationData.ProtoReflect.Descriptor instead. func (*QueueDeadlockNotificationData) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{24} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{25} } func (x *QueueDeadlockNotificationData) GetQueueId() uint64 { @@ -13343,7 +13391,7 @@ type RouteEntry struct { func (x *RouteEntry) Reset() { *x = RouteEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[25] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13356,7 +13404,7 @@ func (x *RouteEntry) String() string { func (*RouteEntry) ProtoMessage() {} func (x *RouteEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[25] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13369,7 +13417,7 @@ func (x *RouteEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use RouteEntry.ProtoReflect.Descriptor instead. func (*RouteEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{25} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{26} } func (x *RouteEntry) GetSwitchId() uint64 { @@ -13409,7 +13457,7 @@ type SystemPortConfig struct { func (x *SystemPortConfig) Reset() { *x = SystemPortConfig{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[26] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13422,7 +13470,7 @@ func (x *SystemPortConfig) String() string { func (*SystemPortConfig) ProtoMessage() {} func (x *SystemPortConfig) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[26] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13435,7 +13483,7 @@ func (x *SystemPortConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemPortConfig.ProtoReflect.Descriptor instead. func (*SystemPortConfig) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{26} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{27} } func (x *SystemPortConfig) GetPortId() uint32 { @@ -13492,7 +13540,7 @@ type HMAC struct { func (x *HMAC) Reset() { *x = HMAC{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[27] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13505,7 +13553,7 @@ func (x *HMAC) String() string { func (*HMAC) ProtoMessage() {} func (x *HMAC) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[27] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13518,7 +13566,7 @@ func (x *HMAC) ProtoReflect() protoreflect.Message { // Deprecated: Use HMAC.ProtoReflect.Descriptor instead. func (*HMAC) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{27} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{28} } func (x *HMAC) GetKeyId() uint32 { @@ -13552,7 +13600,7 @@ type TLVEntry struct { func (x *TLVEntry) Reset() { *x = TLVEntry{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[28] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13565,7 +13613,7 @@ func (x *TLVEntry) String() string { func (*TLVEntry) ProtoMessage() {} func (x *TLVEntry) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[28] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13578,7 +13626,7 @@ func (x *TLVEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use TLVEntry.ProtoReflect.Descriptor instead. func (*TLVEntry) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{28} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{29} } func (m *TLVEntry) GetEntry() isTLVEntry_Entry { @@ -13656,7 +13704,7 @@ type Uint32Range struct { func (x *Uint32Range) Reset() { *x = Uint32Range{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[29] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13669,7 +13717,7 @@ func (x *Uint32Range) String() string { func (*Uint32Range) ProtoMessage() {} func (x *Uint32Range) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[29] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13682,7 +13730,7 @@ func (x *Uint32Range) ProtoReflect() protoreflect.Message { // Deprecated: Use Uint32Range.ProtoReflect.Descriptor instead. func (*Uint32Range) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{29} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{30} } func (x *Uint32Range) GetMin() uint64 { @@ -13704,17 +13752,17 @@ type AclCounterAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TableId uint64 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` - EnablePacketCount bool `protobuf:"varint,2,opt,name=enable_packet_count,json=enablePacketCount,proto3" json:"enable_packet_count,omitempty"` - EnableByteCount bool `protobuf:"varint,3,opt,name=enable_byte_count,json=enableByteCount,proto3" json:"enable_byte_count,omitempty"` - Packets uint64 `protobuf:"varint,4,opt,name=packets,proto3" json:"packets,omitempty"` - Bytes uint64 `protobuf:"varint,5,opt,name=bytes,proto3" json:"bytes,omitempty"` + TableId *uint64 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3,oneof" json:"table_id,omitempty"` + EnablePacketCount *bool `protobuf:"varint,2,opt,name=enable_packet_count,json=enablePacketCount,proto3,oneof" json:"enable_packet_count,omitempty"` + EnableByteCount *bool `protobuf:"varint,3,opt,name=enable_byte_count,json=enableByteCount,proto3,oneof" json:"enable_byte_count,omitempty"` + Packets *uint64 `protobuf:"varint,4,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + Bytes *uint64 `protobuf:"varint,5,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` } func (x *AclCounterAttribute) Reset() { *x = AclCounterAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[30] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13727,7 +13775,7 @@ func (x *AclCounterAttribute) String() string { func (*AclCounterAttribute) ProtoMessage() {} func (x *AclCounterAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[30] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13740,40 +13788,40 @@ func (x *AclCounterAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use AclCounterAttribute.ProtoReflect.Descriptor instead. func (*AclCounterAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{30} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{31} } func (x *AclCounterAttribute) GetTableId() uint64 { - if x != nil { - return x.TableId + if x != nil && x.TableId != nil { + return *x.TableId } return 0 } func (x *AclCounterAttribute) GetEnablePacketCount() bool { - if x != nil { - return x.EnablePacketCount + if x != nil && x.EnablePacketCount != nil { + return *x.EnablePacketCount } return false } func (x *AclCounterAttribute) GetEnableByteCount() bool { - if x != nil { - return x.EnableByteCount + if x != nil && x.EnableByteCount != nil { + return *x.EnableByteCount } return false } func (x *AclCounterAttribute) GetPackets() uint64 { - if x != nil { - return x.Packets + if x != nil && x.Packets != nil { + return *x.Packets } return 0 } func (x *AclCounterAttribute) GetBytes() uint64 { - if x != nil { - return x.Bytes + if x != nil && x.Bytes != nil { + return *x.Bytes } return 0 } @@ -13783,161 +13831,161 @@ type AclEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TableId uint64 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` - Priority uint32 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"` - AdminState bool `protobuf:"varint,3,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - FieldSrcIpv6 *AclFieldData `protobuf:"bytes,4,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3" json:"field_src_ipv6,omitempty"` - FieldSrcIpv6Word3 *AclFieldData `protobuf:"bytes,5,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3" json:"field_src_ipv6_word3,omitempty"` - FieldSrcIpv6Word2 *AclFieldData `protobuf:"bytes,6,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3" json:"field_src_ipv6_word2,omitempty"` - FieldSrcIpv6Word1 *AclFieldData `protobuf:"bytes,7,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3" json:"field_src_ipv6_word1,omitempty"` - FieldSrcIpv6Word0 *AclFieldData `protobuf:"bytes,8,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3" json:"field_src_ipv6_word0,omitempty"` - FieldDstIpv6 *AclFieldData `protobuf:"bytes,9,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3" json:"field_dst_ipv6,omitempty"` - FieldDstIpv6Word3 *AclFieldData `protobuf:"bytes,10,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3" json:"field_dst_ipv6_word3,omitempty"` - FieldDstIpv6Word2 *AclFieldData `protobuf:"bytes,11,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3" json:"field_dst_ipv6_word2,omitempty"` - FieldDstIpv6Word1 *AclFieldData `protobuf:"bytes,12,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3" json:"field_dst_ipv6_word1,omitempty"` - FieldDstIpv6Word0 *AclFieldData `protobuf:"bytes,13,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3" json:"field_dst_ipv6_word0,omitempty"` - FieldInnerSrcIpv6 *AclFieldData `protobuf:"bytes,14,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3" json:"field_inner_src_ipv6,omitempty"` - FieldInnerDstIpv6 *AclFieldData `protobuf:"bytes,15,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3" json:"field_inner_dst_ipv6,omitempty"` - FieldSrcMac *AclFieldData `protobuf:"bytes,16,opt,name=field_src_mac,json=fieldSrcMac,proto3" json:"field_src_mac,omitempty"` - FieldDstMac *AclFieldData `protobuf:"bytes,17,opt,name=field_dst_mac,json=fieldDstMac,proto3" json:"field_dst_mac,omitempty"` - FieldSrcIp *AclFieldData `protobuf:"bytes,18,opt,name=field_src_ip,json=fieldSrcIp,proto3" json:"field_src_ip,omitempty"` - FieldDstIp *AclFieldData `protobuf:"bytes,19,opt,name=field_dst_ip,json=fieldDstIp,proto3" json:"field_dst_ip,omitempty"` - FieldInnerSrcIp *AclFieldData `protobuf:"bytes,20,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3" json:"field_inner_src_ip,omitempty"` - FieldInnerDstIp *AclFieldData `protobuf:"bytes,21,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3" json:"field_inner_dst_ip,omitempty"` - FieldInPorts *AclFieldData `protobuf:"bytes,22,opt,name=field_in_ports,json=fieldInPorts,proto3" json:"field_in_ports,omitempty"` - FieldOutPorts *AclFieldData `protobuf:"bytes,23,opt,name=field_out_ports,json=fieldOutPorts,proto3" json:"field_out_ports,omitempty"` - FieldInPort *AclFieldData `protobuf:"bytes,24,opt,name=field_in_port,json=fieldInPort,proto3" json:"field_in_port,omitempty"` - FieldOutPort *AclFieldData `protobuf:"bytes,25,opt,name=field_out_port,json=fieldOutPort,proto3" json:"field_out_port,omitempty"` - FieldSrcPort *AclFieldData `protobuf:"bytes,26,opt,name=field_src_port,json=fieldSrcPort,proto3" json:"field_src_port,omitempty"` - FieldOuterVlanId *AclFieldData `protobuf:"bytes,27,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3" json:"field_outer_vlan_id,omitempty"` - FieldOuterVlanPri *AclFieldData `protobuf:"bytes,28,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3" json:"field_outer_vlan_pri,omitempty"` - FieldOuterVlanCfi *AclFieldData `protobuf:"bytes,29,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3" json:"field_outer_vlan_cfi,omitempty"` - FieldInnerVlanId *AclFieldData `protobuf:"bytes,30,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3" json:"field_inner_vlan_id,omitempty"` - FieldInnerVlanPri *AclFieldData `protobuf:"bytes,31,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3" json:"field_inner_vlan_pri,omitempty"` - FieldInnerVlanCfi *AclFieldData `protobuf:"bytes,32,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3" json:"field_inner_vlan_cfi,omitempty"` - FieldL4SrcPort *AclFieldData `protobuf:"bytes,33,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3" json:"field_l4_src_port,omitempty"` - FieldL4DstPort *AclFieldData `protobuf:"bytes,34,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3" json:"field_l4_dst_port,omitempty"` - FieldInnerL4SrcPort *AclFieldData `protobuf:"bytes,35,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3" json:"field_inner_l4_src_port,omitempty"` - FieldInnerL4DstPort *AclFieldData `protobuf:"bytes,36,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3" json:"field_inner_l4_dst_port,omitempty"` - FieldEtherType *AclFieldData `protobuf:"bytes,37,opt,name=field_ether_type,json=fieldEtherType,proto3" json:"field_ether_type,omitempty"` - FieldInnerEtherType *AclFieldData `protobuf:"bytes,38,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3" json:"field_inner_ether_type,omitempty"` - FieldIpProtocol *AclFieldData `protobuf:"bytes,39,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3" json:"field_ip_protocol,omitempty"` - FieldInnerIpProtocol *AclFieldData `protobuf:"bytes,40,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3" json:"field_inner_ip_protocol,omitempty"` - FieldIpIdentification *AclFieldData `protobuf:"bytes,41,opt,name=field_ip_identification,json=fieldIpIdentification,proto3" json:"field_ip_identification,omitempty"` - FieldDscp *AclFieldData `protobuf:"bytes,42,opt,name=field_dscp,json=fieldDscp,proto3" json:"field_dscp,omitempty"` - FieldEcn *AclFieldData `protobuf:"bytes,43,opt,name=field_ecn,json=fieldEcn,proto3" json:"field_ecn,omitempty"` - FieldTtl *AclFieldData `protobuf:"bytes,44,opt,name=field_ttl,json=fieldTtl,proto3" json:"field_ttl,omitempty"` - FieldTos *AclFieldData `protobuf:"bytes,45,opt,name=field_tos,json=fieldTos,proto3" json:"field_tos,omitempty"` - FieldIpFlags *AclFieldData `protobuf:"bytes,46,opt,name=field_ip_flags,json=fieldIpFlags,proto3" json:"field_ip_flags,omitempty"` - FieldTcpFlags *AclFieldData `protobuf:"bytes,47,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3" json:"field_tcp_flags,omitempty"` - FieldAclIpType *AclFieldData `protobuf:"bytes,48,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3" json:"field_acl_ip_type,omitempty"` - FieldAclIpFrag *AclFieldData `protobuf:"bytes,49,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3" json:"field_acl_ip_frag,omitempty"` - FieldIpv6FlowLabel *AclFieldData `protobuf:"bytes,50,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3" json:"field_ipv6_flow_label,omitempty"` - FieldTc *AclFieldData `protobuf:"bytes,51,opt,name=field_tc,json=fieldTc,proto3" json:"field_tc,omitempty"` - FieldIcmpType *AclFieldData `protobuf:"bytes,52,opt,name=field_icmp_type,json=fieldIcmpType,proto3" json:"field_icmp_type,omitempty"` - FieldIcmpCode *AclFieldData `protobuf:"bytes,53,opt,name=field_icmp_code,json=fieldIcmpCode,proto3" json:"field_icmp_code,omitempty"` - FieldIcmpv6Type *AclFieldData `protobuf:"bytes,54,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3" json:"field_icmpv6_type,omitempty"` - FieldIcmpv6Code *AclFieldData `protobuf:"bytes,55,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3" json:"field_icmpv6_code,omitempty"` - FieldPacketVlan *AclFieldData `protobuf:"bytes,56,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3" json:"field_packet_vlan,omitempty"` - FieldTunnelVni *AclFieldData `protobuf:"bytes,57,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3" json:"field_tunnel_vni,omitempty"` - FieldHasVlanTag *AclFieldData `protobuf:"bytes,58,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3" json:"field_has_vlan_tag,omitempty"` - FieldMacsecSci *AclFieldData `protobuf:"bytes,59,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3" json:"field_macsec_sci,omitempty"` - FieldMplsLabel0Label *AclFieldData `protobuf:"bytes,60,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3" json:"field_mpls_label0_label,omitempty"` - FieldMplsLabel0Ttl *AclFieldData `protobuf:"bytes,61,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3" json:"field_mpls_label0_ttl,omitempty"` - FieldMplsLabel0Exp *AclFieldData `protobuf:"bytes,62,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3" json:"field_mpls_label0_exp,omitempty"` - FieldMplsLabel0Bos *AclFieldData `protobuf:"bytes,63,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3" json:"field_mpls_label0_bos,omitempty"` - FieldMplsLabel1Label *AclFieldData `protobuf:"bytes,64,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3" json:"field_mpls_label1_label,omitempty"` - FieldMplsLabel1Ttl *AclFieldData `protobuf:"bytes,65,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3" json:"field_mpls_label1_ttl,omitempty"` - FieldMplsLabel1Exp *AclFieldData `protobuf:"bytes,66,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3" json:"field_mpls_label1_exp,omitempty"` - FieldMplsLabel1Bos *AclFieldData `protobuf:"bytes,67,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3" json:"field_mpls_label1_bos,omitempty"` - FieldMplsLabel2Label *AclFieldData `protobuf:"bytes,68,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3" json:"field_mpls_label2_label,omitempty"` - FieldMplsLabel2Ttl *AclFieldData `protobuf:"bytes,69,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3" json:"field_mpls_label2_ttl,omitempty"` - FieldMplsLabel2Exp *AclFieldData `protobuf:"bytes,70,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3" json:"field_mpls_label2_exp,omitempty"` - FieldMplsLabel2Bos *AclFieldData `protobuf:"bytes,71,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3" json:"field_mpls_label2_bos,omitempty"` - FieldMplsLabel3Label *AclFieldData `protobuf:"bytes,72,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3" json:"field_mpls_label3_label,omitempty"` - FieldMplsLabel3Ttl *AclFieldData `protobuf:"bytes,73,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3" json:"field_mpls_label3_ttl,omitempty"` - FieldMplsLabel3Exp *AclFieldData `protobuf:"bytes,74,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3" json:"field_mpls_label3_exp,omitempty"` - FieldMplsLabel3Bos *AclFieldData `protobuf:"bytes,75,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3" json:"field_mpls_label3_bos,omitempty"` - FieldMplsLabel4Label *AclFieldData `protobuf:"bytes,76,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3" json:"field_mpls_label4_label,omitempty"` - FieldMplsLabel4Ttl *AclFieldData `protobuf:"bytes,77,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3" json:"field_mpls_label4_ttl,omitempty"` - FieldMplsLabel4Exp *AclFieldData `protobuf:"bytes,78,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3" json:"field_mpls_label4_exp,omitempty"` - FieldMplsLabel4Bos *AclFieldData `protobuf:"bytes,79,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3" json:"field_mpls_label4_bos,omitempty"` - FieldFdbDstUserMeta *AclFieldData `protobuf:"bytes,80,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3" json:"field_fdb_dst_user_meta,omitempty"` - FieldRouteDstUserMeta *AclFieldData `protobuf:"bytes,81,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3" json:"field_route_dst_user_meta,omitempty"` - FieldNeighborDstUserMeta *AclFieldData `protobuf:"bytes,82,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3" json:"field_neighbor_dst_user_meta,omitempty"` - FieldPortUserMeta *AclFieldData `protobuf:"bytes,83,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3" json:"field_port_user_meta,omitempty"` - FieldVlanUserMeta *AclFieldData `protobuf:"bytes,84,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3" json:"field_vlan_user_meta,omitempty"` - FieldAclUserMeta *AclFieldData `protobuf:"bytes,85,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3" json:"field_acl_user_meta,omitempty"` - FieldFdbNpuMetaDstHit *AclFieldData `protobuf:"bytes,86,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3" json:"field_fdb_npu_meta_dst_hit,omitempty"` - FieldNeighborNpuMetaDstHit *AclFieldData `protobuf:"bytes,87,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3" json:"field_neighbor_npu_meta_dst_hit,omitempty"` - FieldRouteNpuMetaDstHit *AclFieldData `protobuf:"bytes,88,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3" json:"field_route_npu_meta_dst_hit,omitempty"` - FieldBthOpcode *AclFieldData `protobuf:"bytes,89,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3" json:"field_bth_opcode,omitempty"` - FieldAethSyndrome *AclFieldData `protobuf:"bytes,90,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3" json:"field_aeth_syndrome,omitempty"` - UserDefinedFieldGroupMin *AclFieldData `protobuf:"bytes,91,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3" json:"user_defined_field_group_min,omitempty"` - UserDefinedFieldGroupMax *AclFieldData `protobuf:"bytes,92,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3" json:"user_defined_field_group_max,omitempty"` - FieldAclRangeType *AclFieldData `protobuf:"bytes,93,opt,name=field_acl_range_type,json=fieldAclRangeType,proto3" json:"field_acl_range_type,omitempty"` - FieldIpv6NextHeader *AclFieldData `protobuf:"bytes,94,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3" json:"field_ipv6_next_header,omitempty"` - FieldGreKey *AclFieldData `protobuf:"bytes,95,opt,name=field_gre_key,json=fieldGreKey,proto3" json:"field_gre_key,omitempty"` - FieldTamIntType *AclFieldData `protobuf:"bytes,96,opt,name=field_tam_int_type,json=fieldTamIntType,proto3" json:"field_tam_int_type,omitempty"` - ActionRedirect *AclActionData `protobuf:"bytes,97,opt,name=action_redirect,json=actionRedirect,proto3" json:"action_redirect,omitempty"` - ActionEndpointIp *AclActionData `protobuf:"bytes,98,opt,name=action_endpoint_ip,json=actionEndpointIp,proto3" json:"action_endpoint_ip,omitempty"` - ActionRedirectList *AclActionData `protobuf:"bytes,99,opt,name=action_redirect_list,json=actionRedirectList,proto3" json:"action_redirect_list,omitempty"` - ActionPacketAction *AclActionData `protobuf:"bytes,100,opt,name=action_packet_action,json=actionPacketAction,proto3" json:"action_packet_action,omitempty"` - ActionFlood *AclActionData `protobuf:"bytes,101,opt,name=action_flood,json=actionFlood,proto3" json:"action_flood,omitempty"` - ActionCounter *AclActionData `protobuf:"bytes,102,opt,name=action_counter,json=actionCounter,proto3" json:"action_counter,omitempty"` - ActionMirrorIngress *AclActionData `protobuf:"bytes,103,opt,name=action_mirror_ingress,json=actionMirrorIngress,proto3" json:"action_mirror_ingress,omitempty"` - ActionMirrorEgress *AclActionData `protobuf:"bytes,104,opt,name=action_mirror_egress,json=actionMirrorEgress,proto3" json:"action_mirror_egress,omitempty"` - ActionSetPolicer *AclActionData `protobuf:"bytes,105,opt,name=action_set_policer,json=actionSetPolicer,proto3" json:"action_set_policer,omitempty"` - ActionDecrementTtl *AclActionData `protobuf:"bytes,106,opt,name=action_decrement_ttl,json=actionDecrementTtl,proto3" json:"action_decrement_ttl,omitempty"` - ActionSetTc *AclActionData `protobuf:"bytes,107,opt,name=action_set_tc,json=actionSetTc,proto3" json:"action_set_tc,omitempty"` - ActionSetPacketColor *AclActionData `protobuf:"bytes,108,opt,name=action_set_packet_color,json=actionSetPacketColor,proto3" json:"action_set_packet_color,omitempty"` - ActionSetInnerVlanId *AclActionData `protobuf:"bytes,109,opt,name=action_set_inner_vlan_id,json=actionSetInnerVlanId,proto3" json:"action_set_inner_vlan_id,omitempty"` - ActionSetInnerVlanPri *AclActionData `protobuf:"bytes,110,opt,name=action_set_inner_vlan_pri,json=actionSetInnerVlanPri,proto3" json:"action_set_inner_vlan_pri,omitempty"` - ActionSetOuterVlanId *AclActionData `protobuf:"bytes,111,opt,name=action_set_outer_vlan_id,json=actionSetOuterVlanId,proto3" json:"action_set_outer_vlan_id,omitempty"` - ActionSetOuterVlanPri *AclActionData `protobuf:"bytes,112,opt,name=action_set_outer_vlan_pri,json=actionSetOuterVlanPri,proto3" json:"action_set_outer_vlan_pri,omitempty"` - ActionAddVlanId *AclActionData `protobuf:"bytes,113,opt,name=action_add_vlan_id,json=actionAddVlanId,proto3" json:"action_add_vlan_id,omitempty"` - ActionAddVlanPri *AclActionData `protobuf:"bytes,114,opt,name=action_add_vlan_pri,json=actionAddVlanPri,proto3" json:"action_add_vlan_pri,omitempty"` - ActionSetSrcMac *AclActionData `protobuf:"bytes,115,opt,name=action_set_src_mac,json=actionSetSrcMac,proto3" json:"action_set_src_mac,omitempty"` - ActionSetDstMac *AclActionData `protobuf:"bytes,116,opt,name=action_set_dst_mac,json=actionSetDstMac,proto3" json:"action_set_dst_mac,omitempty"` - ActionSetSrcIp *AclActionData `protobuf:"bytes,117,opt,name=action_set_src_ip,json=actionSetSrcIp,proto3" json:"action_set_src_ip,omitempty"` - ActionSetDstIp *AclActionData `protobuf:"bytes,118,opt,name=action_set_dst_ip,json=actionSetDstIp,proto3" json:"action_set_dst_ip,omitempty"` - ActionSetSrcIpv6 *AclActionData `protobuf:"bytes,119,opt,name=action_set_src_ipv6,json=actionSetSrcIpv6,proto3" json:"action_set_src_ipv6,omitempty"` - ActionSetDstIpv6 *AclActionData `protobuf:"bytes,120,opt,name=action_set_dst_ipv6,json=actionSetDstIpv6,proto3" json:"action_set_dst_ipv6,omitempty"` - ActionSetDscp *AclActionData `protobuf:"bytes,121,opt,name=action_set_dscp,json=actionSetDscp,proto3" json:"action_set_dscp,omitempty"` - ActionSetEcn *AclActionData `protobuf:"bytes,122,opt,name=action_set_ecn,json=actionSetEcn,proto3" json:"action_set_ecn,omitempty"` - ActionSetL4SrcPort *AclActionData `protobuf:"bytes,123,opt,name=action_set_l4_src_port,json=actionSetL4SrcPort,proto3" json:"action_set_l4_src_port,omitempty"` - ActionSetL4DstPort *AclActionData `protobuf:"bytes,124,opt,name=action_set_l4_dst_port,json=actionSetL4DstPort,proto3" json:"action_set_l4_dst_port,omitempty"` - ActionIngressSamplepacketEnable *AclActionData `protobuf:"bytes,125,opt,name=action_ingress_samplepacket_enable,json=actionIngressSamplepacketEnable,proto3" json:"action_ingress_samplepacket_enable,omitempty"` - ActionEgressSamplepacketEnable *AclActionData `protobuf:"bytes,126,opt,name=action_egress_samplepacket_enable,json=actionEgressSamplepacketEnable,proto3" json:"action_egress_samplepacket_enable,omitempty"` - ActionSetAclMetaData *AclActionData `protobuf:"bytes,127,opt,name=action_set_acl_meta_data,json=actionSetAclMetaData,proto3" json:"action_set_acl_meta_data,omitempty"` - ActionEgressBlockPortList *AclActionData `protobuf:"bytes,128,opt,name=action_egress_block_port_list,json=actionEgressBlockPortList,proto3" json:"action_egress_block_port_list,omitempty"` - ActionSetUserTrapId *AclActionData `protobuf:"bytes,129,opt,name=action_set_user_trap_id,json=actionSetUserTrapId,proto3" json:"action_set_user_trap_id,omitempty"` - ActionSetDoNotLearn *AclActionData `protobuf:"bytes,130,opt,name=action_set_do_not_learn,json=actionSetDoNotLearn,proto3" json:"action_set_do_not_learn,omitempty"` - ActionAclDtelFlowOp *AclActionData `protobuf:"bytes,131,opt,name=action_acl_dtel_flow_op,json=actionAclDtelFlowOp,proto3" json:"action_acl_dtel_flow_op,omitempty"` - ActionDtelIntSession *AclActionData `protobuf:"bytes,132,opt,name=action_dtel_int_session,json=actionDtelIntSession,proto3" json:"action_dtel_int_session,omitempty"` - ActionDtelDropReportEnable *AclActionData `protobuf:"bytes,133,opt,name=action_dtel_drop_report_enable,json=actionDtelDropReportEnable,proto3" json:"action_dtel_drop_report_enable,omitempty"` - ActionDtelTailDropReportEnable *AclActionData `protobuf:"bytes,134,opt,name=action_dtel_tail_drop_report_enable,json=actionDtelTailDropReportEnable,proto3" json:"action_dtel_tail_drop_report_enable,omitempty"` - ActionDtelFlowSamplePercent *AclActionData `protobuf:"bytes,135,opt,name=action_dtel_flow_sample_percent,json=actionDtelFlowSamplePercent,proto3" json:"action_dtel_flow_sample_percent,omitempty"` - ActionDtelReportAllPackets *AclActionData `protobuf:"bytes,136,opt,name=action_dtel_report_all_packets,json=actionDtelReportAllPackets,proto3" json:"action_dtel_report_all_packets,omitempty"` - ActionNoNat *AclActionData `protobuf:"bytes,137,opt,name=action_no_nat,json=actionNoNat,proto3" json:"action_no_nat,omitempty"` - ActionIntInsert *AclActionData `protobuf:"bytes,138,opt,name=action_int_insert,json=actionIntInsert,proto3" json:"action_int_insert,omitempty"` - ActionIntDelete *AclActionData `protobuf:"bytes,139,opt,name=action_int_delete,json=actionIntDelete,proto3" json:"action_int_delete,omitempty"` - ActionIntReportFlow *AclActionData `protobuf:"bytes,140,opt,name=action_int_report_flow,json=actionIntReportFlow,proto3" json:"action_int_report_flow,omitempty"` - ActionIntReportDrops *AclActionData `protobuf:"bytes,141,opt,name=action_int_report_drops,json=actionIntReportDrops,proto3" json:"action_int_report_drops,omitempty"` - ActionIntReportTailDrops *AclActionData `protobuf:"bytes,142,opt,name=action_int_report_tail_drops,json=actionIntReportTailDrops,proto3" json:"action_int_report_tail_drops,omitempty"` - ActionTamIntObject *AclActionData `protobuf:"bytes,143,opt,name=action_tam_int_object,json=actionTamIntObject,proto3" json:"action_tam_int_object,omitempty"` - ActionSetIsolationGroup *AclActionData `protobuf:"bytes,144,opt,name=action_set_isolation_group,json=actionSetIsolationGroup,proto3" json:"action_set_isolation_group,omitempty"` - ActionMacsecFlow *AclActionData `protobuf:"bytes,145,opt,name=action_macsec_flow,json=actionMacsecFlow,proto3" json:"action_macsec_flow,omitempty"` - ActionSetLagHashId *AclActionData `protobuf:"bytes,146,opt,name=action_set_lag_hash_id,json=actionSetLagHashId,proto3" json:"action_set_lag_hash_id,omitempty"` - ActionSetEcmpHashId *AclActionData `protobuf:"bytes,147,opt,name=action_set_ecmp_hash_id,json=actionSetEcmpHashId,proto3" json:"action_set_ecmp_hash_id,omitempty"` - ActionSetVrf *AclActionData `protobuf:"bytes,148,opt,name=action_set_vrf,json=actionSetVrf,proto3" json:"action_set_vrf,omitempty"` - ActionSetForwardingClass *AclActionData `protobuf:"bytes,149,opt,name=action_set_forwarding_class,json=actionSetForwardingClass,proto3" json:"action_set_forwarding_class,omitempty"` + TableId *uint64 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3,oneof" json:"table_id,omitempty"` + Priority *uint32 `protobuf:"varint,2,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + AdminState *bool `protobuf:"varint,3,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + FieldSrcIpv6 *AclFieldData `protobuf:"bytes,4,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3,oneof" json:"field_src_ipv6,omitempty"` + FieldSrcIpv6Word3 *AclFieldData `protobuf:"bytes,5,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3,oneof" json:"field_src_ipv6_word3,omitempty"` + FieldSrcIpv6Word2 *AclFieldData `protobuf:"bytes,6,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3,oneof" json:"field_src_ipv6_word2,omitempty"` + FieldSrcIpv6Word1 *AclFieldData `protobuf:"bytes,7,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3,oneof" json:"field_src_ipv6_word1,omitempty"` + FieldSrcIpv6Word0 *AclFieldData `protobuf:"bytes,8,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3,oneof" json:"field_src_ipv6_word0,omitempty"` + FieldDstIpv6 *AclFieldData `protobuf:"bytes,9,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3,oneof" json:"field_dst_ipv6,omitempty"` + FieldDstIpv6Word3 *AclFieldData `protobuf:"bytes,10,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3,oneof" json:"field_dst_ipv6_word3,omitempty"` + FieldDstIpv6Word2 *AclFieldData `protobuf:"bytes,11,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3,oneof" json:"field_dst_ipv6_word2,omitempty"` + FieldDstIpv6Word1 *AclFieldData `protobuf:"bytes,12,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3,oneof" json:"field_dst_ipv6_word1,omitempty"` + FieldDstIpv6Word0 *AclFieldData `protobuf:"bytes,13,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3,oneof" json:"field_dst_ipv6_word0,omitempty"` + FieldInnerSrcIpv6 *AclFieldData `protobuf:"bytes,14,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3,oneof" json:"field_inner_src_ipv6,omitempty"` + FieldInnerDstIpv6 *AclFieldData `protobuf:"bytes,15,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3,oneof" json:"field_inner_dst_ipv6,omitempty"` + FieldSrcMac *AclFieldData `protobuf:"bytes,16,opt,name=field_src_mac,json=fieldSrcMac,proto3,oneof" json:"field_src_mac,omitempty"` + FieldDstMac *AclFieldData `protobuf:"bytes,17,opt,name=field_dst_mac,json=fieldDstMac,proto3,oneof" json:"field_dst_mac,omitempty"` + FieldSrcIp *AclFieldData `protobuf:"bytes,18,opt,name=field_src_ip,json=fieldSrcIp,proto3,oneof" json:"field_src_ip,omitempty"` + FieldDstIp *AclFieldData `protobuf:"bytes,19,opt,name=field_dst_ip,json=fieldDstIp,proto3,oneof" json:"field_dst_ip,omitempty"` + FieldInnerSrcIp *AclFieldData `protobuf:"bytes,20,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3,oneof" json:"field_inner_src_ip,omitempty"` + FieldInnerDstIp *AclFieldData `protobuf:"bytes,21,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3,oneof" json:"field_inner_dst_ip,omitempty"` + FieldInPorts *AclFieldData `protobuf:"bytes,22,opt,name=field_in_ports,json=fieldInPorts,proto3,oneof" json:"field_in_ports,omitempty"` + FieldOutPorts *AclFieldData `protobuf:"bytes,23,opt,name=field_out_ports,json=fieldOutPorts,proto3,oneof" json:"field_out_ports,omitempty"` + FieldInPort *AclFieldData `protobuf:"bytes,24,opt,name=field_in_port,json=fieldInPort,proto3,oneof" json:"field_in_port,omitempty"` + FieldOutPort *AclFieldData `protobuf:"bytes,25,opt,name=field_out_port,json=fieldOutPort,proto3,oneof" json:"field_out_port,omitempty"` + FieldSrcPort *AclFieldData `protobuf:"bytes,26,opt,name=field_src_port,json=fieldSrcPort,proto3,oneof" json:"field_src_port,omitempty"` + FieldOuterVlanId *AclFieldData `protobuf:"bytes,27,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3,oneof" json:"field_outer_vlan_id,omitempty"` + FieldOuterVlanPri *AclFieldData `protobuf:"bytes,28,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3,oneof" json:"field_outer_vlan_pri,omitempty"` + FieldOuterVlanCfi *AclFieldData `protobuf:"bytes,29,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3,oneof" json:"field_outer_vlan_cfi,omitempty"` + FieldInnerVlanId *AclFieldData `protobuf:"bytes,30,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3,oneof" json:"field_inner_vlan_id,omitempty"` + FieldInnerVlanPri *AclFieldData `protobuf:"bytes,31,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3,oneof" json:"field_inner_vlan_pri,omitempty"` + FieldInnerVlanCfi *AclFieldData `protobuf:"bytes,32,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3,oneof" json:"field_inner_vlan_cfi,omitempty"` + FieldL4SrcPort *AclFieldData `protobuf:"bytes,33,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3,oneof" json:"field_l4_src_port,omitempty"` + FieldL4DstPort *AclFieldData `protobuf:"bytes,34,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3,oneof" json:"field_l4_dst_port,omitempty"` + FieldInnerL4SrcPort *AclFieldData `protobuf:"bytes,35,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3,oneof" json:"field_inner_l4_src_port,omitempty"` + FieldInnerL4DstPort *AclFieldData `protobuf:"bytes,36,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3,oneof" json:"field_inner_l4_dst_port,omitempty"` + FieldEtherType *AclFieldData `protobuf:"bytes,37,opt,name=field_ether_type,json=fieldEtherType,proto3,oneof" json:"field_ether_type,omitempty"` + FieldInnerEtherType *AclFieldData `protobuf:"bytes,38,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3,oneof" json:"field_inner_ether_type,omitempty"` + FieldIpProtocol *AclFieldData `protobuf:"bytes,39,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3,oneof" json:"field_ip_protocol,omitempty"` + FieldInnerIpProtocol *AclFieldData `protobuf:"bytes,40,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3,oneof" json:"field_inner_ip_protocol,omitempty"` + FieldIpIdentification *AclFieldData `protobuf:"bytes,41,opt,name=field_ip_identification,json=fieldIpIdentification,proto3,oneof" json:"field_ip_identification,omitempty"` + FieldDscp *AclFieldData `protobuf:"bytes,42,opt,name=field_dscp,json=fieldDscp,proto3,oneof" json:"field_dscp,omitempty"` + FieldEcn *AclFieldData `protobuf:"bytes,43,opt,name=field_ecn,json=fieldEcn,proto3,oneof" json:"field_ecn,omitempty"` + FieldTtl *AclFieldData `protobuf:"bytes,44,opt,name=field_ttl,json=fieldTtl,proto3,oneof" json:"field_ttl,omitempty"` + FieldTos *AclFieldData `protobuf:"bytes,45,opt,name=field_tos,json=fieldTos,proto3,oneof" json:"field_tos,omitempty"` + FieldIpFlags *AclFieldData `protobuf:"bytes,46,opt,name=field_ip_flags,json=fieldIpFlags,proto3,oneof" json:"field_ip_flags,omitempty"` + FieldTcpFlags *AclFieldData `protobuf:"bytes,47,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3,oneof" json:"field_tcp_flags,omitempty"` + FieldAclIpType *AclFieldData `protobuf:"bytes,48,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3,oneof" json:"field_acl_ip_type,omitempty"` + FieldAclIpFrag *AclFieldData `protobuf:"bytes,49,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3,oneof" json:"field_acl_ip_frag,omitempty"` + FieldIpv6FlowLabel *AclFieldData `protobuf:"bytes,50,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3,oneof" json:"field_ipv6_flow_label,omitempty"` + FieldTc *AclFieldData `protobuf:"bytes,51,opt,name=field_tc,json=fieldTc,proto3,oneof" json:"field_tc,omitempty"` + FieldIcmpType *AclFieldData `protobuf:"bytes,52,opt,name=field_icmp_type,json=fieldIcmpType,proto3,oneof" json:"field_icmp_type,omitempty"` + FieldIcmpCode *AclFieldData `protobuf:"bytes,53,opt,name=field_icmp_code,json=fieldIcmpCode,proto3,oneof" json:"field_icmp_code,omitempty"` + FieldIcmpv6Type *AclFieldData `protobuf:"bytes,54,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3,oneof" json:"field_icmpv6_type,omitempty"` + FieldIcmpv6Code *AclFieldData `protobuf:"bytes,55,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3,oneof" json:"field_icmpv6_code,omitempty"` + FieldPacketVlan *AclFieldData `protobuf:"bytes,56,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3,oneof" json:"field_packet_vlan,omitempty"` + FieldTunnelVni *AclFieldData `protobuf:"bytes,57,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3,oneof" json:"field_tunnel_vni,omitempty"` + FieldHasVlanTag *AclFieldData `protobuf:"bytes,58,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3,oneof" json:"field_has_vlan_tag,omitempty"` + FieldMacsecSci *AclFieldData `protobuf:"bytes,59,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3,oneof" json:"field_macsec_sci,omitempty"` + FieldMplsLabel0Label *AclFieldData `protobuf:"bytes,60,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3,oneof" json:"field_mpls_label0_label,omitempty"` + FieldMplsLabel0Ttl *AclFieldData `protobuf:"bytes,61,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3,oneof" json:"field_mpls_label0_ttl,omitempty"` + FieldMplsLabel0Exp *AclFieldData `protobuf:"bytes,62,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3,oneof" json:"field_mpls_label0_exp,omitempty"` + FieldMplsLabel0Bos *AclFieldData `protobuf:"bytes,63,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3,oneof" json:"field_mpls_label0_bos,omitempty"` + FieldMplsLabel1Label *AclFieldData `protobuf:"bytes,64,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3,oneof" json:"field_mpls_label1_label,omitempty"` + FieldMplsLabel1Ttl *AclFieldData `protobuf:"bytes,65,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3,oneof" json:"field_mpls_label1_ttl,omitempty"` + FieldMplsLabel1Exp *AclFieldData `protobuf:"bytes,66,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3,oneof" json:"field_mpls_label1_exp,omitempty"` + FieldMplsLabel1Bos *AclFieldData `protobuf:"bytes,67,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3,oneof" json:"field_mpls_label1_bos,omitempty"` + FieldMplsLabel2Label *AclFieldData `protobuf:"bytes,68,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3,oneof" json:"field_mpls_label2_label,omitempty"` + FieldMplsLabel2Ttl *AclFieldData `protobuf:"bytes,69,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3,oneof" json:"field_mpls_label2_ttl,omitempty"` + FieldMplsLabel2Exp *AclFieldData `protobuf:"bytes,70,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3,oneof" json:"field_mpls_label2_exp,omitempty"` + FieldMplsLabel2Bos *AclFieldData `protobuf:"bytes,71,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3,oneof" json:"field_mpls_label2_bos,omitempty"` + FieldMplsLabel3Label *AclFieldData `protobuf:"bytes,72,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3,oneof" json:"field_mpls_label3_label,omitempty"` + FieldMplsLabel3Ttl *AclFieldData `protobuf:"bytes,73,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3,oneof" json:"field_mpls_label3_ttl,omitempty"` + FieldMplsLabel3Exp *AclFieldData `protobuf:"bytes,74,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3,oneof" json:"field_mpls_label3_exp,omitempty"` + FieldMplsLabel3Bos *AclFieldData `protobuf:"bytes,75,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3,oneof" json:"field_mpls_label3_bos,omitempty"` + FieldMplsLabel4Label *AclFieldData `protobuf:"bytes,76,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3,oneof" json:"field_mpls_label4_label,omitempty"` + FieldMplsLabel4Ttl *AclFieldData `protobuf:"bytes,77,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3,oneof" json:"field_mpls_label4_ttl,omitempty"` + FieldMplsLabel4Exp *AclFieldData `protobuf:"bytes,78,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3,oneof" json:"field_mpls_label4_exp,omitempty"` + FieldMplsLabel4Bos *AclFieldData `protobuf:"bytes,79,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3,oneof" json:"field_mpls_label4_bos,omitempty"` + FieldFdbDstUserMeta *AclFieldData `protobuf:"bytes,80,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3,oneof" json:"field_fdb_dst_user_meta,omitempty"` + FieldRouteDstUserMeta *AclFieldData `protobuf:"bytes,81,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3,oneof" json:"field_route_dst_user_meta,omitempty"` + FieldNeighborDstUserMeta *AclFieldData `protobuf:"bytes,82,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3,oneof" json:"field_neighbor_dst_user_meta,omitempty"` + FieldPortUserMeta *AclFieldData `protobuf:"bytes,83,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3,oneof" json:"field_port_user_meta,omitempty"` + FieldVlanUserMeta *AclFieldData `protobuf:"bytes,84,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3,oneof" json:"field_vlan_user_meta,omitempty"` + FieldAclUserMeta *AclFieldData `protobuf:"bytes,85,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3,oneof" json:"field_acl_user_meta,omitempty"` + FieldFdbNpuMetaDstHit *AclFieldData `protobuf:"bytes,86,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3,oneof" json:"field_fdb_npu_meta_dst_hit,omitempty"` + FieldNeighborNpuMetaDstHit *AclFieldData `protobuf:"bytes,87,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3,oneof" json:"field_neighbor_npu_meta_dst_hit,omitempty"` + FieldRouteNpuMetaDstHit *AclFieldData `protobuf:"bytes,88,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3,oneof" json:"field_route_npu_meta_dst_hit,omitempty"` + FieldBthOpcode *AclFieldData `protobuf:"bytes,89,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3,oneof" json:"field_bth_opcode,omitempty"` + FieldAethSyndrome *AclFieldData `protobuf:"bytes,90,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3,oneof" json:"field_aeth_syndrome,omitempty"` + UserDefinedFieldGroupMin *AclFieldData `protobuf:"bytes,91,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3,oneof" json:"user_defined_field_group_min,omitempty"` + UserDefinedFieldGroupMax *AclFieldData `protobuf:"bytes,92,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3,oneof" json:"user_defined_field_group_max,omitempty"` + FieldAclRangeType *AclFieldData `protobuf:"bytes,93,opt,name=field_acl_range_type,json=fieldAclRangeType,proto3,oneof" json:"field_acl_range_type,omitempty"` + FieldIpv6NextHeader *AclFieldData `protobuf:"bytes,94,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3,oneof" json:"field_ipv6_next_header,omitempty"` + FieldGreKey *AclFieldData `protobuf:"bytes,95,opt,name=field_gre_key,json=fieldGreKey,proto3,oneof" json:"field_gre_key,omitempty"` + FieldTamIntType *AclFieldData `protobuf:"bytes,96,opt,name=field_tam_int_type,json=fieldTamIntType,proto3,oneof" json:"field_tam_int_type,omitempty"` + ActionRedirect *AclActionData `protobuf:"bytes,97,opt,name=action_redirect,json=actionRedirect,proto3,oneof" json:"action_redirect,omitempty"` + ActionEndpointIp *AclActionData `protobuf:"bytes,98,opt,name=action_endpoint_ip,json=actionEndpointIp,proto3,oneof" json:"action_endpoint_ip,omitempty"` + ActionRedirectList *AclActionData `protobuf:"bytes,99,opt,name=action_redirect_list,json=actionRedirectList,proto3,oneof" json:"action_redirect_list,omitempty"` + ActionPacketAction *AclActionData `protobuf:"bytes,100,opt,name=action_packet_action,json=actionPacketAction,proto3,oneof" json:"action_packet_action,omitempty"` + ActionFlood *AclActionData `protobuf:"bytes,101,opt,name=action_flood,json=actionFlood,proto3,oneof" json:"action_flood,omitempty"` + ActionCounter *AclActionData `protobuf:"bytes,102,opt,name=action_counter,json=actionCounter,proto3,oneof" json:"action_counter,omitempty"` + ActionMirrorIngress *AclActionData `protobuf:"bytes,103,opt,name=action_mirror_ingress,json=actionMirrorIngress,proto3,oneof" json:"action_mirror_ingress,omitempty"` + ActionMirrorEgress *AclActionData `protobuf:"bytes,104,opt,name=action_mirror_egress,json=actionMirrorEgress,proto3,oneof" json:"action_mirror_egress,omitempty"` + ActionSetPolicer *AclActionData `protobuf:"bytes,105,opt,name=action_set_policer,json=actionSetPolicer,proto3,oneof" json:"action_set_policer,omitempty"` + ActionDecrementTtl *AclActionData `protobuf:"bytes,106,opt,name=action_decrement_ttl,json=actionDecrementTtl,proto3,oneof" json:"action_decrement_ttl,omitempty"` + ActionSetTc *AclActionData `protobuf:"bytes,107,opt,name=action_set_tc,json=actionSetTc,proto3,oneof" json:"action_set_tc,omitempty"` + ActionSetPacketColor *AclActionData `protobuf:"bytes,108,opt,name=action_set_packet_color,json=actionSetPacketColor,proto3,oneof" json:"action_set_packet_color,omitempty"` + ActionSetInnerVlanId *AclActionData `protobuf:"bytes,109,opt,name=action_set_inner_vlan_id,json=actionSetInnerVlanId,proto3,oneof" json:"action_set_inner_vlan_id,omitempty"` + ActionSetInnerVlanPri *AclActionData `protobuf:"bytes,110,opt,name=action_set_inner_vlan_pri,json=actionSetInnerVlanPri,proto3,oneof" json:"action_set_inner_vlan_pri,omitempty"` + ActionSetOuterVlanId *AclActionData `protobuf:"bytes,111,opt,name=action_set_outer_vlan_id,json=actionSetOuterVlanId,proto3,oneof" json:"action_set_outer_vlan_id,omitempty"` + ActionSetOuterVlanPri *AclActionData `protobuf:"bytes,112,opt,name=action_set_outer_vlan_pri,json=actionSetOuterVlanPri,proto3,oneof" json:"action_set_outer_vlan_pri,omitempty"` + ActionAddVlanId *AclActionData `protobuf:"bytes,113,opt,name=action_add_vlan_id,json=actionAddVlanId,proto3,oneof" json:"action_add_vlan_id,omitempty"` + ActionAddVlanPri *AclActionData `protobuf:"bytes,114,opt,name=action_add_vlan_pri,json=actionAddVlanPri,proto3,oneof" json:"action_add_vlan_pri,omitempty"` + ActionSetSrcMac *AclActionData `protobuf:"bytes,115,opt,name=action_set_src_mac,json=actionSetSrcMac,proto3,oneof" json:"action_set_src_mac,omitempty"` + ActionSetDstMac *AclActionData `protobuf:"bytes,116,opt,name=action_set_dst_mac,json=actionSetDstMac,proto3,oneof" json:"action_set_dst_mac,omitempty"` + ActionSetSrcIp *AclActionData `protobuf:"bytes,117,opt,name=action_set_src_ip,json=actionSetSrcIp,proto3,oneof" json:"action_set_src_ip,omitempty"` + ActionSetDstIp *AclActionData `protobuf:"bytes,118,opt,name=action_set_dst_ip,json=actionSetDstIp,proto3,oneof" json:"action_set_dst_ip,omitempty"` + ActionSetSrcIpv6 *AclActionData `protobuf:"bytes,119,opt,name=action_set_src_ipv6,json=actionSetSrcIpv6,proto3,oneof" json:"action_set_src_ipv6,omitempty"` + ActionSetDstIpv6 *AclActionData `protobuf:"bytes,120,opt,name=action_set_dst_ipv6,json=actionSetDstIpv6,proto3,oneof" json:"action_set_dst_ipv6,omitempty"` + ActionSetDscp *AclActionData `protobuf:"bytes,121,opt,name=action_set_dscp,json=actionSetDscp,proto3,oneof" json:"action_set_dscp,omitempty"` + ActionSetEcn *AclActionData `protobuf:"bytes,122,opt,name=action_set_ecn,json=actionSetEcn,proto3,oneof" json:"action_set_ecn,omitempty"` + ActionSetL4SrcPort *AclActionData `protobuf:"bytes,123,opt,name=action_set_l4_src_port,json=actionSetL4SrcPort,proto3,oneof" json:"action_set_l4_src_port,omitempty"` + ActionSetL4DstPort *AclActionData `protobuf:"bytes,124,opt,name=action_set_l4_dst_port,json=actionSetL4DstPort,proto3,oneof" json:"action_set_l4_dst_port,omitempty"` + ActionIngressSamplepacketEnable *AclActionData `protobuf:"bytes,125,opt,name=action_ingress_samplepacket_enable,json=actionIngressSamplepacketEnable,proto3,oneof" json:"action_ingress_samplepacket_enable,omitempty"` + ActionEgressSamplepacketEnable *AclActionData `protobuf:"bytes,126,opt,name=action_egress_samplepacket_enable,json=actionEgressSamplepacketEnable,proto3,oneof" json:"action_egress_samplepacket_enable,omitempty"` + ActionSetAclMetaData *AclActionData `protobuf:"bytes,127,opt,name=action_set_acl_meta_data,json=actionSetAclMetaData,proto3,oneof" json:"action_set_acl_meta_data,omitempty"` + ActionEgressBlockPortList *AclActionData `protobuf:"bytes,128,opt,name=action_egress_block_port_list,json=actionEgressBlockPortList,proto3,oneof" json:"action_egress_block_port_list,omitempty"` + ActionSetUserTrapId *AclActionData `protobuf:"bytes,129,opt,name=action_set_user_trap_id,json=actionSetUserTrapId,proto3,oneof" json:"action_set_user_trap_id,omitempty"` + ActionSetDoNotLearn *AclActionData `protobuf:"bytes,130,opt,name=action_set_do_not_learn,json=actionSetDoNotLearn,proto3,oneof" json:"action_set_do_not_learn,omitempty"` + ActionAclDtelFlowOp *AclActionData `protobuf:"bytes,131,opt,name=action_acl_dtel_flow_op,json=actionAclDtelFlowOp,proto3,oneof" json:"action_acl_dtel_flow_op,omitempty"` + ActionDtelIntSession *AclActionData `protobuf:"bytes,132,opt,name=action_dtel_int_session,json=actionDtelIntSession,proto3,oneof" json:"action_dtel_int_session,omitempty"` + ActionDtelDropReportEnable *AclActionData `protobuf:"bytes,133,opt,name=action_dtel_drop_report_enable,json=actionDtelDropReportEnable,proto3,oneof" json:"action_dtel_drop_report_enable,omitempty"` + ActionDtelTailDropReportEnable *AclActionData `protobuf:"bytes,134,opt,name=action_dtel_tail_drop_report_enable,json=actionDtelTailDropReportEnable,proto3,oneof" json:"action_dtel_tail_drop_report_enable,omitempty"` + ActionDtelFlowSamplePercent *AclActionData `protobuf:"bytes,135,opt,name=action_dtel_flow_sample_percent,json=actionDtelFlowSamplePercent,proto3,oneof" json:"action_dtel_flow_sample_percent,omitempty"` + ActionDtelReportAllPackets *AclActionData `protobuf:"bytes,136,opt,name=action_dtel_report_all_packets,json=actionDtelReportAllPackets,proto3,oneof" json:"action_dtel_report_all_packets,omitempty"` + ActionNoNat *AclActionData `protobuf:"bytes,137,opt,name=action_no_nat,json=actionNoNat,proto3,oneof" json:"action_no_nat,omitempty"` + ActionIntInsert *AclActionData `protobuf:"bytes,138,opt,name=action_int_insert,json=actionIntInsert,proto3,oneof" json:"action_int_insert,omitempty"` + ActionIntDelete *AclActionData `protobuf:"bytes,139,opt,name=action_int_delete,json=actionIntDelete,proto3,oneof" json:"action_int_delete,omitempty"` + ActionIntReportFlow *AclActionData `protobuf:"bytes,140,opt,name=action_int_report_flow,json=actionIntReportFlow,proto3,oneof" json:"action_int_report_flow,omitempty"` + ActionIntReportDrops *AclActionData `protobuf:"bytes,141,opt,name=action_int_report_drops,json=actionIntReportDrops,proto3,oneof" json:"action_int_report_drops,omitempty"` + ActionIntReportTailDrops *AclActionData `protobuf:"bytes,142,opt,name=action_int_report_tail_drops,json=actionIntReportTailDrops,proto3,oneof" json:"action_int_report_tail_drops,omitempty"` + ActionTamIntObject *AclActionData `protobuf:"bytes,143,opt,name=action_tam_int_object,json=actionTamIntObject,proto3,oneof" json:"action_tam_int_object,omitempty"` + ActionSetIsolationGroup *AclActionData `protobuf:"bytes,144,opt,name=action_set_isolation_group,json=actionSetIsolationGroup,proto3,oneof" json:"action_set_isolation_group,omitempty"` + ActionMacsecFlow *AclActionData `protobuf:"bytes,145,opt,name=action_macsec_flow,json=actionMacsecFlow,proto3,oneof" json:"action_macsec_flow,omitempty"` + ActionSetLagHashId *AclActionData `protobuf:"bytes,146,opt,name=action_set_lag_hash_id,json=actionSetLagHashId,proto3,oneof" json:"action_set_lag_hash_id,omitempty"` + ActionSetEcmpHashId *AclActionData `protobuf:"bytes,147,opt,name=action_set_ecmp_hash_id,json=actionSetEcmpHashId,proto3,oneof" json:"action_set_ecmp_hash_id,omitempty"` + ActionSetVrf *AclActionData `protobuf:"bytes,148,opt,name=action_set_vrf,json=actionSetVrf,proto3,oneof" json:"action_set_vrf,omitempty"` + ActionSetForwardingClass *AclActionData `protobuf:"bytes,149,opt,name=action_set_forwarding_class,json=actionSetForwardingClass,proto3,oneof" json:"action_set_forwarding_class,omitempty"` } func (x *AclEntryAttribute) Reset() { *x = AclEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[31] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13950,7 +13998,7 @@ func (x *AclEntryAttribute) String() string { func (*AclEntryAttribute) ProtoMessage() {} func (x *AclEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[31] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13963,26 +14011,26 @@ func (x *AclEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use AclEntryAttribute.ProtoReflect.Descriptor instead. func (*AclEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{31} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{32} } func (x *AclEntryAttribute) GetTableId() uint64 { - if x != nil { - return x.TableId + if x != nil && x.TableId != nil { + return *x.TableId } return 0 } func (x *AclEntryAttribute) GetPriority() uint32 { - if x != nil { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } func (x *AclEntryAttribute) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } @@ -15014,14 +15062,14 @@ type AclRangeAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type AclRangeType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.AclRangeType" json:"type,omitempty"` - Limit *Uint32Range `protobuf:"bytes,2,opt,name=limit,proto3" json:"limit,omitempty"` + Type *AclRangeType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.AclRangeType,oneof" json:"type,omitempty"` + Limit *Uint32Range `protobuf:"bytes,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"` } func (x *AclRangeAttribute) Reset() { *x = AclRangeAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[32] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15034,7 +15082,7 @@ func (x *AclRangeAttribute) String() string { func (*AclRangeAttribute) ProtoMessage() {} func (x *AclRangeAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[32] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15047,12 +15095,12 @@ func (x *AclRangeAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use AclRangeAttribute.ProtoReflect.Descriptor instead. func (*AclRangeAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{32} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{33} } func (x *AclRangeAttribute) GetType() AclRangeType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return AclRangeType_ACL_RANGE_TYPE_UNSPECIFIED } @@ -15064,31 +15112,130 @@ func (x *AclRangeAttribute) GetLimit() *Uint32Range { return nil } -type AclBindPointTypeList struct { +type AclTableAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - List []AclBindPointType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.AclBindPointType" json:"list,omitempty"` + AclStage *AclStage `protobuf:"varint,1,opt,name=acl_stage,json=aclStage,proto3,enum=lemming.dataplane.sai.AclStage,oneof" json:"acl_stage,omitempty"` + AclBindPointTypeList []AclBindPointType `protobuf:"varint,2,rep,packed,name=acl_bind_point_type_list,json=aclBindPointTypeList,proto3,enum=lemming.dataplane.sai.AclBindPointType" json:"acl_bind_point_type_list,omitempty"` + Size *uint32 `protobuf:"varint,3,opt,name=size,proto3,oneof" json:"size,omitempty"` + AclActionTypeList []AclActionType `protobuf:"varint,4,rep,packed,name=acl_action_type_list,json=aclActionTypeList,proto3,enum=lemming.dataplane.sai.AclActionType" json:"acl_action_type_list,omitempty"` + FieldSrcIpv6 *bool `protobuf:"varint,5,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3,oneof" json:"field_src_ipv6,omitempty"` + FieldSrcIpv6Word3 *bool `protobuf:"varint,6,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3,oneof" json:"field_src_ipv6_word3,omitempty"` + FieldSrcIpv6Word2 *bool `protobuf:"varint,7,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3,oneof" json:"field_src_ipv6_word2,omitempty"` + FieldSrcIpv6Word1 *bool `protobuf:"varint,8,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3,oneof" json:"field_src_ipv6_word1,omitempty"` + FieldSrcIpv6Word0 *bool `protobuf:"varint,9,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3,oneof" json:"field_src_ipv6_word0,omitempty"` + FieldDstIpv6 *bool `protobuf:"varint,10,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3,oneof" json:"field_dst_ipv6,omitempty"` + FieldDstIpv6Word3 *bool `protobuf:"varint,11,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3,oneof" json:"field_dst_ipv6_word3,omitempty"` + FieldDstIpv6Word2 *bool `protobuf:"varint,12,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3,oneof" json:"field_dst_ipv6_word2,omitempty"` + FieldDstIpv6Word1 *bool `protobuf:"varint,13,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3,oneof" json:"field_dst_ipv6_word1,omitempty"` + FieldDstIpv6Word0 *bool `protobuf:"varint,14,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3,oneof" json:"field_dst_ipv6_word0,omitempty"` + FieldInnerSrcIpv6 *bool `protobuf:"varint,15,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3,oneof" json:"field_inner_src_ipv6,omitempty"` + FieldInnerDstIpv6 *bool `protobuf:"varint,16,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3,oneof" json:"field_inner_dst_ipv6,omitempty"` + FieldSrcMac *bool `protobuf:"varint,17,opt,name=field_src_mac,json=fieldSrcMac,proto3,oneof" json:"field_src_mac,omitempty"` + FieldDstMac *bool `protobuf:"varint,18,opt,name=field_dst_mac,json=fieldDstMac,proto3,oneof" json:"field_dst_mac,omitempty"` + FieldSrcIp *bool `protobuf:"varint,19,opt,name=field_src_ip,json=fieldSrcIp,proto3,oneof" json:"field_src_ip,omitempty"` + FieldDstIp *bool `protobuf:"varint,20,opt,name=field_dst_ip,json=fieldDstIp,proto3,oneof" json:"field_dst_ip,omitempty"` + FieldInnerSrcIp *bool `protobuf:"varint,21,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3,oneof" json:"field_inner_src_ip,omitempty"` + FieldInnerDstIp *bool `protobuf:"varint,22,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3,oneof" json:"field_inner_dst_ip,omitempty"` + FieldInPorts *bool `protobuf:"varint,23,opt,name=field_in_ports,json=fieldInPorts,proto3,oneof" json:"field_in_ports,omitempty"` + FieldOutPorts *bool `protobuf:"varint,24,opt,name=field_out_ports,json=fieldOutPorts,proto3,oneof" json:"field_out_ports,omitempty"` + FieldInPort *bool `protobuf:"varint,25,opt,name=field_in_port,json=fieldInPort,proto3,oneof" json:"field_in_port,omitempty"` + FieldOutPort *bool `protobuf:"varint,26,opt,name=field_out_port,json=fieldOutPort,proto3,oneof" json:"field_out_port,omitempty"` + FieldSrcPort *bool `protobuf:"varint,27,opt,name=field_src_port,json=fieldSrcPort,proto3,oneof" json:"field_src_port,omitempty"` + FieldOuterVlanId *bool `protobuf:"varint,28,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3,oneof" json:"field_outer_vlan_id,omitempty"` + FieldOuterVlanPri *bool `protobuf:"varint,29,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3,oneof" json:"field_outer_vlan_pri,omitempty"` + FieldOuterVlanCfi *bool `protobuf:"varint,30,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3,oneof" json:"field_outer_vlan_cfi,omitempty"` + FieldInnerVlanId *bool `protobuf:"varint,31,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3,oneof" json:"field_inner_vlan_id,omitempty"` + FieldInnerVlanPri *bool `protobuf:"varint,32,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3,oneof" json:"field_inner_vlan_pri,omitempty"` + FieldInnerVlanCfi *bool `protobuf:"varint,33,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3,oneof" json:"field_inner_vlan_cfi,omitempty"` + FieldL4SrcPort *bool `protobuf:"varint,34,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3,oneof" json:"field_l4_src_port,omitempty"` + FieldL4DstPort *bool `protobuf:"varint,35,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3,oneof" json:"field_l4_dst_port,omitempty"` + FieldInnerL4SrcPort *bool `protobuf:"varint,36,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3,oneof" json:"field_inner_l4_src_port,omitempty"` + FieldInnerL4DstPort *bool `protobuf:"varint,37,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3,oneof" json:"field_inner_l4_dst_port,omitempty"` + FieldEtherType *bool `protobuf:"varint,38,opt,name=field_ether_type,json=fieldEtherType,proto3,oneof" json:"field_ether_type,omitempty"` + FieldInnerEtherType *bool `protobuf:"varint,39,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3,oneof" json:"field_inner_ether_type,omitempty"` + FieldIpProtocol *bool `protobuf:"varint,40,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3,oneof" json:"field_ip_protocol,omitempty"` + FieldInnerIpProtocol *bool `protobuf:"varint,41,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3,oneof" json:"field_inner_ip_protocol,omitempty"` + FieldIpIdentification *bool `protobuf:"varint,42,opt,name=field_ip_identification,json=fieldIpIdentification,proto3,oneof" json:"field_ip_identification,omitempty"` + FieldDscp *bool `protobuf:"varint,43,opt,name=field_dscp,json=fieldDscp,proto3,oneof" json:"field_dscp,omitempty"` + FieldEcn *bool `protobuf:"varint,44,opt,name=field_ecn,json=fieldEcn,proto3,oneof" json:"field_ecn,omitempty"` + FieldTtl *bool `protobuf:"varint,45,opt,name=field_ttl,json=fieldTtl,proto3,oneof" json:"field_ttl,omitempty"` + FieldTos *bool `protobuf:"varint,46,opt,name=field_tos,json=fieldTos,proto3,oneof" json:"field_tos,omitempty"` + FieldIpFlags *bool `protobuf:"varint,47,opt,name=field_ip_flags,json=fieldIpFlags,proto3,oneof" json:"field_ip_flags,omitempty"` + FieldTcpFlags *bool `protobuf:"varint,48,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3,oneof" json:"field_tcp_flags,omitempty"` + FieldAclIpType *bool `protobuf:"varint,49,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3,oneof" json:"field_acl_ip_type,omitempty"` + FieldAclIpFrag *bool `protobuf:"varint,50,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3,oneof" json:"field_acl_ip_frag,omitempty"` + FieldIpv6FlowLabel *bool `protobuf:"varint,51,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3,oneof" json:"field_ipv6_flow_label,omitempty"` + FieldTc *bool `protobuf:"varint,52,opt,name=field_tc,json=fieldTc,proto3,oneof" json:"field_tc,omitempty"` + FieldIcmpType *bool `protobuf:"varint,53,opt,name=field_icmp_type,json=fieldIcmpType,proto3,oneof" json:"field_icmp_type,omitempty"` + FieldIcmpCode *bool `protobuf:"varint,54,opt,name=field_icmp_code,json=fieldIcmpCode,proto3,oneof" json:"field_icmp_code,omitempty"` + FieldIcmpv6Type *bool `protobuf:"varint,55,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3,oneof" json:"field_icmpv6_type,omitempty"` + FieldIcmpv6Code *bool `protobuf:"varint,56,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3,oneof" json:"field_icmpv6_code,omitempty"` + FieldPacketVlan *bool `protobuf:"varint,57,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3,oneof" json:"field_packet_vlan,omitempty"` + FieldTunnelVni *bool `protobuf:"varint,58,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3,oneof" json:"field_tunnel_vni,omitempty"` + FieldHasVlanTag *bool `protobuf:"varint,59,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3,oneof" json:"field_has_vlan_tag,omitempty"` + FieldMacsecSci *bool `protobuf:"varint,60,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3,oneof" json:"field_macsec_sci,omitempty"` + FieldMplsLabel0Label *bool `protobuf:"varint,61,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3,oneof" json:"field_mpls_label0_label,omitempty"` + FieldMplsLabel0Ttl *bool `protobuf:"varint,62,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3,oneof" json:"field_mpls_label0_ttl,omitempty"` + FieldMplsLabel0Exp *bool `protobuf:"varint,63,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3,oneof" json:"field_mpls_label0_exp,omitempty"` + FieldMplsLabel0Bos *bool `protobuf:"varint,64,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3,oneof" json:"field_mpls_label0_bos,omitempty"` + FieldMplsLabel1Label *bool `protobuf:"varint,65,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3,oneof" json:"field_mpls_label1_label,omitempty"` + FieldMplsLabel1Ttl *bool `protobuf:"varint,66,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3,oneof" json:"field_mpls_label1_ttl,omitempty"` + FieldMplsLabel1Exp *bool `protobuf:"varint,67,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3,oneof" json:"field_mpls_label1_exp,omitempty"` + FieldMplsLabel1Bos *bool `protobuf:"varint,68,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3,oneof" json:"field_mpls_label1_bos,omitempty"` + FieldMplsLabel2Label *bool `protobuf:"varint,69,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3,oneof" json:"field_mpls_label2_label,omitempty"` + FieldMplsLabel2Ttl *bool `protobuf:"varint,70,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3,oneof" json:"field_mpls_label2_ttl,omitempty"` + FieldMplsLabel2Exp *bool `protobuf:"varint,71,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3,oneof" json:"field_mpls_label2_exp,omitempty"` + FieldMplsLabel2Bos *bool `protobuf:"varint,72,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3,oneof" json:"field_mpls_label2_bos,omitempty"` + FieldMplsLabel3Label *bool `protobuf:"varint,73,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3,oneof" json:"field_mpls_label3_label,omitempty"` + FieldMplsLabel3Ttl *bool `protobuf:"varint,74,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3,oneof" json:"field_mpls_label3_ttl,omitempty"` + FieldMplsLabel3Exp *bool `protobuf:"varint,75,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3,oneof" json:"field_mpls_label3_exp,omitempty"` + FieldMplsLabel3Bos *bool `protobuf:"varint,76,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3,oneof" json:"field_mpls_label3_bos,omitempty"` + FieldMplsLabel4Label *bool `protobuf:"varint,77,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3,oneof" json:"field_mpls_label4_label,omitempty"` + FieldMplsLabel4Ttl *bool `protobuf:"varint,78,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3,oneof" json:"field_mpls_label4_ttl,omitempty"` + FieldMplsLabel4Exp *bool `protobuf:"varint,79,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3,oneof" json:"field_mpls_label4_exp,omitempty"` + FieldMplsLabel4Bos *bool `protobuf:"varint,80,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3,oneof" json:"field_mpls_label4_bos,omitempty"` + FieldFdbDstUserMeta *bool `protobuf:"varint,81,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3,oneof" json:"field_fdb_dst_user_meta,omitempty"` + FieldRouteDstUserMeta *bool `protobuf:"varint,82,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3,oneof" json:"field_route_dst_user_meta,omitempty"` + FieldNeighborDstUserMeta *bool `protobuf:"varint,83,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3,oneof" json:"field_neighbor_dst_user_meta,omitempty"` + FieldPortUserMeta *bool `protobuf:"varint,84,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3,oneof" json:"field_port_user_meta,omitempty"` + FieldVlanUserMeta *bool `protobuf:"varint,85,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3,oneof" json:"field_vlan_user_meta,omitempty"` + FieldAclUserMeta *bool `protobuf:"varint,86,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3,oneof" json:"field_acl_user_meta,omitempty"` + FieldFdbNpuMetaDstHit *bool `protobuf:"varint,87,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3,oneof" json:"field_fdb_npu_meta_dst_hit,omitempty"` + FieldNeighborNpuMetaDstHit *bool `protobuf:"varint,88,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3,oneof" json:"field_neighbor_npu_meta_dst_hit,omitempty"` + FieldRouteNpuMetaDstHit *bool `protobuf:"varint,89,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3,oneof" json:"field_route_npu_meta_dst_hit,omitempty"` + FieldBthOpcode *bool `protobuf:"varint,90,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3,oneof" json:"field_bth_opcode,omitempty"` + FieldAethSyndrome *bool `protobuf:"varint,91,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3,oneof" json:"field_aeth_syndrome,omitempty"` + UserDefinedFieldGroupMin *uint64 `protobuf:"varint,92,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3,oneof" json:"user_defined_field_group_min,omitempty"` + UserDefinedFieldGroupMax *uint64 `protobuf:"varint,93,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3,oneof" json:"user_defined_field_group_max,omitempty"` + FieldAclRangeType []AclRangeType `protobuf:"varint,94,rep,packed,name=field_acl_range_type,json=fieldAclRangeType,proto3,enum=lemming.dataplane.sai.AclRangeType" json:"field_acl_range_type,omitempty"` + FieldIpv6NextHeader *bool `protobuf:"varint,95,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3,oneof" json:"field_ipv6_next_header,omitempty"` + FieldGreKey *bool `protobuf:"varint,96,opt,name=field_gre_key,json=fieldGreKey,proto3,oneof" json:"field_gre_key,omitempty"` + FieldTamIntType *bool `protobuf:"varint,97,opt,name=field_tam_int_type,json=fieldTamIntType,proto3,oneof" json:"field_tam_int_type,omitempty"` + EntryList []uint64 `protobuf:"varint,98,rep,packed,name=entry_list,json=entryList,proto3" json:"entry_list,omitempty"` + AvailableAclEntry *uint32 `protobuf:"varint,99,opt,name=available_acl_entry,json=availableAclEntry,proto3,oneof" json:"available_acl_entry,omitempty"` + AvailableAclCounter *uint32 `protobuf:"varint,100,opt,name=available_acl_counter,json=availableAclCounter,proto3,oneof" json:"available_acl_counter,omitempty"` } -func (x *AclBindPointTypeList) Reset() { - *x = AclBindPointTypeList{} +func (x *AclTableAttribute) Reset() { + *x = AclTableAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[33] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AclBindPointTypeList) String() string { +func (x *AclTableAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AclBindPointTypeList) ProtoMessage() {} +func (*AclTableAttribute) ProtoMessage() {} -func (x *AclBindPointTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[33] +func (x *AclTableAttribute) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15099,306 +15246,19 @@ func (x *AclBindPointTypeList) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AclBindPointTypeList.ProtoReflect.Descriptor instead. -func (*AclBindPointTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{33} +// Deprecated: Use AclTableAttribute.ProtoReflect.Descriptor instead. +func (*AclTableAttribute) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{34} } -func (x *AclBindPointTypeList) GetList() []AclBindPointType { - if x != nil { - return x.List +func (x *AclTableAttribute) GetAclStage() AclStage { + if x != nil && x.AclStage != nil { + return *x.AclStage } - return nil + return AclStage_ACL_STAGE_UNSPECIFIED } -type AclActionTypeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []AclActionType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.AclActionType" json:"list,omitempty"` -} - -func (x *AclActionTypeList) Reset() { - *x = AclActionTypeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AclActionTypeList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AclActionTypeList) ProtoMessage() {} - -func (x *AclActionTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_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 AclActionTypeList.ProtoReflect.Descriptor instead. -func (*AclActionTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{34} -} - -func (x *AclActionTypeList) GetList() []AclActionType { - if x != nil { - return x.List - } - return nil -} - -type AclRangeTypeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []AclRangeType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.AclRangeType" json:"list,omitempty"` -} - -func (x *AclRangeTypeList) Reset() { - *x = AclRangeTypeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AclRangeTypeList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AclRangeTypeList) ProtoMessage() {} - -func (x *AclRangeTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AclRangeTypeList.ProtoReflect.Descriptor instead. -func (*AclRangeTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{35} -} - -func (x *AclRangeTypeList) GetList() []AclRangeType { - if x != nil { - return x.List - } - return nil -} - -type Uint64List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []uint64 `protobuf:"varint,1,rep,packed,name=list,proto3" json:"list,omitempty"` -} - -func (x *Uint64List) Reset() { - *x = Uint64List{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Uint64List) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Uint64List) ProtoMessage() {} - -func (x *Uint64List) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Uint64List.ProtoReflect.Descriptor instead. -func (*Uint64List) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{36} -} - -func (x *Uint64List) GetList() []uint64 { - if x != nil { - return x.List - } - return nil -} - -type AclTableAttribute struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AclStage AclStage `protobuf:"varint,1,opt,name=acl_stage,json=aclStage,proto3,enum=lemming.dataplane.sai.AclStage" json:"acl_stage,omitempty"` - AclBindPointTypeList *AclBindPointTypeList `protobuf:"bytes,2,opt,name=acl_bind_point_type_list,json=aclBindPointTypeList,proto3" json:"acl_bind_point_type_list,omitempty"` - Size uint32 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` - AclActionTypeList *AclActionTypeList `protobuf:"bytes,4,opt,name=acl_action_type_list,json=aclActionTypeList,proto3" json:"acl_action_type_list,omitempty"` - FieldSrcIpv6 bool `protobuf:"varint,5,opt,name=field_src_ipv6,json=fieldSrcIpv6,proto3" json:"field_src_ipv6,omitempty"` - FieldSrcIpv6Word3 bool `protobuf:"varint,6,opt,name=field_src_ipv6_word3,json=fieldSrcIpv6Word3,proto3" json:"field_src_ipv6_word3,omitempty"` - FieldSrcIpv6Word2 bool `protobuf:"varint,7,opt,name=field_src_ipv6_word2,json=fieldSrcIpv6Word2,proto3" json:"field_src_ipv6_word2,omitempty"` - FieldSrcIpv6Word1 bool `protobuf:"varint,8,opt,name=field_src_ipv6_word1,json=fieldSrcIpv6Word1,proto3" json:"field_src_ipv6_word1,omitempty"` - FieldSrcIpv6Word0 bool `protobuf:"varint,9,opt,name=field_src_ipv6_word0,json=fieldSrcIpv6Word0,proto3" json:"field_src_ipv6_word0,omitempty"` - FieldDstIpv6 bool `protobuf:"varint,10,opt,name=field_dst_ipv6,json=fieldDstIpv6,proto3" json:"field_dst_ipv6,omitempty"` - FieldDstIpv6Word3 bool `protobuf:"varint,11,opt,name=field_dst_ipv6_word3,json=fieldDstIpv6Word3,proto3" json:"field_dst_ipv6_word3,omitempty"` - FieldDstIpv6Word2 bool `protobuf:"varint,12,opt,name=field_dst_ipv6_word2,json=fieldDstIpv6Word2,proto3" json:"field_dst_ipv6_word2,omitempty"` - FieldDstIpv6Word1 bool `protobuf:"varint,13,opt,name=field_dst_ipv6_word1,json=fieldDstIpv6Word1,proto3" json:"field_dst_ipv6_word1,omitempty"` - FieldDstIpv6Word0 bool `protobuf:"varint,14,opt,name=field_dst_ipv6_word0,json=fieldDstIpv6Word0,proto3" json:"field_dst_ipv6_word0,omitempty"` - FieldInnerSrcIpv6 bool `protobuf:"varint,15,opt,name=field_inner_src_ipv6,json=fieldInnerSrcIpv6,proto3" json:"field_inner_src_ipv6,omitempty"` - FieldInnerDstIpv6 bool `protobuf:"varint,16,opt,name=field_inner_dst_ipv6,json=fieldInnerDstIpv6,proto3" json:"field_inner_dst_ipv6,omitempty"` - FieldSrcMac bool `protobuf:"varint,17,opt,name=field_src_mac,json=fieldSrcMac,proto3" json:"field_src_mac,omitempty"` - FieldDstMac bool `protobuf:"varint,18,opt,name=field_dst_mac,json=fieldDstMac,proto3" json:"field_dst_mac,omitempty"` - FieldSrcIp bool `protobuf:"varint,19,opt,name=field_src_ip,json=fieldSrcIp,proto3" json:"field_src_ip,omitempty"` - FieldDstIp bool `protobuf:"varint,20,opt,name=field_dst_ip,json=fieldDstIp,proto3" json:"field_dst_ip,omitempty"` - FieldInnerSrcIp bool `protobuf:"varint,21,opt,name=field_inner_src_ip,json=fieldInnerSrcIp,proto3" json:"field_inner_src_ip,omitempty"` - FieldInnerDstIp bool `protobuf:"varint,22,opt,name=field_inner_dst_ip,json=fieldInnerDstIp,proto3" json:"field_inner_dst_ip,omitempty"` - FieldInPorts bool `protobuf:"varint,23,opt,name=field_in_ports,json=fieldInPorts,proto3" json:"field_in_ports,omitempty"` - FieldOutPorts bool `protobuf:"varint,24,opt,name=field_out_ports,json=fieldOutPorts,proto3" json:"field_out_ports,omitempty"` - FieldInPort bool `protobuf:"varint,25,opt,name=field_in_port,json=fieldInPort,proto3" json:"field_in_port,omitempty"` - FieldOutPort bool `protobuf:"varint,26,opt,name=field_out_port,json=fieldOutPort,proto3" json:"field_out_port,omitempty"` - FieldSrcPort bool `protobuf:"varint,27,opt,name=field_src_port,json=fieldSrcPort,proto3" json:"field_src_port,omitempty"` - FieldOuterVlanId bool `protobuf:"varint,28,opt,name=field_outer_vlan_id,json=fieldOuterVlanId,proto3" json:"field_outer_vlan_id,omitempty"` - FieldOuterVlanPri bool `protobuf:"varint,29,opt,name=field_outer_vlan_pri,json=fieldOuterVlanPri,proto3" json:"field_outer_vlan_pri,omitempty"` - FieldOuterVlanCfi bool `protobuf:"varint,30,opt,name=field_outer_vlan_cfi,json=fieldOuterVlanCfi,proto3" json:"field_outer_vlan_cfi,omitempty"` - FieldInnerVlanId bool `protobuf:"varint,31,opt,name=field_inner_vlan_id,json=fieldInnerVlanId,proto3" json:"field_inner_vlan_id,omitempty"` - FieldInnerVlanPri bool `protobuf:"varint,32,opt,name=field_inner_vlan_pri,json=fieldInnerVlanPri,proto3" json:"field_inner_vlan_pri,omitempty"` - FieldInnerVlanCfi bool `protobuf:"varint,33,opt,name=field_inner_vlan_cfi,json=fieldInnerVlanCfi,proto3" json:"field_inner_vlan_cfi,omitempty"` - FieldL4SrcPort bool `protobuf:"varint,34,opt,name=field_l4_src_port,json=fieldL4SrcPort,proto3" json:"field_l4_src_port,omitempty"` - FieldL4DstPort bool `protobuf:"varint,35,opt,name=field_l4_dst_port,json=fieldL4DstPort,proto3" json:"field_l4_dst_port,omitempty"` - FieldInnerL4SrcPort bool `protobuf:"varint,36,opt,name=field_inner_l4_src_port,json=fieldInnerL4SrcPort,proto3" json:"field_inner_l4_src_port,omitempty"` - FieldInnerL4DstPort bool `protobuf:"varint,37,opt,name=field_inner_l4_dst_port,json=fieldInnerL4DstPort,proto3" json:"field_inner_l4_dst_port,omitempty"` - FieldEtherType bool `protobuf:"varint,38,opt,name=field_ether_type,json=fieldEtherType,proto3" json:"field_ether_type,omitempty"` - FieldInnerEtherType bool `protobuf:"varint,39,opt,name=field_inner_ether_type,json=fieldInnerEtherType,proto3" json:"field_inner_ether_type,omitempty"` - FieldIpProtocol bool `protobuf:"varint,40,opt,name=field_ip_protocol,json=fieldIpProtocol,proto3" json:"field_ip_protocol,omitempty"` - FieldInnerIpProtocol bool `protobuf:"varint,41,opt,name=field_inner_ip_protocol,json=fieldInnerIpProtocol,proto3" json:"field_inner_ip_protocol,omitempty"` - FieldIpIdentification bool `protobuf:"varint,42,opt,name=field_ip_identification,json=fieldIpIdentification,proto3" json:"field_ip_identification,omitempty"` - FieldDscp bool `protobuf:"varint,43,opt,name=field_dscp,json=fieldDscp,proto3" json:"field_dscp,omitempty"` - FieldEcn bool `protobuf:"varint,44,opt,name=field_ecn,json=fieldEcn,proto3" json:"field_ecn,omitempty"` - FieldTtl bool `protobuf:"varint,45,opt,name=field_ttl,json=fieldTtl,proto3" json:"field_ttl,omitempty"` - FieldTos bool `protobuf:"varint,46,opt,name=field_tos,json=fieldTos,proto3" json:"field_tos,omitempty"` - FieldIpFlags bool `protobuf:"varint,47,opt,name=field_ip_flags,json=fieldIpFlags,proto3" json:"field_ip_flags,omitempty"` - FieldTcpFlags bool `protobuf:"varint,48,opt,name=field_tcp_flags,json=fieldTcpFlags,proto3" json:"field_tcp_flags,omitempty"` - FieldAclIpType bool `protobuf:"varint,49,opt,name=field_acl_ip_type,json=fieldAclIpType,proto3" json:"field_acl_ip_type,omitempty"` - FieldAclIpFrag bool `protobuf:"varint,50,opt,name=field_acl_ip_frag,json=fieldAclIpFrag,proto3" json:"field_acl_ip_frag,omitempty"` - FieldIpv6FlowLabel bool `protobuf:"varint,51,opt,name=field_ipv6_flow_label,json=fieldIpv6FlowLabel,proto3" json:"field_ipv6_flow_label,omitempty"` - FieldTc bool `protobuf:"varint,52,opt,name=field_tc,json=fieldTc,proto3" json:"field_tc,omitempty"` - FieldIcmpType bool `protobuf:"varint,53,opt,name=field_icmp_type,json=fieldIcmpType,proto3" json:"field_icmp_type,omitempty"` - FieldIcmpCode bool `protobuf:"varint,54,opt,name=field_icmp_code,json=fieldIcmpCode,proto3" json:"field_icmp_code,omitempty"` - FieldIcmpv6Type bool `protobuf:"varint,55,opt,name=field_icmpv6_type,json=fieldIcmpv6Type,proto3" json:"field_icmpv6_type,omitempty"` - FieldIcmpv6Code bool `protobuf:"varint,56,opt,name=field_icmpv6_code,json=fieldIcmpv6Code,proto3" json:"field_icmpv6_code,omitempty"` - FieldPacketVlan bool `protobuf:"varint,57,opt,name=field_packet_vlan,json=fieldPacketVlan,proto3" json:"field_packet_vlan,omitempty"` - FieldTunnelVni bool `protobuf:"varint,58,opt,name=field_tunnel_vni,json=fieldTunnelVni,proto3" json:"field_tunnel_vni,omitempty"` - FieldHasVlanTag bool `protobuf:"varint,59,opt,name=field_has_vlan_tag,json=fieldHasVlanTag,proto3" json:"field_has_vlan_tag,omitempty"` - FieldMacsecSci bool `protobuf:"varint,60,opt,name=field_macsec_sci,json=fieldMacsecSci,proto3" json:"field_macsec_sci,omitempty"` - FieldMplsLabel0Label bool `protobuf:"varint,61,opt,name=field_mpls_label0_label,json=fieldMplsLabel0Label,proto3" json:"field_mpls_label0_label,omitempty"` - FieldMplsLabel0Ttl bool `protobuf:"varint,62,opt,name=field_mpls_label0_ttl,json=fieldMplsLabel0Ttl,proto3" json:"field_mpls_label0_ttl,omitempty"` - FieldMplsLabel0Exp bool `protobuf:"varint,63,opt,name=field_mpls_label0_exp,json=fieldMplsLabel0Exp,proto3" json:"field_mpls_label0_exp,omitempty"` - FieldMplsLabel0Bos bool `protobuf:"varint,64,opt,name=field_mpls_label0_bos,json=fieldMplsLabel0Bos,proto3" json:"field_mpls_label0_bos,omitempty"` - FieldMplsLabel1Label bool `protobuf:"varint,65,opt,name=field_mpls_label1_label,json=fieldMplsLabel1Label,proto3" json:"field_mpls_label1_label,omitempty"` - FieldMplsLabel1Ttl bool `protobuf:"varint,66,opt,name=field_mpls_label1_ttl,json=fieldMplsLabel1Ttl,proto3" json:"field_mpls_label1_ttl,omitempty"` - FieldMplsLabel1Exp bool `protobuf:"varint,67,opt,name=field_mpls_label1_exp,json=fieldMplsLabel1Exp,proto3" json:"field_mpls_label1_exp,omitempty"` - FieldMplsLabel1Bos bool `protobuf:"varint,68,opt,name=field_mpls_label1_bos,json=fieldMplsLabel1Bos,proto3" json:"field_mpls_label1_bos,omitempty"` - FieldMplsLabel2Label bool `protobuf:"varint,69,opt,name=field_mpls_label2_label,json=fieldMplsLabel2Label,proto3" json:"field_mpls_label2_label,omitempty"` - FieldMplsLabel2Ttl bool `protobuf:"varint,70,opt,name=field_mpls_label2_ttl,json=fieldMplsLabel2Ttl,proto3" json:"field_mpls_label2_ttl,omitempty"` - FieldMplsLabel2Exp bool `protobuf:"varint,71,opt,name=field_mpls_label2_exp,json=fieldMplsLabel2Exp,proto3" json:"field_mpls_label2_exp,omitempty"` - FieldMplsLabel2Bos bool `protobuf:"varint,72,opt,name=field_mpls_label2_bos,json=fieldMplsLabel2Bos,proto3" json:"field_mpls_label2_bos,omitempty"` - FieldMplsLabel3Label bool `protobuf:"varint,73,opt,name=field_mpls_label3_label,json=fieldMplsLabel3Label,proto3" json:"field_mpls_label3_label,omitempty"` - FieldMplsLabel3Ttl bool `protobuf:"varint,74,opt,name=field_mpls_label3_ttl,json=fieldMplsLabel3Ttl,proto3" json:"field_mpls_label3_ttl,omitempty"` - FieldMplsLabel3Exp bool `protobuf:"varint,75,opt,name=field_mpls_label3_exp,json=fieldMplsLabel3Exp,proto3" json:"field_mpls_label3_exp,omitempty"` - FieldMplsLabel3Bos bool `protobuf:"varint,76,opt,name=field_mpls_label3_bos,json=fieldMplsLabel3Bos,proto3" json:"field_mpls_label3_bos,omitempty"` - FieldMplsLabel4Label bool `protobuf:"varint,77,opt,name=field_mpls_label4_label,json=fieldMplsLabel4Label,proto3" json:"field_mpls_label4_label,omitempty"` - FieldMplsLabel4Ttl bool `protobuf:"varint,78,opt,name=field_mpls_label4_ttl,json=fieldMplsLabel4Ttl,proto3" json:"field_mpls_label4_ttl,omitempty"` - FieldMplsLabel4Exp bool `protobuf:"varint,79,opt,name=field_mpls_label4_exp,json=fieldMplsLabel4Exp,proto3" json:"field_mpls_label4_exp,omitempty"` - FieldMplsLabel4Bos bool `protobuf:"varint,80,opt,name=field_mpls_label4_bos,json=fieldMplsLabel4Bos,proto3" json:"field_mpls_label4_bos,omitempty"` - FieldFdbDstUserMeta bool `protobuf:"varint,81,opt,name=field_fdb_dst_user_meta,json=fieldFdbDstUserMeta,proto3" json:"field_fdb_dst_user_meta,omitempty"` - FieldRouteDstUserMeta bool `protobuf:"varint,82,opt,name=field_route_dst_user_meta,json=fieldRouteDstUserMeta,proto3" json:"field_route_dst_user_meta,omitempty"` - FieldNeighborDstUserMeta bool `protobuf:"varint,83,opt,name=field_neighbor_dst_user_meta,json=fieldNeighborDstUserMeta,proto3" json:"field_neighbor_dst_user_meta,omitempty"` - FieldPortUserMeta bool `protobuf:"varint,84,opt,name=field_port_user_meta,json=fieldPortUserMeta,proto3" json:"field_port_user_meta,omitempty"` - FieldVlanUserMeta bool `protobuf:"varint,85,opt,name=field_vlan_user_meta,json=fieldVlanUserMeta,proto3" json:"field_vlan_user_meta,omitempty"` - FieldAclUserMeta bool `protobuf:"varint,86,opt,name=field_acl_user_meta,json=fieldAclUserMeta,proto3" json:"field_acl_user_meta,omitempty"` - FieldFdbNpuMetaDstHit bool `protobuf:"varint,87,opt,name=field_fdb_npu_meta_dst_hit,json=fieldFdbNpuMetaDstHit,proto3" json:"field_fdb_npu_meta_dst_hit,omitempty"` - FieldNeighborNpuMetaDstHit bool `protobuf:"varint,88,opt,name=field_neighbor_npu_meta_dst_hit,json=fieldNeighborNpuMetaDstHit,proto3" json:"field_neighbor_npu_meta_dst_hit,omitempty"` - FieldRouteNpuMetaDstHit bool `protobuf:"varint,89,opt,name=field_route_npu_meta_dst_hit,json=fieldRouteNpuMetaDstHit,proto3" json:"field_route_npu_meta_dst_hit,omitempty"` - FieldBthOpcode bool `protobuf:"varint,90,opt,name=field_bth_opcode,json=fieldBthOpcode,proto3" json:"field_bth_opcode,omitempty"` - FieldAethSyndrome bool `protobuf:"varint,91,opt,name=field_aeth_syndrome,json=fieldAethSyndrome,proto3" json:"field_aeth_syndrome,omitempty"` - UserDefinedFieldGroupMin uint64 `protobuf:"varint,92,opt,name=user_defined_field_group_min,json=userDefinedFieldGroupMin,proto3" json:"user_defined_field_group_min,omitempty"` - UserDefinedFieldGroupMax uint64 `protobuf:"varint,93,opt,name=user_defined_field_group_max,json=userDefinedFieldGroupMax,proto3" json:"user_defined_field_group_max,omitempty"` - FieldAclRangeType *AclRangeTypeList `protobuf:"bytes,94,opt,name=field_acl_range_type,json=fieldAclRangeType,proto3" json:"field_acl_range_type,omitempty"` - FieldIpv6NextHeader bool `protobuf:"varint,95,opt,name=field_ipv6_next_header,json=fieldIpv6NextHeader,proto3" json:"field_ipv6_next_header,omitempty"` - FieldGreKey bool `protobuf:"varint,96,opt,name=field_gre_key,json=fieldGreKey,proto3" json:"field_gre_key,omitempty"` - FieldTamIntType bool `protobuf:"varint,97,opt,name=field_tam_int_type,json=fieldTamIntType,proto3" json:"field_tam_int_type,omitempty"` - EntryList *Uint64List `protobuf:"bytes,98,opt,name=entry_list,json=entryList,proto3" json:"entry_list,omitempty"` - AvailableAclEntry uint32 `protobuf:"varint,99,opt,name=available_acl_entry,json=availableAclEntry,proto3" json:"available_acl_entry,omitempty"` - AvailableAclCounter uint32 `protobuf:"varint,100,opt,name=available_acl_counter,json=availableAclCounter,proto3" json:"available_acl_counter,omitempty"` -} - -func (x *AclTableAttribute) Reset() { - *x = AclTableAttribute{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AclTableAttribute) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AclTableAttribute) ProtoMessage() {} - -func (x *AclTableAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AclTableAttribute.ProtoReflect.Descriptor instead. -func (*AclTableAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{37} -} - -func (x *AclTableAttribute) GetAclStage() AclStage { - if x != nil { - return x.AclStage - } - return AclStage_ACL_STAGE_UNSPECIFIED -} - -func (x *AclTableAttribute) GetAclBindPointTypeList() *AclBindPointTypeList { +func (x *AclTableAttribute) GetAclBindPointTypeList() []AclBindPointType { if x != nil { return x.AclBindPointTypeList } @@ -15406,13 +15266,13 @@ func (x *AclTableAttribute) GetAclBindPointTypeList() *AclBindPointTypeList { } func (x *AclTableAttribute) GetSize() uint32 { - if x != nil { - return x.Size + if x != nil && x.Size != nil { + return *x.Size } return 0 } -func (x *AclTableAttribute) GetAclActionTypeList() *AclActionTypeList { +func (x *AclTableAttribute) GetAclActionTypeList() []AclActionType { if x != nil { return x.AclActionTypeList } @@ -15420,629 +15280,629 @@ func (x *AclTableAttribute) GetAclActionTypeList() *AclActionTypeList { } func (x *AclTableAttribute) GetFieldSrcIpv6() bool { - if x != nil { - return x.FieldSrcIpv6 + if x != nil && x.FieldSrcIpv6 != nil { + return *x.FieldSrcIpv6 } return false } func (x *AclTableAttribute) GetFieldSrcIpv6Word3() bool { - if x != nil { - return x.FieldSrcIpv6Word3 + if x != nil && x.FieldSrcIpv6Word3 != nil { + return *x.FieldSrcIpv6Word3 } return false } func (x *AclTableAttribute) GetFieldSrcIpv6Word2() bool { - if x != nil { - return x.FieldSrcIpv6Word2 + if x != nil && x.FieldSrcIpv6Word2 != nil { + return *x.FieldSrcIpv6Word2 } return false } func (x *AclTableAttribute) GetFieldSrcIpv6Word1() bool { - if x != nil { - return x.FieldSrcIpv6Word1 + if x != nil && x.FieldSrcIpv6Word1 != nil { + return *x.FieldSrcIpv6Word1 } return false } func (x *AclTableAttribute) GetFieldSrcIpv6Word0() bool { - if x != nil { - return x.FieldSrcIpv6Word0 + if x != nil && x.FieldSrcIpv6Word0 != nil { + return *x.FieldSrcIpv6Word0 } return false } func (x *AclTableAttribute) GetFieldDstIpv6() bool { - if x != nil { - return x.FieldDstIpv6 + if x != nil && x.FieldDstIpv6 != nil { + return *x.FieldDstIpv6 } return false } func (x *AclTableAttribute) GetFieldDstIpv6Word3() bool { - if x != nil { - return x.FieldDstIpv6Word3 + if x != nil && x.FieldDstIpv6Word3 != nil { + return *x.FieldDstIpv6Word3 } return false } func (x *AclTableAttribute) GetFieldDstIpv6Word2() bool { - if x != nil { - return x.FieldDstIpv6Word2 + if x != nil && x.FieldDstIpv6Word2 != nil { + return *x.FieldDstIpv6Word2 } return false } func (x *AclTableAttribute) GetFieldDstIpv6Word1() bool { - if x != nil { - return x.FieldDstIpv6Word1 + if x != nil && x.FieldDstIpv6Word1 != nil { + return *x.FieldDstIpv6Word1 } return false } func (x *AclTableAttribute) GetFieldDstIpv6Word0() bool { - if x != nil { - return x.FieldDstIpv6Word0 + if x != nil && x.FieldDstIpv6Word0 != nil { + return *x.FieldDstIpv6Word0 } return false } func (x *AclTableAttribute) GetFieldInnerSrcIpv6() bool { - if x != nil { - return x.FieldInnerSrcIpv6 + if x != nil && x.FieldInnerSrcIpv6 != nil { + return *x.FieldInnerSrcIpv6 } return false } func (x *AclTableAttribute) GetFieldInnerDstIpv6() bool { - if x != nil { - return x.FieldInnerDstIpv6 + if x != nil && x.FieldInnerDstIpv6 != nil { + return *x.FieldInnerDstIpv6 } return false } func (x *AclTableAttribute) GetFieldSrcMac() bool { - if x != nil { - return x.FieldSrcMac + if x != nil && x.FieldSrcMac != nil { + return *x.FieldSrcMac } return false } func (x *AclTableAttribute) GetFieldDstMac() bool { - if x != nil { - return x.FieldDstMac + if x != nil && x.FieldDstMac != nil { + return *x.FieldDstMac } return false } func (x *AclTableAttribute) GetFieldSrcIp() bool { - if x != nil { - return x.FieldSrcIp + if x != nil && x.FieldSrcIp != nil { + return *x.FieldSrcIp } return false } func (x *AclTableAttribute) GetFieldDstIp() bool { - if x != nil { - return x.FieldDstIp + if x != nil && x.FieldDstIp != nil { + return *x.FieldDstIp } return false } func (x *AclTableAttribute) GetFieldInnerSrcIp() bool { - if x != nil { - return x.FieldInnerSrcIp + if x != nil && x.FieldInnerSrcIp != nil { + return *x.FieldInnerSrcIp } return false } func (x *AclTableAttribute) GetFieldInnerDstIp() bool { - if x != nil { - return x.FieldInnerDstIp + if x != nil && x.FieldInnerDstIp != nil { + return *x.FieldInnerDstIp } return false } func (x *AclTableAttribute) GetFieldInPorts() bool { - if x != nil { - return x.FieldInPorts + if x != nil && x.FieldInPorts != nil { + return *x.FieldInPorts } return false } func (x *AclTableAttribute) GetFieldOutPorts() bool { - if x != nil { - return x.FieldOutPorts + if x != nil && x.FieldOutPorts != nil { + return *x.FieldOutPorts } return false } func (x *AclTableAttribute) GetFieldInPort() bool { - if x != nil { - return x.FieldInPort + if x != nil && x.FieldInPort != nil { + return *x.FieldInPort } return false } func (x *AclTableAttribute) GetFieldOutPort() bool { - if x != nil { - return x.FieldOutPort + if x != nil && x.FieldOutPort != nil { + return *x.FieldOutPort } return false } func (x *AclTableAttribute) GetFieldSrcPort() bool { - if x != nil { - return x.FieldSrcPort + if x != nil && x.FieldSrcPort != nil { + return *x.FieldSrcPort } return false } func (x *AclTableAttribute) GetFieldOuterVlanId() bool { - if x != nil { - return x.FieldOuterVlanId + if x != nil && x.FieldOuterVlanId != nil { + return *x.FieldOuterVlanId } return false } func (x *AclTableAttribute) GetFieldOuterVlanPri() bool { - if x != nil { - return x.FieldOuterVlanPri + if x != nil && x.FieldOuterVlanPri != nil { + return *x.FieldOuterVlanPri } return false } func (x *AclTableAttribute) GetFieldOuterVlanCfi() bool { - if x != nil { - return x.FieldOuterVlanCfi + if x != nil && x.FieldOuterVlanCfi != nil { + return *x.FieldOuterVlanCfi } return false } func (x *AclTableAttribute) GetFieldInnerVlanId() bool { - if x != nil { - return x.FieldInnerVlanId + if x != nil && x.FieldInnerVlanId != nil { + return *x.FieldInnerVlanId } return false } func (x *AclTableAttribute) GetFieldInnerVlanPri() bool { - if x != nil { - return x.FieldInnerVlanPri + if x != nil && x.FieldInnerVlanPri != nil { + return *x.FieldInnerVlanPri } return false } func (x *AclTableAttribute) GetFieldInnerVlanCfi() bool { - if x != nil { - return x.FieldInnerVlanCfi + if x != nil && x.FieldInnerVlanCfi != nil { + return *x.FieldInnerVlanCfi } return false } func (x *AclTableAttribute) GetFieldL4SrcPort() bool { - if x != nil { - return x.FieldL4SrcPort + if x != nil && x.FieldL4SrcPort != nil { + return *x.FieldL4SrcPort } return false } func (x *AclTableAttribute) GetFieldL4DstPort() bool { - if x != nil { - return x.FieldL4DstPort + if x != nil && x.FieldL4DstPort != nil { + return *x.FieldL4DstPort } return false } func (x *AclTableAttribute) GetFieldInnerL4SrcPort() bool { - if x != nil { - return x.FieldInnerL4SrcPort + if x != nil && x.FieldInnerL4SrcPort != nil { + return *x.FieldInnerL4SrcPort } return false } func (x *AclTableAttribute) GetFieldInnerL4DstPort() bool { - if x != nil { - return x.FieldInnerL4DstPort + if x != nil && x.FieldInnerL4DstPort != nil { + return *x.FieldInnerL4DstPort } return false } func (x *AclTableAttribute) GetFieldEtherType() bool { - if x != nil { - return x.FieldEtherType + if x != nil && x.FieldEtherType != nil { + return *x.FieldEtherType } return false } func (x *AclTableAttribute) GetFieldInnerEtherType() bool { - if x != nil { - return x.FieldInnerEtherType + if x != nil && x.FieldInnerEtherType != nil { + return *x.FieldInnerEtherType } return false } func (x *AclTableAttribute) GetFieldIpProtocol() bool { - if x != nil { - return x.FieldIpProtocol + if x != nil && x.FieldIpProtocol != nil { + return *x.FieldIpProtocol } return false } func (x *AclTableAttribute) GetFieldInnerIpProtocol() bool { - if x != nil { - return x.FieldInnerIpProtocol + if x != nil && x.FieldInnerIpProtocol != nil { + return *x.FieldInnerIpProtocol } return false } func (x *AclTableAttribute) GetFieldIpIdentification() bool { - if x != nil { - return x.FieldIpIdentification + if x != nil && x.FieldIpIdentification != nil { + return *x.FieldIpIdentification } return false } func (x *AclTableAttribute) GetFieldDscp() bool { - if x != nil { - return x.FieldDscp + if x != nil && x.FieldDscp != nil { + return *x.FieldDscp } return false } func (x *AclTableAttribute) GetFieldEcn() bool { - if x != nil { - return x.FieldEcn + if x != nil && x.FieldEcn != nil { + return *x.FieldEcn } return false } func (x *AclTableAttribute) GetFieldTtl() bool { - if x != nil { - return x.FieldTtl + if x != nil && x.FieldTtl != nil { + return *x.FieldTtl } return false } func (x *AclTableAttribute) GetFieldTos() bool { - if x != nil { - return x.FieldTos + if x != nil && x.FieldTos != nil { + return *x.FieldTos } return false } func (x *AclTableAttribute) GetFieldIpFlags() bool { - if x != nil { - return x.FieldIpFlags + if x != nil && x.FieldIpFlags != nil { + return *x.FieldIpFlags } return false } func (x *AclTableAttribute) GetFieldTcpFlags() bool { - if x != nil { - return x.FieldTcpFlags + if x != nil && x.FieldTcpFlags != nil { + return *x.FieldTcpFlags } return false } func (x *AclTableAttribute) GetFieldAclIpType() bool { - if x != nil { - return x.FieldAclIpType + if x != nil && x.FieldAclIpType != nil { + return *x.FieldAclIpType } return false } func (x *AclTableAttribute) GetFieldAclIpFrag() bool { - if x != nil { - return x.FieldAclIpFrag + if x != nil && x.FieldAclIpFrag != nil { + return *x.FieldAclIpFrag } return false } func (x *AclTableAttribute) GetFieldIpv6FlowLabel() bool { - if x != nil { - return x.FieldIpv6FlowLabel + if x != nil && x.FieldIpv6FlowLabel != nil { + return *x.FieldIpv6FlowLabel } return false } func (x *AclTableAttribute) GetFieldTc() bool { - if x != nil { - return x.FieldTc + if x != nil && x.FieldTc != nil { + return *x.FieldTc } return false } func (x *AclTableAttribute) GetFieldIcmpType() bool { - if x != nil { - return x.FieldIcmpType + if x != nil && x.FieldIcmpType != nil { + return *x.FieldIcmpType } return false } func (x *AclTableAttribute) GetFieldIcmpCode() bool { - if x != nil { - return x.FieldIcmpCode + if x != nil && x.FieldIcmpCode != nil { + return *x.FieldIcmpCode } return false } func (x *AclTableAttribute) GetFieldIcmpv6Type() bool { - if x != nil { - return x.FieldIcmpv6Type + if x != nil && x.FieldIcmpv6Type != nil { + return *x.FieldIcmpv6Type } return false } func (x *AclTableAttribute) GetFieldIcmpv6Code() bool { - if x != nil { - return x.FieldIcmpv6Code + if x != nil && x.FieldIcmpv6Code != nil { + return *x.FieldIcmpv6Code } return false } func (x *AclTableAttribute) GetFieldPacketVlan() bool { - if x != nil { - return x.FieldPacketVlan + if x != nil && x.FieldPacketVlan != nil { + return *x.FieldPacketVlan } return false } func (x *AclTableAttribute) GetFieldTunnelVni() bool { - if x != nil { - return x.FieldTunnelVni + if x != nil && x.FieldTunnelVni != nil { + return *x.FieldTunnelVni } return false } func (x *AclTableAttribute) GetFieldHasVlanTag() bool { - if x != nil { - return x.FieldHasVlanTag + if x != nil && x.FieldHasVlanTag != nil { + return *x.FieldHasVlanTag } return false } func (x *AclTableAttribute) GetFieldMacsecSci() bool { - if x != nil { - return x.FieldMacsecSci + if x != nil && x.FieldMacsecSci != nil { + return *x.FieldMacsecSci } return false } func (x *AclTableAttribute) GetFieldMplsLabel0Label() bool { - if x != nil { - return x.FieldMplsLabel0Label + if x != nil && x.FieldMplsLabel0Label != nil { + return *x.FieldMplsLabel0Label } return false } func (x *AclTableAttribute) GetFieldMplsLabel0Ttl() bool { - if x != nil { - return x.FieldMplsLabel0Ttl + if x != nil && x.FieldMplsLabel0Ttl != nil { + return *x.FieldMplsLabel0Ttl } return false } func (x *AclTableAttribute) GetFieldMplsLabel0Exp() bool { - if x != nil { - return x.FieldMplsLabel0Exp + if x != nil && x.FieldMplsLabel0Exp != nil { + return *x.FieldMplsLabel0Exp } return false } func (x *AclTableAttribute) GetFieldMplsLabel0Bos() bool { - if x != nil { - return x.FieldMplsLabel0Bos + if x != nil && x.FieldMplsLabel0Bos != nil { + return *x.FieldMplsLabel0Bos } return false } func (x *AclTableAttribute) GetFieldMplsLabel1Label() bool { - if x != nil { - return x.FieldMplsLabel1Label + if x != nil && x.FieldMplsLabel1Label != nil { + return *x.FieldMplsLabel1Label } return false } func (x *AclTableAttribute) GetFieldMplsLabel1Ttl() bool { - if x != nil { - return x.FieldMplsLabel1Ttl + if x != nil && x.FieldMplsLabel1Ttl != nil { + return *x.FieldMplsLabel1Ttl } return false } func (x *AclTableAttribute) GetFieldMplsLabel1Exp() bool { - if x != nil { - return x.FieldMplsLabel1Exp + if x != nil && x.FieldMplsLabel1Exp != nil { + return *x.FieldMplsLabel1Exp } return false } func (x *AclTableAttribute) GetFieldMplsLabel1Bos() bool { - if x != nil { - return x.FieldMplsLabel1Bos + if x != nil && x.FieldMplsLabel1Bos != nil { + return *x.FieldMplsLabel1Bos } return false } func (x *AclTableAttribute) GetFieldMplsLabel2Label() bool { - if x != nil { - return x.FieldMplsLabel2Label + if x != nil && x.FieldMplsLabel2Label != nil { + return *x.FieldMplsLabel2Label } return false } func (x *AclTableAttribute) GetFieldMplsLabel2Ttl() bool { - if x != nil { - return x.FieldMplsLabel2Ttl + if x != nil && x.FieldMplsLabel2Ttl != nil { + return *x.FieldMplsLabel2Ttl } return false } func (x *AclTableAttribute) GetFieldMplsLabel2Exp() bool { - if x != nil { - return x.FieldMplsLabel2Exp + if x != nil && x.FieldMplsLabel2Exp != nil { + return *x.FieldMplsLabel2Exp } return false } func (x *AclTableAttribute) GetFieldMplsLabel2Bos() bool { - if x != nil { - return x.FieldMplsLabel2Bos + if x != nil && x.FieldMplsLabel2Bos != nil { + return *x.FieldMplsLabel2Bos } return false } func (x *AclTableAttribute) GetFieldMplsLabel3Label() bool { - if x != nil { - return x.FieldMplsLabel3Label + if x != nil && x.FieldMplsLabel3Label != nil { + return *x.FieldMplsLabel3Label } return false } func (x *AclTableAttribute) GetFieldMplsLabel3Ttl() bool { - if x != nil { - return x.FieldMplsLabel3Ttl + if x != nil && x.FieldMplsLabel3Ttl != nil { + return *x.FieldMplsLabel3Ttl } return false } func (x *AclTableAttribute) GetFieldMplsLabel3Exp() bool { - if x != nil { - return x.FieldMplsLabel3Exp + if x != nil && x.FieldMplsLabel3Exp != nil { + return *x.FieldMplsLabel3Exp } return false } func (x *AclTableAttribute) GetFieldMplsLabel3Bos() bool { - if x != nil { - return x.FieldMplsLabel3Bos + if x != nil && x.FieldMplsLabel3Bos != nil { + return *x.FieldMplsLabel3Bos } return false } func (x *AclTableAttribute) GetFieldMplsLabel4Label() bool { - if x != nil { - return x.FieldMplsLabel4Label + if x != nil && x.FieldMplsLabel4Label != nil { + return *x.FieldMplsLabel4Label } return false } func (x *AclTableAttribute) GetFieldMplsLabel4Ttl() bool { - if x != nil { - return x.FieldMplsLabel4Ttl + if x != nil && x.FieldMplsLabel4Ttl != nil { + return *x.FieldMplsLabel4Ttl } return false } func (x *AclTableAttribute) GetFieldMplsLabel4Exp() bool { - if x != nil { - return x.FieldMplsLabel4Exp + if x != nil && x.FieldMplsLabel4Exp != nil { + return *x.FieldMplsLabel4Exp } return false } func (x *AclTableAttribute) GetFieldMplsLabel4Bos() bool { - if x != nil { - return x.FieldMplsLabel4Bos + if x != nil && x.FieldMplsLabel4Bos != nil { + return *x.FieldMplsLabel4Bos } return false } func (x *AclTableAttribute) GetFieldFdbDstUserMeta() bool { - if x != nil { - return x.FieldFdbDstUserMeta + if x != nil && x.FieldFdbDstUserMeta != nil { + return *x.FieldFdbDstUserMeta } return false } func (x *AclTableAttribute) GetFieldRouteDstUserMeta() bool { - if x != nil { - return x.FieldRouteDstUserMeta + if x != nil && x.FieldRouteDstUserMeta != nil { + return *x.FieldRouteDstUserMeta } return false } func (x *AclTableAttribute) GetFieldNeighborDstUserMeta() bool { - if x != nil { - return x.FieldNeighborDstUserMeta + if x != nil && x.FieldNeighborDstUserMeta != nil { + return *x.FieldNeighborDstUserMeta } return false } func (x *AclTableAttribute) GetFieldPortUserMeta() bool { - if x != nil { - return x.FieldPortUserMeta + if x != nil && x.FieldPortUserMeta != nil { + return *x.FieldPortUserMeta } return false } func (x *AclTableAttribute) GetFieldVlanUserMeta() bool { - if x != nil { - return x.FieldVlanUserMeta + if x != nil && x.FieldVlanUserMeta != nil { + return *x.FieldVlanUserMeta } return false } func (x *AclTableAttribute) GetFieldAclUserMeta() bool { - if x != nil { - return x.FieldAclUserMeta + if x != nil && x.FieldAclUserMeta != nil { + return *x.FieldAclUserMeta } return false } func (x *AclTableAttribute) GetFieldFdbNpuMetaDstHit() bool { - if x != nil { - return x.FieldFdbNpuMetaDstHit + if x != nil && x.FieldFdbNpuMetaDstHit != nil { + return *x.FieldFdbNpuMetaDstHit } return false } func (x *AclTableAttribute) GetFieldNeighborNpuMetaDstHit() bool { - if x != nil { - return x.FieldNeighborNpuMetaDstHit + if x != nil && x.FieldNeighborNpuMetaDstHit != nil { + return *x.FieldNeighborNpuMetaDstHit } return false } func (x *AclTableAttribute) GetFieldRouteNpuMetaDstHit() bool { - if x != nil { - return x.FieldRouteNpuMetaDstHit + if x != nil && x.FieldRouteNpuMetaDstHit != nil { + return *x.FieldRouteNpuMetaDstHit } return false } func (x *AclTableAttribute) GetFieldBthOpcode() bool { - if x != nil { - return x.FieldBthOpcode + if x != nil && x.FieldBthOpcode != nil { + return *x.FieldBthOpcode } return false } func (x *AclTableAttribute) GetFieldAethSyndrome() bool { - if x != nil { - return x.FieldAethSyndrome + if x != nil && x.FieldAethSyndrome != nil { + return *x.FieldAethSyndrome } return false } func (x *AclTableAttribute) GetUserDefinedFieldGroupMin() uint64 { - if x != nil { - return x.UserDefinedFieldGroupMin + if x != nil && x.UserDefinedFieldGroupMin != nil { + return *x.UserDefinedFieldGroupMin } return 0 } func (x *AclTableAttribute) GetUserDefinedFieldGroupMax() uint64 { - if x != nil { - return x.UserDefinedFieldGroupMax + if x != nil && x.UserDefinedFieldGroupMax != nil { + return *x.UserDefinedFieldGroupMax } return 0 } -func (x *AclTableAttribute) GetFieldAclRangeType() *AclRangeTypeList { +func (x *AclTableAttribute) GetFieldAclRangeType() []AclRangeType { if x != nil { return x.FieldAclRangeType } @@ -16050,27 +15910,27 @@ func (x *AclTableAttribute) GetFieldAclRangeType() *AclRangeTypeList { } func (x *AclTableAttribute) GetFieldIpv6NextHeader() bool { - if x != nil { - return x.FieldIpv6NextHeader + if x != nil && x.FieldIpv6NextHeader != nil { + return *x.FieldIpv6NextHeader } return false } func (x *AclTableAttribute) GetFieldGreKey() bool { - if x != nil { - return x.FieldGreKey + if x != nil && x.FieldGreKey != nil { + return *x.FieldGreKey } return false } func (x *AclTableAttribute) GetFieldTamIntType() bool { - if x != nil { - return x.FieldTamIntType + if x != nil && x.FieldTamIntType != nil { + return *x.FieldTamIntType } return false } -func (x *AclTableAttribute) GetEntryList() *Uint64List { +func (x *AclTableAttribute) GetEntryList() []uint64 { if x != nil { return x.EntryList } @@ -16078,15 +15938,15 @@ func (x *AclTableAttribute) GetEntryList() *Uint64List { } func (x *AclTableAttribute) GetAvailableAclEntry() uint32 { - if x != nil { - return x.AvailableAclEntry + if x != nil && x.AvailableAclEntry != nil { + return *x.AvailableAclEntry } return 0 } func (x *AclTableAttribute) GetAvailableAclCounter() uint32 { - if x != nil { - return x.AvailableAclCounter + if x != nil && x.AvailableAclCounter != nil { + return *x.AvailableAclCounter } return 0 } @@ -16096,16 +15956,16 @@ type AclTableGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AclStage AclStage `protobuf:"varint,1,opt,name=acl_stage,json=aclStage,proto3,enum=lemming.dataplane.sai.AclStage" json:"acl_stage,omitempty"` - AclBindPointTypeList *AclBindPointTypeList `protobuf:"bytes,2,opt,name=acl_bind_point_type_list,json=aclBindPointTypeList,proto3" json:"acl_bind_point_type_list,omitempty"` - Type AclTableGroupType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.AclTableGroupType" json:"type,omitempty"` - MemberList *Uint64List `protobuf:"bytes,4,opt,name=member_list,json=memberList,proto3" json:"member_list,omitempty"` + AclStage *AclStage `protobuf:"varint,1,opt,name=acl_stage,json=aclStage,proto3,enum=lemming.dataplane.sai.AclStage,oneof" json:"acl_stage,omitempty"` + AclBindPointTypeList []AclBindPointType `protobuf:"varint,2,rep,packed,name=acl_bind_point_type_list,json=aclBindPointTypeList,proto3,enum=lemming.dataplane.sai.AclBindPointType" json:"acl_bind_point_type_list,omitempty"` + Type *AclTableGroupType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.AclTableGroupType,oneof" json:"type,omitempty"` + MemberList []uint64 `protobuf:"varint,4,rep,packed,name=member_list,json=memberList,proto3" json:"member_list,omitempty"` } func (x *AclTableGroupAttribute) Reset() { *x = AclTableGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[38] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16118,7 +15978,7 @@ func (x *AclTableGroupAttribute) String() string { func (*AclTableGroupAttribute) ProtoMessage() {} func (x *AclTableGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[38] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16131,17 +15991,17 @@ func (x *AclTableGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use AclTableGroupAttribute.ProtoReflect.Descriptor instead. func (*AclTableGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{38} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{35} } func (x *AclTableGroupAttribute) GetAclStage() AclStage { - if x != nil { - return x.AclStage + if x != nil && x.AclStage != nil { + return *x.AclStage } return AclStage_ACL_STAGE_UNSPECIFIED } -func (x *AclTableGroupAttribute) GetAclBindPointTypeList() *AclBindPointTypeList { +func (x *AclTableGroupAttribute) GetAclBindPointTypeList() []AclBindPointType { if x != nil { return x.AclBindPointTypeList } @@ -16149,13 +16009,13 @@ func (x *AclTableGroupAttribute) GetAclBindPointTypeList() *AclBindPointTypeList } func (x *AclTableGroupAttribute) GetType() AclTableGroupType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return AclTableGroupType_ACL_TABLE_GROUP_TYPE_UNSPECIFIED } -func (x *AclTableGroupAttribute) GetMemberList() *Uint64List { +func (x *AclTableGroupAttribute) GetMemberList() []uint64 { if x != nil { return x.MemberList } @@ -16167,15 +16027,15 @@ type AclTableGroupMemberAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AclTableGroupId uint64 `protobuf:"varint,1,opt,name=acl_table_group_id,json=aclTableGroupId,proto3" json:"acl_table_group_id,omitempty"` - AclTableId uint64 `protobuf:"varint,2,opt,name=acl_table_id,json=aclTableId,proto3" json:"acl_table_id,omitempty"` - Priority uint32 `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"` + AclTableGroupId *uint64 `protobuf:"varint,1,opt,name=acl_table_group_id,json=aclTableGroupId,proto3,oneof" json:"acl_table_group_id,omitempty"` + AclTableId *uint64 `protobuf:"varint,2,opt,name=acl_table_id,json=aclTableId,proto3,oneof" json:"acl_table_id,omitempty"` + Priority *uint32 `protobuf:"varint,3,opt,name=priority,proto3,oneof" json:"priority,omitempty"` } func (x *AclTableGroupMemberAttribute) Reset() { *x = AclTableGroupMemberAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[39] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16188,7 +16048,7 @@ func (x *AclTableGroupMemberAttribute) String() string { func (*AclTableGroupMemberAttribute) ProtoMessage() {} func (x *AclTableGroupMemberAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[39] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16201,26 +16061,26 @@ func (x *AclTableGroupMemberAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use AclTableGroupMemberAttribute.ProtoReflect.Descriptor instead. func (*AclTableGroupMemberAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{39} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{36} } func (x *AclTableGroupMemberAttribute) GetAclTableGroupId() uint64 { - if x != nil { - return x.AclTableGroupId + if x != nil && x.AclTableGroupId != nil { + return *x.AclTableGroupId } return 0 } func (x *AclTableGroupMemberAttribute) GetAclTableId() uint64 { - if x != nil { - return x.AclTableId + if x != nil && x.AclTableId != nil { + return *x.AclTableId } return 0 } func (x *AclTableGroupMemberAttribute) GetPriority() uint32 { - if x != nil { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } @@ -16230,52 +16090,52 @@ type BfdSessionAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type BfdSessionType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.BfdSessionType" json:"type,omitempty"` - HwLookupValid bool `protobuf:"varint,2,opt,name=hw_lookup_valid,json=hwLookupValid,proto3" json:"hw_lookup_valid,omitempty"` - VirtualRouter uint64 `protobuf:"varint,3,opt,name=virtual_router,json=virtualRouter,proto3" json:"virtual_router,omitempty"` - Port uint64 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"` - LocalDiscriminator uint32 `protobuf:"varint,5,opt,name=local_discriminator,json=localDiscriminator,proto3" json:"local_discriminator,omitempty"` - RemoteDiscriminator uint32 `protobuf:"varint,6,opt,name=remote_discriminator,json=remoteDiscriminator,proto3" json:"remote_discriminator,omitempty"` - UdpSrcPort uint32 `protobuf:"varint,7,opt,name=udp_src_port,json=udpSrcPort,proto3" json:"udp_src_port,omitempty"` - Tc uint32 `protobuf:"varint,8,opt,name=tc,proto3" json:"tc,omitempty"` - VlanTpid uint32 `protobuf:"varint,9,opt,name=vlan_tpid,json=vlanTpid,proto3" json:"vlan_tpid,omitempty"` - VlanId uint32 `protobuf:"varint,10,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - VlanPri uint32 `protobuf:"varint,11,opt,name=vlan_pri,json=vlanPri,proto3" json:"vlan_pri,omitempty"` - VlanCfi uint32 `protobuf:"varint,12,opt,name=vlan_cfi,json=vlanCfi,proto3" json:"vlan_cfi,omitempty"` - VlanHeaderValid bool `protobuf:"varint,13,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3" json:"vlan_header_valid,omitempty"` - BfdEncapsulationType BfdEncapsulationType `protobuf:"varint,14,opt,name=bfd_encapsulation_type,json=bfdEncapsulationType,proto3,enum=lemming.dataplane.sai.BfdEncapsulationType" json:"bfd_encapsulation_type,omitempty"` - IphdrVersion uint32 `protobuf:"varint,15,opt,name=iphdr_version,json=iphdrVersion,proto3" json:"iphdr_version,omitempty"` - Tos uint32 `protobuf:"varint,16,opt,name=tos,proto3" json:"tos,omitempty"` - Ttl uint32 `protobuf:"varint,17,opt,name=ttl,proto3" json:"ttl,omitempty"` - SrcIpAddress []byte `protobuf:"bytes,18,opt,name=src_ip_address,json=srcIpAddress,proto3" json:"src_ip_address,omitempty"` - DstIpAddress []byte `protobuf:"bytes,19,opt,name=dst_ip_address,json=dstIpAddress,proto3" json:"dst_ip_address,omitempty"` - TunnelTos uint32 `protobuf:"varint,20,opt,name=tunnel_tos,json=tunnelTos,proto3" json:"tunnel_tos,omitempty"` - TunnelTtl uint32 `protobuf:"varint,21,opt,name=tunnel_ttl,json=tunnelTtl,proto3" json:"tunnel_ttl,omitempty"` - TunnelSrcIpAddress []byte `protobuf:"bytes,22,opt,name=tunnel_src_ip_address,json=tunnelSrcIpAddress,proto3" json:"tunnel_src_ip_address,omitempty"` - TunnelDstIpAddress []byte `protobuf:"bytes,23,opt,name=tunnel_dst_ip_address,json=tunnelDstIpAddress,proto3" json:"tunnel_dst_ip_address,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,24,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - DstMacAddress []byte `protobuf:"bytes,25,opt,name=dst_mac_address,json=dstMacAddress,proto3" json:"dst_mac_address,omitempty"` - EchoEnable bool `protobuf:"varint,26,opt,name=echo_enable,json=echoEnable,proto3" json:"echo_enable,omitempty"` - Multihop bool `protobuf:"varint,27,opt,name=multihop,proto3" json:"multihop,omitempty"` - Cbit bool `protobuf:"varint,28,opt,name=cbit,proto3" json:"cbit,omitempty"` - MinTx uint32 `protobuf:"varint,29,opt,name=min_tx,json=minTx,proto3" json:"min_tx,omitempty"` - MinRx uint32 `protobuf:"varint,30,opt,name=min_rx,json=minRx,proto3" json:"min_rx,omitempty"` - Multiplier uint32 `protobuf:"varint,31,opt,name=multiplier,proto3" json:"multiplier,omitempty"` - RemoteMinTx uint32 `protobuf:"varint,32,opt,name=remote_min_tx,json=remoteMinTx,proto3" json:"remote_min_tx,omitempty"` - RemoteMinRx uint32 `protobuf:"varint,33,opt,name=remote_min_rx,json=remoteMinRx,proto3" json:"remote_min_rx,omitempty"` - State BfdSessionState `protobuf:"varint,34,opt,name=state,proto3,enum=lemming.dataplane.sai.BfdSessionState" json:"state,omitempty"` - OffloadType BfdSessionOffloadType `protobuf:"varint,35,opt,name=offload_type,json=offloadType,proto3,enum=lemming.dataplane.sai.BfdSessionOffloadType" json:"offload_type,omitempty"` - NegotiatedTx uint32 `protobuf:"varint,36,opt,name=negotiated_tx,json=negotiatedTx,proto3" json:"negotiated_tx,omitempty"` - NegotiatedRx uint32 `protobuf:"varint,37,opt,name=negotiated_rx,json=negotiatedRx,proto3" json:"negotiated_rx,omitempty"` - LocalDiag uint32 `protobuf:"varint,38,opt,name=local_diag,json=localDiag,proto3" json:"local_diag,omitempty"` - RemoteDiag uint32 `protobuf:"varint,39,opt,name=remote_diag,json=remoteDiag,proto3" json:"remote_diag,omitempty"` - RemoteMultiplier uint32 `protobuf:"varint,40,opt,name=remote_multiplier,json=remoteMultiplier,proto3" json:"remote_multiplier,omitempty"` + Type *BfdSessionType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.BfdSessionType,oneof" json:"type,omitempty"` + HwLookupValid *bool `protobuf:"varint,2,opt,name=hw_lookup_valid,json=hwLookupValid,proto3,oneof" json:"hw_lookup_valid,omitempty"` + VirtualRouter *uint64 `protobuf:"varint,3,opt,name=virtual_router,json=virtualRouter,proto3,oneof" json:"virtual_router,omitempty"` + Port *uint64 `protobuf:"varint,4,opt,name=port,proto3,oneof" json:"port,omitempty"` + LocalDiscriminator *uint32 `protobuf:"varint,5,opt,name=local_discriminator,json=localDiscriminator,proto3,oneof" json:"local_discriminator,omitempty"` + RemoteDiscriminator *uint32 `protobuf:"varint,6,opt,name=remote_discriminator,json=remoteDiscriminator,proto3,oneof" json:"remote_discriminator,omitempty"` + UdpSrcPort *uint32 `protobuf:"varint,7,opt,name=udp_src_port,json=udpSrcPort,proto3,oneof" json:"udp_src_port,omitempty"` + Tc *uint32 `protobuf:"varint,8,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + VlanTpid *uint32 `protobuf:"varint,9,opt,name=vlan_tpid,json=vlanTpid,proto3,oneof" json:"vlan_tpid,omitempty"` + VlanId *uint32 `protobuf:"varint,10,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + VlanPri *uint32 `protobuf:"varint,11,opt,name=vlan_pri,json=vlanPri,proto3,oneof" json:"vlan_pri,omitempty"` + VlanCfi *uint32 `protobuf:"varint,12,opt,name=vlan_cfi,json=vlanCfi,proto3,oneof" json:"vlan_cfi,omitempty"` + VlanHeaderValid *bool `protobuf:"varint,13,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3,oneof" json:"vlan_header_valid,omitempty"` + BfdEncapsulationType *BfdEncapsulationType `protobuf:"varint,14,opt,name=bfd_encapsulation_type,json=bfdEncapsulationType,proto3,enum=lemming.dataplane.sai.BfdEncapsulationType,oneof" json:"bfd_encapsulation_type,omitempty"` + IphdrVersion *uint32 `protobuf:"varint,15,opt,name=iphdr_version,json=iphdrVersion,proto3,oneof" json:"iphdr_version,omitempty"` + Tos *uint32 `protobuf:"varint,16,opt,name=tos,proto3,oneof" json:"tos,omitempty"` + Ttl *uint32 `protobuf:"varint,17,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + SrcIpAddress []byte `protobuf:"bytes,18,opt,name=src_ip_address,json=srcIpAddress,proto3,oneof" json:"src_ip_address,omitempty"` + DstIpAddress []byte `protobuf:"bytes,19,opt,name=dst_ip_address,json=dstIpAddress,proto3,oneof" json:"dst_ip_address,omitempty"` + TunnelTos *uint32 `protobuf:"varint,20,opt,name=tunnel_tos,json=tunnelTos,proto3,oneof" json:"tunnel_tos,omitempty"` + TunnelTtl *uint32 `protobuf:"varint,21,opt,name=tunnel_ttl,json=tunnelTtl,proto3,oneof" json:"tunnel_ttl,omitempty"` + TunnelSrcIpAddress []byte `protobuf:"bytes,22,opt,name=tunnel_src_ip_address,json=tunnelSrcIpAddress,proto3,oneof" json:"tunnel_src_ip_address,omitempty"` + TunnelDstIpAddress []byte `protobuf:"bytes,23,opt,name=tunnel_dst_ip_address,json=tunnelDstIpAddress,proto3,oneof" json:"tunnel_dst_ip_address,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,24,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + DstMacAddress []byte `protobuf:"bytes,25,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + EchoEnable *bool `protobuf:"varint,26,opt,name=echo_enable,json=echoEnable,proto3,oneof" json:"echo_enable,omitempty"` + Multihop *bool `protobuf:"varint,27,opt,name=multihop,proto3,oneof" json:"multihop,omitempty"` + Cbit *bool `protobuf:"varint,28,opt,name=cbit,proto3,oneof" json:"cbit,omitempty"` + MinTx *uint32 `protobuf:"varint,29,opt,name=min_tx,json=minTx,proto3,oneof" json:"min_tx,omitempty"` + MinRx *uint32 `protobuf:"varint,30,opt,name=min_rx,json=minRx,proto3,oneof" json:"min_rx,omitempty"` + Multiplier *uint32 `protobuf:"varint,31,opt,name=multiplier,proto3,oneof" json:"multiplier,omitempty"` + RemoteMinTx *uint32 `protobuf:"varint,32,opt,name=remote_min_tx,json=remoteMinTx,proto3,oneof" json:"remote_min_tx,omitempty"` + RemoteMinRx *uint32 `protobuf:"varint,33,opt,name=remote_min_rx,json=remoteMinRx,proto3,oneof" json:"remote_min_rx,omitempty"` + State *BfdSessionState `protobuf:"varint,34,opt,name=state,proto3,enum=lemming.dataplane.sai.BfdSessionState,oneof" json:"state,omitempty"` + OffloadType *BfdSessionOffloadType `protobuf:"varint,35,opt,name=offload_type,json=offloadType,proto3,enum=lemming.dataplane.sai.BfdSessionOffloadType,oneof" json:"offload_type,omitempty"` + NegotiatedTx *uint32 `protobuf:"varint,36,opt,name=negotiated_tx,json=negotiatedTx,proto3,oneof" json:"negotiated_tx,omitempty"` + NegotiatedRx *uint32 `protobuf:"varint,37,opt,name=negotiated_rx,json=negotiatedRx,proto3,oneof" json:"negotiated_rx,omitempty"` + LocalDiag *uint32 `protobuf:"varint,38,opt,name=local_diag,json=localDiag,proto3,oneof" json:"local_diag,omitempty"` + RemoteDiag *uint32 `protobuf:"varint,39,opt,name=remote_diag,json=remoteDiag,proto3,oneof" json:"remote_diag,omitempty"` + RemoteMultiplier *uint32 `protobuf:"varint,40,opt,name=remote_multiplier,json=remoteMultiplier,proto3,oneof" json:"remote_multiplier,omitempty"` } func (x *BfdSessionAttribute) Reset() { *x = BfdSessionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[40] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16288,7 +16148,7 @@ func (x *BfdSessionAttribute) String() string { func (*BfdSessionAttribute) ProtoMessage() {} func (x *BfdSessionAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[40] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16301,124 +16161,124 @@ func (x *BfdSessionAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use BfdSessionAttribute.ProtoReflect.Descriptor instead. func (*BfdSessionAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{40} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{37} } func (x *BfdSessionAttribute) GetType() BfdSessionType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return BfdSessionType_BFD_SESSION_TYPE_UNSPECIFIED } func (x *BfdSessionAttribute) GetHwLookupValid() bool { - if x != nil { - return x.HwLookupValid + if x != nil && x.HwLookupValid != nil { + return *x.HwLookupValid } return false } func (x *BfdSessionAttribute) GetVirtualRouter() uint64 { - if x != nil { - return x.VirtualRouter + if x != nil && x.VirtualRouter != nil { + return *x.VirtualRouter } return 0 } func (x *BfdSessionAttribute) GetPort() uint64 { - if x != nil { - return x.Port + if x != nil && x.Port != nil { + return *x.Port } return 0 } func (x *BfdSessionAttribute) GetLocalDiscriminator() uint32 { - if x != nil { - return x.LocalDiscriminator + if x != nil && x.LocalDiscriminator != nil { + return *x.LocalDiscriminator } return 0 } func (x *BfdSessionAttribute) GetRemoteDiscriminator() uint32 { - if x != nil { - return x.RemoteDiscriminator + if x != nil && x.RemoteDiscriminator != nil { + return *x.RemoteDiscriminator } return 0 } func (x *BfdSessionAttribute) GetUdpSrcPort() uint32 { - if x != nil { - return x.UdpSrcPort + if x != nil && x.UdpSrcPort != nil { + return *x.UdpSrcPort } return 0 } func (x *BfdSessionAttribute) GetTc() uint32 { - if x != nil { - return x.Tc + if x != nil && x.Tc != nil { + return *x.Tc } return 0 } func (x *BfdSessionAttribute) GetVlanTpid() uint32 { - if x != nil { - return x.VlanTpid + if x != nil && x.VlanTpid != nil { + return *x.VlanTpid } return 0 } func (x *BfdSessionAttribute) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *BfdSessionAttribute) GetVlanPri() uint32 { - if x != nil { - return x.VlanPri + if x != nil && x.VlanPri != nil { + return *x.VlanPri } return 0 } func (x *BfdSessionAttribute) GetVlanCfi() uint32 { - if x != nil { - return x.VlanCfi + if x != nil && x.VlanCfi != nil { + return *x.VlanCfi } return 0 } func (x *BfdSessionAttribute) GetVlanHeaderValid() bool { - if x != nil { - return x.VlanHeaderValid + if x != nil && x.VlanHeaderValid != nil { + return *x.VlanHeaderValid } return false } func (x *BfdSessionAttribute) GetBfdEncapsulationType() BfdEncapsulationType { - if x != nil { - return x.BfdEncapsulationType + if x != nil && x.BfdEncapsulationType != nil { + return *x.BfdEncapsulationType } return BfdEncapsulationType_BFD_ENCAPSULATION_TYPE_UNSPECIFIED } func (x *BfdSessionAttribute) GetIphdrVersion() uint32 { - if x != nil { - return x.IphdrVersion + if x != nil && x.IphdrVersion != nil { + return *x.IphdrVersion } return 0 } func (x *BfdSessionAttribute) GetTos() uint32 { - if x != nil { - return x.Tos + if x != nil && x.Tos != nil { + return *x.Tos } return 0 } func (x *BfdSessionAttribute) GetTtl() uint32 { - if x != nil { - return x.Ttl + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } @@ -16438,15 +16298,15 @@ func (x *BfdSessionAttribute) GetDstIpAddress() []byte { } func (x *BfdSessionAttribute) GetTunnelTos() uint32 { - if x != nil { - return x.TunnelTos + if x != nil && x.TunnelTos != nil { + return *x.TunnelTos } return 0 } func (x *BfdSessionAttribute) GetTunnelTtl() uint32 { - if x != nil { - return x.TunnelTtl + if x != nil && x.TunnelTtl != nil { + return *x.TunnelTtl } return 0 } @@ -16480,106 +16340,106 @@ func (x *BfdSessionAttribute) GetDstMacAddress() []byte { } func (x *BfdSessionAttribute) GetEchoEnable() bool { - if x != nil { - return x.EchoEnable + if x != nil && x.EchoEnable != nil { + return *x.EchoEnable } return false } func (x *BfdSessionAttribute) GetMultihop() bool { - if x != nil { - return x.Multihop + if x != nil && x.Multihop != nil { + return *x.Multihop } return false } func (x *BfdSessionAttribute) GetCbit() bool { - if x != nil { - return x.Cbit + if x != nil && x.Cbit != nil { + return *x.Cbit } return false } func (x *BfdSessionAttribute) GetMinTx() uint32 { - if x != nil { - return x.MinTx + if x != nil && x.MinTx != nil { + return *x.MinTx } return 0 } func (x *BfdSessionAttribute) GetMinRx() uint32 { - if x != nil { - return x.MinRx + if x != nil && x.MinRx != nil { + return *x.MinRx } return 0 } func (x *BfdSessionAttribute) GetMultiplier() uint32 { - if x != nil { - return x.Multiplier + if x != nil && x.Multiplier != nil { + return *x.Multiplier } return 0 } func (x *BfdSessionAttribute) GetRemoteMinTx() uint32 { - if x != nil { - return x.RemoteMinTx + if x != nil && x.RemoteMinTx != nil { + return *x.RemoteMinTx } return 0 } func (x *BfdSessionAttribute) GetRemoteMinRx() uint32 { - if x != nil { - return x.RemoteMinRx + if x != nil && x.RemoteMinRx != nil { + return *x.RemoteMinRx } return 0 } func (x *BfdSessionAttribute) GetState() BfdSessionState { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return BfdSessionState_BFD_SESSION_STATE_UNSPECIFIED } func (x *BfdSessionAttribute) GetOffloadType() BfdSessionOffloadType { - if x != nil { - return x.OffloadType + if x != nil && x.OffloadType != nil { + return *x.OffloadType } return BfdSessionOffloadType_BFD_SESSION_OFFLOAD_TYPE_UNSPECIFIED } func (x *BfdSessionAttribute) GetNegotiatedTx() uint32 { - if x != nil { - return x.NegotiatedTx + if x != nil && x.NegotiatedTx != nil { + return *x.NegotiatedTx } return 0 } func (x *BfdSessionAttribute) GetNegotiatedRx() uint32 { - if x != nil { - return x.NegotiatedRx + if x != nil && x.NegotiatedRx != nil { + return *x.NegotiatedRx } return 0 } func (x *BfdSessionAttribute) GetLocalDiag() uint32 { - if x != nil { - return x.LocalDiag + if x != nil && x.LocalDiag != nil { + return *x.LocalDiag } return 0 } func (x *BfdSessionAttribute) GetRemoteDiag() uint32 { - if x != nil { - return x.RemoteDiag + if x != nil && x.RemoteDiag != nil { + return *x.RemoteDiag } return 0 } func (x *BfdSessionAttribute) GetRemoteMultiplier() uint32 { - if x != nil { - return x.RemoteMultiplier + if x != nil && x.RemoteMultiplier != nil { + return *x.RemoteMultiplier } return 0 } @@ -16589,22 +16449,22 @@ type BridgeAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type BridgeType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.BridgeType" json:"type,omitempty"` - PortList *Uint64List `protobuf:"bytes,2,opt,name=port_list,json=portList,proto3" json:"port_list,omitempty"` - MaxLearnedAddresses uint32 `protobuf:"varint,3,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3" json:"max_learned_addresses,omitempty"` - LearnDisable bool `protobuf:"varint,4,opt,name=learn_disable,json=learnDisable,proto3" json:"learn_disable,omitempty"` - UnknownUnicastFloodControlType BridgeFloodControlType `protobuf:"varint,5,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType" json:"unknown_unicast_flood_control_type,omitempty"` - UnknownUnicastFloodGroup uint64 `protobuf:"varint,6,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3" json:"unknown_unicast_flood_group,omitempty"` - UnknownMulticastFloodControlType BridgeFloodControlType `protobuf:"varint,7,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType" json:"unknown_multicast_flood_control_type,omitempty"` - UnknownMulticastFloodGroup uint64 `protobuf:"varint,8,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3" json:"unknown_multicast_flood_group,omitempty"` - BroadcastFloodControlType BridgeFloodControlType `protobuf:"varint,9,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType" json:"broadcast_flood_control_type,omitempty"` - BroadcastFloodGroup uint64 `protobuf:"varint,10,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3" json:"broadcast_flood_group,omitempty"` + Type *BridgeType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.BridgeType,oneof" json:"type,omitempty"` + PortList []uint64 `protobuf:"varint,2,rep,packed,name=port_list,json=portList,proto3" json:"port_list,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,3,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + LearnDisable *bool `protobuf:"varint,4,opt,name=learn_disable,json=learnDisable,proto3,oneof" json:"learn_disable,omitempty"` + UnknownUnicastFloodControlType *BridgeFloodControlType `protobuf:"varint,5,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"unknown_unicast_flood_control_type,omitempty"` + UnknownUnicastFloodGroup *uint64 `protobuf:"varint,6,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3,oneof" json:"unknown_unicast_flood_group,omitempty"` + UnknownMulticastFloodControlType *BridgeFloodControlType `protobuf:"varint,7,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"unknown_multicast_flood_control_type,omitempty"` + UnknownMulticastFloodGroup *uint64 `protobuf:"varint,8,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3,oneof" json:"unknown_multicast_flood_group,omitempty"` + BroadcastFloodControlType *BridgeFloodControlType `protobuf:"varint,9,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.BridgeFloodControlType,oneof" json:"broadcast_flood_control_type,omitempty"` + BroadcastFloodGroup *uint64 `protobuf:"varint,10,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3,oneof" json:"broadcast_flood_group,omitempty"` } func (x *BridgeAttribute) Reset() { *x = BridgeAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[41] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16617,7 +16477,7 @@ func (x *BridgeAttribute) String() string { func (*BridgeAttribute) ProtoMessage() {} func (x *BridgeAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[41] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16630,17 +16490,17 @@ func (x *BridgeAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use BridgeAttribute.ProtoReflect.Descriptor instead. func (*BridgeAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{41} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{38} } func (x *BridgeAttribute) GetType() BridgeType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return BridgeType_BRIDGE_TYPE_UNSPECIFIED } -func (x *BridgeAttribute) GetPortList() *Uint64List { +func (x *BridgeAttribute) GetPortList() []uint64 { if x != nil { return x.PortList } @@ -16648,57 +16508,57 @@ func (x *BridgeAttribute) GetPortList() *Uint64List { } func (x *BridgeAttribute) GetMaxLearnedAddresses() uint32 { - if x != nil { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *BridgeAttribute) GetLearnDisable() bool { - if x != nil { - return x.LearnDisable + if x != nil && x.LearnDisable != nil { + return *x.LearnDisable } return false } func (x *BridgeAttribute) GetUnknownUnicastFloodControlType() BridgeFloodControlType { - if x != nil { - return x.UnknownUnicastFloodControlType + if x != nil && x.UnknownUnicastFloodControlType != nil { + return *x.UnknownUnicastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *BridgeAttribute) GetUnknownUnicastFloodGroup() uint64 { - if x != nil { - return x.UnknownUnicastFloodGroup + if x != nil && x.UnknownUnicastFloodGroup != nil { + return *x.UnknownUnicastFloodGroup } return 0 } func (x *BridgeAttribute) GetUnknownMulticastFloodControlType() BridgeFloodControlType { - if x != nil { - return x.UnknownMulticastFloodControlType + if x != nil && x.UnknownMulticastFloodControlType != nil { + return *x.UnknownMulticastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *BridgeAttribute) GetUnknownMulticastFloodGroup() uint64 { - if x != nil { - return x.UnknownMulticastFloodGroup + if x != nil && x.UnknownMulticastFloodGroup != nil { + return *x.UnknownMulticastFloodGroup } return 0 } func (x *BridgeAttribute) GetBroadcastFloodControlType() BridgeFloodControlType { - if x != nil { - return x.BroadcastFloodControlType + if x != nil && x.BroadcastFloodControlType != nil { + return *x.BroadcastFloodControlType } return BridgeFloodControlType_BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *BridgeAttribute) GetBroadcastFloodGroup() uint64 { - if x != nil { - return x.BroadcastFloodGroup + if x != nil && x.BroadcastFloodGroup != nil { + return *x.BroadcastFloodGroup } return 0 } @@ -16708,26 +16568,26 @@ type BridgePortAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type BridgePortType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.BridgePortType" json:"type,omitempty"` - PortId uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - TaggingMode BridgePortTaggingMode `protobuf:"varint,3,opt,name=tagging_mode,json=taggingMode,proto3,enum=lemming.dataplane.sai.BridgePortTaggingMode" json:"tagging_mode,omitempty"` - VlanId uint32 `protobuf:"varint,4,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - RifId uint64 `protobuf:"varint,5,opt,name=rif_id,json=rifId,proto3" json:"rif_id,omitempty"` - TunnelId uint64 `protobuf:"varint,6,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"` - BridgeId uint64 `protobuf:"varint,7,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - FdbLearningMode BridgePortFdbLearningMode `protobuf:"varint,8,opt,name=fdb_learning_mode,json=fdbLearningMode,proto3,enum=lemming.dataplane.sai.BridgePortFdbLearningMode" json:"fdb_learning_mode,omitempty"` - MaxLearnedAddresses uint32 `protobuf:"varint,9,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3" json:"max_learned_addresses,omitempty"` - FdbLearningLimitViolationPacketAction PacketAction `protobuf:"varint,10,opt,name=fdb_learning_limit_violation_packet_action,json=fdbLearningLimitViolationPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"fdb_learning_limit_violation_packet_action,omitempty"` - AdminState bool `protobuf:"varint,11,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - IngressFiltering bool `protobuf:"varint,12,opt,name=ingress_filtering,json=ingressFiltering,proto3" json:"ingress_filtering,omitempty"` - EgressFiltering bool `protobuf:"varint,13,opt,name=egress_filtering,json=egressFiltering,proto3" json:"egress_filtering,omitempty"` - IsolationGroup uint64 `protobuf:"varint,14,opt,name=isolation_group,json=isolationGroup,proto3" json:"isolation_group,omitempty"` + Type *BridgePortType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.BridgePortType,oneof" json:"type,omitempty"` + PortId *uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + TaggingMode *BridgePortTaggingMode `protobuf:"varint,3,opt,name=tagging_mode,json=taggingMode,proto3,enum=lemming.dataplane.sai.BridgePortTaggingMode,oneof" json:"tagging_mode,omitempty"` + VlanId *uint32 `protobuf:"varint,4,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + RifId *uint64 `protobuf:"varint,5,opt,name=rif_id,json=rifId,proto3,oneof" json:"rif_id,omitempty"` + TunnelId *uint64 `protobuf:"varint,6,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + BridgeId *uint64 `protobuf:"varint,7,opt,name=bridge_id,json=bridgeId,proto3,oneof" json:"bridge_id,omitempty"` + FdbLearningMode *BridgePortFdbLearningMode `protobuf:"varint,8,opt,name=fdb_learning_mode,json=fdbLearningMode,proto3,enum=lemming.dataplane.sai.BridgePortFdbLearningMode,oneof" json:"fdb_learning_mode,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,9,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + FdbLearningLimitViolationPacketAction *PacketAction `protobuf:"varint,10,opt,name=fdb_learning_limit_violation_packet_action,json=fdbLearningLimitViolationPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_learning_limit_violation_packet_action,omitempty"` + AdminState *bool `protobuf:"varint,11,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + IngressFiltering *bool `protobuf:"varint,12,opt,name=ingress_filtering,json=ingressFiltering,proto3,oneof" json:"ingress_filtering,omitempty"` + EgressFiltering *bool `protobuf:"varint,13,opt,name=egress_filtering,json=egressFiltering,proto3,oneof" json:"egress_filtering,omitempty"` + IsolationGroup *uint64 `protobuf:"varint,14,opt,name=isolation_group,json=isolationGroup,proto3,oneof" json:"isolation_group,omitempty"` } func (x *BridgePortAttribute) Reset() { *x = BridgePortAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[42] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16740,7 +16600,7 @@ func (x *BridgePortAttribute) String() string { func (*BridgePortAttribute) ProtoMessage() {} func (x *BridgePortAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[42] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16753,103 +16613,103 @@ func (x *BridgePortAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use BridgePortAttribute.ProtoReflect.Descriptor instead. func (*BridgePortAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{42} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{39} } func (x *BridgePortAttribute) GetType() BridgePortType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return BridgePortType_BRIDGE_PORT_TYPE_UNSPECIFIED } func (x *BridgePortAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *BridgePortAttribute) GetTaggingMode() BridgePortTaggingMode { - if x != nil { - return x.TaggingMode + if x != nil && x.TaggingMode != nil { + return *x.TaggingMode } return BridgePortTaggingMode_BRIDGE_PORT_TAGGING_MODE_UNSPECIFIED } func (x *BridgePortAttribute) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *BridgePortAttribute) GetRifId() uint64 { - if x != nil { - return x.RifId + if x != nil && x.RifId != nil { + return *x.RifId } return 0 } func (x *BridgePortAttribute) GetTunnelId() uint64 { - if x != nil { - return x.TunnelId + if x != nil && x.TunnelId != nil { + return *x.TunnelId } return 0 } func (x *BridgePortAttribute) GetBridgeId() uint64 { - if x != nil { - return x.BridgeId + if x != nil && x.BridgeId != nil { + return *x.BridgeId } return 0 } func (x *BridgePortAttribute) GetFdbLearningMode() BridgePortFdbLearningMode { - if x != nil { - return x.FdbLearningMode + if x != nil && x.FdbLearningMode != nil { + return *x.FdbLearningMode } return BridgePortFdbLearningMode_BRIDGE_PORT_FDB_LEARNING_MODE_UNSPECIFIED } func (x *BridgePortAttribute) GetMaxLearnedAddresses() uint32 { - if x != nil { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *BridgePortAttribute) GetFdbLearningLimitViolationPacketAction() PacketAction { - if x != nil { - return x.FdbLearningLimitViolationPacketAction + if x != nil && x.FdbLearningLimitViolationPacketAction != nil { + return *x.FdbLearningLimitViolationPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *BridgePortAttribute) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *BridgePortAttribute) GetIngressFiltering() bool { - if x != nil { - return x.IngressFiltering + if x != nil && x.IngressFiltering != nil { + return *x.IngressFiltering } return false } func (x *BridgePortAttribute) GetEgressFiltering() bool { - if x != nil { - return x.EgressFiltering + if x != nil && x.EgressFiltering != nil { + return *x.EgressFiltering } return false } func (x *BridgePortAttribute) GetIsolationGroup() uint64 { - if x != nil { - return x.IsolationGroup + if x != nil && x.IsolationGroup != nil { + return *x.IsolationGroup } return 0 } @@ -16859,19 +16719,19 @@ type BufferPoolAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SharedSize uint64 `protobuf:"varint,1,opt,name=shared_size,json=sharedSize,proto3" json:"shared_size,omitempty"` - Type BufferPoolType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BufferPoolType" json:"type,omitempty"` - Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` - ThresholdMode BufferPoolThresholdMode `protobuf:"varint,4,opt,name=threshold_mode,json=thresholdMode,proto3,enum=lemming.dataplane.sai.BufferPoolThresholdMode" json:"threshold_mode,omitempty"` - Tam *Uint64List `protobuf:"bytes,5,opt,name=tam,proto3" json:"tam,omitempty"` - XoffSize uint64 `protobuf:"varint,6,opt,name=xoff_size,json=xoffSize,proto3" json:"xoff_size,omitempty"` - WredProfileId uint64 `protobuf:"varint,7,opt,name=wred_profile_id,json=wredProfileId,proto3" json:"wred_profile_id,omitempty"` + SharedSize *uint64 `protobuf:"varint,1,opt,name=shared_size,json=sharedSize,proto3,oneof" json:"shared_size,omitempty"` + Type *BufferPoolType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.BufferPoolType,oneof" json:"type,omitempty"` + Size *uint64 `protobuf:"varint,3,opt,name=size,proto3,oneof" json:"size,omitempty"` + ThresholdMode *BufferPoolThresholdMode `protobuf:"varint,4,opt,name=threshold_mode,json=thresholdMode,proto3,enum=lemming.dataplane.sai.BufferPoolThresholdMode,oneof" json:"threshold_mode,omitempty"` + Tam []uint64 `protobuf:"varint,5,rep,packed,name=tam,proto3" json:"tam,omitempty"` + XoffSize *uint64 `protobuf:"varint,6,opt,name=xoff_size,json=xoffSize,proto3,oneof" json:"xoff_size,omitempty"` + WredProfileId *uint64 `protobuf:"varint,7,opt,name=wred_profile_id,json=wredProfileId,proto3,oneof" json:"wred_profile_id,omitempty"` } func (x *BufferPoolAttribute) Reset() { *x = BufferPoolAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[43] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16884,7 +16744,7 @@ func (x *BufferPoolAttribute) String() string { func (*BufferPoolAttribute) ProtoMessage() {} func (x *BufferPoolAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[43] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16897,38 +16757,38 @@ func (x *BufferPoolAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use BufferPoolAttribute.ProtoReflect.Descriptor instead. func (*BufferPoolAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{43} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{40} } func (x *BufferPoolAttribute) GetSharedSize() uint64 { - if x != nil { - return x.SharedSize + if x != nil && x.SharedSize != nil { + return *x.SharedSize } return 0 } func (x *BufferPoolAttribute) GetType() BufferPoolType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return BufferPoolType_BUFFER_POOL_TYPE_UNSPECIFIED } func (x *BufferPoolAttribute) GetSize() uint64 { - if x != nil { - return x.Size + if x != nil && x.Size != nil { + return *x.Size } return 0 } func (x *BufferPoolAttribute) GetThresholdMode() BufferPoolThresholdMode { - if x != nil { - return x.ThresholdMode + if x != nil && x.ThresholdMode != nil { + return *x.ThresholdMode } return BufferPoolThresholdMode_BUFFER_POOL_THRESHOLD_MODE_UNSPECIFIED } -func (x *BufferPoolAttribute) GetTam() *Uint64List { +func (x *BufferPoolAttribute) GetTam() []uint64 { if x != nil { return x.Tam } @@ -16936,15 +16796,15 @@ func (x *BufferPoolAttribute) GetTam() *Uint64List { } func (x *BufferPoolAttribute) GetXoffSize() uint64 { - if x != nil { - return x.XoffSize + if x != nil && x.XoffSize != nil { + return *x.XoffSize } return 0 } func (x *BufferPoolAttribute) GetWredProfileId() uint64 { - if x != nil { - return x.WredProfileId + if x != nil && x.WredProfileId != nil { + return *x.WredProfileId } return 0 } @@ -16954,20 +16814,20 @@ type BufferProfileAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PoolId uint64 `protobuf:"varint,1,opt,name=pool_id,json=poolId,proto3" json:"pool_id,omitempty"` - ReservedBufferSize uint64 `protobuf:"varint,2,opt,name=reserved_buffer_size,json=reservedBufferSize,proto3" json:"reserved_buffer_size,omitempty"` - ThresholdMode BufferProfileThresholdMode `protobuf:"varint,3,opt,name=threshold_mode,json=thresholdMode,proto3,enum=lemming.dataplane.sai.BufferProfileThresholdMode" json:"threshold_mode,omitempty"` - SharedDynamicTh int32 `protobuf:"varint,4,opt,name=shared_dynamic_th,json=sharedDynamicTh,proto3" json:"shared_dynamic_th,omitempty"` - SharedStaticTh uint64 `protobuf:"varint,5,opt,name=shared_static_th,json=sharedStaticTh,proto3" json:"shared_static_th,omitempty"` - XoffTh uint64 `protobuf:"varint,6,opt,name=xoff_th,json=xoffTh,proto3" json:"xoff_th,omitempty"` - XonTh uint64 `protobuf:"varint,7,opt,name=xon_th,json=xonTh,proto3" json:"xon_th,omitempty"` - XonOffsetTh uint64 `protobuf:"varint,8,opt,name=xon_offset_th,json=xonOffsetTh,proto3" json:"xon_offset_th,omitempty"` + PoolId *uint64 `protobuf:"varint,1,opt,name=pool_id,json=poolId,proto3,oneof" json:"pool_id,omitempty"` + ReservedBufferSize *uint64 `protobuf:"varint,2,opt,name=reserved_buffer_size,json=reservedBufferSize,proto3,oneof" json:"reserved_buffer_size,omitempty"` + ThresholdMode *BufferProfileThresholdMode `protobuf:"varint,3,opt,name=threshold_mode,json=thresholdMode,proto3,enum=lemming.dataplane.sai.BufferProfileThresholdMode,oneof" json:"threshold_mode,omitempty"` + SharedDynamicTh *int32 `protobuf:"varint,4,opt,name=shared_dynamic_th,json=sharedDynamicTh,proto3,oneof" json:"shared_dynamic_th,omitempty"` + SharedStaticTh *uint64 `protobuf:"varint,5,opt,name=shared_static_th,json=sharedStaticTh,proto3,oneof" json:"shared_static_th,omitempty"` + XoffTh *uint64 `protobuf:"varint,6,opt,name=xoff_th,json=xoffTh,proto3,oneof" json:"xoff_th,omitempty"` + XonTh *uint64 `protobuf:"varint,7,opt,name=xon_th,json=xonTh,proto3,oneof" json:"xon_th,omitempty"` + XonOffsetTh *uint64 `protobuf:"varint,8,opt,name=xon_offset_th,json=xonOffsetTh,proto3,oneof" json:"xon_offset_th,omitempty"` } func (x *BufferProfileAttribute) Reset() { *x = BufferProfileAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[44] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16980,7 +16840,7 @@ func (x *BufferProfileAttribute) String() string { func (*BufferProfileAttribute) ProtoMessage() {} func (x *BufferProfileAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[44] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16993,61 +16853,61 @@ func (x *BufferProfileAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use BufferProfileAttribute.ProtoReflect.Descriptor instead. func (*BufferProfileAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{44} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{41} } func (x *BufferProfileAttribute) GetPoolId() uint64 { - if x != nil { - return x.PoolId + if x != nil && x.PoolId != nil { + return *x.PoolId } return 0 } func (x *BufferProfileAttribute) GetReservedBufferSize() uint64 { - if x != nil { - return x.ReservedBufferSize + if x != nil && x.ReservedBufferSize != nil { + return *x.ReservedBufferSize } return 0 } func (x *BufferProfileAttribute) GetThresholdMode() BufferProfileThresholdMode { - if x != nil { - return x.ThresholdMode + if x != nil && x.ThresholdMode != nil { + return *x.ThresholdMode } return BufferProfileThresholdMode_BUFFER_PROFILE_THRESHOLD_MODE_UNSPECIFIED } func (x *BufferProfileAttribute) GetSharedDynamicTh() int32 { - if x != nil { - return x.SharedDynamicTh + if x != nil && x.SharedDynamicTh != nil { + return *x.SharedDynamicTh } return 0 } func (x *BufferProfileAttribute) GetSharedStaticTh() uint64 { - if x != nil { - return x.SharedStaticTh + if x != nil && x.SharedStaticTh != nil { + return *x.SharedStaticTh } return 0 } func (x *BufferProfileAttribute) GetXoffTh() uint64 { - if x != nil { - return x.XoffTh + if x != nil && x.XoffTh != nil { + return *x.XoffTh } return 0 } func (x *BufferProfileAttribute) GetXonTh() uint64 { - if x != nil { - return x.XonTh + if x != nil && x.XonTh != nil { + return *x.XonTh } return 0 } func (x *BufferProfileAttribute) GetXonOffsetTh() uint64 { - if x != nil { - return x.XonOffsetTh + if x != nil && x.XonOffsetTh != nil { + return *x.XonOffsetTh } return 0 } @@ -17057,13 +16917,13 @@ type CounterAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type CounterType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.CounterType" json:"type,omitempty"` + Type *CounterType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.CounterType,oneof" json:"type,omitempty"` } func (x *CounterAttribute) Reset() { *x = CounterAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[45] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17076,7 +16936,7 @@ func (x *CounterAttribute) String() string { func (*CounterAttribute) ProtoMessage() {} func (x *CounterAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[45] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17089,41 +16949,45 @@ func (x *CounterAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use CounterAttribute.ProtoReflect.Descriptor instead. func (*CounterAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{45} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{42} } func (x *CounterAttribute) GetType() CounterType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return CounterType_COUNTER_TYPE_UNSPECIFIED } -type InDropReasonList struct { +type DebugCounterAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - List []InDropReason `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.InDropReason" json:"list,omitempty"` + Index *uint32 `protobuf:"varint,1,opt,name=index,proto3,oneof" json:"index,omitempty"` + Type *DebugCounterType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.DebugCounterType,oneof" json:"type,omitempty"` + BindMethod *DebugCounterBindMethod `protobuf:"varint,3,opt,name=bind_method,json=bindMethod,proto3,enum=lemming.dataplane.sai.DebugCounterBindMethod,oneof" json:"bind_method,omitempty"` + InDropReasonList []InDropReason `protobuf:"varint,4,rep,packed,name=in_drop_reason_list,json=inDropReasonList,proto3,enum=lemming.dataplane.sai.InDropReason" json:"in_drop_reason_list,omitempty"` + OutDropReasonList []OutDropReason `protobuf:"varint,5,rep,packed,name=out_drop_reason_list,json=outDropReasonList,proto3,enum=lemming.dataplane.sai.OutDropReason" json:"out_drop_reason_list,omitempty"` } -func (x *InDropReasonList) Reset() { - *x = InDropReasonList{} +func (x *DebugCounterAttribute) Reset() { + *x = DebugCounterAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[46] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InDropReasonList) String() string { +func (x *DebugCounterAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InDropReasonList) ProtoMessage() {} +func (*DebugCounterAttribute) ProtoMessage() {} -func (x *InDropReasonList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[46] +func (x *DebugCounterAttribute) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17134,138 +16998,40 @@ func (x *InDropReasonList) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InDropReasonList.ProtoReflect.Descriptor instead. -func (*InDropReasonList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{46} +// Deprecated: Use DebugCounterAttribute.ProtoReflect.Descriptor instead. +func (*DebugCounterAttribute) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{43} } -func (x *InDropReasonList) GetList() []InDropReason { - if x != nil { - return x.List +func (x *DebugCounterAttribute) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index } - return nil -} - -type OutDropReasonList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []OutDropReason `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.OutDropReason" json:"list,omitempty"` -} - -func (x *OutDropReasonList) Reset() { - *x = OutDropReasonList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OutDropReasonList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OutDropReasonList) ProtoMessage() {} - -func (x *OutDropReasonList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use OutDropReasonList.ProtoReflect.Descriptor instead. -func (*OutDropReasonList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{47} -} - -func (x *OutDropReasonList) GetList() []OutDropReason { - if x != nil { - return x.List - } - return nil -} - -type DebugCounterAttribute struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` - Type DebugCounterType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.DebugCounterType" json:"type,omitempty"` - BindMethod DebugCounterBindMethod `protobuf:"varint,3,opt,name=bind_method,json=bindMethod,proto3,enum=lemming.dataplane.sai.DebugCounterBindMethod" json:"bind_method,omitempty"` - InDropReasonList *InDropReasonList `protobuf:"bytes,4,opt,name=in_drop_reason_list,json=inDropReasonList,proto3" json:"in_drop_reason_list,omitempty"` - OutDropReasonList *OutDropReasonList `protobuf:"bytes,5,opt,name=out_drop_reason_list,json=outDropReasonList,proto3" json:"out_drop_reason_list,omitempty"` -} - -func (x *DebugCounterAttribute) Reset() { - *x = DebugCounterAttribute{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DebugCounterAttribute) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DebugCounterAttribute) ProtoMessage() {} - -func (x *DebugCounterAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DebugCounterAttribute.ProtoReflect.Descriptor instead. -func (*DebugCounterAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{48} -} - -func (x *DebugCounterAttribute) GetIndex() uint32 { - if x != nil { - return x.Index - } - return 0 + return 0 } func (x *DebugCounterAttribute) GetType() DebugCounterType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return DebugCounterType_DEBUG_COUNTER_TYPE_UNSPECIFIED } func (x *DebugCounterAttribute) GetBindMethod() DebugCounterBindMethod { - if x != nil { - return x.BindMethod + if x != nil && x.BindMethod != nil { + return *x.BindMethod } return DebugCounterBindMethod_DEBUG_COUNTER_BIND_METHOD_UNSPECIFIED } -func (x *DebugCounterAttribute) GetInDropReasonList() *InDropReasonList { +func (x *DebugCounterAttribute) GetInDropReasonList() []InDropReason { if x != nil { return x.InDropReasonList } return nil } -func (x *DebugCounterAttribute) GetOutDropReasonList() *OutDropReasonList { +func (x *DebugCounterAttribute) GetOutDropReasonList() []OutDropReason { if x != nil { return x.OutDropReasonList } @@ -17277,22 +17043,22 @@ type DtelAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IntEndpointEnable bool `protobuf:"varint,1,opt,name=int_endpoint_enable,json=intEndpointEnable,proto3" json:"int_endpoint_enable,omitempty"` - IntTransitEnable bool `protobuf:"varint,2,opt,name=int_transit_enable,json=intTransitEnable,proto3" json:"int_transit_enable,omitempty"` - PostcardEnable bool `protobuf:"varint,3,opt,name=postcard_enable,json=postcardEnable,proto3" json:"postcard_enable,omitempty"` - DropReportEnable bool `protobuf:"varint,4,opt,name=drop_report_enable,json=dropReportEnable,proto3" json:"drop_report_enable,omitempty"` - QueueReportEnable bool `protobuf:"varint,5,opt,name=queue_report_enable,json=queueReportEnable,proto3" json:"queue_report_enable,omitempty"` - SwitchId uint32 `protobuf:"varint,6,opt,name=switch_id,json=switchId,proto3" json:"switch_id,omitempty"` - FlowStateClearCycle uint32 `protobuf:"varint,7,opt,name=flow_state_clear_cycle,json=flowStateClearCycle,proto3" json:"flow_state_clear_cycle,omitempty"` - LatencySensitivity uint32 `protobuf:"varint,8,opt,name=latency_sensitivity,json=latencySensitivity,proto3" json:"latency_sensitivity,omitempty"` - SinkPortList *Uint64List `protobuf:"bytes,9,opt,name=sink_port_list,json=sinkPortList,proto3" json:"sink_port_list,omitempty"` - IntL4Dscp *AclFieldData `protobuf:"bytes,10,opt,name=int_l4_dscp,json=intL4Dscp,proto3" json:"int_l4_dscp,omitempty"` + IntEndpointEnable *bool `protobuf:"varint,1,opt,name=int_endpoint_enable,json=intEndpointEnable,proto3,oneof" json:"int_endpoint_enable,omitempty"` + IntTransitEnable *bool `protobuf:"varint,2,opt,name=int_transit_enable,json=intTransitEnable,proto3,oneof" json:"int_transit_enable,omitempty"` + PostcardEnable *bool `protobuf:"varint,3,opt,name=postcard_enable,json=postcardEnable,proto3,oneof" json:"postcard_enable,omitempty"` + DropReportEnable *bool `protobuf:"varint,4,opt,name=drop_report_enable,json=dropReportEnable,proto3,oneof" json:"drop_report_enable,omitempty"` + QueueReportEnable *bool `protobuf:"varint,5,opt,name=queue_report_enable,json=queueReportEnable,proto3,oneof" json:"queue_report_enable,omitempty"` + SwitchId *uint32 `protobuf:"varint,6,opt,name=switch_id,json=switchId,proto3,oneof" json:"switch_id,omitempty"` + FlowStateClearCycle *uint32 `protobuf:"varint,7,opt,name=flow_state_clear_cycle,json=flowStateClearCycle,proto3,oneof" json:"flow_state_clear_cycle,omitempty"` + LatencySensitivity *uint32 `protobuf:"varint,8,opt,name=latency_sensitivity,json=latencySensitivity,proto3,oneof" json:"latency_sensitivity,omitempty"` + SinkPortList []uint64 `protobuf:"varint,9,rep,packed,name=sink_port_list,json=sinkPortList,proto3" json:"sink_port_list,omitempty"` + IntL4Dscp *AclFieldData `protobuf:"bytes,10,opt,name=int_l4_dscp,json=intL4Dscp,proto3,oneof" json:"int_l4_dscp,omitempty"` } func (x *DtelAttribute) Reset() { *x = DtelAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[49] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17305,7 +17071,7 @@ func (x *DtelAttribute) String() string { func (*DtelAttribute) ProtoMessage() {} func (x *DtelAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[49] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17318,66 +17084,66 @@ func (x *DtelAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use DtelAttribute.ProtoReflect.Descriptor instead. func (*DtelAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{49} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{44} } func (x *DtelAttribute) GetIntEndpointEnable() bool { - if x != nil { - return x.IntEndpointEnable + if x != nil && x.IntEndpointEnable != nil { + return *x.IntEndpointEnable } return false } func (x *DtelAttribute) GetIntTransitEnable() bool { - if x != nil { - return x.IntTransitEnable + if x != nil && x.IntTransitEnable != nil { + return *x.IntTransitEnable } return false } func (x *DtelAttribute) GetPostcardEnable() bool { - if x != nil { - return x.PostcardEnable + if x != nil && x.PostcardEnable != nil { + return *x.PostcardEnable } return false } func (x *DtelAttribute) GetDropReportEnable() bool { - if x != nil { - return x.DropReportEnable + if x != nil && x.DropReportEnable != nil { + return *x.DropReportEnable } return false } func (x *DtelAttribute) GetQueueReportEnable() bool { - if x != nil { - return x.QueueReportEnable + if x != nil && x.QueueReportEnable != nil { + return *x.QueueReportEnable } return false } func (x *DtelAttribute) GetSwitchId() uint32 { - if x != nil { - return x.SwitchId + if x != nil && x.SwitchId != nil { + return *x.SwitchId } return 0 } func (x *DtelAttribute) GetFlowStateClearCycle() uint32 { - if x != nil { - return x.FlowStateClearCycle + if x != nil && x.FlowStateClearCycle != nil { + return *x.FlowStateClearCycle } return 0 } func (x *DtelAttribute) GetLatencySensitivity() uint32 { - if x != nil { - return x.LatencySensitivity + if x != nil && x.LatencySensitivity != nil { + return *x.LatencySensitivity } return 0 } -func (x *DtelAttribute) GetSinkPortList() *Uint64List { +func (x *DtelAttribute) GetSinkPortList() []uint64 { if x != nil { return x.SinkPortList } @@ -17396,15 +17162,15 @@ type DtelEventAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type DtelEventType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.DtelEventType" json:"type,omitempty"` - ReportSession uint64 `protobuf:"varint,2,opt,name=report_session,json=reportSession,proto3" json:"report_session,omitempty"` - DscpValue uint32 `protobuf:"varint,3,opt,name=dscp_value,json=dscpValue,proto3" json:"dscp_value,omitempty"` + Type *DtelEventType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.DtelEventType,oneof" json:"type,omitempty"` + ReportSession *uint64 `protobuf:"varint,2,opt,name=report_session,json=reportSession,proto3,oneof" json:"report_session,omitempty"` + DscpValue *uint32 `protobuf:"varint,3,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *DtelEventAttribute) Reset() { *x = DtelEventAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[50] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17417,7 +17183,7 @@ func (x *DtelEventAttribute) String() string { func (*DtelEventAttribute) ProtoMessage() {} func (x *DtelEventAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[50] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17430,26 +17196,26 @@ func (x *DtelEventAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use DtelEventAttribute.ProtoReflect.Descriptor instead. func (*DtelEventAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{50} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{45} } func (x *DtelEventAttribute) GetType() DtelEventType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return DtelEventType_DTEL_EVENT_TYPE_UNSPECIFIED } func (x *DtelEventAttribute) GetReportSession() uint64 { - if x != nil { - return x.ReportSession + if x != nil && x.ReportSession != nil { + return *x.ReportSession } return 0 } func (x *DtelEventAttribute) GetDscpValue() uint32 { - if x != nil { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } @@ -17459,18 +17225,18 @@ type DtelIntSessionAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MaxHopCount uint32 `protobuf:"varint,1,opt,name=max_hop_count,json=maxHopCount,proto3" json:"max_hop_count,omitempty"` - CollectSwitchId bool `protobuf:"varint,2,opt,name=collect_switch_id,json=collectSwitchId,proto3" json:"collect_switch_id,omitempty"` - CollectSwitchPorts bool `protobuf:"varint,3,opt,name=collect_switch_ports,json=collectSwitchPorts,proto3" json:"collect_switch_ports,omitempty"` - CollectIngressTimestamp bool `protobuf:"varint,4,opt,name=collect_ingress_timestamp,json=collectIngressTimestamp,proto3" json:"collect_ingress_timestamp,omitempty"` - CollectEgressTimestamp bool `protobuf:"varint,5,opt,name=collect_egress_timestamp,json=collectEgressTimestamp,proto3" json:"collect_egress_timestamp,omitempty"` - CollectQueueInfo bool `protobuf:"varint,6,opt,name=collect_queue_info,json=collectQueueInfo,proto3" json:"collect_queue_info,omitempty"` + MaxHopCount *uint32 `protobuf:"varint,1,opt,name=max_hop_count,json=maxHopCount,proto3,oneof" json:"max_hop_count,omitempty"` + CollectSwitchId *bool `protobuf:"varint,2,opt,name=collect_switch_id,json=collectSwitchId,proto3,oneof" json:"collect_switch_id,omitempty"` + CollectSwitchPorts *bool `protobuf:"varint,3,opt,name=collect_switch_ports,json=collectSwitchPorts,proto3,oneof" json:"collect_switch_ports,omitempty"` + CollectIngressTimestamp *bool `protobuf:"varint,4,opt,name=collect_ingress_timestamp,json=collectIngressTimestamp,proto3,oneof" json:"collect_ingress_timestamp,omitempty"` + CollectEgressTimestamp *bool `protobuf:"varint,5,opt,name=collect_egress_timestamp,json=collectEgressTimestamp,proto3,oneof" json:"collect_egress_timestamp,omitempty"` + CollectQueueInfo *bool `protobuf:"varint,6,opt,name=collect_queue_info,json=collectQueueInfo,proto3,oneof" json:"collect_queue_info,omitempty"` } func (x *DtelIntSessionAttribute) Reset() { *x = DtelIntSessionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[51] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17483,7 +17249,7 @@ func (x *DtelIntSessionAttribute) String() string { func (*DtelIntSessionAttribute) ProtoMessage() {} func (x *DtelIntSessionAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[51] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17496,47 +17262,47 @@ func (x *DtelIntSessionAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use DtelIntSessionAttribute.ProtoReflect.Descriptor instead. func (*DtelIntSessionAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{51} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{46} } func (x *DtelIntSessionAttribute) GetMaxHopCount() uint32 { - if x != nil { - return x.MaxHopCount + if x != nil && x.MaxHopCount != nil { + return *x.MaxHopCount } return 0 } func (x *DtelIntSessionAttribute) GetCollectSwitchId() bool { - if x != nil { - return x.CollectSwitchId + if x != nil && x.CollectSwitchId != nil { + return *x.CollectSwitchId } return false } func (x *DtelIntSessionAttribute) GetCollectSwitchPorts() bool { - if x != nil { - return x.CollectSwitchPorts + if x != nil && x.CollectSwitchPorts != nil { + return *x.CollectSwitchPorts } return false } func (x *DtelIntSessionAttribute) GetCollectIngressTimestamp() bool { - if x != nil { - return x.CollectIngressTimestamp + if x != nil && x.CollectIngressTimestamp != nil { + return *x.CollectIngressTimestamp } return false } func (x *DtelIntSessionAttribute) GetCollectEgressTimestamp() bool { - if x != nil { - return x.CollectEgressTimestamp + if x != nil && x.CollectEgressTimestamp != nil { + return *x.CollectEgressTimestamp } return false } func (x *DtelIntSessionAttribute) GetCollectQueueInfo() bool { - if x != nil { - return x.CollectQueueInfo + if x != nil && x.CollectQueueInfo != nil { + return *x.CollectQueueInfo } return false } @@ -17546,17 +17312,17 @@ type DtelQueueReportAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - QueueId uint64 `protobuf:"varint,1,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` - DepthThreshold uint32 `protobuf:"varint,2,opt,name=depth_threshold,json=depthThreshold,proto3" json:"depth_threshold,omitempty"` - LatencyThreshold uint32 `protobuf:"varint,3,opt,name=latency_threshold,json=latencyThreshold,proto3" json:"latency_threshold,omitempty"` - BreachQuota uint32 `protobuf:"varint,4,opt,name=breach_quota,json=breachQuota,proto3" json:"breach_quota,omitempty"` - TailDrop bool `protobuf:"varint,5,opt,name=tail_drop,json=tailDrop,proto3" json:"tail_drop,omitempty"` + QueueId *uint64 `protobuf:"varint,1,opt,name=queue_id,json=queueId,proto3,oneof" json:"queue_id,omitempty"` + DepthThreshold *uint32 `protobuf:"varint,2,opt,name=depth_threshold,json=depthThreshold,proto3,oneof" json:"depth_threshold,omitempty"` + LatencyThreshold *uint32 `protobuf:"varint,3,opt,name=latency_threshold,json=latencyThreshold,proto3,oneof" json:"latency_threshold,omitempty"` + BreachQuota *uint32 `protobuf:"varint,4,opt,name=breach_quota,json=breachQuota,proto3,oneof" json:"breach_quota,omitempty"` + TailDrop *bool `protobuf:"varint,5,opt,name=tail_drop,json=tailDrop,proto3,oneof" json:"tail_drop,omitempty"` } func (x *DtelQueueReportAttribute) Reset() { *x = DtelQueueReportAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[52] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17569,7 +17335,7 @@ func (x *DtelQueueReportAttribute) String() string { func (*DtelQueueReportAttribute) ProtoMessage() {} func (x *DtelQueueReportAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[52] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17582,107 +17348,60 @@ func (x *DtelQueueReportAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use DtelQueueReportAttribute.ProtoReflect.Descriptor instead. func (*DtelQueueReportAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{52} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{47} } func (x *DtelQueueReportAttribute) GetQueueId() uint64 { - if x != nil { - return x.QueueId + if x != nil && x.QueueId != nil { + return *x.QueueId } return 0 } func (x *DtelQueueReportAttribute) GetDepthThreshold() uint32 { - if x != nil { - return x.DepthThreshold + if x != nil && x.DepthThreshold != nil { + return *x.DepthThreshold } return 0 } func (x *DtelQueueReportAttribute) GetLatencyThreshold() uint32 { - if x != nil { - return x.LatencyThreshold + if x != nil && x.LatencyThreshold != nil { + return *x.LatencyThreshold } return 0 } func (x *DtelQueueReportAttribute) GetBreachQuota() uint32 { - if x != nil { - return x.BreachQuota + if x != nil && x.BreachQuota != nil { + return *x.BreachQuota } return 0 } func (x *DtelQueueReportAttribute) GetTailDrop() bool { - if x != nil { - return x.TailDrop + if x != nil && x.TailDrop != nil { + return *x.TailDrop } return false } -type BytesList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List [][]byte `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` -} - -func (x *BytesList) Reset() { - *x = BytesList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BytesList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BytesList) ProtoMessage() {} - -func (x *BytesList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BytesList.ProtoReflect.Descriptor instead. -func (*BytesList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{53} -} - -func (x *BytesList) GetList() [][]byte { - if x != nil { - return x.List - } - return nil -} - type DtelReportSessionAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SrcIp []byte `protobuf:"bytes,1,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` - DstIpList *BytesList `protobuf:"bytes,2,opt,name=dst_ip_list,json=dstIpList,proto3" json:"dst_ip_list,omitempty"` - VirtualRouterId uint64 `protobuf:"varint,3,opt,name=virtual_router_id,json=virtualRouterId,proto3" json:"virtual_router_id,omitempty"` - TruncateSize uint32 `protobuf:"varint,4,opt,name=truncate_size,json=truncateSize,proto3" json:"truncate_size,omitempty"` - UdpDstPort uint32 `protobuf:"varint,5,opt,name=udp_dst_port,json=udpDstPort,proto3" json:"udp_dst_port,omitempty"` + SrcIp []byte `protobuf:"bytes,1,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + DstIpList [][]byte `protobuf:"bytes,2,rep,name=dst_ip_list,json=dstIpList,proto3" json:"dst_ip_list,omitempty"` + VirtualRouterId *uint64 `protobuf:"varint,3,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof" json:"virtual_router_id,omitempty"` + TruncateSize *uint32 `protobuf:"varint,4,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + UdpDstPort *uint32 `protobuf:"varint,5,opt,name=udp_dst_port,json=udpDstPort,proto3,oneof" json:"udp_dst_port,omitempty"` } func (x *DtelReportSessionAttribute) Reset() { *x = DtelReportSessionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[54] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17695,7 +17414,7 @@ func (x *DtelReportSessionAttribute) String() string { func (*DtelReportSessionAttribute) ProtoMessage() {} func (x *DtelReportSessionAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[54] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17708,7 +17427,7 @@ func (x *DtelReportSessionAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use DtelReportSessionAttribute.ProtoReflect.Descriptor instead. func (*DtelReportSessionAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{54} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{48} } func (x *DtelReportSessionAttribute) GetSrcIp() []byte { @@ -17718,7 +17437,7 @@ func (x *DtelReportSessionAttribute) GetSrcIp() []byte { return nil } -func (x *DtelReportSessionAttribute) GetDstIpList() *BytesList { +func (x *DtelReportSessionAttribute) GetDstIpList() [][]byte { if x != nil { return x.DstIpList } @@ -17726,22 +17445,22 @@ func (x *DtelReportSessionAttribute) GetDstIpList() *BytesList { } func (x *DtelReportSessionAttribute) GetVirtualRouterId() uint64 { - if x != nil { - return x.VirtualRouterId + if x != nil && x.VirtualRouterId != nil { + return *x.VirtualRouterId } return 0 } func (x *DtelReportSessionAttribute) GetTruncateSize() uint32 { - if x != nil { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *DtelReportSessionAttribute) GetUdpDstPort() uint32 { - if x != nil { - return x.UdpDstPort + if x != nil && x.UdpDstPort != nil { + return *x.UdpDstPort } return 0 } @@ -17751,20 +17470,20 @@ type FdbEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type FdbEntryType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.FdbEntryType" json:"type,omitempty"` - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - UserTrapId uint64 `protobuf:"varint,3,opt,name=user_trap_id,json=userTrapId,proto3" json:"user_trap_id,omitempty"` - BridgePortId uint64 `protobuf:"varint,4,opt,name=bridge_port_id,json=bridgePortId,proto3" json:"bridge_port_id,omitempty"` - MetaData uint32 `protobuf:"varint,5,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - EndpointIp []byte `protobuf:"bytes,6,opt,name=endpoint_ip,json=endpointIp,proto3" json:"endpoint_ip,omitempty"` - CounterId uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` - AllowMacMove bool `protobuf:"varint,8,opt,name=allow_mac_move,json=allowMacMove,proto3" json:"allow_mac_move,omitempty"` + Type *FdbEntryType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.FdbEntryType,oneof" json:"type,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,3,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + BridgePortId *uint64 `protobuf:"varint,4,opt,name=bridge_port_id,json=bridgePortId,proto3,oneof" json:"bridge_port_id,omitempty"` + MetaData *uint32 `protobuf:"varint,5,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + EndpointIp []byte `protobuf:"bytes,6,opt,name=endpoint_ip,json=endpointIp,proto3,oneof" json:"endpoint_ip,omitempty"` + CounterId *uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + AllowMacMove *bool `protobuf:"varint,8,opt,name=allow_mac_move,json=allowMacMove,proto3,oneof" json:"allow_mac_move,omitempty"` } func (x *FdbEntryAttribute) Reset() { *x = FdbEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[55] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17777,7 +17496,7 @@ func (x *FdbEntryAttribute) String() string { func (*FdbEntryAttribute) ProtoMessage() {} func (x *FdbEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[55] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17790,40 +17509,40 @@ func (x *FdbEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use FdbEntryAttribute.ProtoReflect.Descriptor instead. func (*FdbEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{55} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{49} } func (x *FdbEntryAttribute) GetType() FdbEntryType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return FdbEntryType_FDB_ENTRY_TYPE_UNSPECIFIED } func (x *FdbEntryAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *FdbEntryAttribute) GetUserTrapId() uint64 { - if x != nil { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *FdbEntryAttribute) GetBridgePortId() uint64 { - if x != nil { - return x.BridgePortId + if x != nil && x.BridgePortId != nil { + return *x.BridgePortId } return 0 } func (x *FdbEntryAttribute) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } @@ -17836,15 +17555,15 @@ func (x *FdbEntryAttribute) GetEndpointIp() []byte { } func (x *FdbEntryAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *FdbEntryAttribute) GetAllowMacMove() bool { - if x != nil { - return x.AllowMacMove + if x != nil && x.AllowMacMove != nil { + return *x.AllowMacMove } return false } @@ -17854,15 +17573,15 @@ type FdbFlushAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BridgePortId uint64 `protobuf:"varint,1,opt,name=bridge_port_id,json=bridgePortId,proto3" json:"bridge_port_id,omitempty"` - BvId uint64 `protobuf:"varint,2,opt,name=bv_id,json=bvId,proto3" json:"bv_id,omitempty"` - EntryType FdbFlushEntryType `protobuf:"varint,3,opt,name=entry_type,json=entryType,proto3,enum=lemming.dataplane.sai.FdbFlushEntryType" json:"entry_type,omitempty"` + BridgePortId *uint64 `protobuf:"varint,1,opt,name=bridge_port_id,json=bridgePortId,proto3,oneof" json:"bridge_port_id,omitempty"` + BvId *uint64 `protobuf:"varint,2,opt,name=bv_id,json=bvId,proto3,oneof" json:"bv_id,omitempty"` + EntryType *FdbFlushEntryType `protobuf:"varint,3,opt,name=entry_type,json=entryType,proto3,enum=lemming.dataplane.sai.FdbFlushEntryType,oneof" json:"entry_type,omitempty"` } func (x *FdbFlushAttribute) Reset() { *x = FdbFlushAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[56] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17875,7 +17594,7 @@ func (x *FdbFlushAttribute) String() string { func (*FdbFlushAttribute) ProtoMessage() {} func (x *FdbFlushAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[56] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17888,26 +17607,26 @@ func (x *FdbFlushAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use FdbFlushAttribute.ProtoReflect.Descriptor instead. func (*FdbFlushAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{56} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{50} } func (x *FdbFlushAttribute) GetBridgePortId() uint64 { - if x != nil { - return x.BridgePortId + if x != nil && x.BridgePortId != nil { + return *x.BridgePortId } return 0 } func (x *FdbFlushAttribute) GetBvId() uint64 { - if x != nil { - return x.BvId + if x != nil && x.BvId != nil { + return *x.BvId } return 0 } func (x *FdbFlushAttribute) GetEntryType() FdbFlushEntryType { - if x != nil { - return x.EntryType + if x != nil && x.EntryType != nil { + return *x.EntryType } return FdbFlushEntryType_FDB_FLUSH_ENTRY_TYPE_UNSPECIFIED } @@ -17917,16 +17636,16 @@ type FineGrainedHashFieldAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NativeHashField NativeHashField `protobuf:"varint,1,opt,name=native_hash_field,json=nativeHashField,proto3,enum=lemming.dataplane.sai.NativeHashField" json:"native_hash_field,omitempty"` - Ipv4Mask []byte `protobuf:"bytes,2,opt,name=ipv4_mask,json=ipv4Mask,proto3" json:"ipv4_mask,omitempty"` - Ipv6Mask []byte `protobuf:"bytes,3,opt,name=ipv6_mask,json=ipv6Mask,proto3" json:"ipv6_mask,omitempty"` - SequenceId uint32 `protobuf:"varint,4,opt,name=sequence_id,json=sequenceId,proto3" json:"sequence_id,omitempty"` + NativeHashField *NativeHashField `protobuf:"varint,1,opt,name=native_hash_field,json=nativeHashField,proto3,enum=lemming.dataplane.sai.NativeHashField,oneof" json:"native_hash_field,omitempty"` + Ipv4Mask []byte `protobuf:"bytes,2,opt,name=ipv4_mask,json=ipv4Mask,proto3,oneof" json:"ipv4_mask,omitempty"` + Ipv6Mask []byte `protobuf:"bytes,3,opt,name=ipv6_mask,json=ipv6Mask,proto3,oneof" json:"ipv6_mask,omitempty"` + SequenceId *uint32 `protobuf:"varint,4,opt,name=sequence_id,json=sequenceId,proto3,oneof" json:"sequence_id,omitempty"` } func (x *FineGrainedHashFieldAttribute) Reset() { *x = FineGrainedHashFieldAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[57] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17939,7 +17658,7 @@ func (x *FineGrainedHashFieldAttribute) String() string { func (*FineGrainedHashFieldAttribute) ProtoMessage() {} func (x *FineGrainedHashFieldAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[57] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17952,12 +17671,12 @@ func (x *FineGrainedHashFieldAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use FineGrainedHashFieldAttribute.ProtoReflect.Descriptor instead. func (*FineGrainedHashFieldAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{57} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{51} } func (x *FineGrainedHashFieldAttribute) GetNativeHashField() NativeHashField { - if x != nil { - return x.NativeHashField + if x != nil && x.NativeHashField != nil { + return *x.NativeHashField } return NativeHashField_NATIVE_HASH_FIELD_UNSPECIFIED } @@ -17977,73 +17696,26 @@ func (x *FineGrainedHashFieldAttribute) GetIpv6Mask() []byte { } func (x *FineGrainedHashFieldAttribute) GetSequenceId() uint32 { - if x != nil { - return x.SequenceId + if x != nil && x.SequenceId != nil { + return *x.SequenceId } return 0 } -type NativeHashFieldList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []NativeHashField `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.NativeHashField" json:"list,omitempty"` -} - -func (x *NativeHashFieldList) Reset() { - *x = NativeHashFieldList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NativeHashFieldList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NativeHashFieldList) ProtoMessage() {} - -func (x *NativeHashFieldList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NativeHashFieldList.ProtoReflect.Descriptor instead. -func (*NativeHashFieldList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{58} -} - -func (x *NativeHashFieldList) GetList() []NativeHashField { - if x != nil { - return x.List - } - return nil -} - type HashAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NativeHashFieldList *NativeHashFieldList `protobuf:"bytes,1,opt,name=native_hash_field_list,json=nativeHashFieldList,proto3" json:"native_hash_field_list,omitempty"` - UdfGroupList *Uint64List `protobuf:"bytes,2,opt,name=udf_group_list,json=udfGroupList,proto3" json:"udf_group_list,omitempty"` - FineGrainedHashFieldList *Uint64List `protobuf:"bytes,3,opt,name=fine_grained_hash_field_list,json=fineGrainedHashFieldList,proto3" json:"fine_grained_hash_field_list,omitempty"` + NativeHashFieldList []NativeHashField `protobuf:"varint,1,rep,packed,name=native_hash_field_list,json=nativeHashFieldList,proto3,enum=lemming.dataplane.sai.NativeHashField" json:"native_hash_field_list,omitempty"` + UdfGroupList []uint64 `protobuf:"varint,2,rep,packed,name=udf_group_list,json=udfGroupList,proto3" json:"udf_group_list,omitempty"` + FineGrainedHashFieldList []uint64 `protobuf:"varint,3,rep,packed,name=fine_grained_hash_field_list,json=fineGrainedHashFieldList,proto3" json:"fine_grained_hash_field_list,omitempty"` } func (x *HashAttribute) Reset() { *x = HashAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[59] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18056,7 +17728,7 @@ func (x *HashAttribute) String() string { func (*HashAttribute) ProtoMessage() {} func (x *HashAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[59] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18069,24 +17741,24 @@ func (x *HashAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use HashAttribute.ProtoReflect.Descriptor instead. func (*HashAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{59} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{52} } -func (x *HashAttribute) GetNativeHashFieldList() *NativeHashFieldList { +func (x *HashAttribute) GetNativeHashFieldList() []NativeHashField { if x != nil { return x.NativeHashFieldList } return nil } -func (x *HashAttribute) GetUdfGroupList() *Uint64List { +func (x *HashAttribute) GetUdfGroupList() []uint64 { if x != nil { return x.UdfGroupList } return nil } -func (x *HashAttribute) GetFineGrainedHashFieldList() *Uint64List { +func (x *HashAttribute) GetFineGrainedHashFieldList() []uint64 { if x != nil { return x.FineGrainedHashFieldList } @@ -18098,19 +17770,19 @@ type HostifAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type HostifType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifType" json:"type,omitempty"` - ObjId uint64 `protobuf:"varint,2,opt,name=obj_id,json=objId,proto3" json:"obj_id,omitempty"` - Name []byte `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - OperStatus bool `protobuf:"varint,4,opt,name=oper_status,json=operStatus,proto3" json:"oper_status,omitempty"` - Queue uint32 `protobuf:"varint,5,opt,name=queue,proto3" json:"queue,omitempty"` - VlanTag HostifVlanTag `protobuf:"varint,6,opt,name=vlan_tag,json=vlanTag,proto3,enum=lemming.dataplane.sai.HostifVlanTag" json:"vlan_tag,omitempty"` - GenetlinkMcgrpName []byte `protobuf:"bytes,7,opt,name=genetlink_mcgrp_name,json=genetlinkMcgrpName,proto3" json:"genetlink_mcgrp_name,omitempty"` + Type *HostifType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifType,oneof" json:"type,omitempty"` + ObjId *uint64 `protobuf:"varint,2,opt,name=obj_id,json=objId,proto3,oneof" json:"obj_id,omitempty"` + Name []byte `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + OperStatus *bool `protobuf:"varint,4,opt,name=oper_status,json=operStatus,proto3,oneof" json:"oper_status,omitempty"` + Queue *uint32 `protobuf:"varint,5,opt,name=queue,proto3,oneof" json:"queue,omitempty"` + VlanTag *HostifVlanTag `protobuf:"varint,6,opt,name=vlan_tag,json=vlanTag,proto3,enum=lemming.dataplane.sai.HostifVlanTag,oneof" json:"vlan_tag,omitempty"` + GenetlinkMcgrpName []byte `protobuf:"bytes,7,opt,name=genetlink_mcgrp_name,json=genetlinkMcgrpName,proto3,oneof" json:"genetlink_mcgrp_name,omitempty"` } func (x *HostifAttribute) Reset() { *x = HostifAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[60] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18123,7 +17795,7 @@ func (x *HostifAttribute) String() string { func (*HostifAttribute) ProtoMessage() {} func (x *HostifAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[60] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18136,19 +17808,19 @@ func (x *HostifAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use HostifAttribute.ProtoReflect.Descriptor instead. func (*HostifAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{60} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{53} } func (x *HostifAttribute) GetType() HostifType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return HostifType_HOSTIF_TYPE_UNSPECIFIED } func (x *HostifAttribute) GetObjId() uint64 { - if x != nil { - return x.ObjId + if x != nil && x.ObjId != nil { + return *x.ObjId } return 0 } @@ -18161,22 +17833,22 @@ func (x *HostifAttribute) GetName() []byte { } func (x *HostifAttribute) GetOperStatus() bool { - if x != nil { - return x.OperStatus + if x != nil && x.OperStatus != nil { + return *x.OperStatus } return false } func (x *HostifAttribute) GetQueue() uint32 { - if x != nil { - return x.Queue + if x != nil && x.Queue != nil { + return *x.Queue } return 0 } func (x *HostifAttribute) GetVlanTag() HostifVlanTag { - if x != nil { - return x.VlanTag + if x != nil && x.VlanTag != nil { + return *x.VlanTag } return HostifVlanTag_HOSTIF_VLAN_TAG_UNSPECIFIED } @@ -18193,21 +17865,21 @@ type HostifPacketAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HostifTrapId uint64 `protobuf:"varint,1,opt,name=hostif_trap_id,json=hostifTrapId,proto3" json:"hostif_trap_id,omitempty"` - IngressPort uint64 `protobuf:"varint,2,opt,name=ingress_port,json=ingressPort,proto3" json:"ingress_port,omitempty"` - IngressLag uint64 `protobuf:"varint,3,opt,name=ingress_lag,json=ingressLag,proto3" json:"ingress_lag,omitempty"` - HostifTxType HostifTxType `protobuf:"varint,4,opt,name=hostif_tx_type,json=hostifTxType,proto3,enum=lemming.dataplane.sai.HostifTxType" json:"hostif_tx_type,omitempty"` - EgressPortOrLag uint64 `protobuf:"varint,5,opt,name=egress_port_or_lag,json=egressPortOrLag,proto3" json:"egress_port_or_lag,omitempty"` - BridgeId uint64 `protobuf:"varint,6,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - EgressQueueIndex uint32 `protobuf:"varint,8,opt,name=egress_queue_index,json=egressQueueIndex,proto3" json:"egress_queue_index,omitempty"` - ZeroCopyTx bool `protobuf:"varint,9,opt,name=zero_copy_tx,json=zeroCopyTx,proto3" json:"zero_copy_tx,omitempty"` + HostifTrapId *uint64 `protobuf:"varint,1,opt,name=hostif_trap_id,json=hostifTrapId,proto3,oneof" json:"hostif_trap_id,omitempty"` + IngressPort *uint64 `protobuf:"varint,2,opt,name=ingress_port,json=ingressPort,proto3,oneof" json:"ingress_port,omitempty"` + IngressLag *uint64 `protobuf:"varint,3,opt,name=ingress_lag,json=ingressLag,proto3,oneof" json:"ingress_lag,omitempty"` + HostifTxType *HostifTxType `protobuf:"varint,4,opt,name=hostif_tx_type,json=hostifTxType,proto3,enum=lemming.dataplane.sai.HostifTxType,oneof" json:"hostif_tx_type,omitempty"` + EgressPortOrLag *uint64 `protobuf:"varint,5,opt,name=egress_port_or_lag,json=egressPortOrLag,proto3,oneof" json:"egress_port_or_lag,omitempty"` + BridgeId *uint64 `protobuf:"varint,6,opt,name=bridge_id,json=bridgeId,proto3,oneof" json:"bridge_id,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=timestamp,proto3,oneof" json:"timestamp,omitempty"` + EgressQueueIndex *uint32 `protobuf:"varint,8,opt,name=egress_queue_index,json=egressQueueIndex,proto3,oneof" json:"egress_queue_index,omitempty"` + ZeroCopyTx *bool `protobuf:"varint,9,opt,name=zero_copy_tx,json=zeroCopyTx,proto3,oneof" json:"zero_copy_tx,omitempty"` } func (x *HostifPacketAttribute) Reset() { *x = HostifPacketAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[61] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18220,7 +17892,7 @@ func (x *HostifPacketAttribute) String() string { func (*HostifPacketAttribute) ProtoMessage() {} func (x *HostifPacketAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[61] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18233,47 +17905,47 @@ func (x *HostifPacketAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use HostifPacketAttribute.ProtoReflect.Descriptor instead. func (*HostifPacketAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{61} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{54} } func (x *HostifPacketAttribute) GetHostifTrapId() uint64 { - if x != nil { - return x.HostifTrapId + if x != nil && x.HostifTrapId != nil { + return *x.HostifTrapId } return 0 } func (x *HostifPacketAttribute) GetIngressPort() uint64 { - if x != nil { - return x.IngressPort + if x != nil && x.IngressPort != nil { + return *x.IngressPort } return 0 } func (x *HostifPacketAttribute) GetIngressLag() uint64 { - if x != nil { - return x.IngressLag + if x != nil && x.IngressLag != nil { + return *x.IngressLag } return 0 } func (x *HostifPacketAttribute) GetHostifTxType() HostifTxType { - if x != nil { - return x.HostifTxType + if x != nil && x.HostifTxType != nil { + return *x.HostifTxType } return HostifTxType_HOSTIF_TX_TYPE_UNSPECIFIED } func (x *HostifPacketAttribute) GetEgressPortOrLag() uint64 { - if x != nil { - return x.EgressPortOrLag + if x != nil && x.EgressPortOrLag != nil { + return *x.EgressPortOrLag } return 0 } func (x *HostifPacketAttribute) GetBridgeId() uint64 { - if x != nil { - return x.BridgeId + if x != nil && x.BridgeId != nil { + return *x.BridgeId } return 0 } @@ -18286,15 +17958,15 @@ func (x *HostifPacketAttribute) GetTimestamp() *timestamppb.Timestamp { } func (x *HostifPacketAttribute) GetEgressQueueIndex() uint32 { - if x != nil { - return x.EgressQueueIndex + if x != nil && x.EgressQueueIndex != nil { + return *x.EgressQueueIndex } return 0 } func (x *HostifPacketAttribute) GetZeroCopyTx() bool { - if x != nil { - return x.ZeroCopyTx + if x != nil && x.ZeroCopyTx != nil { + return *x.ZeroCopyTx } return false } @@ -18304,17 +17976,17 @@ type HostifTableEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type HostifTableEntryType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifTableEntryType" json:"type,omitempty"` - ObjId uint64 `protobuf:"varint,2,opt,name=obj_id,json=objId,proto3" json:"obj_id,omitempty"` - TrapId uint64 `protobuf:"varint,3,opt,name=trap_id,json=trapId,proto3" json:"trap_id,omitempty"` - ChannelType HostifTableEntryChannelType `protobuf:"varint,4,opt,name=channel_type,json=channelType,proto3,enum=lemming.dataplane.sai.HostifTableEntryChannelType" json:"channel_type,omitempty"` - HostIf uint64 `protobuf:"varint,5,opt,name=host_if,json=hostIf,proto3" json:"host_if,omitempty"` + Type *HostifTableEntryType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifTableEntryType,oneof" json:"type,omitempty"` + ObjId *uint64 `protobuf:"varint,2,opt,name=obj_id,json=objId,proto3,oneof" json:"obj_id,omitempty"` + TrapId *uint64 `protobuf:"varint,3,opt,name=trap_id,json=trapId,proto3,oneof" json:"trap_id,omitempty"` + ChannelType *HostifTableEntryChannelType `protobuf:"varint,4,opt,name=channel_type,json=channelType,proto3,enum=lemming.dataplane.sai.HostifTableEntryChannelType,oneof" json:"channel_type,omitempty"` + HostIf *uint64 `protobuf:"varint,5,opt,name=host_if,json=hostIf,proto3,oneof" json:"host_if,omitempty"` } func (x *HostifTableEntryAttribute) Reset() { *x = HostifTableEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[62] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18327,7 +17999,7 @@ func (x *HostifTableEntryAttribute) String() string { func (*HostifTableEntryAttribute) ProtoMessage() {} func (x *HostifTableEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[62] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18340,40 +18012,40 @@ func (x *HostifTableEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use HostifTableEntryAttribute.ProtoReflect.Descriptor instead. func (*HostifTableEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{62} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{55} } func (x *HostifTableEntryAttribute) GetType() HostifTableEntryType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return HostifTableEntryType_HOSTIF_TABLE_ENTRY_TYPE_UNSPECIFIED } func (x *HostifTableEntryAttribute) GetObjId() uint64 { - if x != nil { - return x.ObjId + if x != nil && x.ObjId != nil { + return *x.ObjId } return 0 } func (x *HostifTableEntryAttribute) GetTrapId() uint64 { - if x != nil { - return x.TrapId + if x != nil && x.TrapId != nil { + return *x.TrapId } return 0 } func (x *HostifTableEntryAttribute) GetChannelType() HostifTableEntryChannelType { - if x != nil { - return x.ChannelType + if x != nil && x.ChannelType != nil { + return *x.ChannelType } return HostifTableEntryChannelType_HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_UNSPECIFIED } func (x *HostifTableEntryAttribute) GetHostIf() uint64 { - if x != nil { - return x.HostIf + if x != nil && x.HostIf != nil { + return *x.HostIf } return 0 } @@ -18383,19 +18055,19 @@ type HostifTrapAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TrapType HostifTrapType `protobuf:"varint,1,opt,name=trap_type,json=trapType,proto3,enum=lemming.dataplane.sai.HostifTrapType" json:"trap_type,omitempty"` - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - TrapPriority uint32 `protobuf:"varint,3,opt,name=trap_priority,json=trapPriority,proto3" json:"trap_priority,omitempty"` - ExcludePortList *Uint64List `protobuf:"bytes,4,opt,name=exclude_port_list,json=excludePortList,proto3" json:"exclude_port_list,omitempty"` - TrapGroup uint64 `protobuf:"varint,5,opt,name=trap_group,json=trapGroup,proto3" json:"trap_group,omitempty"` - MirrorSession *Uint64List `protobuf:"bytes,6,opt,name=mirror_session,json=mirrorSession,proto3" json:"mirror_session,omitempty"` - CounterId uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + TrapType *HostifTrapType `protobuf:"varint,1,opt,name=trap_type,json=trapType,proto3,enum=lemming.dataplane.sai.HostifTrapType,oneof" json:"trap_type,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,3,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + ExcludePortList []uint64 `protobuf:"varint,4,rep,packed,name=exclude_port_list,json=excludePortList,proto3" json:"exclude_port_list,omitempty"` + TrapGroup *uint64 `protobuf:"varint,5,opt,name=trap_group,json=trapGroup,proto3,oneof" json:"trap_group,omitempty"` + MirrorSession []uint64 `protobuf:"varint,6,rep,packed,name=mirror_session,json=mirrorSession,proto3" json:"mirror_session,omitempty"` + CounterId *uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *HostifTrapAttribute) Reset() { *x = HostifTrapAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[63] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18408,7 +18080,7 @@ func (x *HostifTrapAttribute) String() string { func (*HostifTrapAttribute) ProtoMessage() {} func (x *HostifTrapAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[63] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18421,31 +18093,31 @@ func (x *HostifTrapAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use HostifTrapAttribute.ProtoReflect.Descriptor instead. func (*HostifTrapAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{63} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{56} } func (x *HostifTrapAttribute) GetTrapType() HostifTrapType { - if x != nil { - return x.TrapType + if x != nil && x.TrapType != nil { + return *x.TrapType } return HostifTrapType_HOSTIF_TRAP_TYPE_UNSPECIFIED } func (x *HostifTrapAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *HostifTrapAttribute) GetTrapPriority() uint32 { - if x != nil { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } -func (x *HostifTrapAttribute) GetExcludePortList() *Uint64List { +func (x *HostifTrapAttribute) GetExcludePortList() []uint64 { if x != nil { return x.ExcludePortList } @@ -18453,13 +18125,13 @@ func (x *HostifTrapAttribute) GetExcludePortList() *Uint64List { } func (x *HostifTrapAttribute) GetTrapGroup() uint64 { - if x != nil { - return x.TrapGroup + if x != nil && x.TrapGroup != nil { + return *x.TrapGroup } return 0 } -func (x *HostifTrapAttribute) GetMirrorSession() *Uint64List { +func (x *HostifTrapAttribute) GetMirrorSession() []uint64 { if x != nil { return x.MirrorSession } @@ -18467,8 +18139,8 @@ func (x *HostifTrapAttribute) GetMirrorSession() *Uint64List { } func (x *HostifTrapAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -18478,15 +18150,15 @@ type HostifTrapGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AdminState bool `protobuf:"varint,1,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - Queue uint32 `protobuf:"varint,2,opt,name=queue,proto3" json:"queue,omitempty"` - Policer uint64 `protobuf:"varint,3,opt,name=policer,proto3" json:"policer,omitempty"` + AdminState *bool `protobuf:"varint,1,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + Queue *uint32 `protobuf:"varint,2,opt,name=queue,proto3,oneof" json:"queue,omitempty"` + Policer *uint64 `protobuf:"varint,3,opt,name=policer,proto3,oneof" json:"policer,omitempty"` } func (x *HostifTrapGroupAttribute) Reset() { *x = HostifTrapGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[64] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18499,7 +18171,7 @@ func (x *HostifTrapGroupAttribute) String() string { func (*HostifTrapGroupAttribute) ProtoMessage() {} func (x *HostifTrapGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[64] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18512,26 +18184,26 @@ func (x *HostifTrapGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use HostifTrapGroupAttribute.ProtoReflect.Descriptor instead. func (*HostifTrapGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{64} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{57} } func (x *HostifTrapGroupAttribute) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *HostifTrapGroupAttribute) GetQueue() uint32 { - if x != nil { - return x.Queue + if x != nil && x.Queue != nil { + return *x.Queue } return 0 } func (x *HostifTrapGroupAttribute) GetPolicer() uint64 { - if x != nil { - return x.Policer + if x != nil && x.Policer != nil { + return *x.Policer } return 0 } @@ -18541,15 +18213,15 @@ type HostifUserDefinedTrapAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type HostifUserDefinedTrapType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifUserDefinedTrapType" json:"type,omitempty"` - TrapPriority uint32 `protobuf:"varint,2,opt,name=trap_priority,json=trapPriority,proto3" json:"trap_priority,omitempty"` - TrapGroup uint64 `protobuf:"varint,3,opt,name=trap_group,json=trapGroup,proto3" json:"trap_group,omitempty"` + Type *HostifUserDefinedTrapType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifUserDefinedTrapType,oneof" json:"type,omitempty"` + TrapPriority *uint32 `protobuf:"varint,2,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + TrapGroup *uint64 `protobuf:"varint,3,opt,name=trap_group,json=trapGroup,proto3,oneof" json:"trap_group,omitempty"` } func (x *HostifUserDefinedTrapAttribute) Reset() { *x = HostifUserDefinedTrapAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[65] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18562,7 +18234,7 @@ func (x *HostifUserDefinedTrapAttribute) String() string { func (*HostifUserDefinedTrapAttribute) ProtoMessage() {} func (x *HostifUserDefinedTrapAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[65] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18575,26 +18247,26 @@ func (x *HostifUserDefinedTrapAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use HostifUserDefinedTrapAttribute.ProtoReflect.Descriptor instead. func (*HostifUserDefinedTrapAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{65} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{58} } func (x *HostifUserDefinedTrapAttribute) GetType() HostifUserDefinedTrapType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return HostifUserDefinedTrapType_HOSTIF_USER_DEFINED_TRAP_TYPE_UNSPECIFIED } func (x *HostifUserDefinedTrapAttribute) GetTrapPriority() uint32 { - if x != nil { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *HostifUserDefinedTrapAttribute) GetTrapGroup() uint64 { - if x != nil { - return x.TrapGroup + if x != nil && x.TrapGroup != nil { + return *x.TrapGroup } return 0 } @@ -18604,16 +18276,16 @@ type IngressPriorityGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BufferProfile uint64 `protobuf:"varint,1,opt,name=buffer_profile,json=bufferProfile,proto3" json:"buffer_profile,omitempty"` - Port uint64 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` - Tam *Uint64List `protobuf:"bytes,3,opt,name=tam,proto3" json:"tam,omitempty"` - Index uint32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` + BufferProfile *uint64 `protobuf:"varint,1,opt,name=buffer_profile,json=bufferProfile,proto3,oneof" json:"buffer_profile,omitempty"` + Port *uint64 `protobuf:"varint,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + Tam []uint64 `protobuf:"varint,3,rep,packed,name=tam,proto3" json:"tam,omitempty"` + Index *uint32 `protobuf:"varint,4,opt,name=index,proto3,oneof" json:"index,omitempty"` } func (x *IngressPriorityGroupAttribute) Reset() { *x = IngressPriorityGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[66] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18626,7 +18298,7 @@ func (x *IngressPriorityGroupAttribute) String() string { func (*IngressPriorityGroupAttribute) ProtoMessage() {} func (x *IngressPriorityGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[66] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18639,24 +18311,24 @@ func (x *IngressPriorityGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IngressPriorityGroupAttribute.ProtoReflect.Descriptor instead. func (*IngressPriorityGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{66} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{59} } func (x *IngressPriorityGroupAttribute) GetBufferProfile() uint64 { - if x != nil { - return x.BufferProfile + if x != nil && x.BufferProfile != nil { + return *x.BufferProfile } return 0 } func (x *IngressPriorityGroupAttribute) GetPort() uint64 { - if x != nil { - return x.Port + if x != nil && x.Port != nil { + return *x.Port } return 0 } -func (x *IngressPriorityGroupAttribute) GetTam() *Uint64List { +func (x *IngressPriorityGroupAttribute) GetTam() []uint64 { if x != nil { return x.Tam } @@ -18664,8 +18336,8 @@ func (x *IngressPriorityGroupAttribute) GetTam() *Uint64List { } func (x *IngressPriorityGroupAttribute) GetIndex() uint32 { - if x != nil { - return x.Index + if x != nil && x.Index != nil { + return *x.Index } return 0 } @@ -18675,23 +18347,23 @@ type InsegEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NumOfPop uint32 `protobuf:"varint,1,opt,name=num_of_pop,json=numOfPop,proto3" json:"num_of_pop,omitempty"` - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - TrapPriority uint32 `protobuf:"varint,3,opt,name=trap_priority,json=trapPriority,proto3" json:"trap_priority,omitempty"` - NextHopId uint64 `protobuf:"varint,4,opt,name=next_hop_id,json=nextHopId,proto3" json:"next_hop_id,omitempty"` - PscType InsegEntryPscType `protobuf:"varint,5,opt,name=psc_type,json=pscType,proto3,enum=lemming.dataplane.sai.InsegEntryPscType" json:"psc_type,omitempty"` - QosTc uint32 `protobuf:"varint,6,opt,name=qos_tc,json=qosTc,proto3" json:"qos_tc,omitempty"` - MplsExpToTcMap uint64 `protobuf:"varint,7,opt,name=mpls_exp_to_tc_map,json=mplsExpToTcMap,proto3" json:"mpls_exp_to_tc_map,omitempty"` - MplsExpToColorMap uint64 `protobuf:"varint,8,opt,name=mpls_exp_to_color_map,json=mplsExpToColorMap,proto3" json:"mpls_exp_to_color_map,omitempty"` - PopTtlMode InsegEntryPopTtlMode `protobuf:"varint,9,opt,name=pop_ttl_mode,json=popTtlMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopTtlMode" json:"pop_ttl_mode,omitempty"` - PopQosMode InsegEntryPopQosMode `protobuf:"varint,10,opt,name=pop_qos_mode,json=popQosMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopQosMode" json:"pop_qos_mode,omitempty"` - CounterId uint64 `protobuf:"varint,11,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + NumOfPop *uint32 `protobuf:"varint,1,opt,name=num_of_pop,json=numOfPop,proto3,oneof" json:"num_of_pop,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,3,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + NextHopId *uint64 `protobuf:"varint,4,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + PscType *InsegEntryPscType `protobuf:"varint,5,opt,name=psc_type,json=pscType,proto3,enum=lemming.dataplane.sai.InsegEntryPscType,oneof" json:"psc_type,omitempty"` + QosTc *uint32 `protobuf:"varint,6,opt,name=qos_tc,json=qosTc,proto3,oneof" json:"qos_tc,omitempty"` + MplsExpToTcMap *uint64 `protobuf:"varint,7,opt,name=mpls_exp_to_tc_map,json=mplsExpToTcMap,proto3,oneof" json:"mpls_exp_to_tc_map,omitempty"` + MplsExpToColorMap *uint64 `protobuf:"varint,8,opt,name=mpls_exp_to_color_map,json=mplsExpToColorMap,proto3,oneof" json:"mpls_exp_to_color_map,omitempty"` + PopTtlMode *InsegEntryPopTtlMode `protobuf:"varint,9,opt,name=pop_ttl_mode,json=popTtlMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopTtlMode,oneof" json:"pop_ttl_mode,omitempty"` + PopQosMode *InsegEntryPopQosMode `protobuf:"varint,10,opt,name=pop_qos_mode,json=popQosMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopQosMode,oneof" json:"pop_qos_mode,omitempty"` + CounterId *uint64 `protobuf:"varint,11,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *InsegEntryAttribute) Reset() { *x = InsegEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[67] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18704,7 +18376,7 @@ func (x *InsegEntryAttribute) String() string { func (*InsegEntryAttribute) ProtoMessage() {} func (x *InsegEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[67] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18717,82 +18389,82 @@ func (x *InsegEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use InsegEntryAttribute.ProtoReflect.Descriptor instead. func (*InsegEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{67} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{60} } func (x *InsegEntryAttribute) GetNumOfPop() uint32 { - if x != nil { - return x.NumOfPop + if x != nil && x.NumOfPop != nil { + return *x.NumOfPop } return 0 } func (x *InsegEntryAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *InsegEntryAttribute) GetTrapPriority() uint32 { - if x != nil { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *InsegEntryAttribute) GetNextHopId() uint64 { - if x != nil { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *InsegEntryAttribute) GetPscType() InsegEntryPscType { - if x != nil { - return x.PscType + if x != nil && x.PscType != nil { + return *x.PscType } return InsegEntryPscType_INSEG_ENTRY_PSC_TYPE_UNSPECIFIED } func (x *InsegEntryAttribute) GetQosTc() uint32 { - if x != nil { - return x.QosTc + if x != nil && x.QosTc != nil { + return *x.QosTc } return 0 } func (x *InsegEntryAttribute) GetMplsExpToTcMap() uint64 { - if x != nil { - return x.MplsExpToTcMap + if x != nil && x.MplsExpToTcMap != nil { + return *x.MplsExpToTcMap } return 0 } func (x *InsegEntryAttribute) GetMplsExpToColorMap() uint64 { - if x != nil { - return x.MplsExpToColorMap + if x != nil && x.MplsExpToColorMap != nil { + return *x.MplsExpToColorMap } return 0 } func (x *InsegEntryAttribute) GetPopTtlMode() InsegEntryPopTtlMode { - if x != nil { - return x.PopTtlMode + if x != nil && x.PopTtlMode != nil { + return *x.PopTtlMode } return InsegEntryPopTtlMode_INSEG_ENTRY_POP_TTL_MODE_UNSPECIFIED } func (x *InsegEntryAttribute) GetPopQosMode() InsegEntryPopQosMode { - if x != nil { - return x.PopQosMode + if x != nil && x.PopQosMode != nil { + return *x.PopQosMode } return InsegEntryPopQosMode_INSEG_ENTRY_POP_QOS_MODE_UNSPECIFIED } func (x *InsegEntryAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -18802,15 +18474,15 @@ type IpmcEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PacketAction PacketAction `protobuf:"varint,1,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - OutputGroupId uint64 `protobuf:"varint,2,opt,name=output_group_id,json=outputGroupId,proto3" json:"output_group_id,omitempty"` - RpfGroupId uint64 `protobuf:"varint,3,opt,name=rpf_group_id,json=rpfGroupId,proto3" json:"rpf_group_id,omitempty"` + PacketAction *PacketAction `protobuf:"varint,1,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + OutputGroupId *uint64 `protobuf:"varint,2,opt,name=output_group_id,json=outputGroupId,proto3,oneof" json:"output_group_id,omitempty"` + RpfGroupId *uint64 `protobuf:"varint,3,opt,name=rpf_group_id,json=rpfGroupId,proto3,oneof" json:"rpf_group_id,omitempty"` } func (x *IpmcEntryAttribute) Reset() { *x = IpmcEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[68] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18823,7 +18495,7 @@ func (x *IpmcEntryAttribute) String() string { func (*IpmcEntryAttribute) ProtoMessage() {} func (x *IpmcEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[68] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18836,26 +18508,26 @@ func (x *IpmcEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IpmcEntryAttribute.ProtoReflect.Descriptor instead. func (*IpmcEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{68} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{61} } func (x *IpmcEntryAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *IpmcEntryAttribute) GetOutputGroupId() uint64 { - if x != nil { - return x.OutputGroupId + if x != nil && x.OutputGroupId != nil { + return *x.OutputGroupId } return 0 } func (x *IpmcEntryAttribute) GetRpfGroupId() uint64 { - if x != nil { - return x.RpfGroupId + if x != nil && x.RpfGroupId != nil { + return *x.RpfGroupId } return 0 } @@ -18865,14 +18537,14 @@ type IpmcGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IpmcOutputCount uint32 `protobuf:"varint,1,opt,name=ipmc_output_count,json=ipmcOutputCount,proto3" json:"ipmc_output_count,omitempty"` - IpmcMemberList *Uint64List `protobuf:"bytes,2,opt,name=ipmc_member_list,json=ipmcMemberList,proto3" json:"ipmc_member_list,omitempty"` + IpmcOutputCount *uint32 `protobuf:"varint,1,opt,name=ipmc_output_count,json=ipmcOutputCount,proto3,oneof" json:"ipmc_output_count,omitempty"` + IpmcMemberList []uint64 `protobuf:"varint,2,rep,packed,name=ipmc_member_list,json=ipmcMemberList,proto3" json:"ipmc_member_list,omitempty"` } func (x *IpmcGroupAttribute) Reset() { *x = IpmcGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[69] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18885,7 +18557,7 @@ func (x *IpmcGroupAttribute) String() string { func (*IpmcGroupAttribute) ProtoMessage() {} func (x *IpmcGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[69] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18898,17 +18570,17 @@ func (x *IpmcGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IpmcGroupAttribute.ProtoReflect.Descriptor instead. func (*IpmcGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{69} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{62} } func (x *IpmcGroupAttribute) GetIpmcOutputCount() uint32 { - if x != nil { - return x.IpmcOutputCount + if x != nil && x.IpmcOutputCount != nil { + return *x.IpmcOutputCount } return 0 } -func (x *IpmcGroupAttribute) GetIpmcMemberList() *Uint64List { +func (x *IpmcGroupAttribute) GetIpmcMemberList() []uint64 { if x != nil { return x.IpmcMemberList } @@ -18920,14 +18592,14 @@ type IpmcGroupMemberAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IpmcGroupId uint64 `protobuf:"varint,1,opt,name=ipmc_group_id,json=ipmcGroupId,proto3" json:"ipmc_group_id,omitempty"` - IpmcOutputId uint64 `protobuf:"varint,2,opt,name=ipmc_output_id,json=ipmcOutputId,proto3" json:"ipmc_output_id,omitempty"` + IpmcGroupId *uint64 `protobuf:"varint,1,opt,name=ipmc_group_id,json=ipmcGroupId,proto3,oneof" json:"ipmc_group_id,omitempty"` + IpmcOutputId *uint64 `protobuf:"varint,2,opt,name=ipmc_output_id,json=ipmcOutputId,proto3,oneof" json:"ipmc_output_id,omitempty"` } func (x *IpmcGroupMemberAttribute) Reset() { *x = IpmcGroupMemberAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[70] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18940,7 +18612,7 @@ func (x *IpmcGroupMemberAttribute) String() string { func (*IpmcGroupMemberAttribute) ProtoMessage() {} func (x *IpmcGroupMemberAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[70] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18953,101 +18625,54 @@ func (x *IpmcGroupMemberAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IpmcGroupMemberAttribute.ProtoReflect.Descriptor instead. func (*IpmcGroupMemberAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{70} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{63} } func (x *IpmcGroupMemberAttribute) GetIpmcGroupId() uint64 { - if x != nil { - return x.IpmcGroupId + if x != nil && x.IpmcGroupId != nil { + return *x.IpmcGroupId } return 0 } func (x *IpmcGroupMemberAttribute) GetIpmcOutputId() uint64 { - if x != nil { - return x.IpmcOutputId + if x != nil && x.IpmcOutputId != nil { + return *x.IpmcOutputId } return 0 } -type IpsecCipherList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []IpsecCipher `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.IpsecCipher" json:"list,omitempty"` -} - -func (x *IpsecCipherList) Reset() { - *x = IpsecCipherList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IpsecCipherList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IpsecCipherList) ProtoMessage() {} - -func (x *IpsecCipherList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use IpsecCipherList.ProtoReflect.Descriptor instead. -func (*IpsecCipherList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{71} -} - -func (x *IpsecCipherList) GetList() []IpsecCipher { - if x != nil { - return x.List - } - return nil -} - type IpsecAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TermRemoteIpMatchSupported bool `protobuf:"varint,1,opt,name=term_remote_ip_match_supported,json=termRemoteIpMatchSupported,proto3" json:"term_remote_ip_match_supported,omitempty"` - SwitchingModeCutThroughSupported bool `protobuf:"varint,2,opt,name=switching_mode_cut_through_supported,json=switchingModeCutThroughSupported,proto3" json:"switching_mode_cut_through_supported,omitempty"` - SwitchingModeStoreAndForwardSupported bool `protobuf:"varint,3,opt,name=switching_mode_store_and_forward_supported,json=switchingModeStoreAndForwardSupported,proto3" json:"switching_mode_store_and_forward_supported,omitempty"` - StatsModeReadSupported bool `protobuf:"varint,4,opt,name=stats_mode_read_supported,json=statsModeReadSupported,proto3" json:"stats_mode_read_supported,omitempty"` - StatsModeReadClearSupported bool `protobuf:"varint,5,opt,name=stats_mode_read_clear_supported,json=statsModeReadClearSupported,proto3" json:"stats_mode_read_clear_supported,omitempty"` - Sn_32BitSupported bool `protobuf:"varint,6,opt,name=sn_32bit_supported,json=sn32bitSupported,proto3" json:"sn_32bit_supported,omitempty"` - Esn_64BitSupported bool `protobuf:"varint,7,opt,name=esn_64bit_supported,json=esn64bitSupported,proto3" json:"esn_64bit_supported,omitempty"` - SupportedCipherList *IpsecCipherList `protobuf:"bytes,8,opt,name=supported_cipher_list,json=supportedCipherList,proto3" json:"supported_cipher_list,omitempty"` - SystemSideMtu uint32 `protobuf:"varint,9,opt,name=system_side_mtu,json=systemSideMtu,proto3" json:"system_side_mtu,omitempty"` - WarmBootSupported bool `protobuf:"varint,10,opt,name=warm_boot_supported,json=warmBootSupported,proto3" json:"warm_boot_supported,omitempty"` - WarmBootEnable bool `protobuf:"varint,11,opt,name=warm_boot_enable,json=warmBootEnable,proto3" json:"warm_boot_enable,omitempty"` - ExternalSaIndexEnable bool `protobuf:"varint,12,opt,name=external_sa_index_enable,json=externalSaIndexEnable,proto3" json:"external_sa_index_enable,omitempty"` - CtagTpid uint32 `protobuf:"varint,13,opt,name=ctag_tpid,json=ctagTpid,proto3" json:"ctag_tpid,omitempty"` - StagTpid uint32 `protobuf:"varint,14,opt,name=stag_tpid,json=stagTpid,proto3" json:"stag_tpid,omitempty"` - MaxVlanTagsParsed uint32 `protobuf:"varint,15,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3" json:"max_vlan_tags_parsed,omitempty"` - OctetCountHighWatermark uint64 `protobuf:"varint,16,opt,name=octet_count_high_watermark,json=octetCountHighWatermark,proto3" json:"octet_count_high_watermark,omitempty"` - OctetCountLowWatermark uint64 `protobuf:"varint,17,opt,name=octet_count_low_watermark,json=octetCountLowWatermark,proto3" json:"octet_count_low_watermark,omitempty"` - StatsMode StatsMode `protobuf:"varint,18,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode" json:"stats_mode,omitempty"` - AvailableIpsecSa uint32 `protobuf:"varint,19,opt,name=available_ipsec_sa,json=availableIpsecSa,proto3" json:"available_ipsec_sa,omitempty"` - SaList *Uint64List `protobuf:"bytes,20,opt,name=sa_list,json=saList,proto3" json:"sa_list,omitempty"` + TermRemoteIpMatchSupported *bool `protobuf:"varint,1,opt,name=term_remote_ip_match_supported,json=termRemoteIpMatchSupported,proto3,oneof" json:"term_remote_ip_match_supported,omitempty"` + SwitchingModeCutThroughSupported *bool `protobuf:"varint,2,opt,name=switching_mode_cut_through_supported,json=switchingModeCutThroughSupported,proto3,oneof" json:"switching_mode_cut_through_supported,omitempty"` + SwitchingModeStoreAndForwardSupported *bool `protobuf:"varint,3,opt,name=switching_mode_store_and_forward_supported,json=switchingModeStoreAndForwardSupported,proto3,oneof" json:"switching_mode_store_and_forward_supported,omitempty"` + StatsModeReadSupported *bool `protobuf:"varint,4,opt,name=stats_mode_read_supported,json=statsModeReadSupported,proto3,oneof" json:"stats_mode_read_supported,omitempty"` + StatsModeReadClearSupported *bool `protobuf:"varint,5,opt,name=stats_mode_read_clear_supported,json=statsModeReadClearSupported,proto3,oneof" json:"stats_mode_read_clear_supported,omitempty"` + Sn_32BitSupported *bool `protobuf:"varint,6,opt,name=sn_32bit_supported,json=sn32bitSupported,proto3,oneof" json:"sn_32bit_supported,omitempty"` + Esn_64BitSupported *bool `protobuf:"varint,7,opt,name=esn_64bit_supported,json=esn64bitSupported,proto3,oneof" json:"esn_64bit_supported,omitempty"` + SupportedCipherList []IpsecCipher `protobuf:"varint,8,rep,packed,name=supported_cipher_list,json=supportedCipherList,proto3,enum=lemming.dataplane.sai.IpsecCipher" json:"supported_cipher_list,omitempty"` + SystemSideMtu *uint32 `protobuf:"varint,9,opt,name=system_side_mtu,json=systemSideMtu,proto3,oneof" json:"system_side_mtu,omitempty"` + WarmBootSupported *bool `protobuf:"varint,10,opt,name=warm_boot_supported,json=warmBootSupported,proto3,oneof" json:"warm_boot_supported,omitempty"` + WarmBootEnable *bool `protobuf:"varint,11,opt,name=warm_boot_enable,json=warmBootEnable,proto3,oneof" json:"warm_boot_enable,omitempty"` + ExternalSaIndexEnable *bool `protobuf:"varint,12,opt,name=external_sa_index_enable,json=externalSaIndexEnable,proto3,oneof" json:"external_sa_index_enable,omitempty"` + CtagTpid *uint32 `protobuf:"varint,13,opt,name=ctag_tpid,json=ctagTpid,proto3,oneof" json:"ctag_tpid,omitempty"` + StagTpid *uint32 `protobuf:"varint,14,opt,name=stag_tpid,json=stagTpid,proto3,oneof" json:"stag_tpid,omitempty"` + MaxVlanTagsParsed *uint32 `protobuf:"varint,15,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3,oneof" json:"max_vlan_tags_parsed,omitempty"` + OctetCountHighWatermark *uint64 `protobuf:"varint,16,opt,name=octet_count_high_watermark,json=octetCountHighWatermark,proto3,oneof" json:"octet_count_high_watermark,omitempty"` + OctetCountLowWatermark *uint64 `protobuf:"varint,17,opt,name=octet_count_low_watermark,json=octetCountLowWatermark,proto3,oneof" json:"octet_count_low_watermark,omitempty"` + StatsMode *StatsMode `protobuf:"varint,18,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode,oneof" json:"stats_mode,omitempty"` + AvailableIpsecSa *uint32 `protobuf:"varint,19,opt,name=available_ipsec_sa,json=availableIpsecSa,proto3,oneof" json:"available_ipsec_sa,omitempty"` + SaList []uint64 `protobuf:"varint,20,rep,packed,name=sa_list,json=saList,proto3" json:"sa_list,omitempty"` } func (x *IpsecAttribute) Reset() { *x = IpsecAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[72] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19060,7 +18685,7 @@ func (x *IpsecAttribute) String() string { func (*IpsecAttribute) ProtoMessage() {} func (x *IpsecAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[72] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19073,59 +18698,59 @@ func (x *IpsecAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IpsecAttribute.ProtoReflect.Descriptor instead. func (*IpsecAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{72} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{64} } func (x *IpsecAttribute) GetTermRemoteIpMatchSupported() bool { - if x != nil { - return x.TermRemoteIpMatchSupported + if x != nil && x.TermRemoteIpMatchSupported != nil { + return *x.TermRemoteIpMatchSupported } return false } func (x *IpsecAttribute) GetSwitchingModeCutThroughSupported() bool { - if x != nil { - return x.SwitchingModeCutThroughSupported + if x != nil && x.SwitchingModeCutThroughSupported != nil { + return *x.SwitchingModeCutThroughSupported } return false } func (x *IpsecAttribute) GetSwitchingModeStoreAndForwardSupported() bool { - if x != nil { - return x.SwitchingModeStoreAndForwardSupported + if x != nil && x.SwitchingModeStoreAndForwardSupported != nil { + return *x.SwitchingModeStoreAndForwardSupported } return false } func (x *IpsecAttribute) GetStatsModeReadSupported() bool { - if x != nil { - return x.StatsModeReadSupported + if x != nil && x.StatsModeReadSupported != nil { + return *x.StatsModeReadSupported } return false } func (x *IpsecAttribute) GetStatsModeReadClearSupported() bool { - if x != nil { - return x.StatsModeReadClearSupported + if x != nil && x.StatsModeReadClearSupported != nil { + return *x.StatsModeReadClearSupported } return false } func (x *IpsecAttribute) GetSn_32BitSupported() bool { - if x != nil { - return x.Sn_32BitSupported + if x != nil && x.Sn_32BitSupported != nil { + return *x.Sn_32BitSupported } return false } func (x *IpsecAttribute) GetEsn_64BitSupported() bool { - if x != nil { - return x.Esn_64BitSupported + if x != nil && x.Esn_64BitSupported != nil { + return *x.Esn_64BitSupported } return false } -func (x *IpsecAttribute) GetSupportedCipherList() *IpsecCipherList { +func (x *IpsecAttribute) GetSupportedCipherList() []IpsecCipher { if x != nil { return x.SupportedCipherList } @@ -19133,83 +18758,83 @@ func (x *IpsecAttribute) GetSupportedCipherList() *IpsecCipherList { } func (x *IpsecAttribute) GetSystemSideMtu() uint32 { - if x != nil { - return x.SystemSideMtu + if x != nil && x.SystemSideMtu != nil { + return *x.SystemSideMtu } return 0 } func (x *IpsecAttribute) GetWarmBootSupported() bool { - if x != nil { - return x.WarmBootSupported + if x != nil && x.WarmBootSupported != nil { + return *x.WarmBootSupported } return false } func (x *IpsecAttribute) GetWarmBootEnable() bool { - if x != nil { - return x.WarmBootEnable + if x != nil && x.WarmBootEnable != nil { + return *x.WarmBootEnable } return false } func (x *IpsecAttribute) GetExternalSaIndexEnable() bool { - if x != nil { - return x.ExternalSaIndexEnable + if x != nil && x.ExternalSaIndexEnable != nil { + return *x.ExternalSaIndexEnable } return false } func (x *IpsecAttribute) GetCtagTpid() uint32 { - if x != nil { - return x.CtagTpid + if x != nil && x.CtagTpid != nil { + return *x.CtagTpid } return 0 } func (x *IpsecAttribute) GetStagTpid() uint32 { - if x != nil { - return x.StagTpid + if x != nil && x.StagTpid != nil { + return *x.StagTpid } return 0 } func (x *IpsecAttribute) GetMaxVlanTagsParsed() uint32 { - if x != nil { - return x.MaxVlanTagsParsed + if x != nil && x.MaxVlanTagsParsed != nil { + return *x.MaxVlanTagsParsed } return 0 } func (x *IpsecAttribute) GetOctetCountHighWatermark() uint64 { - if x != nil { - return x.OctetCountHighWatermark + if x != nil && x.OctetCountHighWatermark != nil { + return *x.OctetCountHighWatermark } return 0 } func (x *IpsecAttribute) GetOctetCountLowWatermark() uint64 { - if x != nil { - return x.OctetCountLowWatermark + if x != nil && x.OctetCountLowWatermark != nil { + return *x.OctetCountLowWatermark } return 0 } func (x *IpsecAttribute) GetStatsMode() StatsMode { - if x != nil { - return x.StatsMode + if x != nil && x.StatsMode != nil { + return *x.StatsMode } return StatsMode_STATS_MODE_UNSPECIFIED } func (x *IpsecAttribute) GetAvailableIpsecSa() uint32 { - if x != nil { - return x.AvailableIpsecSa + if x != nil && x.AvailableIpsecSa != nil { + return *x.AvailableIpsecSa } return 0 } -func (x *IpsecAttribute) GetSaList() *Uint64List { +func (x *IpsecAttribute) GetSaList() []uint64 { if x != nil { return x.SaList } @@ -19221,18 +18846,18 @@ type IpsecPortAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PortId uint64 `protobuf:"varint,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - CtagEnable bool `protobuf:"varint,2,opt,name=ctag_enable,json=ctagEnable,proto3" json:"ctag_enable,omitempty"` - StagEnable bool `protobuf:"varint,3,opt,name=stag_enable,json=stagEnable,proto3" json:"stag_enable,omitempty"` - NativeVlanId uint32 `protobuf:"varint,4,opt,name=native_vlan_id,json=nativeVlanId,proto3" json:"native_vlan_id,omitempty"` - VrfFromPacketVlanEnable bool `protobuf:"varint,5,opt,name=vrf_from_packet_vlan_enable,json=vrfFromPacketVlanEnable,proto3" json:"vrf_from_packet_vlan_enable,omitempty"` - SwitchSwitchingMode SwitchSwitchingMode `protobuf:"varint,6,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode" json:"switch_switching_mode,omitempty"` + PortId *uint64 `protobuf:"varint,1,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + CtagEnable *bool `protobuf:"varint,2,opt,name=ctag_enable,json=ctagEnable,proto3,oneof" json:"ctag_enable,omitempty"` + StagEnable *bool `protobuf:"varint,3,opt,name=stag_enable,json=stagEnable,proto3,oneof" json:"stag_enable,omitempty"` + NativeVlanId *uint32 `protobuf:"varint,4,opt,name=native_vlan_id,json=nativeVlanId,proto3,oneof" json:"native_vlan_id,omitempty"` + VrfFromPacketVlanEnable *bool `protobuf:"varint,5,opt,name=vrf_from_packet_vlan_enable,json=vrfFromPacketVlanEnable,proto3,oneof" json:"vrf_from_packet_vlan_enable,omitempty"` + SwitchSwitchingMode *SwitchSwitchingMode `protobuf:"varint,6,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switch_switching_mode,omitempty"` } func (x *IpsecPortAttribute) Reset() { *x = IpsecPortAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[73] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19245,7 +18870,7 @@ func (x *IpsecPortAttribute) String() string { func (*IpsecPortAttribute) ProtoMessage() {} func (x *IpsecPortAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[73] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19258,47 +18883,47 @@ func (x *IpsecPortAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IpsecPortAttribute.ProtoReflect.Descriptor instead. func (*IpsecPortAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{73} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{65} } func (x *IpsecPortAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *IpsecPortAttribute) GetCtagEnable() bool { - if x != nil { - return x.CtagEnable + if x != nil && x.CtagEnable != nil { + return *x.CtagEnable } return false } func (x *IpsecPortAttribute) GetStagEnable() bool { - if x != nil { - return x.StagEnable + if x != nil && x.StagEnable != nil { + return *x.StagEnable } return false } func (x *IpsecPortAttribute) GetNativeVlanId() uint32 { - if x != nil { - return x.NativeVlanId + if x != nil && x.NativeVlanId != nil { + return *x.NativeVlanId } return 0 } func (x *IpsecPortAttribute) GetVrfFromPacketVlanEnable() bool { - if x != nil { - return x.VrfFromPacketVlanEnable + if x != nil && x.VrfFromPacketVlanEnable != nil { + return *x.VrfFromPacketVlanEnable } return false } func (x *IpsecPortAttribute) GetSwitchSwitchingMode() SwitchSwitchingMode { - if x != nil { - return x.SwitchSwitchingMode + if x != nil && x.SwitchSwitchingMode != nil { + return *x.SwitchSwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } @@ -19308,33 +18933,33 @@ type IpsecSaAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IpsecDirection IpsecDirection `protobuf:"varint,1,opt,name=ipsec_direction,json=ipsecDirection,proto3,enum=lemming.dataplane.sai.IpsecDirection" json:"ipsec_direction,omitempty"` - IpsecId uint64 `protobuf:"varint,2,opt,name=ipsec_id,json=ipsecId,proto3" json:"ipsec_id,omitempty"` - OctetCountStatus IpsecSaOctetCountStatus `protobuf:"varint,3,opt,name=octet_count_status,json=octetCountStatus,proto3,enum=lemming.dataplane.sai.IpsecSaOctetCountStatus" json:"octet_count_status,omitempty"` - ExternalSaIndex uint32 `protobuf:"varint,4,opt,name=external_sa_index,json=externalSaIndex,proto3" json:"external_sa_index,omitempty"` - SaIndex uint32 `protobuf:"varint,5,opt,name=sa_index,json=saIndex,proto3" json:"sa_index,omitempty"` - IpsecPortList *Uint64List `protobuf:"bytes,6,opt,name=ipsec_port_list,json=ipsecPortList,proto3" json:"ipsec_port_list,omitempty"` - IpsecSpi uint32 `protobuf:"varint,7,opt,name=ipsec_spi,json=ipsecSpi,proto3" json:"ipsec_spi,omitempty"` - IpsecEsnEnable bool `protobuf:"varint,8,opt,name=ipsec_esn_enable,json=ipsecEsnEnable,proto3" json:"ipsec_esn_enable,omitempty"` - IpsecCipher IpsecCipher `protobuf:"varint,9,opt,name=ipsec_cipher,json=ipsecCipher,proto3,enum=lemming.dataplane.sai.IpsecCipher" json:"ipsec_cipher,omitempty"` - EncryptKey []byte `protobuf:"bytes,10,opt,name=encrypt_key,json=encryptKey,proto3" json:"encrypt_key,omitempty"` - Salt uint32 `protobuf:"varint,11,opt,name=salt,proto3" json:"salt,omitempty"` - AuthKey []byte `protobuf:"bytes,12,opt,name=auth_key,json=authKey,proto3" json:"auth_key,omitempty"` - IpsecReplayProtectionEnable bool `protobuf:"varint,13,opt,name=ipsec_replay_protection_enable,json=ipsecReplayProtectionEnable,proto3" json:"ipsec_replay_protection_enable,omitempty"` - IpsecReplayProtectionWindow uint32 `protobuf:"varint,14,opt,name=ipsec_replay_protection_window,json=ipsecReplayProtectionWindow,proto3" json:"ipsec_replay_protection_window,omitempty"` - TermDstIp []byte `protobuf:"bytes,15,opt,name=term_dst_ip,json=termDstIp,proto3" json:"term_dst_ip,omitempty"` - TermVlanIdEnable bool `protobuf:"varint,16,opt,name=term_vlan_id_enable,json=termVlanIdEnable,proto3" json:"term_vlan_id_enable,omitempty"` - TermVlanId uint32 `protobuf:"varint,17,opt,name=term_vlan_id,json=termVlanId,proto3" json:"term_vlan_id,omitempty"` - TermSrcIpEnable bool `protobuf:"varint,18,opt,name=term_src_ip_enable,json=termSrcIpEnable,proto3" json:"term_src_ip_enable,omitempty"` - TermSrcIp []byte `protobuf:"bytes,19,opt,name=term_src_ip,json=termSrcIp,proto3" json:"term_src_ip,omitempty"` - EgressEsn uint64 `protobuf:"varint,20,opt,name=egress_esn,json=egressEsn,proto3" json:"egress_esn,omitempty"` - MinimumIngressEsn uint64 `protobuf:"varint,21,opt,name=minimum_ingress_esn,json=minimumIngressEsn,proto3" json:"minimum_ingress_esn,omitempty"` + IpsecDirection *IpsecDirection `protobuf:"varint,1,opt,name=ipsec_direction,json=ipsecDirection,proto3,enum=lemming.dataplane.sai.IpsecDirection,oneof" json:"ipsec_direction,omitempty"` + IpsecId *uint64 `protobuf:"varint,2,opt,name=ipsec_id,json=ipsecId,proto3,oneof" json:"ipsec_id,omitempty"` + OctetCountStatus *IpsecSaOctetCountStatus `protobuf:"varint,3,opt,name=octet_count_status,json=octetCountStatus,proto3,enum=lemming.dataplane.sai.IpsecSaOctetCountStatus,oneof" json:"octet_count_status,omitempty"` + ExternalSaIndex *uint32 `protobuf:"varint,4,opt,name=external_sa_index,json=externalSaIndex,proto3,oneof" json:"external_sa_index,omitempty"` + SaIndex *uint32 `protobuf:"varint,5,opt,name=sa_index,json=saIndex,proto3,oneof" json:"sa_index,omitempty"` + IpsecPortList []uint64 `protobuf:"varint,6,rep,packed,name=ipsec_port_list,json=ipsecPortList,proto3" json:"ipsec_port_list,omitempty"` + IpsecSpi *uint32 `protobuf:"varint,7,opt,name=ipsec_spi,json=ipsecSpi,proto3,oneof" json:"ipsec_spi,omitempty"` + IpsecEsnEnable *bool `protobuf:"varint,8,opt,name=ipsec_esn_enable,json=ipsecEsnEnable,proto3,oneof" json:"ipsec_esn_enable,omitempty"` + IpsecCipher *IpsecCipher `protobuf:"varint,9,opt,name=ipsec_cipher,json=ipsecCipher,proto3,enum=lemming.dataplane.sai.IpsecCipher,oneof" json:"ipsec_cipher,omitempty"` + EncryptKey []byte `protobuf:"bytes,10,opt,name=encrypt_key,json=encryptKey,proto3,oneof" json:"encrypt_key,omitempty"` + Salt *uint32 `protobuf:"varint,11,opt,name=salt,proto3,oneof" json:"salt,omitempty"` + AuthKey []byte `protobuf:"bytes,12,opt,name=auth_key,json=authKey,proto3,oneof" json:"auth_key,omitempty"` + IpsecReplayProtectionEnable *bool `protobuf:"varint,13,opt,name=ipsec_replay_protection_enable,json=ipsecReplayProtectionEnable,proto3,oneof" json:"ipsec_replay_protection_enable,omitempty"` + IpsecReplayProtectionWindow *uint32 `protobuf:"varint,14,opt,name=ipsec_replay_protection_window,json=ipsecReplayProtectionWindow,proto3,oneof" json:"ipsec_replay_protection_window,omitempty"` + TermDstIp []byte `protobuf:"bytes,15,opt,name=term_dst_ip,json=termDstIp,proto3,oneof" json:"term_dst_ip,omitempty"` + TermVlanIdEnable *bool `protobuf:"varint,16,opt,name=term_vlan_id_enable,json=termVlanIdEnable,proto3,oneof" json:"term_vlan_id_enable,omitempty"` + TermVlanId *uint32 `protobuf:"varint,17,opt,name=term_vlan_id,json=termVlanId,proto3,oneof" json:"term_vlan_id,omitempty"` + TermSrcIpEnable *bool `protobuf:"varint,18,opt,name=term_src_ip_enable,json=termSrcIpEnable,proto3,oneof" json:"term_src_ip_enable,omitempty"` + TermSrcIp []byte `protobuf:"bytes,19,opt,name=term_src_ip,json=termSrcIp,proto3,oneof" json:"term_src_ip,omitempty"` + EgressEsn *uint64 `protobuf:"varint,20,opt,name=egress_esn,json=egressEsn,proto3,oneof" json:"egress_esn,omitempty"` + MinimumIngressEsn *uint64 `protobuf:"varint,21,opt,name=minimum_ingress_esn,json=minimumIngressEsn,proto3,oneof" json:"minimum_ingress_esn,omitempty"` } func (x *IpsecSaAttribute) Reset() { *x = IpsecSaAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[74] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19347,7 +18972,7 @@ func (x *IpsecSaAttribute) String() string { func (*IpsecSaAttribute) ProtoMessage() {} func (x *IpsecSaAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[74] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19360,45 +18985,45 @@ func (x *IpsecSaAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IpsecSaAttribute.ProtoReflect.Descriptor instead. func (*IpsecSaAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{74} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{66} } func (x *IpsecSaAttribute) GetIpsecDirection() IpsecDirection { - if x != nil { - return x.IpsecDirection + if x != nil && x.IpsecDirection != nil { + return *x.IpsecDirection } return IpsecDirection_IPSEC_DIRECTION_UNSPECIFIED } func (x *IpsecSaAttribute) GetIpsecId() uint64 { - if x != nil { - return x.IpsecId + if x != nil && x.IpsecId != nil { + return *x.IpsecId } return 0 } func (x *IpsecSaAttribute) GetOctetCountStatus() IpsecSaOctetCountStatus { - if x != nil { - return x.OctetCountStatus + if x != nil && x.OctetCountStatus != nil { + return *x.OctetCountStatus } return IpsecSaOctetCountStatus_IPSEC_SA_OCTET_COUNT_STATUS_UNSPECIFIED } func (x *IpsecSaAttribute) GetExternalSaIndex() uint32 { - if x != nil { - return x.ExternalSaIndex + if x != nil && x.ExternalSaIndex != nil { + return *x.ExternalSaIndex } return 0 } func (x *IpsecSaAttribute) GetSaIndex() uint32 { - if x != nil { - return x.SaIndex + if x != nil && x.SaIndex != nil { + return *x.SaIndex } return 0 } -func (x *IpsecSaAttribute) GetIpsecPortList() *Uint64List { +func (x *IpsecSaAttribute) GetIpsecPortList() []uint64 { if x != nil { return x.IpsecPortList } @@ -19406,22 +19031,22 @@ func (x *IpsecSaAttribute) GetIpsecPortList() *Uint64List { } func (x *IpsecSaAttribute) GetIpsecSpi() uint32 { - if x != nil { - return x.IpsecSpi + if x != nil && x.IpsecSpi != nil { + return *x.IpsecSpi } return 0 } func (x *IpsecSaAttribute) GetIpsecEsnEnable() bool { - if x != nil { - return x.IpsecEsnEnable + if x != nil && x.IpsecEsnEnable != nil { + return *x.IpsecEsnEnable } return false } func (x *IpsecSaAttribute) GetIpsecCipher() IpsecCipher { - if x != nil { - return x.IpsecCipher + if x != nil && x.IpsecCipher != nil { + return *x.IpsecCipher } return IpsecCipher_IPSEC_CIPHER_UNSPECIFIED } @@ -19434,8 +19059,8 @@ func (x *IpsecSaAttribute) GetEncryptKey() []byte { } func (x *IpsecSaAttribute) GetSalt() uint32 { - if x != nil { - return x.Salt + if x != nil && x.Salt != nil { + return *x.Salt } return 0 } @@ -19448,15 +19073,15 @@ func (x *IpsecSaAttribute) GetAuthKey() []byte { } func (x *IpsecSaAttribute) GetIpsecReplayProtectionEnable() bool { - if x != nil { - return x.IpsecReplayProtectionEnable + if x != nil && x.IpsecReplayProtectionEnable != nil { + return *x.IpsecReplayProtectionEnable } return false } func (x *IpsecSaAttribute) GetIpsecReplayProtectionWindow() uint32 { - if x != nil { - return x.IpsecReplayProtectionWindow + if x != nil && x.IpsecReplayProtectionWindow != nil { + return *x.IpsecReplayProtectionWindow } return 0 } @@ -19469,22 +19094,22 @@ func (x *IpsecSaAttribute) GetTermDstIp() []byte { } func (x *IpsecSaAttribute) GetTermVlanIdEnable() bool { - if x != nil { - return x.TermVlanIdEnable + if x != nil && x.TermVlanIdEnable != nil { + return *x.TermVlanIdEnable } return false } func (x *IpsecSaAttribute) GetTermVlanId() uint32 { - if x != nil { - return x.TermVlanId + if x != nil && x.TermVlanId != nil { + return *x.TermVlanId } return 0 } func (x *IpsecSaAttribute) GetTermSrcIpEnable() bool { - if x != nil { - return x.TermSrcIpEnable + if x != nil && x.TermSrcIpEnable != nil { + return *x.TermSrcIpEnable } return false } @@ -19497,15 +19122,15 @@ func (x *IpsecSaAttribute) GetTermSrcIp() []byte { } func (x *IpsecSaAttribute) GetEgressEsn() uint64 { - if x != nil { - return x.EgressEsn + if x != nil && x.EgressEsn != nil { + return *x.EgressEsn } return 0 } func (x *IpsecSaAttribute) GetMinimumIngressEsn() uint64 { - if x != nil { - return x.MinimumIngressEsn + if x != nil && x.MinimumIngressEsn != nil { + return *x.MinimumIngressEsn } return 0 } @@ -19515,14 +19140,14 @@ type IsolationGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type IsolationGroupType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.IsolationGroupType" json:"type,omitempty"` - IsolationMemberList *Uint64List `protobuf:"bytes,2,opt,name=isolation_member_list,json=isolationMemberList,proto3" json:"isolation_member_list,omitempty"` + Type *IsolationGroupType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.IsolationGroupType,oneof" json:"type,omitempty"` + IsolationMemberList []uint64 `protobuf:"varint,2,rep,packed,name=isolation_member_list,json=isolationMemberList,proto3" json:"isolation_member_list,omitempty"` } func (x *IsolationGroupAttribute) Reset() { *x = IsolationGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[75] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19535,7 +19160,7 @@ func (x *IsolationGroupAttribute) String() string { func (*IsolationGroupAttribute) ProtoMessage() {} func (x *IsolationGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[75] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19548,17 +19173,17 @@ func (x *IsolationGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IsolationGroupAttribute.ProtoReflect.Descriptor instead. func (*IsolationGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{75} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{67} } func (x *IsolationGroupAttribute) GetType() IsolationGroupType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return IsolationGroupType_ISOLATION_GROUP_TYPE_UNSPECIFIED } -func (x *IsolationGroupAttribute) GetIsolationMemberList() *Uint64List { +func (x *IsolationGroupAttribute) GetIsolationMemberList() []uint64 { if x != nil { return x.IsolationMemberList } @@ -19570,14 +19195,14 @@ type IsolationGroupMemberAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IsolationGroupId uint64 `protobuf:"varint,1,opt,name=isolation_group_id,json=isolationGroupId,proto3" json:"isolation_group_id,omitempty"` - IsolationObject uint64 `protobuf:"varint,2,opt,name=isolation_object,json=isolationObject,proto3" json:"isolation_object,omitempty"` + IsolationGroupId *uint64 `protobuf:"varint,1,opt,name=isolation_group_id,json=isolationGroupId,proto3,oneof" json:"isolation_group_id,omitempty"` + IsolationObject *uint64 `protobuf:"varint,2,opt,name=isolation_object,json=isolationObject,proto3,oneof" json:"isolation_object,omitempty"` } func (x *IsolationGroupMemberAttribute) Reset() { *x = IsolationGroupMemberAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[76] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19590,7 +19215,7 @@ func (x *IsolationGroupMemberAttribute) String() string { func (*IsolationGroupMemberAttribute) ProtoMessage() {} func (x *IsolationGroupMemberAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[76] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19603,19 +19228,19 @@ func (x *IsolationGroupMemberAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use IsolationGroupMemberAttribute.ProtoReflect.Descriptor instead. func (*IsolationGroupMemberAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{76} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{68} } func (x *IsolationGroupMemberAttribute) GetIsolationGroupId() uint64 { - if x != nil { - return x.IsolationGroupId + if x != nil && x.IsolationGroupId != nil { + return *x.IsolationGroupId } return 0 } func (x *IsolationGroupMemberAttribute) GetIsolationObject() uint64 { - if x != nil { - return x.IsolationObject + if x != nil && x.IsolationObject != nil { + return *x.IsolationObject } return 0 } @@ -19625,14 +19250,14 @@ type L2McEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PacketAction PacketAction `protobuf:"varint,1,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - OutputGroupId uint64 `protobuf:"varint,2,opt,name=output_group_id,json=outputGroupId,proto3" json:"output_group_id,omitempty"` + PacketAction *PacketAction `protobuf:"varint,1,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + OutputGroupId *uint64 `protobuf:"varint,2,opt,name=output_group_id,json=outputGroupId,proto3,oneof" json:"output_group_id,omitempty"` } func (x *L2McEntryAttribute) Reset() { *x = L2McEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[77] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19645,7 +19270,7 @@ func (x *L2McEntryAttribute) String() string { func (*L2McEntryAttribute) ProtoMessage() {} func (x *L2McEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[77] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19658,19 +19283,19 @@ func (x *L2McEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use L2McEntryAttribute.ProtoReflect.Descriptor instead. func (*L2McEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{77} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{69} } func (x *L2McEntryAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *L2McEntryAttribute) GetOutputGroupId() uint64 { - if x != nil { - return x.OutputGroupId + if x != nil && x.OutputGroupId != nil { + return *x.OutputGroupId } return 0 } @@ -19680,14 +19305,14 @@ type L2McGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - L2McOutputCount uint32 `protobuf:"varint,1,opt,name=l2mc_output_count,json=l2mcOutputCount,proto3" json:"l2mc_output_count,omitempty"` - L2McMemberList *Uint64List `protobuf:"bytes,2,opt,name=l2mc_member_list,json=l2mcMemberList,proto3" json:"l2mc_member_list,omitempty"` + L2McOutputCount *uint32 `protobuf:"varint,1,opt,name=l2mc_output_count,json=l2mcOutputCount,proto3,oneof" json:"l2mc_output_count,omitempty"` + L2McMemberList []uint64 `protobuf:"varint,2,rep,packed,name=l2mc_member_list,json=l2mcMemberList,proto3" json:"l2mc_member_list,omitempty"` } func (x *L2McGroupAttribute) Reset() { *x = L2McGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[78] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19700,7 +19325,7 @@ func (x *L2McGroupAttribute) String() string { func (*L2McGroupAttribute) ProtoMessage() {} func (x *L2McGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[78] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19713,17 +19338,17 @@ func (x *L2McGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use L2McGroupAttribute.ProtoReflect.Descriptor instead. func (*L2McGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{78} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{70} } func (x *L2McGroupAttribute) GetL2McOutputCount() uint32 { - if x != nil { - return x.L2McOutputCount + if x != nil && x.L2McOutputCount != nil { + return *x.L2McOutputCount } return 0 } -func (x *L2McGroupAttribute) GetL2McMemberList() *Uint64List { +func (x *L2McGroupAttribute) GetL2McMemberList() []uint64 { if x != nil { return x.L2McMemberList } @@ -19735,15 +19360,15 @@ type L2McGroupMemberAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - L2McGroupId uint64 `protobuf:"varint,1,opt,name=l2mc_group_id,json=l2mcGroupId,proto3" json:"l2mc_group_id,omitempty"` - L2McOutputId uint64 `protobuf:"varint,2,opt,name=l2mc_output_id,json=l2mcOutputId,proto3" json:"l2mc_output_id,omitempty"` - L2McEndpointIp []byte `protobuf:"bytes,3,opt,name=l2mc_endpoint_ip,json=l2mcEndpointIp,proto3" json:"l2mc_endpoint_ip,omitempty"` + L2McGroupId *uint64 `protobuf:"varint,1,opt,name=l2mc_group_id,json=l2mcGroupId,proto3,oneof" json:"l2mc_group_id,omitempty"` + L2McOutputId *uint64 `protobuf:"varint,2,opt,name=l2mc_output_id,json=l2mcOutputId,proto3,oneof" json:"l2mc_output_id,omitempty"` + L2McEndpointIp []byte `protobuf:"bytes,3,opt,name=l2mc_endpoint_ip,json=l2mcEndpointIp,proto3,oneof" json:"l2mc_endpoint_ip,omitempty"` } func (x *L2McGroupMemberAttribute) Reset() { *x = L2McGroupMemberAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[79] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19756,7 +19381,7 @@ func (x *L2McGroupMemberAttribute) String() string { func (*L2McGroupMemberAttribute) ProtoMessage() {} func (x *L2McGroupMemberAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[79] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19769,19 +19394,19 @@ func (x *L2McGroupMemberAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use L2McGroupMemberAttribute.ProtoReflect.Descriptor instead. func (*L2McGroupMemberAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{79} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{71} } func (x *L2McGroupMemberAttribute) GetL2McGroupId() uint64 { - if x != nil { - return x.L2McGroupId + if x != nil && x.L2McGroupId != nil { + return *x.L2McGroupId } return 0 } func (x *L2McGroupMemberAttribute) GetL2McOutputId() uint64 { - if x != nil { - return x.L2McOutputId + if x != nil && x.L2McOutputId != nil { + return *x.L2McOutputId } return 0 } @@ -19798,22 +19423,22 @@ type LagAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PortList *Uint64List `protobuf:"bytes,1,opt,name=port_list,json=portList,proto3" json:"port_list,omitempty"` - IngressAcl uint64 `protobuf:"varint,2,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,3,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - PortVlanId uint32 `protobuf:"varint,4,opt,name=port_vlan_id,json=portVlanId,proto3" json:"port_vlan_id,omitempty"` - DefaultVlanPriority uint32 `protobuf:"varint,5,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3" json:"default_vlan_priority,omitempty"` - DropUntagged bool `protobuf:"varint,6,opt,name=drop_untagged,json=dropUntagged,proto3" json:"drop_untagged,omitempty"` - DropTagged bool `protobuf:"varint,7,opt,name=drop_tagged,json=dropTagged,proto3" json:"drop_tagged,omitempty"` - Tpid uint32 `protobuf:"varint,8,opt,name=tpid,proto3" json:"tpid,omitempty"` - SystemPortAggregateId uint32 `protobuf:"varint,9,opt,name=system_port_aggregate_id,json=systemPortAggregateId,proto3" json:"system_port_aggregate_id,omitempty"` - Label []byte `protobuf:"bytes,10,opt,name=label,proto3" json:"label,omitempty"` + PortList []uint64 `protobuf:"varint,1,rep,packed,name=port_list,json=portList,proto3" json:"port_list,omitempty"` + IngressAcl *uint64 `protobuf:"varint,2,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,3,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + PortVlanId *uint32 `protobuf:"varint,4,opt,name=port_vlan_id,json=portVlanId,proto3,oneof" json:"port_vlan_id,omitempty"` + DefaultVlanPriority *uint32 `protobuf:"varint,5,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3,oneof" json:"default_vlan_priority,omitempty"` + DropUntagged *bool `protobuf:"varint,6,opt,name=drop_untagged,json=dropUntagged,proto3,oneof" json:"drop_untagged,omitempty"` + DropTagged *bool `protobuf:"varint,7,opt,name=drop_tagged,json=dropTagged,proto3,oneof" json:"drop_tagged,omitempty"` + Tpid *uint32 `protobuf:"varint,8,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + SystemPortAggregateId *uint32 `protobuf:"varint,9,opt,name=system_port_aggregate_id,json=systemPortAggregateId,proto3,oneof" json:"system_port_aggregate_id,omitempty"` + Label []byte `protobuf:"bytes,10,opt,name=label,proto3,oneof" json:"label,omitempty"` } func (x *LagAttribute) Reset() { *x = LagAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[80] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19826,7 +19451,7 @@ func (x *LagAttribute) String() string { func (*LagAttribute) ProtoMessage() {} func (x *LagAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[80] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19839,10 +19464,10 @@ func (x *LagAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use LagAttribute.ProtoReflect.Descriptor instead. func (*LagAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{80} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{72} } -func (x *LagAttribute) GetPortList() *Uint64List { +func (x *LagAttribute) GetPortList() []uint64 { if x != nil { return x.PortList } @@ -19850,57 +19475,57 @@ func (x *LagAttribute) GetPortList() *Uint64List { } func (x *LagAttribute) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *LagAttribute) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *LagAttribute) GetPortVlanId() uint32 { - if x != nil { - return x.PortVlanId + if x != nil && x.PortVlanId != nil { + return *x.PortVlanId } return 0 } func (x *LagAttribute) GetDefaultVlanPriority() uint32 { - if x != nil { - return x.DefaultVlanPriority + if x != nil && x.DefaultVlanPriority != nil { + return *x.DefaultVlanPriority } return 0 } func (x *LagAttribute) GetDropUntagged() bool { - if x != nil { - return x.DropUntagged + if x != nil && x.DropUntagged != nil { + return *x.DropUntagged } return false } func (x *LagAttribute) GetDropTagged() bool { - if x != nil { - return x.DropTagged + if x != nil && x.DropTagged != nil { + return *x.DropTagged } return false } func (x *LagAttribute) GetTpid() uint32 { - if x != nil { - return x.Tpid + if x != nil && x.Tpid != nil { + return *x.Tpid } return 0 } func (x *LagAttribute) GetSystemPortAggregateId() uint32 { - if x != nil { - return x.SystemPortAggregateId + if x != nil && x.SystemPortAggregateId != nil { + return *x.SystemPortAggregateId } return 0 } @@ -19917,16 +19542,16 @@ type LagMemberAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - LagId uint64 `protobuf:"varint,1,opt,name=lag_id,json=lagId,proto3" json:"lag_id,omitempty"` - PortId uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - EgressDisable bool `protobuf:"varint,3,opt,name=egress_disable,json=egressDisable,proto3" json:"egress_disable,omitempty"` - IngressDisable bool `protobuf:"varint,4,opt,name=ingress_disable,json=ingressDisable,proto3" json:"ingress_disable,omitempty"` + LagId *uint64 `protobuf:"varint,1,opt,name=lag_id,json=lagId,proto3,oneof" json:"lag_id,omitempty"` + PortId *uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + EgressDisable *bool `protobuf:"varint,3,opt,name=egress_disable,json=egressDisable,proto3,oneof" json:"egress_disable,omitempty"` + IngressDisable *bool `protobuf:"varint,4,opt,name=ingress_disable,json=ingressDisable,proto3,oneof" json:"ingress_disable,omitempty"` } func (x *LagMemberAttribute) Reset() { *x = LagMemberAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[81] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19939,7 +19564,7 @@ func (x *LagMemberAttribute) String() string { func (*LagMemberAttribute) ProtoMessage() {} func (x *LagMemberAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[81] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19952,167 +19577,73 @@ func (x *LagMemberAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use LagMemberAttribute.ProtoReflect.Descriptor instead. func (*LagMemberAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{81} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{73} } func (x *LagMemberAttribute) GetLagId() uint64 { - if x != nil { - return x.LagId + if x != nil && x.LagId != nil { + return *x.LagId } return 0 } func (x *LagMemberAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *LagMemberAttribute) GetEgressDisable() bool { - if x != nil { - return x.EgressDisable + if x != nil && x.EgressDisable != nil { + return *x.EgressDisable } return false } func (x *LagMemberAttribute) GetIngressDisable() bool { - if x != nil { - return x.IngressDisable + if x != nil && x.IngressDisable != nil { + return *x.IngressDisable } return false } -type MacsecCipherSuiteList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []MacsecCipherSuite `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.MacsecCipherSuite" json:"list,omitempty"` -} - -func (x *MacsecCipherSuiteList) Reset() { - *x = MacsecCipherSuiteList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[82] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MacsecCipherSuiteList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MacsecCipherSuiteList) ProtoMessage() {} - -func (x *MacsecCipherSuiteList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[82] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MacsecCipherSuiteList.ProtoReflect.Descriptor instead. -func (*MacsecCipherSuiteList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{82} -} - -func (x *MacsecCipherSuiteList) GetList() []MacsecCipherSuite { - if x != nil { - return x.List - } - return nil -} - -type Uint32List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []uint32 `protobuf:"varint,1,rep,packed,name=list,proto3" json:"list,omitempty"` -} - -func (x *Uint32List) Reset() { - *x = Uint32List{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Uint32List) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Uint32List) ProtoMessage() {} - -func (x *Uint32List) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[83] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Uint32List.ProtoReflect.Descriptor instead. -func (*Uint32List) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{83} -} - -func (x *Uint32List) GetList() []uint32 { - if x != nil { - return x.List - } - return nil -} - type MacsecAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Direction MacsecDirection `protobuf:"varint,1,opt,name=direction,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"direction,omitempty"` - SwitchingModeCutThroughSupported bool `protobuf:"varint,2,opt,name=switching_mode_cut_through_supported,json=switchingModeCutThroughSupported,proto3" json:"switching_mode_cut_through_supported,omitempty"` - SwitchingModeStoreAndForwardSupported bool `protobuf:"varint,3,opt,name=switching_mode_store_and_forward_supported,json=switchingModeStoreAndForwardSupported,proto3" json:"switching_mode_store_and_forward_supported,omitempty"` - StatsModeReadSupported bool `protobuf:"varint,4,opt,name=stats_mode_read_supported,json=statsModeReadSupported,proto3" json:"stats_mode_read_supported,omitempty"` - StatsModeReadClearSupported bool `protobuf:"varint,5,opt,name=stats_mode_read_clear_supported,json=statsModeReadClearSupported,proto3" json:"stats_mode_read_clear_supported,omitempty"` - SciInIngressMacsecAcl bool `protobuf:"varint,6,opt,name=sci_in_ingress_macsec_acl,json=sciInIngressMacsecAcl,proto3" json:"sci_in_ingress_macsec_acl,omitempty"` - SupportedCipherSuiteList *MacsecCipherSuiteList `protobuf:"bytes,7,opt,name=supported_cipher_suite_list,json=supportedCipherSuiteList,proto3" json:"supported_cipher_suite_list,omitempty"` - Pn_32BitSupported bool `protobuf:"varint,8,opt,name=pn_32bit_supported,json=pn32bitSupported,proto3" json:"pn_32bit_supported,omitempty"` - Xpn_64BitSupported bool `protobuf:"varint,9,opt,name=xpn_64bit_supported,json=xpn64bitSupported,proto3" json:"xpn_64bit_supported,omitempty"` - GcmAes128Supported bool `protobuf:"varint,10,opt,name=gcm_aes128_supported,json=gcmAes128Supported,proto3" json:"gcm_aes128_supported,omitempty"` - GcmAes256Supported bool `protobuf:"varint,11,opt,name=gcm_aes256_supported,json=gcmAes256Supported,proto3" json:"gcm_aes256_supported,omitempty"` - SectagOffsetsSupported *Uint32List `protobuf:"bytes,12,opt,name=sectag_offsets_supported,json=sectagOffsetsSupported,proto3" json:"sectag_offsets_supported,omitempty"` - SystemSideMtu uint32 `protobuf:"varint,13,opt,name=system_side_mtu,json=systemSideMtu,proto3" json:"system_side_mtu,omitempty"` - WarmBootSupported bool `protobuf:"varint,14,opt,name=warm_boot_supported,json=warmBootSupported,proto3" json:"warm_boot_supported,omitempty"` - WarmBootEnable bool `protobuf:"varint,15,opt,name=warm_boot_enable,json=warmBootEnable,proto3" json:"warm_boot_enable,omitempty"` - CtagTpid uint32 `protobuf:"varint,16,opt,name=ctag_tpid,json=ctagTpid,proto3" json:"ctag_tpid,omitempty"` - StagTpid uint32 `protobuf:"varint,17,opt,name=stag_tpid,json=stagTpid,proto3" json:"stag_tpid,omitempty"` - MaxVlanTagsParsed uint32 `protobuf:"varint,18,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3" json:"max_vlan_tags_parsed,omitempty"` - StatsMode StatsMode `protobuf:"varint,19,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode" json:"stats_mode,omitempty"` - PhysicalBypassEnable bool `protobuf:"varint,20,opt,name=physical_bypass_enable,json=physicalBypassEnable,proto3" json:"physical_bypass_enable,omitempty"` - SupportedPortList *Uint64List `protobuf:"bytes,21,opt,name=supported_port_list,json=supportedPortList,proto3" json:"supported_port_list,omitempty"` - AvailableMacsecFlow uint32 `protobuf:"varint,22,opt,name=available_macsec_flow,json=availableMacsecFlow,proto3" json:"available_macsec_flow,omitempty"` - FlowList *Uint64List `protobuf:"bytes,23,opt,name=flow_list,json=flowList,proto3" json:"flow_list,omitempty"` - AvailableMacsecSc uint32 `protobuf:"varint,24,opt,name=available_macsec_sc,json=availableMacsecSc,proto3" json:"available_macsec_sc,omitempty"` - AvailableMacsecSa uint32 `protobuf:"varint,25,opt,name=available_macsec_sa,json=availableMacsecSa,proto3" json:"available_macsec_sa,omitempty"` + Direction *MacsecDirection `protobuf:"varint,1,opt,name=direction,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"direction,omitempty"` + SwitchingModeCutThroughSupported *bool `protobuf:"varint,2,opt,name=switching_mode_cut_through_supported,json=switchingModeCutThroughSupported,proto3,oneof" json:"switching_mode_cut_through_supported,omitempty"` + SwitchingModeStoreAndForwardSupported *bool `protobuf:"varint,3,opt,name=switching_mode_store_and_forward_supported,json=switchingModeStoreAndForwardSupported,proto3,oneof" json:"switching_mode_store_and_forward_supported,omitempty"` + StatsModeReadSupported *bool `protobuf:"varint,4,opt,name=stats_mode_read_supported,json=statsModeReadSupported,proto3,oneof" json:"stats_mode_read_supported,omitempty"` + StatsModeReadClearSupported *bool `protobuf:"varint,5,opt,name=stats_mode_read_clear_supported,json=statsModeReadClearSupported,proto3,oneof" json:"stats_mode_read_clear_supported,omitempty"` + SciInIngressMacsecAcl *bool `protobuf:"varint,6,opt,name=sci_in_ingress_macsec_acl,json=sciInIngressMacsecAcl,proto3,oneof" json:"sci_in_ingress_macsec_acl,omitempty"` + SupportedCipherSuiteList []MacsecCipherSuite `protobuf:"varint,7,rep,packed,name=supported_cipher_suite_list,json=supportedCipherSuiteList,proto3,enum=lemming.dataplane.sai.MacsecCipherSuite" json:"supported_cipher_suite_list,omitempty"` + Pn_32BitSupported *bool `protobuf:"varint,8,opt,name=pn_32bit_supported,json=pn32bitSupported,proto3,oneof" json:"pn_32bit_supported,omitempty"` + Xpn_64BitSupported *bool `protobuf:"varint,9,opt,name=xpn_64bit_supported,json=xpn64bitSupported,proto3,oneof" json:"xpn_64bit_supported,omitempty"` + GcmAes128Supported *bool `protobuf:"varint,10,opt,name=gcm_aes128_supported,json=gcmAes128Supported,proto3,oneof" json:"gcm_aes128_supported,omitempty"` + GcmAes256Supported *bool `protobuf:"varint,11,opt,name=gcm_aes256_supported,json=gcmAes256Supported,proto3,oneof" json:"gcm_aes256_supported,omitempty"` + SectagOffsetsSupported []uint32 `protobuf:"varint,12,rep,packed,name=sectag_offsets_supported,json=sectagOffsetsSupported,proto3" json:"sectag_offsets_supported,omitempty"` + SystemSideMtu *uint32 `protobuf:"varint,13,opt,name=system_side_mtu,json=systemSideMtu,proto3,oneof" json:"system_side_mtu,omitempty"` + WarmBootSupported *bool `protobuf:"varint,14,opt,name=warm_boot_supported,json=warmBootSupported,proto3,oneof" json:"warm_boot_supported,omitempty"` + WarmBootEnable *bool `protobuf:"varint,15,opt,name=warm_boot_enable,json=warmBootEnable,proto3,oneof" json:"warm_boot_enable,omitempty"` + CtagTpid *uint32 `protobuf:"varint,16,opt,name=ctag_tpid,json=ctagTpid,proto3,oneof" json:"ctag_tpid,omitempty"` + StagTpid *uint32 `protobuf:"varint,17,opt,name=stag_tpid,json=stagTpid,proto3,oneof" json:"stag_tpid,omitempty"` + MaxVlanTagsParsed *uint32 `protobuf:"varint,18,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3,oneof" json:"max_vlan_tags_parsed,omitempty"` + StatsMode *StatsMode `protobuf:"varint,19,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode,oneof" json:"stats_mode,omitempty"` + PhysicalBypassEnable *bool `protobuf:"varint,20,opt,name=physical_bypass_enable,json=physicalBypassEnable,proto3,oneof" json:"physical_bypass_enable,omitempty"` + SupportedPortList []uint64 `protobuf:"varint,21,rep,packed,name=supported_port_list,json=supportedPortList,proto3" json:"supported_port_list,omitempty"` + AvailableMacsecFlow *uint32 `protobuf:"varint,22,opt,name=available_macsec_flow,json=availableMacsecFlow,proto3,oneof" json:"available_macsec_flow,omitempty"` + FlowList []uint64 `protobuf:"varint,23,rep,packed,name=flow_list,json=flowList,proto3" json:"flow_list,omitempty"` + AvailableMacsecSc *uint32 `protobuf:"varint,24,opt,name=available_macsec_sc,json=availableMacsecSc,proto3,oneof" json:"available_macsec_sc,omitempty"` + AvailableMacsecSa *uint32 `protobuf:"varint,25,opt,name=available_macsec_sa,json=availableMacsecSa,proto3,oneof" json:"available_macsec_sa,omitempty"` } func (x *MacsecAttribute) Reset() { *x = MacsecAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[84] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20125,7 +19656,7 @@ func (x *MacsecAttribute) String() string { func (*MacsecAttribute) ProtoMessage() {} func (x *MacsecAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[84] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20138,52 +19669,52 @@ func (x *MacsecAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use MacsecAttribute.ProtoReflect.Descriptor instead. func (*MacsecAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{84} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{74} } func (x *MacsecAttribute) GetDirection() MacsecDirection { - if x != nil { - return x.Direction + if x != nil && x.Direction != nil { + return *x.Direction } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } func (x *MacsecAttribute) GetSwitchingModeCutThroughSupported() bool { - if x != nil { - return x.SwitchingModeCutThroughSupported + if x != nil && x.SwitchingModeCutThroughSupported != nil { + return *x.SwitchingModeCutThroughSupported } return false } func (x *MacsecAttribute) GetSwitchingModeStoreAndForwardSupported() bool { - if x != nil { - return x.SwitchingModeStoreAndForwardSupported + if x != nil && x.SwitchingModeStoreAndForwardSupported != nil { + return *x.SwitchingModeStoreAndForwardSupported } return false } func (x *MacsecAttribute) GetStatsModeReadSupported() bool { - if x != nil { - return x.StatsModeReadSupported + if x != nil && x.StatsModeReadSupported != nil { + return *x.StatsModeReadSupported } return false } func (x *MacsecAttribute) GetStatsModeReadClearSupported() bool { - if x != nil { - return x.StatsModeReadClearSupported + if x != nil && x.StatsModeReadClearSupported != nil { + return *x.StatsModeReadClearSupported } return false } func (x *MacsecAttribute) GetSciInIngressMacsecAcl() bool { - if x != nil { - return x.SciInIngressMacsecAcl + if x != nil && x.SciInIngressMacsecAcl != nil { + return *x.SciInIngressMacsecAcl } return false } -func (x *MacsecAttribute) GetSupportedCipherSuiteList() *MacsecCipherSuiteList { +func (x *MacsecAttribute) GetSupportedCipherSuiteList() []MacsecCipherSuite { if x != nil { return x.SupportedCipherSuiteList } @@ -20191,34 +19722,34 @@ func (x *MacsecAttribute) GetSupportedCipherSuiteList() *MacsecCipherSuiteList { } func (x *MacsecAttribute) GetPn_32BitSupported() bool { - if x != nil { - return x.Pn_32BitSupported + if x != nil && x.Pn_32BitSupported != nil { + return *x.Pn_32BitSupported } return false } func (x *MacsecAttribute) GetXpn_64BitSupported() bool { - if x != nil { - return x.Xpn_64BitSupported + if x != nil && x.Xpn_64BitSupported != nil { + return *x.Xpn_64BitSupported } return false } func (x *MacsecAttribute) GetGcmAes128Supported() bool { - if x != nil { - return x.GcmAes128Supported + if x != nil && x.GcmAes128Supported != nil { + return *x.GcmAes128Supported } return false } func (x *MacsecAttribute) GetGcmAes256Supported() bool { - if x != nil { - return x.GcmAes256Supported + if x != nil && x.GcmAes256Supported != nil { + return *x.GcmAes256Supported } return false } -func (x *MacsecAttribute) GetSectagOffsetsSupported() *Uint32List { +func (x *MacsecAttribute) GetSectagOffsetsSupported() []uint32 { if x != nil { return x.SectagOffsetsSupported } @@ -20226,62 +19757,62 @@ func (x *MacsecAttribute) GetSectagOffsetsSupported() *Uint32List { } func (x *MacsecAttribute) GetSystemSideMtu() uint32 { - if x != nil { - return x.SystemSideMtu + if x != nil && x.SystemSideMtu != nil { + return *x.SystemSideMtu } return 0 } func (x *MacsecAttribute) GetWarmBootSupported() bool { - if x != nil { - return x.WarmBootSupported + if x != nil && x.WarmBootSupported != nil { + return *x.WarmBootSupported } return false } func (x *MacsecAttribute) GetWarmBootEnable() bool { - if x != nil { - return x.WarmBootEnable + if x != nil && x.WarmBootEnable != nil { + return *x.WarmBootEnable } return false } func (x *MacsecAttribute) GetCtagTpid() uint32 { - if x != nil { - return x.CtagTpid + if x != nil && x.CtagTpid != nil { + return *x.CtagTpid } return 0 } func (x *MacsecAttribute) GetStagTpid() uint32 { - if x != nil { - return x.StagTpid + if x != nil && x.StagTpid != nil { + return *x.StagTpid } return 0 } func (x *MacsecAttribute) GetMaxVlanTagsParsed() uint32 { - if x != nil { - return x.MaxVlanTagsParsed + if x != nil && x.MaxVlanTagsParsed != nil { + return *x.MaxVlanTagsParsed } return 0 } func (x *MacsecAttribute) GetStatsMode() StatsMode { - if x != nil { - return x.StatsMode + if x != nil && x.StatsMode != nil { + return *x.StatsMode } return StatsMode_STATS_MODE_UNSPECIFIED } func (x *MacsecAttribute) GetPhysicalBypassEnable() bool { - if x != nil { - return x.PhysicalBypassEnable + if x != nil && x.PhysicalBypassEnable != nil { + return *x.PhysicalBypassEnable } return false } -func (x *MacsecAttribute) GetSupportedPortList() *Uint64List { +func (x *MacsecAttribute) GetSupportedPortList() []uint64 { if x != nil { return x.SupportedPortList } @@ -20289,13 +19820,13 @@ func (x *MacsecAttribute) GetSupportedPortList() *Uint64List { } func (x *MacsecAttribute) GetAvailableMacsecFlow() uint32 { - if x != nil { - return x.AvailableMacsecFlow + if x != nil && x.AvailableMacsecFlow != nil { + return *x.AvailableMacsecFlow } return 0 } -func (x *MacsecAttribute) GetFlowList() *Uint64List { +func (x *MacsecAttribute) GetFlowList() []uint64 { if x != nil { return x.FlowList } @@ -20303,15 +19834,15 @@ func (x *MacsecAttribute) GetFlowList() *Uint64List { } func (x *MacsecAttribute) GetAvailableMacsecSc() uint32 { - if x != nil { - return x.AvailableMacsecSc + if x != nil && x.AvailableMacsecSc != nil { + return *x.AvailableMacsecSc } return 0 } func (x *MacsecAttribute) GetAvailableMacsecSa() uint32 { - if x != nil { - return x.AvailableMacsecSa + if x != nil && x.AvailableMacsecSa != nil { + return *x.AvailableMacsecSa } return 0 } @@ -20321,15 +19852,15 @@ type MacsecFlowAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MacsecDirection MacsecDirection `protobuf:"varint,1,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"macsec_direction,omitempty"` - AclEntryList *Uint64List `protobuf:"bytes,2,opt,name=acl_entry_list,json=aclEntryList,proto3" json:"acl_entry_list,omitempty"` - ScList *Uint64List `protobuf:"bytes,3,opt,name=sc_list,json=scList,proto3" json:"sc_list,omitempty"` + MacsecDirection *MacsecDirection `protobuf:"varint,1,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"macsec_direction,omitempty"` + AclEntryList []uint64 `protobuf:"varint,2,rep,packed,name=acl_entry_list,json=aclEntryList,proto3" json:"acl_entry_list,omitempty"` + ScList []uint64 `protobuf:"varint,3,rep,packed,name=sc_list,json=scList,proto3" json:"sc_list,omitempty"` } func (x *MacsecFlowAttribute) Reset() { *x = MacsecFlowAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[85] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20342,7 +19873,7 @@ func (x *MacsecFlowAttribute) String() string { func (*MacsecFlowAttribute) ProtoMessage() {} func (x *MacsecFlowAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[85] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20355,24 +19886,24 @@ func (x *MacsecFlowAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use MacsecFlowAttribute.ProtoReflect.Descriptor instead. func (*MacsecFlowAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{85} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{75} } func (x *MacsecFlowAttribute) GetMacsecDirection() MacsecDirection { - if x != nil { - return x.MacsecDirection + if x != nil && x.MacsecDirection != nil { + return *x.MacsecDirection } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } -func (x *MacsecFlowAttribute) GetAclEntryList() *Uint64List { +func (x *MacsecFlowAttribute) GetAclEntryList() []uint64 { if x != nil { return x.AclEntryList } return nil } -func (x *MacsecFlowAttribute) GetScList() *Uint64List { +func (x *MacsecFlowAttribute) GetScList() []uint64 { if x != nil { return x.ScList } @@ -20384,17 +19915,17 @@ type MacsecPortAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MacsecDirection MacsecDirection `protobuf:"varint,1,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"macsec_direction,omitempty"` - PortId uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - CtagEnable bool `protobuf:"varint,3,opt,name=ctag_enable,json=ctagEnable,proto3" json:"ctag_enable,omitempty"` - StagEnable bool `protobuf:"varint,4,opt,name=stag_enable,json=stagEnable,proto3" json:"stag_enable,omitempty"` - SwitchSwitchingMode SwitchSwitchingMode `protobuf:"varint,5,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode" json:"switch_switching_mode,omitempty"` + MacsecDirection *MacsecDirection `protobuf:"varint,1,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"macsec_direction,omitempty"` + PortId *uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + CtagEnable *bool `protobuf:"varint,3,opt,name=ctag_enable,json=ctagEnable,proto3,oneof" json:"ctag_enable,omitempty"` + StagEnable *bool `protobuf:"varint,4,opt,name=stag_enable,json=stagEnable,proto3,oneof" json:"stag_enable,omitempty"` + SwitchSwitchingMode *SwitchSwitchingMode `protobuf:"varint,5,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switch_switching_mode,omitempty"` } func (x *MacsecPortAttribute) Reset() { *x = MacsecPortAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[86] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20407,7 +19938,7 @@ func (x *MacsecPortAttribute) String() string { func (*MacsecPortAttribute) ProtoMessage() {} func (x *MacsecPortAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[86] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20420,40 +19951,40 @@ func (x *MacsecPortAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use MacsecPortAttribute.ProtoReflect.Descriptor instead. func (*MacsecPortAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{86} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{76} } func (x *MacsecPortAttribute) GetMacsecDirection() MacsecDirection { - if x != nil { - return x.MacsecDirection + if x != nil && x.MacsecDirection != nil { + return *x.MacsecDirection } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } func (x *MacsecPortAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *MacsecPortAttribute) GetCtagEnable() bool { - if x != nil { - return x.CtagEnable + if x != nil && x.CtagEnable != nil { + return *x.CtagEnable } return false } func (x *MacsecPortAttribute) GetStagEnable() bool { - if x != nil { - return x.StagEnable + if x != nil && x.StagEnable != nil { + return *x.StagEnable } return false } func (x *MacsecPortAttribute) GetSwitchSwitchingMode() SwitchSwitchingMode { - if x != nil { - return x.SwitchSwitchingMode + if x != nil && x.SwitchSwitchingMode != nil { + return *x.SwitchSwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } @@ -20463,22 +19994,22 @@ type MacsecSaAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MacsecDirection MacsecDirection `protobuf:"varint,1,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"macsec_direction,omitempty"` - ScId uint64 `protobuf:"varint,2,opt,name=sc_id,json=scId,proto3" json:"sc_id,omitempty"` - An uint32 `protobuf:"varint,3,opt,name=an,proto3" json:"an,omitempty"` - Sak []byte `protobuf:"bytes,4,opt,name=sak,proto3" json:"sak,omitempty"` - Salt []byte `protobuf:"bytes,5,opt,name=salt,proto3" json:"salt,omitempty"` - AuthKey []byte `protobuf:"bytes,6,opt,name=auth_key,json=authKey,proto3" json:"auth_key,omitempty"` - ConfiguredEgressXpn uint64 `protobuf:"varint,7,opt,name=configured_egress_xpn,json=configuredEgressXpn,proto3" json:"configured_egress_xpn,omitempty"` - CurrentXpn uint64 `protobuf:"varint,8,opt,name=current_xpn,json=currentXpn,proto3" json:"current_xpn,omitempty"` - MinimumIngressXpn uint64 `protobuf:"varint,9,opt,name=minimum_ingress_xpn,json=minimumIngressXpn,proto3" json:"minimum_ingress_xpn,omitempty"` - MacsecSsci uint32 `protobuf:"varint,10,opt,name=macsec_ssci,json=macsecSsci,proto3" json:"macsec_ssci,omitempty"` + MacsecDirection *MacsecDirection `protobuf:"varint,1,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"macsec_direction,omitempty"` + ScId *uint64 `protobuf:"varint,2,opt,name=sc_id,json=scId,proto3,oneof" json:"sc_id,omitempty"` + An *uint32 `protobuf:"varint,3,opt,name=an,proto3,oneof" json:"an,omitempty"` + Sak []byte `protobuf:"bytes,4,opt,name=sak,proto3,oneof" json:"sak,omitempty"` + Salt []byte `protobuf:"bytes,5,opt,name=salt,proto3,oneof" json:"salt,omitempty"` + AuthKey []byte `protobuf:"bytes,6,opt,name=auth_key,json=authKey,proto3,oneof" json:"auth_key,omitempty"` + ConfiguredEgressXpn *uint64 `protobuf:"varint,7,opt,name=configured_egress_xpn,json=configuredEgressXpn,proto3,oneof" json:"configured_egress_xpn,omitempty"` + CurrentXpn *uint64 `protobuf:"varint,8,opt,name=current_xpn,json=currentXpn,proto3,oneof" json:"current_xpn,omitempty"` + MinimumIngressXpn *uint64 `protobuf:"varint,9,opt,name=minimum_ingress_xpn,json=minimumIngressXpn,proto3,oneof" json:"minimum_ingress_xpn,omitempty"` + MacsecSsci *uint32 `protobuf:"varint,10,opt,name=macsec_ssci,json=macsecSsci,proto3,oneof" json:"macsec_ssci,omitempty"` } func (x *MacsecSaAttribute) Reset() { *x = MacsecSaAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[87] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20491,7 +20022,7 @@ func (x *MacsecSaAttribute) String() string { func (*MacsecSaAttribute) ProtoMessage() {} func (x *MacsecSaAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[87] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20504,26 +20035,26 @@ func (x *MacsecSaAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use MacsecSaAttribute.ProtoReflect.Descriptor instead. func (*MacsecSaAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{87} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{77} } func (x *MacsecSaAttribute) GetMacsecDirection() MacsecDirection { - if x != nil { - return x.MacsecDirection + if x != nil && x.MacsecDirection != nil { + return *x.MacsecDirection } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } func (x *MacsecSaAttribute) GetScId() uint64 { - if x != nil { - return x.ScId + if x != nil && x.ScId != nil { + return *x.ScId } return 0 } func (x *MacsecSaAttribute) GetAn() uint32 { - if x != nil { - return x.An + if x != nil && x.An != nil { + return *x.An } return 0 } @@ -20550,29 +20081,29 @@ func (x *MacsecSaAttribute) GetAuthKey() []byte { } func (x *MacsecSaAttribute) GetConfiguredEgressXpn() uint64 { - if x != nil { - return x.ConfiguredEgressXpn + if x != nil && x.ConfiguredEgressXpn != nil { + return *x.ConfiguredEgressXpn } return 0 } func (x *MacsecSaAttribute) GetCurrentXpn() uint64 { - if x != nil { - return x.CurrentXpn + if x != nil && x.CurrentXpn != nil { + return *x.CurrentXpn } return 0 } func (x *MacsecSaAttribute) GetMinimumIngressXpn() uint64 { - if x != nil { - return x.MinimumIngressXpn + if x != nil && x.MinimumIngressXpn != nil { + return *x.MinimumIngressXpn } return 0 } func (x *MacsecSaAttribute) GetMacsecSsci() uint32 { - if x != nil { - return x.MacsecSsci + if x != nil && x.MacsecSsci != nil { + return *x.MacsecSsci } return 0 } @@ -20582,23 +20113,23 @@ type MacsecScAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MacsecDirection MacsecDirection `protobuf:"varint,1,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"macsec_direction,omitempty"` - FlowId uint64 `protobuf:"varint,2,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - MacsecSci uint64 `protobuf:"varint,3,opt,name=macsec_sci,json=macsecSci,proto3" json:"macsec_sci,omitempty"` - MacsecExplicitSciEnable bool `protobuf:"varint,4,opt,name=macsec_explicit_sci_enable,json=macsecExplicitSciEnable,proto3" json:"macsec_explicit_sci_enable,omitempty"` - MacsecSectagOffset uint32 `protobuf:"varint,5,opt,name=macsec_sectag_offset,json=macsecSectagOffset,proto3" json:"macsec_sectag_offset,omitempty"` - ActiveEgressSaId uint64 `protobuf:"varint,6,opt,name=active_egress_sa_id,json=activeEgressSaId,proto3" json:"active_egress_sa_id,omitempty"` - MacsecReplayProtectionEnable bool `protobuf:"varint,7,opt,name=macsec_replay_protection_enable,json=macsecReplayProtectionEnable,proto3" json:"macsec_replay_protection_enable,omitempty"` - MacsecReplayProtectionWindow uint32 `protobuf:"varint,8,opt,name=macsec_replay_protection_window,json=macsecReplayProtectionWindow,proto3" json:"macsec_replay_protection_window,omitempty"` - SaList *Uint64List `protobuf:"bytes,9,opt,name=sa_list,json=saList,proto3" json:"sa_list,omitempty"` - MacsecCipherSuite MacsecCipherSuite `protobuf:"varint,10,opt,name=macsec_cipher_suite,json=macsecCipherSuite,proto3,enum=lemming.dataplane.sai.MacsecCipherSuite" json:"macsec_cipher_suite,omitempty"` - EncryptionEnable bool `protobuf:"varint,11,opt,name=encryption_enable,json=encryptionEnable,proto3" json:"encryption_enable,omitempty"` + MacsecDirection *MacsecDirection `protobuf:"varint,1,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"macsec_direction,omitempty"` + FlowId *uint64 `protobuf:"varint,2,opt,name=flow_id,json=flowId,proto3,oneof" json:"flow_id,omitempty"` + MacsecSci *uint64 `protobuf:"varint,3,opt,name=macsec_sci,json=macsecSci,proto3,oneof" json:"macsec_sci,omitempty"` + MacsecExplicitSciEnable *bool `protobuf:"varint,4,opt,name=macsec_explicit_sci_enable,json=macsecExplicitSciEnable,proto3,oneof" json:"macsec_explicit_sci_enable,omitempty"` + MacsecSectagOffset *uint32 `protobuf:"varint,5,opt,name=macsec_sectag_offset,json=macsecSectagOffset,proto3,oneof" json:"macsec_sectag_offset,omitempty"` + ActiveEgressSaId *uint64 `protobuf:"varint,6,opt,name=active_egress_sa_id,json=activeEgressSaId,proto3,oneof" json:"active_egress_sa_id,omitempty"` + MacsecReplayProtectionEnable *bool `protobuf:"varint,7,opt,name=macsec_replay_protection_enable,json=macsecReplayProtectionEnable,proto3,oneof" json:"macsec_replay_protection_enable,omitempty"` + MacsecReplayProtectionWindow *uint32 `protobuf:"varint,8,opt,name=macsec_replay_protection_window,json=macsecReplayProtectionWindow,proto3,oneof" json:"macsec_replay_protection_window,omitempty"` + SaList []uint64 `protobuf:"varint,9,rep,packed,name=sa_list,json=saList,proto3" json:"sa_list,omitempty"` + MacsecCipherSuite *MacsecCipherSuite `protobuf:"varint,10,opt,name=macsec_cipher_suite,json=macsecCipherSuite,proto3,enum=lemming.dataplane.sai.MacsecCipherSuite,oneof" json:"macsec_cipher_suite,omitempty"` + EncryptionEnable *bool `protobuf:"varint,11,opt,name=encryption_enable,json=encryptionEnable,proto3,oneof" json:"encryption_enable,omitempty"` } func (x *MacsecScAttribute) Reset() { *x = MacsecScAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[88] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20611,7 +20142,7 @@ func (x *MacsecScAttribute) String() string { func (*MacsecScAttribute) ProtoMessage() {} func (x *MacsecScAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[88] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20624,66 +20155,66 @@ func (x *MacsecScAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use MacsecScAttribute.ProtoReflect.Descriptor instead. func (*MacsecScAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{88} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{78} } func (x *MacsecScAttribute) GetMacsecDirection() MacsecDirection { - if x != nil { - return x.MacsecDirection + if x != nil && x.MacsecDirection != nil { + return *x.MacsecDirection } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } func (x *MacsecScAttribute) GetFlowId() uint64 { - if x != nil { - return x.FlowId + if x != nil && x.FlowId != nil { + return *x.FlowId } return 0 } func (x *MacsecScAttribute) GetMacsecSci() uint64 { - if x != nil { - return x.MacsecSci + if x != nil && x.MacsecSci != nil { + return *x.MacsecSci } return 0 } func (x *MacsecScAttribute) GetMacsecExplicitSciEnable() bool { - if x != nil { - return x.MacsecExplicitSciEnable + if x != nil && x.MacsecExplicitSciEnable != nil { + return *x.MacsecExplicitSciEnable } return false } func (x *MacsecScAttribute) GetMacsecSectagOffset() uint32 { - if x != nil { - return x.MacsecSectagOffset + if x != nil && x.MacsecSectagOffset != nil { + return *x.MacsecSectagOffset } return 0 } func (x *MacsecScAttribute) GetActiveEgressSaId() uint64 { - if x != nil { - return x.ActiveEgressSaId + if x != nil && x.ActiveEgressSaId != nil { + return *x.ActiveEgressSaId } return 0 } func (x *MacsecScAttribute) GetMacsecReplayProtectionEnable() bool { - if x != nil { - return x.MacsecReplayProtectionEnable + if x != nil && x.MacsecReplayProtectionEnable != nil { + return *x.MacsecReplayProtectionEnable } return false } func (x *MacsecScAttribute) GetMacsecReplayProtectionWindow() uint32 { - if x != nil { - return x.MacsecReplayProtectionWindow + if x != nil && x.MacsecReplayProtectionWindow != nil { + return *x.MacsecReplayProtectionWindow } return 0 } -func (x *MacsecScAttribute) GetSaList() *Uint64List { +func (x *MacsecScAttribute) GetSaList() []uint64 { if x != nil { return x.SaList } @@ -20691,15 +20222,15 @@ func (x *MacsecScAttribute) GetSaList() *Uint64List { } func (x *MacsecScAttribute) GetMacsecCipherSuite() MacsecCipherSuite { - if x != nil { - return x.MacsecCipherSuite + if x != nil && x.MacsecCipherSuite != nil { + return *x.MacsecCipherSuite } return MacsecCipherSuite_MACSEC_CIPHER_SUITE_UNSPECIFIED } func (x *MacsecScAttribute) GetEncryptionEnable() bool { - if x != nil { - return x.EncryptionEnable + if x != nil && x.EncryptionEnable != nil { + return *x.EncryptionEnable } return false } @@ -20709,15 +20240,15 @@ type McastFdbEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupId uint64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - MetaData uint32 `protobuf:"varint,3,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` + GroupId *uint64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,oneof" json:"group_id,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + MetaData *uint32 `protobuf:"varint,3,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` } func (x *McastFdbEntryAttribute) Reset() { *x = McastFdbEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[89] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20730,7 +20261,7 @@ func (x *McastFdbEntryAttribute) String() string { func (*McastFdbEntryAttribute) ProtoMessage() {} func (x *McastFdbEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[89] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20743,26 +20274,26 @@ func (x *McastFdbEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use McastFdbEntryAttribute.ProtoReflect.Descriptor instead. func (*McastFdbEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{89} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{79} } func (x *McastFdbEntryAttribute) GetGroupId() uint64 { - if x != nil { - return x.GroupId + if x != nil && x.GroupId != nil { + return *x.GroupId } return 0 } func (x *McastFdbEntryAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *McastFdbEntryAttribute) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } @@ -20772,37 +20303,37 @@ type MirrorSessionAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type MirrorSessionType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.MirrorSessionType" json:"type,omitempty"` - MonitorPort uint64 `protobuf:"varint,2,opt,name=monitor_port,json=monitorPort,proto3" json:"monitor_port,omitempty"` - TruncateSize uint32 `protobuf:"varint,3,opt,name=truncate_size,json=truncateSize,proto3" json:"truncate_size,omitempty"` - SampleRate uint32 `protobuf:"varint,4,opt,name=sample_rate,json=sampleRate,proto3" json:"sample_rate,omitempty"` - CongestionMode MirrorSessionCongestionMode `protobuf:"varint,5,opt,name=congestion_mode,json=congestionMode,proto3,enum=lemming.dataplane.sai.MirrorSessionCongestionMode" json:"congestion_mode,omitempty"` - Tc uint32 `protobuf:"varint,6,opt,name=tc,proto3" json:"tc,omitempty"` - VlanTpid uint32 `protobuf:"varint,7,opt,name=vlan_tpid,json=vlanTpid,proto3" json:"vlan_tpid,omitempty"` - VlanId uint32 `protobuf:"varint,8,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - VlanPri uint32 `protobuf:"varint,9,opt,name=vlan_pri,json=vlanPri,proto3" json:"vlan_pri,omitempty"` - VlanCfi uint32 `protobuf:"varint,10,opt,name=vlan_cfi,json=vlanCfi,proto3" json:"vlan_cfi,omitempty"` - VlanHeaderValid bool `protobuf:"varint,11,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3" json:"vlan_header_valid,omitempty"` - ErspanEncapsulationType ErspanEncapsulationType `protobuf:"varint,12,opt,name=erspan_encapsulation_type,json=erspanEncapsulationType,proto3,enum=lemming.dataplane.sai.ErspanEncapsulationType" json:"erspan_encapsulation_type,omitempty"` - IphdrVersion uint32 `protobuf:"varint,13,opt,name=iphdr_version,json=iphdrVersion,proto3" json:"iphdr_version,omitempty"` - Tos uint32 `protobuf:"varint,14,opt,name=tos,proto3" json:"tos,omitempty"` - Ttl uint32 `protobuf:"varint,15,opt,name=ttl,proto3" json:"ttl,omitempty"` - SrcIpAddress []byte `protobuf:"bytes,16,opt,name=src_ip_address,json=srcIpAddress,proto3" json:"src_ip_address,omitempty"` - DstIpAddress []byte `protobuf:"bytes,17,opt,name=dst_ip_address,json=dstIpAddress,proto3" json:"dst_ip_address,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,18,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - DstMacAddress []byte `protobuf:"bytes,19,opt,name=dst_mac_address,json=dstMacAddress,proto3" json:"dst_mac_address,omitempty"` - GreProtocolType uint32 `protobuf:"varint,20,opt,name=gre_protocol_type,json=greProtocolType,proto3" json:"gre_protocol_type,omitempty"` - MonitorPortlistValid bool `protobuf:"varint,21,opt,name=monitor_portlist_valid,json=monitorPortlistValid,proto3" json:"monitor_portlist_valid,omitempty"` - MonitorPortlist *Uint64List `protobuf:"bytes,22,opt,name=monitor_portlist,json=monitorPortlist,proto3" json:"monitor_portlist,omitempty"` - Policer uint64 `protobuf:"varint,23,opt,name=policer,proto3" json:"policer,omitempty"` - UdpSrcPort uint32 `protobuf:"varint,24,opt,name=udp_src_port,json=udpSrcPort,proto3" json:"udp_src_port,omitempty"` - UdpDstPort uint32 `protobuf:"varint,25,opt,name=udp_dst_port,json=udpDstPort,proto3" json:"udp_dst_port,omitempty"` + Type *MirrorSessionType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.MirrorSessionType,oneof" json:"type,omitempty"` + MonitorPort *uint64 `protobuf:"varint,2,opt,name=monitor_port,json=monitorPort,proto3,oneof" json:"monitor_port,omitempty"` + TruncateSize *uint32 `protobuf:"varint,3,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + SampleRate *uint32 `protobuf:"varint,4,opt,name=sample_rate,json=sampleRate,proto3,oneof" json:"sample_rate,omitempty"` + CongestionMode *MirrorSessionCongestionMode `protobuf:"varint,5,opt,name=congestion_mode,json=congestionMode,proto3,enum=lemming.dataplane.sai.MirrorSessionCongestionMode,oneof" json:"congestion_mode,omitempty"` + Tc *uint32 `protobuf:"varint,6,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + VlanTpid *uint32 `protobuf:"varint,7,opt,name=vlan_tpid,json=vlanTpid,proto3,oneof" json:"vlan_tpid,omitempty"` + VlanId *uint32 `protobuf:"varint,8,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + VlanPri *uint32 `protobuf:"varint,9,opt,name=vlan_pri,json=vlanPri,proto3,oneof" json:"vlan_pri,omitempty"` + VlanCfi *uint32 `protobuf:"varint,10,opt,name=vlan_cfi,json=vlanCfi,proto3,oneof" json:"vlan_cfi,omitempty"` + VlanHeaderValid *bool `protobuf:"varint,11,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3,oneof" json:"vlan_header_valid,omitempty"` + ErspanEncapsulationType *ErspanEncapsulationType `protobuf:"varint,12,opt,name=erspan_encapsulation_type,json=erspanEncapsulationType,proto3,enum=lemming.dataplane.sai.ErspanEncapsulationType,oneof" json:"erspan_encapsulation_type,omitempty"` + IphdrVersion *uint32 `protobuf:"varint,13,opt,name=iphdr_version,json=iphdrVersion,proto3,oneof" json:"iphdr_version,omitempty"` + Tos *uint32 `protobuf:"varint,14,opt,name=tos,proto3,oneof" json:"tos,omitempty"` + Ttl *uint32 `protobuf:"varint,15,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + SrcIpAddress []byte `protobuf:"bytes,16,opt,name=src_ip_address,json=srcIpAddress,proto3,oneof" json:"src_ip_address,omitempty"` + DstIpAddress []byte `protobuf:"bytes,17,opt,name=dst_ip_address,json=dstIpAddress,proto3,oneof" json:"dst_ip_address,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,18,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + DstMacAddress []byte `protobuf:"bytes,19,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + GreProtocolType *uint32 `protobuf:"varint,20,opt,name=gre_protocol_type,json=greProtocolType,proto3,oneof" json:"gre_protocol_type,omitempty"` + MonitorPortlistValid *bool `protobuf:"varint,21,opt,name=monitor_portlist_valid,json=monitorPortlistValid,proto3,oneof" json:"monitor_portlist_valid,omitempty"` + MonitorPortlist []uint64 `protobuf:"varint,22,rep,packed,name=monitor_portlist,json=monitorPortlist,proto3" json:"monitor_portlist,omitempty"` + Policer *uint64 `protobuf:"varint,23,opt,name=policer,proto3,oneof" json:"policer,omitempty"` + UdpSrcPort *uint32 `protobuf:"varint,24,opt,name=udp_src_port,json=udpSrcPort,proto3,oneof" json:"udp_src_port,omitempty"` + UdpDstPort *uint32 `protobuf:"varint,25,opt,name=udp_dst_port,json=udpDstPort,proto3,oneof" json:"udp_dst_port,omitempty"` } func (x *MirrorSessionAttribute) Reset() { *x = MirrorSessionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[90] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20815,7 +20346,7 @@ func (x *MirrorSessionAttribute) String() string { func (*MirrorSessionAttribute) ProtoMessage() {} func (x *MirrorSessionAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[90] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20828,110 +20359,110 @@ func (x *MirrorSessionAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use MirrorSessionAttribute.ProtoReflect.Descriptor instead. func (*MirrorSessionAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{90} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{80} } func (x *MirrorSessionAttribute) GetType() MirrorSessionType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return MirrorSessionType_MIRROR_SESSION_TYPE_UNSPECIFIED } func (x *MirrorSessionAttribute) GetMonitorPort() uint64 { - if x != nil { - return x.MonitorPort + if x != nil && x.MonitorPort != nil { + return *x.MonitorPort } return 0 } func (x *MirrorSessionAttribute) GetTruncateSize() uint32 { - if x != nil { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *MirrorSessionAttribute) GetSampleRate() uint32 { - if x != nil { - return x.SampleRate + if x != nil && x.SampleRate != nil { + return *x.SampleRate } return 0 } func (x *MirrorSessionAttribute) GetCongestionMode() MirrorSessionCongestionMode { - if x != nil { - return x.CongestionMode + if x != nil && x.CongestionMode != nil { + return *x.CongestionMode } return MirrorSessionCongestionMode_MIRROR_SESSION_CONGESTION_MODE_UNSPECIFIED } func (x *MirrorSessionAttribute) GetTc() uint32 { - if x != nil { - return x.Tc + if x != nil && x.Tc != nil { + return *x.Tc } return 0 } func (x *MirrorSessionAttribute) GetVlanTpid() uint32 { - if x != nil { - return x.VlanTpid + if x != nil && x.VlanTpid != nil { + return *x.VlanTpid } return 0 } func (x *MirrorSessionAttribute) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *MirrorSessionAttribute) GetVlanPri() uint32 { - if x != nil { - return x.VlanPri + if x != nil && x.VlanPri != nil { + return *x.VlanPri } return 0 } func (x *MirrorSessionAttribute) GetVlanCfi() uint32 { - if x != nil { - return x.VlanCfi + if x != nil && x.VlanCfi != nil { + return *x.VlanCfi } return 0 } func (x *MirrorSessionAttribute) GetVlanHeaderValid() bool { - if x != nil { - return x.VlanHeaderValid + if x != nil && x.VlanHeaderValid != nil { + return *x.VlanHeaderValid } return false } func (x *MirrorSessionAttribute) GetErspanEncapsulationType() ErspanEncapsulationType { - if x != nil { - return x.ErspanEncapsulationType + if x != nil && x.ErspanEncapsulationType != nil { + return *x.ErspanEncapsulationType } return ErspanEncapsulationType_ERSPAN_ENCAPSULATION_TYPE_UNSPECIFIED } func (x *MirrorSessionAttribute) GetIphdrVersion() uint32 { - if x != nil { - return x.IphdrVersion + if x != nil && x.IphdrVersion != nil { + return *x.IphdrVersion } return 0 } func (x *MirrorSessionAttribute) GetTos() uint32 { - if x != nil { - return x.Tos + if x != nil && x.Tos != nil { + return *x.Tos } return 0 } func (x *MirrorSessionAttribute) GetTtl() uint32 { - if x != nil { - return x.Ttl + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } @@ -20965,20 +20496,20 @@ func (x *MirrorSessionAttribute) GetDstMacAddress() []byte { } func (x *MirrorSessionAttribute) GetGreProtocolType() uint32 { - if x != nil { - return x.GreProtocolType + if x != nil && x.GreProtocolType != nil { + return *x.GreProtocolType } return 0 } func (x *MirrorSessionAttribute) GetMonitorPortlistValid() bool { - if x != nil { - return x.MonitorPortlistValid + if x != nil && x.MonitorPortlistValid != nil { + return *x.MonitorPortlistValid } return false } -func (x *MirrorSessionAttribute) GetMonitorPortlist() *Uint64List { +func (x *MirrorSessionAttribute) GetMonitorPortlist() []uint64 { if x != nil { return x.MonitorPortlist } @@ -20986,22 +20517,22 @@ func (x *MirrorSessionAttribute) GetMonitorPortlist() *Uint64List { } func (x *MirrorSessionAttribute) GetPolicer() uint64 { - if x != nil { - return x.Policer + if x != nil && x.Policer != nil { + return *x.Policer } return 0 } func (x *MirrorSessionAttribute) GetUdpSrcPort() uint32 { - if x != nil { - return x.UdpSrcPort + if x != nil && x.UdpSrcPort != nil { + return *x.UdpSrcPort } return 0 } func (x *MirrorSessionAttribute) GetUdpDstPort() uint32 { - if x != nil { - return x.UdpDstPort + if x != nil && x.UdpDstPort != nil { + return *x.UdpDstPort } return 0 } @@ -21011,17 +20542,17 @@ type MyMacAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Priority uint32 `protobuf:"varint,1,opt,name=priority,proto3" json:"priority,omitempty"` - PortId uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - VlanId uint32 `protobuf:"varint,3,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - MacAddress []byte `protobuf:"bytes,4,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` - MacAddressMask []byte `protobuf:"bytes,5,opt,name=mac_address_mask,json=macAddressMask,proto3" json:"mac_address_mask,omitempty"` + Priority *uint32 `protobuf:"varint,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + PortId *uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + VlanId *uint32 `protobuf:"varint,3,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + MacAddress []byte `protobuf:"bytes,4,opt,name=mac_address,json=macAddress,proto3,oneof" json:"mac_address,omitempty"` + MacAddressMask []byte `protobuf:"bytes,5,opt,name=mac_address_mask,json=macAddressMask,proto3,oneof" json:"mac_address_mask,omitempty"` } func (x *MyMacAttribute) Reset() { *x = MyMacAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[91] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21034,7 +20565,7 @@ func (x *MyMacAttribute) String() string { func (*MyMacAttribute) ProtoMessage() {} func (x *MyMacAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[91] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21047,26 +20578,26 @@ func (x *MyMacAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use MyMacAttribute.ProtoReflect.Descriptor instead. func (*MyMacAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{91} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{81} } func (x *MyMacAttribute) GetPriority() uint32 { - if x != nil { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } func (x *MyMacAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *MyMacAttribute) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } @@ -21090,20 +20621,20 @@ type MySidEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EndpointBehavior MySidEntryEndpointBehavior `protobuf:"varint,1,opt,name=endpoint_behavior,json=endpointBehavior,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehavior" json:"endpoint_behavior,omitempty"` - EndpointBehaviorFlavor MySidEntryEndpointBehaviorFlavor `protobuf:"varint,2,opt,name=endpoint_behavior_flavor,json=endpointBehaviorFlavor,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor" json:"endpoint_behavior_flavor,omitempty"` - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - TrapPriority uint32 `protobuf:"varint,4,opt,name=trap_priority,json=trapPriority,proto3" json:"trap_priority,omitempty"` - NextHopId uint64 `protobuf:"varint,5,opt,name=next_hop_id,json=nextHopId,proto3" json:"next_hop_id,omitempty"` - TunnelId uint64 `protobuf:"varint,6,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"` - Vrf uint64 `protobuf:"varint,7,opt,name=vrf,proto3" json:"vrf,omitempty"` - CounterId uint64 `protobuf:"varint,8,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + EndpointBehavior *MySidEntryEndpointBehavior `protobuf:"varint,1,opt,name=endpoint_behavior,json=endpointBehavior,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehavior,oneof" json:"endpoint_behavior,omitempty"` + EndpointBehaviorFlavor *MySidEntryEndpointBehaviorFlavor `protobuf:"varint,2,opt,name=endpoint_behavior_flavor,json=endpointBehaviorFlavor,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor,oneof" json:"endpoint_behavior_flavor,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,4,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + NextHopId *uint64 `protobuf:"varint,5,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + TunnelId *uint64 `protobuf:"varint,6,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + Vrf *uint64 `protobuf:"varint,7,opt,name=vrf,proto3,oneof" json:"vrf,omitempty"` + CounterId *uint64 `protobuf:"varint,8,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *MySidEntryAttribute) Reset() { *x = MySidEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[92] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21116,7 +20647,7 @@ func (x *MySidEntryAttribute) String() string { func (*MySidEntryAttribute) ProtoMessage() {} func (x *MySidEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[92] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21129,61 +20660,61 @@ func (x *MySidEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use MySidEntryAttribute.ProtoReflect.Descriptor instead. func (*MySidEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{92} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{82} } func (x *MySidEntryAttribute) GetEndpointBehavior() MySidEntryEndpointBehavior { - if x != nil { - return x.EndpointBehavior + if x != nil && x.EndpointBehavior != nil { + return *x.EndpointBehavior } return MySidEntryEndpointBehavior_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UNSPECIFIED } func (x *MySidEntryAttribute) GetEndpointBehaviorFlavor() MySidEntryEndpointBehaviorFlavor { - if x != nil { - return x.EndpointBehaviorFlavor + if x != nil && x.EndpointBehaviorFlavor != nil { + return *x.EndpointBehaviorFlavor } return MySidEntryEndpointBehaviorFlavor_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_UNSPECIFIED } func (x *MySidEntryAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *MySidEntryAttribute) GetTrapPriority() uint32 { - if x != nil { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *MySidEntryAttribute) GetNextHopId() uint64 { - if x != nil { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *MySidEntryAttribute) GetTunnelId() uint64 { - if x != nil { - return x.TunnelId + if x != nil && x.TunnelId != nil { + return *x.TunnelId } return 0 } func (x *MySidEntryAttribute) GetVrf() uint64 { - if x != nil { - return x.Vrf + if x != nil && x.Vrf != nil { + return *x.Vrf } return 0 } func (x *MySidEntryAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -21193,26 +20724,26 @@ type NatEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NatType NatType `protobuf:"varint,1,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType" json:"nat_type,omitempty"` - SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` - SrcIpMask []byte `protobuf:"bytes,3,opt,name=src_ip_mask,json=srcIpMask,proto3" json:"src_ip_mask,omitempty"` - VrId uint64 `protobuf:"varint,4,opt,name=vr_id,json=vrId,proto3" json:"vr_id,omitempty"` - DstIp []byte `protobuf:"bytes,5,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - DstIpMask []byte `protobuf:"bytes,6,opt,name=dst_ip_mask,json=dstIpMask,proto3" json:"dst_ip_mask,omitempty"` - L4SrcPort uint32 `protobuf:"varint,7,opt,name=l4_src_port,json=l4SrcPort,proto3" json:"l4_src_port,omitempty"` - L4DstPort uint32 `protobuf:"varint,8,opt,name=l4_dst_port,json=l4DstPort,proto3" json:"l4_dst_port,omitempty"` - EnablePacketCount bool `protobuf:"varint,9,opt,name=enable_packet_count,json=enablePacketCount,proto3" json:"enable_packet_count,omitempty"` - PacketCount uint64 `protobuf:"varint,10,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"` - EnableByteCount bool `protobuf:"varint,11,opt,name=enable_byte_count,json=enableByteCount,proto3" json:"enable_byte_count,omitempty"` - ByteCount uint64 `protobuf:"varint,12,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"` - HitBitCor bool `protobuf:"varint,13,opt,name=hit_bit_cor,json=hitBitCor,proto3" json:"hit_bit_cor,omitempty"` - HitBit bool `protobuf:"varint,14,opt,name=hit_bit,json=hitBit,proto3" json:"hit_bit,omitempty"` + NatType *NatType `protobuf:"varint,1,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType,oneof" json:"nat_type,omitempty"` + SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + SrcIpMask []byte `protobuf:"bytes,3,opt,name=src_ip_mask,json=srcIpMask,proto3,oneof" json:"src_ip_mask,omitempty"` + VrId *uint64 `protobuf:"varint,4,opt,name=vr_id,json=vrId,proto3,oneof" json:"vr_id,omitempty"` + DstIp []byte `protobuf:"bytes,5,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + DstIpMask []byte `protobuf:"bytes,6,opt,name=dst_ip_mask,json=dstIpMask,proto3,oneof" json:"dst_ip_mask,omitempty"` + L4SrcPort *uint32 `protobuf:"varint,7,opt,name=l4_src_port,json=l4SrcPort,proto3,oneof" json:"l4_src_port,omitempty"` + L4DstPort *uint32 `protobuf:"varint,8,opt,name=l4_dst_port,json=l4DstPort,proto3,oneof" json:"l4_dst_port,omitempty"` + EnablePacketCount *bool `protobuf:"varint,9,opt,name=enable_packet_count,json=enablePacketCount,proto3,oneof" json:"enable_packet_count,omitempty"` + PacketCount *uint64 `protobuf:"varint,10,opt,name=packet_count,json=packetCount,proto3,oneof" json:"packet_count,omitempty"` + EnableByteCount *bool `protobuf:"varint,11,opt,name=enable_byte_count,json=enableByteCount,proto3,oneof" json:"enable_byte_count,omitempty"` + ByteCount *uint64 `protobuf:"varint,12,opt,name=byte_count,json=byteCount,proto3,oneof" json:"byte_count,omitempty"` + HitBitCor *bool `protobuf:"varint,13,opt,name=hit_bit_cor,json=hitBitCor,proto3,oneof" json:"hit_bit_cor,omitempty"` + HitBit *bool `protobuf:"varint,14,opt,name=hit_bit,json=hitBit,proto3,oneof" json:"hit_bit,omitempty"` } func (x *NatEntryAttribute) Reset() { *x = NatEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[93] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21225,7 +20756,7 @@ func (x *NatEntryAttribute) String() string { func (*NatEntryAttribute) ProtoMessage() {} func (x *NatEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[93] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21238,12 +20769,12 @@ func (x *NatEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use NatEntryAttribute.ProtoReflect.Descriptor instead. func (*NatEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{93} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{83} } func (x *NatEntryAttribute) GetNatType() NatType { - if x != nil { - return x.NatType + if x != nil && x.NatType != nil { + return *x.NatType } return NatType_NAT_TYPE_UNSPECIFIED } @@ -21263,8 +20794,8 @@ func (x *NatEntryAttribute) GetSrcIpMask() []byte { } func (x *NatEntryAttribute) GetVrId() uint64 { - if x != nil { - return x.VrId + if x != nil && x.VrId != nil { + return *x.VrId } return 0 } @@ -21284,57 +20815,57 @@ func (x *NatEntryAttribute) GetDstIpMask() []byte { } func (x *NatEntryAttribute) GetL4SrcPort() uint32 { - if x != nil { - return x.L4SrcPort + if x != nil && x.L4SrcPort != nil { + return *x.L4SrcPort } return 0 } func (x *NatEntryAttribute) GetL4DstPort() uint32 { - if x != nil { - return x.L4DstPort + if x != nil && x.L4DstPort != nil { + return *x.L4DstPort } return 0 } func (x *NatEntryAttribute) GetEnablePacketCount() bool { - if x != nil { - return x.EnablePacketCount + if x != nil && x.EnablePacketCount != nil { + return *x.EnablePacketCount } return false } func (x *NatEntryAttribute) GetPacketCount() uint64 { - if x != nil { - return x.PacketCount + if x != nil && x.PacketCount != nil { + return *x.PacketCount } return 0 } func (x *NatEntryAttribute) GetEnableByteCount() bool { - if x != nil { - return x.EnableByteCount + if x != nil && x.EnableByteCount != nil { + return *x.EnableByteCount } return false } func (x *NatEntryAttribute) GetByteCount() uint64 { - if x != nil { - return x.ByteCount + if x != nil && x.ByteCount != nil { + return *x.ByteCount } return 0 } func (x *NatEntryAttribute) GetHitBitCor() bool { - if x != nil { - return x.HitBitCor + if x != nil && x.HitBitCor != nil { + return *x.HitBitCor } return false } func (x *NatEntryAttribute) GetHitBit() bool { - if x != nil { - return x.HitBit + if x != nil && x.HitBit != nil { + return *x.HitBit } return false } @@ -21344,20 +20875,20 @@ type NatZoneCounterAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NatType NatType `protobuf:"varint,1,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType" json:"nat_type,omitempty"` - ZoneId uint32 `protobuf:"varint,2,opt,name=zone_id,json=zoneId,proto3" json:"zone_id,omitempty"` - EnableDiscard bool `protobuf:"varint,3,opt,name=enable_discard,json=enableDiscard,proto3" json:"enable_discard,omitempty"` - DiscardPacketCount uint64 `protobuf:"varint,4,opt,name=discard_packet_count,json=discardPacketCount,proto3" json:"discard_packet_count,omitempty"` - EnableTranslationNeeded bool `protobuf:"varint,5,opt,name=enable_translation_needed,json=enableTranslationNeeded,proto3" json:"enable_translation_needed,omitempty"` - TranslationNeededPacketCount uint64 `protobuf:"varint,6,opt,name=translation_needed_packet_count,json=translationNeededPacketCount,proto3" json:"translation_needed_packet_count,omitempty"` - EnableTranslations bool `protobuf:"varint,7,opt,name=enable_translations,json=enableTranslations,proto3" json:"enable_translations,omitempty"` - TranslationsPacketCount uint64 `protobuf:"varint,8,opt,name=translations_packet_count,json=translationsPacketCount,proto3" json:"translations_packet_count,omitempty"` + NatType *NatType `protobuf:"varint,1,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType,oneof" json:"nat_type,omitempty"` + ZoneId *uint32 `protobuf:"varint,2,opt,name=zone_id,json=zoneId,proto3,oneof" json:"zone_id,omitempty"` + EnableDiscard *bool `protobuf:"varint,3,opt,name=enable_discard,json=enableDiscard,proto3,oneof" json:"enable_discard,omitempty"` + DiscardPacketCount *uint64 `protobuf:"varint,4,opt,name=discard_packet_count,json=discardPacketCount,proto3,oneof" json:"discard_packet_count,omitempty"` + EnableTranslationNeeded *bool `protobuf:"varint,5,opt,name=enable_translation_needed,json=enableTranslationNeeded,proto3,oneof" json:"enable_translation_needed,omitempty"` + TranslationNeededPacketCount *uint64 `protobuf:"varint,6,opt,name=translation_needed_packet_count,json=translationNeededPacketCount,proto3,oneof" json:"translation_needed_packet_count,omitempty"` + EnableTranslations *bool `protobuf:"varint,7,opt,name=enable_translations,json=enableTranslations,proto3,oneof" json:"enable_translations,omitempty"` + TranslationsPacketCount *uint64 `protobuf:"varint,8,opt,name=translations_packet_count,json=translationsPacketCount,proto3,oneof" json:"translations_packet_count,omitempty"` } func (x *NatZoneCounterAttribute) Reset() { *x = NatZoneCounterAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[94] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21370,7 +20901,7 @@ func (x *NatZoneCounterAttribute) String() string { func (*NatZoneCounterAttribute) ProtoMessage() {} func (x *NatZoneCounterAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[94] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21383,61 +20914,61 @@ func (x *NatZoneCounterAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use NatZoneCounterAttribute.ProtoReflect.Descriptor instead. func (*NatZoneCounterAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{94} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{84} } func (x *NatZoneCounterAttribute) GetNatType() NatType { - if x != nil { - return x.NatType + if x != nil && x.NatType != nil { + return *x.NatType } return NatType_NAT_TYPE_UNSPECIFIED } func (x *NatZoneCounterAttribute) GetZoneId() uint32 { - if x != nil { - return x.ZoneId + if x != nil && x.ZoneId != nil { + return *x.ZoneId } return 0 } func (x *NatZoneCounterAttribute) GetEnableDiscard() bool { - if x != nil { - return x.EnableDiscard + if x != nil && x.EnableDiscard != nil { + return *x.EnableDiscard } return false } func (x *NatZoneCounterAttribute) GetDiscardPacketCount() uint64 { - if x != nil { - return x.DiscardPacketCount + if x != nil && x.DiscardPacketCount != nil { + return *x.DiscardPacketCount } return 0 } func (x *NatZoneCounterAttribute) GetEnableTranslationNeeded() bool { - if x != nil { - return x.EnableTranslationNeeded + if x != nil && x.EnableTranslationNeeded != nil { + return *x.EnableTranslationNeeded } return false } func (x *NatZoneCounterAttribute) GetTranslationNeededPacketCount() uint64 { - if x != nil { - return x.TranslationNeededPacketCount + if x != nil && x.TranslationNeededPacketCount != nil { + return *x.TranslationNeededPacketCount } return 0 } func (x *NatZoneCounterAttribute) GetEnableTranslations() bool { - if x != nil { - return x.EnableTranslations + if x != nil && x.EnableTranslations != nil { + return *x.EnableTranslations } return false } func (x *NatZoneCounterAttribute) GetTranslationsPacketCount() uint64 { - if x != nil { - return x.TranslationsPacketCount + if x != nil && x.TranslationsPacketCount != nil { + return *x.TranslationsPacketCount } return 0 } @@ -21447,22 +20978,22 @@ type NeighborEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DstMacAddress []byte `protobuf:"bytes,1,opt,name=dst_mac_address,json=dstMacAddress,proto3" json:"dst_mac_address,omitempty"` - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - UserTrapId uint64 `protobuf:"varint,3,opt,name=user_trap_id,json=userTrapId,proto3" json:"user_trap_id,omitempty"` - NoHostRoute bool `protobuf:"varint,4,opt,name=no_host_route,json=noHostRoute,proto3" json:"no_host_route,omitempty"` - MetaData uint32 `protobuf:"varint,5,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - CounterId uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` - EncapIndex uint32 `protobuf:"varint,7,opt,name=encap_index,json=encapIndex,proto3" json:"encap_index,omitempty"` - EncapImposeIndex bool `protobuf:"varint,8,opt,name=encap_impose_index,json=encapImposeIndex,proto3" json:"encap_impose_index,omitempty"` - IsLocal bool `protobuf:"varint,9,opt,name=is_local,json=isLocal,proto3" json:"is_local,omitempty"` - IpAddrFamily IpAddrFamily `protobuf:"varint,10,opt,name=ip_addr_family,json=ipAddrFamily,proto3,enum=lemming.dataplane.sai.IpAddrFamily" json:"ip_addr_family,omitempty"` + DstMacAddress []byte `protobuf:"bytes,1,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,3,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + NoHostRoute *bool `protobuf:"varint,4,opt,name=no_host_route,json=noHostRoute,proto3,oneof" json:"no_host_route,omitempty"` + MetaData *uint32 `protobuf:"varint,5,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + CounterId *uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + EncapIndex *uint32 `protobuf:"varint,7,opt,name=encap_index,json=encapIndex,proto3,oneof" json:"encap_index,omitempty"` + EncapImposeIndex *bool `protobuf:"varint,8,opt,name=encap_impose_index,json=encapImposeIndex,proto3,oneof" json:"encap_impose_index,omitempty"` + IsLocal *bool `protobuf:"varint,9,opt,name=is_local,json=isLocal,proto3,oneof" json:"is_local,omitempty"` + IpAddrFamily *IpAddrFamily `protobuf:"varint,10,opt,name=ip_addr_family,json=ipAddrFamily,proto3,enum=lemming.dataplane.sai.IpAddrFamily,oneof" json:"ip_addr_family,omitempty"` } func (x *NeighborEntryAttribute) Reset() { *x = NeighborEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[95] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21475,7 +21006,7 @@ func (x *NeighborEntryAttribute) String() string { func (*NeighborEntryAttribute) ProtoMessage() {} func (x *NeighborEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[95] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21488,7 +21019,7 @@ func (x *NeighborEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use NeighborEntryAttribute.ProtoReflect.Descriptor instead. func (*NeighborEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{95} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{85} } func (x *NeighborEntryAttribute) GetDstMacAddress() []byte { @@ -21499,64 +21030,64 @@ func (x *NeighborEntryAttribute) GetDstMacAddress() []byte { } func (x *NeighborEntryAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *NeighborEntryAttribute) GetUserTrapId() uint64 { - if x != nil { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *NeighborEntryAttribute) GetNoHostRoute() bool { - if x != nil { - return x.NoHostRoute + if x != nil && x.NoHostRoute != nil { + return *x.NoHostRoute } return false } func (x *NeighborEntryAttribute) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *NeighborEntryAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *NeighborEntryAttribute) GetEncapIndex() uint32 { - if x != nil { - return x.EncapIndex + if x != nil && x.EncapIndex != nil { + return *x.EncapIndex } return 0 } func (x *NeighborEntryAttribute) GetEncapImposeIndex() bool { - if x != nil { - return x.EncapImposeIndex + if x != nil && x.EncapImposeIndex != nil { + return *x.EncapImposeIndex } return false } func (x *NeighborEntryAttribute) GetIsLocal() bool { - if x != nil { - return x.IsLocal + if x != nil && x.IsLocal != nil { + return *x.IsLocal } return false } func (x *NeighborEntryAttribute) GetIpAddrFamily() IpAddrFamily { - if x != nil { - return x.IpAddrFamily + if x != nil && x.IpAddrFamily != nil { + return *x.IpAddrFamily } return IpAddrFamily_IP_ADDR_FAMILY_UNSPECIFIED } @@ -21566,28 +21097,28 @@ type NextHopAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type NextHopType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopType" json:"type,omitempty"` - Ip []byte `protobuf:"bytes,2,opt,name=ip,proto3" json:"ip,omitempty"` - RouterInterfaceId uint64 `protobuf:"varint,3,opt,name=router_interface_id,json=routerInterfaceId,proto3" json:"router_interface_id,omitempty"` - TunnelId uint64 `protobuf:"varint,4,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"` - TunnelVni uint32 `protobuf:"varint,5,opt,name=tunnel_vni,json=tunnelVni,proto3" json:"tunnel_vni,omitempty"` - TunnelMac []byte `protobuf:"bytes,6,opt,name=tunnel_mac,json=tunnelMac,proto3" json:"tunnel_mac,omitempty"` - Srv6SidlistId uint64 `protobuf:"varint,7,opt,name=srv6_sidlist_id,json=srv6SidlistId,proto3" json:"srv6_sidlist_id,omitempty"` - Labelstack *Uint32List `protobuf:"bytes,8,opt,name=labelstack,proto3" json:"labelstack,omitempty"` - CounterId uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` - DisableDecrementTtl bool `protobuf:"varint,10,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3" json:"disable_decrement_ttl,omitempty"` - OutsegType OutsegType `protobuf:"varint,11,opt,name=outseg_type,json=outsegType,proto3,enum=lemming.dataplane.sai.OutsegType" json:"outseg_type,omitempty"` - OutsegTtlMode OutsegTtlMode `protobuf:"varint,12,opt,name=outseg_ttl_mode,json=outsegTtlMode,proto3,enum=lemming.dataplane.sai.OutsegTtlMode" json:"outseg_ttl_mode,omitempty"` - OutsegTtlValue uint32 `protobuf:"varint,13,opt,name=outseg_ttl_value,json=outsegTtlValue,proto3" json:"outseg_ttl_value,omitempty"` - OutsegExpMode OutsegExpMode `protobuf:"varint,14,opt,name=outseg_exp_mode,json=outsegExpMode,proto3,enum=lemming.dataplane.sai.OutsegExpMode" json:"outseg_exp_mode,omitempty"` - OutsegExpValue uint32 `protobuf:"varint,15,opt,name=outseg_exp_value,json=outsegExpValue,proto3" json:"outseg_exp_value,omitempty"` - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,16,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` + Type *NextHopType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopType,oneof" json:"type,omitempty"` + Ip []byte `protobuf:"bytes,2,opt,name=ip,proto3,oneof" json:"ip,omitempty"` + RouterInterfaceId *uint64 `protobuf:"varint,3,opt,name=router_interface_id,json=routerInterfaceId,proto3,oneof" json:"router_interface_id,omitempty"` + TunnelId *uint64 `protobuf:"varint,4,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + TunnelVni *uint32 `protobuf:"varint,5,opt,name=tunnel_vni,json=tunnelVni,proto3,oneof" json:"tunnel_vni,omitempty"` + TunnelMac []byte `protobuf:"bytes,6,opt,name=tunnel_mac,json=tunnelMac,proto3,oneof" json:"tunnel_mac,omitempty"` + Srv6SidlistId *uint64 `protobuf:"varint,7,opt,name=srv6_sidlist_id,json=srv6SidlistId,proto3,oneof" json:"srv6_sidlist_id,omitempty"` + Labelstack []uint32 `protobuf:"varint,8,rep,packed,name=labelstack,proto3" json:"labelstack,omitempty"` + CounterId *uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,10,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + OutsegType *OutsegType `protobuf:"varint,11,opt,name=outseg_type,json=outsegType,proto3,enum=lemming.dataplane.sai.OutsegType,oneof" json:"outseg_type,omitempty"` + OutsegTtlMode *OutsegTtlMode `protobuf:"varint,12,opt,name=outseg_ttl_mode,json=outsegTtlMode,proto3,enum=lemming.dataplane.sai.OutsegTtlMode,oneof" json:"outseg_ttl_mode,omitempty"` + OutsegTtlValue *uint32 `protobuf:"varint,13,opt,name=outseg_ttl_value,json=outsegTtlValue,proto3,oneof" json:"outseg_ttl_value,omitempty"` + OutsegExpMode *OutsegExpMode `protobuf:"varint,14,opt,name=outseg_exp_mode,json=outsegExpMode,proto3,enum=lemming.dataplane.sai.OutsegExpMode,oneof" json:"outseg_exp_mode,omitempty"` + OutsegExpValue *uint32 `protobuf:"varint,15,opt,name=outseg_exp_value,json=outsegExpValue,proto3,oneof" json:"outseg_exp_value,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,16,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` } func (x *NextHopAttribute) Reset() { *x = NextHopAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[96] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21600,7 +21131,7 @@ func (x *NextHopAttribute) String() string { func (*NextHopAttribute) ProtoMessage() {} func (x *NextHopAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[96] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21613,12 +21144,12 @@ func (x *NextHopAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use NextHopAttribute.ProtoReflect.Descriptor instead. func (*NextHopAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{96} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{86} } func (x *NextHopAttribute) GetType() NextHopType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return NextHopType_NEXT_HOP_TYPE_UNSPECIFIED } @@ -21631,22 +21162,22 @@ func (x *NextHopAttribute) GetIp() []byte { } func (x *NextHopAttribute) GetRouterInterfaceId() uint64 { - if x != nil { - return x.RouterInterfaceId + if x != nil && x.RouterInterfaceId != nil { + return *x.RouterInterfaceId } return 0 } func (x *NextHopAttribute) GetTunnelId() uint64 { - if x != nil { - return x.TunnelId + if x != nil && x.TunnelId != nil { + return *x.TunnelId } return 0 } func (x *NextHopAttribute) GetTunnelVni() uint32 { - if x != nil { - return x.TunnelVni + if x != nil && x.TunnelVni != nil { + return *x.TunnelVni } return 0 } @@ -21659,13 +21190,13 @@ func (x *NextHopAttribute) GetTunnelMac() []byte { } func (x *NextHopAttribute) GetSrv6SidlistId() uint64 { - if x != nil { - return x.Srv6SidlistId + if x != nil && x.Srv6SidlistId != nil { + return *x.Srv6SidlistId } return 0 } -func (x *NextHopAttribute) GetLabelstack() *Uint32List { +func (x *NextHopAttribute) GetLabelstack() []uint32 { if x != nil { return x.Labelstack } @@ -21673,57 +21204,57 @@ func (x *NextHopAttribute) GetLabelstack() *Uint32List { } func (x *NextHopAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *NextHopAttribute) GetDisableDecrementTtl() bool { - if x != nil { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *NextHopAttribute) GetOutsegType() OutsegType { - if x != nil { - return x.OutsegType + if x != nil && x.OutsegType != nil { + return *x.OutsegType } return OutsegType_OUTSEG_TYPE_UNSPECIFIED } func (x *NextHopAttribute) GetOutsegTtlMode() OutsegTtlMode { - if x != nil { - return x.OutsegTtlMode + if x != nil && x.OutsegTtlMode != nil { + return *x.OutsegTtlMode } return OutsegTtlMode_OUTSEG_TTL_MODE_UNSPECIFIED } func (x *NextHopAttribute) GetOutsegTtlValue() uint32 { - if x != nil { - return x.OutsegTtlValue + if x != nil && x.OutsegTtlValue != nil { + return *x.OutsegTtlValue } return 0 } func (x *NextHopAttribute) GetOutsegExpMode() OutsegExpMode { - if x != nil { - return x.OutsegExpMode + if x != nil && x.OutsegExpMode != nil { + return *x.OutsegExpMode } return OutsegExpMode_OUTSEG_EXP_MODE_UNSPECIFIED } func (x *NextHopAttribute) GetOutsegExpValue() uint32 { - if x != nil { - return x.OutsegExpValue + if x != nil && x.OutsegExpValue != nil { + return *x.OutsegExpValue } return 0 } func (x *NextHopAttribute) GetQosTcAndColorToMplsExpMap() uint64 { - if x != nil { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } @@ -21733,20 +21264,20 @@ type NextHopGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NextHopCount uint32 `protobuf:"varint,1,opt,name=next_hop_count,json=nextHopCount,proto3" json:"next_hop_count,omitempty"` - NextHopMemberList *Uint64List `protobuf:"bytes,2,opt,name=next_hop_member_list,json=nextHopMemberList,proto3" json:"next_hop_member_list,omitempty"` - Type NextHopGroupType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopGroupType" json:"type,omitempty"` - SetSwitchover bool `protobuf:"varint,4,opt,name=set_switchover,json=setSwitchover,proto3" json:"set_switchover,omitempty"` - CounterId uint64 `protobuf:"varint,5,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` - ConfiguredSize uint32 `protobuf:"varint,6,opt,name=configured_size,json=configuredSize,proto3" json:"configured_size,omitempty"` - RealSize uint32 `protobuf:"varint,7,opt,name=real_size,json=realSize,proto3" json:"real_size,omitempty"` - SelectionMap uint64 `protobuf:"varint,8,opt,name=selection_map,json=selectionMap,proto3" json:"selection_map,omitempty"` + NextHopCount *uint32 `protobuf:"varint,1,opt,name=next_hop_count,json=nextHopCount,proto3,oneof" json:"next_hop_count,omitempty"` + NextHopMemberList []uint64 `protobuf:"varint,2,rep,packed,name=next_hop_member_list,json=nextHopMemberList,proto3" json:"next_hop_member_list,omitempty"` + Type *NextHopGroupType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopGroupType,oneof" json:"type,omitempty"` + SetSwitchover *bool `protobuf:"varint,4,opt,name=set_switchover,json=setSwitchover,proto3,oneof" json:"set_switchover,omitempty"` + CounterId *uint64 `protobuf:"varint,5,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + ConfiguredSize *uint32 `protobuf:"varint,6,opt,name=configured_size,json=configuredSize,proto3,oneof" json:"configured_size,omitempty"` + RealSize *uint32 `protobuf:"varint,7,opt,name=real_size,json=realSize,proto3,oneof" json:"real_size,omitempty"` + SelectionMap *uint64 `protobuf:"varint,8,opt,name=selection_map,json=selectionMap,proto3,oneof" json:"selection_map,omitempty"` } func (x *NextHopGroupAttribute) Reset() { *x = NextHopGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[97] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21759,7 +21290,7 @@ func (x *NextHopGroupAttribute) String() string { func (*NextHopGroupAttribute) ProtoMessage() {} func (x *NextHopGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[97] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21772,17 +21303,17 @@ func (x *NextHopGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use NextHopGroupAttribute.ProtoReflect.Descriptor instead. func (*NextHopGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{97} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{87} } func (x *NextHopGroupAttribute) GetNextHopCount() uint32 { - if x != nil { - return x.NextHopCount + if x != nil && x.NextHopCount != nil { + return *x.NextHopCount } return 0 } -func (x *NextHopGroupAttribute) GetNextHopMemberList() *Uint64List { +func (x *NextHopGroupAttribute) GetNextHopMemberList() []uint64 { if x != nil { return x.NextHopMemberList } @@ -21790,107 +21321,60 @@ func (x *NextHopGroupAttribute) GetNextHopMemberList() *Uint64List { } func (x *NextHopGroupAttribute) GetType() NextHopGroupType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return NextHopGroupType_NEXT_HOP_GROUP_TYPE_UNSPECIFIED } func (x *NextHopGroupAttribute) GetSetSwitchover() bool { - if x != nil { - return x.SetSwitchover + if x != nil && x.SetSwitchover != nil { + return *x.SetSwitchover } return false } func (x *NextHopGroupAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *NextHopGroupAttribute) GetConfiguredSize() uint32 { - if x != nil { - return x.ConfiguredSize + if x != nil && x.ConfiguredSize != nil { + return *x.ConfiguredSize } return 0 } func (x *NextHopGroupAttribute) GetRealSize() uint32 { - if x != nil { - return x.RealSize + if x != nil && x.RealSize != nil { + return *x.RealSize } return 0 } func (x *NextHopGroupAttribute) GetSelectionMap() uint64 { - if x != nil { - return x.SelectionMap + if x != nil && x.SelectionMap != nil { + return *x.SelectionMap } return 0 } -type UintMapList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []*UintMap `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` -} - -func (x *UintMapList) Reset() { - *x = UintMapList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[98] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UintMapList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UintMapList) ProtoMessage() {} - -func (x *UintMapList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[98] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UintMapList.ProtoReflect.Descriptor instead. -func (*UintMapList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{98} -} - -func (x *UintMapList) GetList() []*UintMap { - if x != nil { - return x.List - } - return nil -} - type NextHopGroupMapAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type NextHopGroupMapType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopGroupMapType" json:"type,omitempty"` - MapToValueList *UintMapList `protobuf:"bytes,2,opt,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` + Type *NextHopGroupMapType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopGroupMapType,oneof" json:"type,omitempty"` + MapToValueList []*UintMap `protobuf:"bytes,2,rep,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` } func (x *NextHopGroupMapAttribute) Reset() { *x = NextHopGroupMapAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[99] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21903,7 +21387,7 @@ func (x *NextHopGroupMapAttribute) String() string { func (*NextHopGroupMapAttribute) ProtoMessage() {} func (x *NextHopGroupMapAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[99] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21916,17 +21400,17 @@ func (x *NextHopGroupMapAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use NextHopGroupMapAttribute.ProtoReflect.Descriptor instead. func (*NextHopGroupMapAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{99} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{88} } func (x *NextHopGroupMapAttribute) GetType() NextHopGroupMapType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return NextHopGroupMapType_NEXT_HOP_GROUP_MAP_TYPE_UNSPECIFIED } -func (x *NextHopGroupMapAttribute) GetMapToValueList() *UintMapList { +func (x *NextHopGroupMapAttribute) GetMapToValueList() []*UintMap { if x != nil { return x.MapToValueList } @@ -21938,21 +21422,21 @@ type NextHopGroupMemberAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NextHopGroupId uint64 `protobuf:"varint,1,opt,name=next_hop_group_id,json=nextHopGroupId,proto3" json:"next_hop_group_id,omitempty"` - NextHopId uint64 `protobuf:"varint,2,opt,name=next_hop_id,json=nextHopId,proto3" json:"next_hop_id,omitempty"` - Weight uint32 `protobuf:"varint,3,opt,name=weight,proto3" json:"weight,omitempty"` - ConfiguredRole NextHopGroupMemberConfiguredRole `protobuf:"varint,4,opt,name=configured_role,json=configuredRole,proto3,enum=lemming.dataplane.sai.NextHopGroupMemberConfiguredRole" json:"configured_role,omitempty"` - ObservedRole NextHopGroupMemberObservedRole `protobuf:"varint,5,opt,name=observed_role,json=observedRole,proto3,enum=lemming.dataplane.sai.NextHopGroupMemberObservedRole" json:"observed_role,omitempty"` - MonitoredObject uint64 `protobuf:"varint,6,opt,name=monitored_object,json=monitoredObject,proto3" json:"monitored_object,omitempty"` - Index uint32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` - SequenceId uint32 `protobuf:"varint,8,opt,name=sequence_id,json=sequenceId,proto3" json:"sequence_id,omitempty"` - CounterId uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + NextHopGroupId *uint64 `protobuf:"varint,1,opt,name=next_hop_group_id,json=nextHopGroupId,proto3,oneof" json:"next_hop_group_id,omitempty"` + NextHopId *uint64 `protobuf:"varint,2,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + Weight *uint32 `protobuf:"varint,3,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + ConfiguredRole *NextHopGroupMemberConfiguredRole `protobuf:"varint,4,opt,name=configured_role,json=configuredRole,proto3,enum=lemming.dataplane.sai.NextHopGroupMemberConfiguredRole,oneof" json:"configured_role,omitempty"` + ObservedRole *NextHopGroupMemberObservedRole `protobuf:"varint,5,opt,name=observed_role,json=observedRole,proto3,enum=lemming.dataplane.sai.NextHopGroupMemberObservedRole,oneof" json:"observed_role,omitempty"` + MonitoredObject *uint64 `protobuf:"varint,6,opt,name=monitored_object,json=monitoredObject,proto3,oneof" json:"monitored_object,omitempty"` + Index *uint32 `protobuf:"varint,7,opt,name=index,proto3,oneof" json:"index,omitempty"` + SequenceId *uint32 `protobuf:"varint,8,opt,name=sequence_id,json=sequenceId,proto3,oneof" json:"sequence_id,omitempty"` + CounterId *uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *NextHopGroupMemberAttribute) Reset() { *x = NextHopGroupMemberAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[100] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21965,7 +21449,7 @@ func (x *NextHopGroupMemberAttribute) String() string { func (*NextHopGroupMemberAttribute) ProtoMessage() {} func (x *NextHopGroupMemberAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[100] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21978,141 +21462,94 @@ func (x *NextHopGroupMemberAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use NextHopGroupMemberAttribute.ProtoReflect.Descriptor instead. func (*NextHopGroupMemberAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{100} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{89} } func (x *NextHopGroupMemberAttribute) GetNextHopGroupId() uint64 { - if x != nil { - return x.NextHopGroupId + if x != nil && x.NextHopGroupId != nil { + return *x.NextHopGroupId } return 0 } func (x *NextHopGroupMemberAttribute) GetNextHopId() uint64 { - if x != nil { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *NextHopGroupMemberAttribute) GetWeight() uint32 { - if x != nil { - return x.Weight + if x != nil && x.Weight != nil { + return *x.Weight } return 0 } func (x *NextHopGroupMemberAttribute) GetConfiguredRole() NextHopGroupMemberConfiguredRole { - if x != nil { - return x.ConfiguredRole + if x != nil && x.ConfiguredRole != nil { + return *x.ConfiguredRole } return NextHopGroupMemberConfiguredRole_NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_UNSPECIFIED } func (x *NextHopGroupMemberAttribute) GetObservedRole() NextHopGroupMemberObservedRole { - if x != nil { - return x.ObservedRole + if x != nil && x.ObservedRole != nil { + return *x.ObservedRole } return NextHopGroupMemberObservedRole_NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_UNSPECIFIED } func (x *NextHopGroupMemberAttribute) GetMonitoredObject() uint64 { - if x != nil { - return x.MonitoredObject + if x != nil && x.MonitoredObject != nil { + return *x.MonitoredObject } return 0 } func (x *NextHopGroupMemberAttribute) GetIndex() uint32 { - if x != nil { - return x.Index + if x != nil && x.Index != nil { + return *x.Index } return 0 } func (x *NextHopGroupMemberAttribute) GetSequenceId() uint32 { - if x != nil { - return x.SequenceId + if x != nil && x.SequenceId != nil { + return *x.SequenceId } return 0 } func (x *NextHopGroupMemberAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } -type PacketActionList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []PacketAction `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.PacketAction" json:"list,omitempty"` -} - -func (x *PacketActionList) Reset() { - *x = PacketActionList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PacketActionList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PacketActionList) ProtoMessage() {} - -func (x *PacketActionList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PacketActionList.ProtoReflect.Descriptor instead. -func (*PacketActionList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{101} -} - -func (x *PacketActionList) GetList() []PacketAction { - if x != nil { - return x.List - } - return nil -} - type PolicerAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MeterType MeterType `protobuf:"varint,1,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType" json:"meter_type,omitempty"` - Mode PolicerMode `protobuf:"varint,2,opt,name=mode,proto3,enum=lemming.dataplane.sai.PolicerMode" json:"mode,omitempty"` - ColorSource PolicerColorSource `protobuf:"varint,3,opt,name=color_source,json=colorSource,proto3,enum=lemming.dataplane.sai.PolicerColorSource" json:"color_source,omitempty"` - Cbs uint64 `protobuf:"varint,4,opt,name=cbs,proto3" json:"cbs,omitempty"` - Cir uint64 `protobuf:"varint,5,opt,name=cir,proto3" json:"cir,omitempty"` - Pbs uint64 `protobuf:"varint,6,opt,name=pbs,proto3" json:"pbs,omitempty"` - Pir uint64 `protobuf:"varint,7,opt,name=pir,proto3" json:"pir,omitempty"` - GreenPacketAction PacketAction `protobuf:"varint,8,opt,name=green_packet_action,json=greenPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"green_packet_action,omitempty"` - YellowPacketAction PacketAction `protobuf:"varint,9,opt,name=yellow_packet_action,json=yellowPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"yellow_packet_action,omitempty"` - RedPacketAction PacketAction `protobuf:"varint,10,opt,name=red_packet_action,json=redPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"red_packet_action,omitempty"` - EnableCounterPacketActionList *PacketActionList `protobuf:"bytes,11,opt,name=enable_counter_packet_action_list,json=enableCounterPacketActionList,proto3" json:"enable_counter_packet_action_list,omitempty"` + MeterType *MeterType `protobuf:"varint,1,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType,oneof" json:"meter_type,omitempty"` + Mode *PolicerMode `protobuf:"varint,2,opt,name=mode,proto3,enum=lemming.dataplane.sai.PolicerMode,oneof" json:"mode,omitempty"` + ColorSource *PolicerColorSource `protobuf:"varint,3,opt,name=color_source,json=colorSource,proto3,enum=lemming.dataplane.sai.PolicerColorSource,oneof" json:"color_source,omitempty"` + Cbs *uint64 `protobuf:"varint,4,opt,name=cbs,proto3,oneof" json:"cbs,omitempty"` + Cir *uint64 `protobuf:"varint,5,opt,name=cir,proto3,oneof" json:"cir,omitempty"` + Pbs *uint64 `protobuf:"varint,6,opt,name=pbs,proto3,oneof" json:"pbs,omitempty"` + Pir *uint64 `protobuf:"varint,7,opt,name=pir,proto3,oneof" json:"pir,omitempty"` + GreenPacketAction *PacketAction `protobuf:"varint,8,opt,name=green_packet_action,json=greenPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"green_packet_action,omitempty"` + YellowPacketAction *PacketAction `protobuf:"varint,9,opt,name=yellow_packet_action,json=yellowPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"yellow_packet_action,omitempty"` + RedPacketAction *PacketAction `protobuf:"varint,10,opt,name=red_packet_action,json=redPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"red_packet_action,omitempty"` + EnableCounterPacketActionList []PacketAction `protobuf:"varint,11,rep,packed,name=enable_counter_packet_action_list,json=enableCounterPacketActionList,proto3,enum=lemming.dataplane.sai.PacketAction" json:"enable_counter_packet_action_list,omitempty"` } func (x *PolicerAttribute) Reset() { *x = PolicerAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[102] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22125,7 +21562,7 @@ func (x *PolicerAttribute) String() string { func (*PolicerAttribute) ProtoMessage() {} func (x *PolicerAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[102] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22138,111 +21575,254 @@ func (x *PolicerAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicerAttribute.ProtoReflect.Descriptor instead. func (*PolicerAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{102} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{90} } func (x *PolicerAttribute) GetMeterType() MeterType { - if x != nil { - return x.MeterType + if x != nil && x.MeterType != nil { + return *x.MeterType } return MeterType_METER_TYPE_UNSPECIFIED } func (x *PolicerAttribute) GetMode() PolicerMode { - if x != nil { - return x.Mode + if x != nil && x.Mode != nil { + return *x.Mode } return PolicerMode_POLICER_MODE_UNSPECIFIED } func (x *PolicerAttribute) GetColorSource() PolicerColorSource { - if x != nil { - return x.ColorSource + if x != nil && x.ColorSource != nil { + return *x.ColorSource } return PolicerColorSource_POLICER_COLOR_SOURCE_UNSPECIFIED } func (x *PolicerAttribute) GetCbs() uint64 { - if x != nil { - return x.Cbs + if x != nil && x.Cbs != nil { + return *x.Cbs } return 0 } func (x *PolicerAttribute) GetCir() uint64 { - if x != nil { - return x.Cir + if x != nil && x.Cir != nil { + return *x.Cir } return 0 } func (x *PolicerAttribute) GetPbs() uint64 { - if x != nil { - return x.Pbs + if x != nil && x.Pbs != nil { + return *x.Pbs } return 0 } func (x *PolicerAttribute) GetPir() uint64 { - if x != nil { - return x.Pir + if x != nil && x.Pir != nil { + return *x.Pir } return 0 } func (x *PolicerAttribute) GetGreenPacketAction() PacketAction { - if x != nil { - return x.GreenPacketAction + if x != nil && x.GreenPacketAction != nil { + return *x.GreenPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *PolicerAttribute) GetYellowPacketAction() PacketAction { - if x != nil { - return x.YellowPacketAction + if x != nil && x.YellowPacketAction != nil { + return *x.YellowPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *PolicerAttribute) GetRedPacketAction() PacketAction { - if x != nil { - return x.RedPacketAction + if x != nil && x.RedPacketAction != nil { + return *x.RedPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } -func (x *PolicerAttribute) GetEnableCounterPacketActionList() *PacketActionList { +func (x *PolicerAttribute) GetEnableCounterPacketActionList() []PacketAction { if x != nil { return x.EnableCounterPacketActionList } return nil } -type PortBreakoutModeTypeList struct { +type PortAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - List []PortBreakoutModeType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.PortBreakoutModeType" json:"list,omitempty"` + Type *PortType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.PortType,oneof" json:"type,omitempty"` + OperStatus *PortOperStatus `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,enum=lemming.dataplane.sai.PortOperStatus,oneof" json:"oper_status,omitempty"` + SupportedBreakoutModeType []PortBreakoutModeType `protobuf:"varint,3,rep,packed,name=supported_breakout_mode_type,json=supportedBreakoutModeType,proto3,enum=lemming.dataplane.sai.PortBreakoutModeType" json:"supported_breakout_mode_type,omitempty"` + CurrentBreakoutModeType *PortBreakoutModeType `protobuf:"varint,4,opt,name=current_breakout_mode_type,json=currentBreakoutModeType,proto3,enum=lemming.dataplane.sai.PortBreakoutModeType,oneof" json:"current_breakout_mode_type,omitempty"` + QosNumberOfQueues *uint32 `protobuf:"varint,5,opt,name=qos_number_of_queues,json=qosNumberOfQueues,proto3,oneof" json:"qos_number_of_queues,omitempty"` + QosQueueList []uint64 `protobuf:"varint,6,rep,packed,name=qos_queue_list,json=qosQueueList,proto3" json:"qos_queue_list,omitempty"` + QosNumberOfSchedulerGroups *uint32 `protobuf:"varint,7,opt,name=qos_number_of_scheduler_groups,json=qosNumberOfSchedulerGroups,proto3,oneof" json:"qos_number_of_scheduler_groups,omitempty"` + QosSchedulerGroupList []uint64 `protobuf:"varint,8,rep,packed,name=qos_scheduler_group_list,json=qosSchedulerGroupList,proto3" json:"qos_scheduler_group_list,omitempty"` + QosMaximumHeadroomSize *uint32 `protobuf:"varint,9,opt,name=qos_maximum_headroom_size,json=qosMaximumHeadroomSize,proto3,oneof" json:"qos_maximum_headroom_size,omitempty"` + SupportedSpeed []uint32 `protobuf:"varint,10,rep,packed,name=supported_speed,json=supportedSpeed,proto3" json:"supported_speed,omitempty"` + SupportedFecMode []PortFecMode `protobuf:"varint,11,rep,packed,name=supported_fec_mode,json=supportedFecMode,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"supported_fec_mode,omitempty"` + SupportedFecModeExtended []PortFecModeExtended `protobuf:"varint,12,rep,packed,name=supported_fec_mode_extended,json=supportedFecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"supported_fec_mode_extended,omitempty"` + SupportedHalfDuplexSpeed []uint32 `protobuf:"varint,13,rep,packed,name=supported_half_duplex_speed,json=supportedHalfDuplexSpeed,proto3" json:"supported_half_duplex_speed,omitempty"` + SupportedAutoNegMode *bool `protobuf:"varint,14,opt,name=supported_auto_neg_mode,json=supportedAutoNegMode,proto3,oneof" json:"supported_auto_neg_mode,omitempty"` + SupportedFlowControlMode *PortFlowControlMode `protobuf:"varint,15,opt,name=supported_flow_control_mode,json=supportedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof" json:"supported_flow_control_mode,omitempty"` + SupportedAsymmetricPauseMode *bool `protobuf:"varint,16,opt,name=supported_asymmetric_pause_mode,json=supportedAsymmetricPauseMode,proto3,oneof" json:"supported_asymmetric_pause_mode,omitempty"` + SupportedMediaType *PortMediaType `protobuf:"varint,17,opt,name=supported_media_type,json=supportedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof" json:"supported_media_type,omitempty"` + RemoteAdvertisedSpeed []uint32 `protobuf:"varint,18,rep,packed,name=remote_advertised_speed,json=remoteAdvertisedSpeed,proto3" json:"remote_advertised_speed,omitempty"` + RemoteAdvertisedFecMode []PortFecMode `protobuf:"varint,19,rep,packed,name=remote_advertised_fec_mode,json=remoteAdvertisedFecMode,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"remote_advertised_fec_mode,omitempty"` + RemoteAdvertisedFecModeExtended []PortFecModeExtended `protobuf:"varint,20,rep,packed,name=remote_advertised_fec_mode_extended,json=remoteAdvertisedFecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"remote_advertised_fec_mode_extended,omitempty"` + RemoteAdvertisedHalfDuplexSpeed []uint32 `protobuf:"varint,21,rep,packed,name=remote_advertised_half_duplex_speed,json=remoteAdvertisedHalfDuplexSpeed,proto3" json:"remote_advertised_half_duplex_speed,omitempty"` + RemoteAdvertisedAutoNegMode *bool `protobuf:"varint,22,opt,name=remote_advertised_auto_neg_mode,json=remoteAdvertisedAutoNegMode,proto3,oneof" json:"remote_advertised_auto_neg_mode,omitempty"` + RemoteAdvertisedFlowControlMode *PortFlowControlMode `protobuf:"varint,23,opt,name=remote_advertised_flow_control_mode,json=remoteAdvertisedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof" json:"remote_advertised_flow_control_mode,omitempty"` + RemoteAdvertisedAsymmetricPauseMode *bool `protobuf:"varint,24,opt,name=remote_advertised_asymmetric_pause_mode,json=remoteAdvertisedAsymmetricPauseMode,proto3,oneof" json:"remote_advertised_asymmetric_pause_mode,omitempty"` + RemoteAdvertisedMediaType *PortMediaType `protobuf:"varint,25,opt,name=remote_advertised_media_type,json=remoteAdvertisedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof" json:"remote_advertised_media_type,omitempty"` + RemoteAdvertisedOuiCode *uint32 `protobuf:"varint,26,opt,name=remote_advertised_oui_code,json=remoteAdvertisedOuiCode,proto3,oneof" json:"remote_advertised_oui_code,omitempty"` + NumberOfIngressPriorityGroups *uint32 `protobuf:"varint,27,opt,name=number_of_ingress_priority_groups,json=numberOfIngressPriorityGroups,proto3,oneof" json:"number_of_ingress_priority_groups,omitempty"` + IngressPriorityGroupList []uint64 `protobuf:"varint,28,rep,packed,name=ingress_priority_group_list,json=ingressPriorityGroupList,proto3" json:"ingress_priority_group_list,omitempty"` + EyeValues []*PortEyeValues `protobuf:"bytes,29,rep,name=eye_values,json=eyeValues,proto3" json:"eye_values,omitempty"` + OperSpeed *uint32 `protobuf:"varint,30,opt,name=oper_speed,json=operSpeed,proto3,oneof" json:"oper_speed,omitempty"` + HwLaneList []uint32 `protobuf:"varint,31,rep,packed,name=hw_lane_list,json=hwLaneList,proto3" json:"hw_lane_list,omitempty"` + Speed *uint32 `protobuf:"varint,32,opt,name=speed,proto3,oneof" json:"speed,omitempty"` + FullDuplexMode *bool `protobuf:"varint,33,opt,name=full_duplex_mode,json=fullDuplexMode,proto3,oneof" json:"full_duplex_mode,omitempty"` + AutoNegMode *bool `protobuf:"varint,34,opt,name=auto_neg_mode,json=autoNegMode,proto3,oneof" json:"auto_neg_mode,omitempty"` + AdminState *bool `protobuf:"varint,35,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + MediaType *PortMediaType `protobuf:"varint,36,opt,name=media_type,json=mediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof" json:"media_type,omitempty"` + AdvertisedSpeed []uint32 `protobuf:"varint,37,rep,packed,name=advertised_speed,json=advertisedSpeed,proto3" json:"advertised_speed,omitempty"` + AdvertisedFecMode []PortFecMode `protobuf:"varint,38,rep,packed,name=advertised_fec_mode,json=advertisedFecMode,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"advertised_fec_mode,omitempty"` + AdvertisedFecModeExtended []PortFecModeExtended `protobuf:"varint,39,rep,packed,name=advertised_fec_mode_extended,json=advertisedFecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"advertised_fec_mode_extended,omitempty"` + AdvertisedHalfDuplexSpeed []uint32 `protobuf:"varint,40,rep,packed,name=advertised_half_duplex_speed,json=advertisedHalfDuplexSpeed,proto3" json:"advertised_half_duplex_speed,omitempty"` + AdvertisedAutoNegMode *bool `protobuf:"varint,41,opt,name=advertised_auto_neg_mode,json=advertisedAutoNegMode,proto3,oneof" json:"advertised_auto_neg_mode,omitempty"` + AdvertisedFlowControlMode *PortFlowControlMode `protobuf:"varint,42,opt,name=advertised_flow_control_mode,json=advertisedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof" json:"advertised_flow_control_mode,omitempty"` + AdvertisedAsymmetricPauseMode *bool `protobuf:"varint,43,opt,name=advertised_asymmetric_pause_mode,json=advertisedAsymmetricPauseMode,proto3,oneof" json:"advertised_asymmetric_pause_mode,omitempty"` + AdvertisedMediaType *PortMediaType `protobuf:"varint,44,opt,name=advertised_media_type,json=advertisedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof" json:"advertised_media_type,omitempty"` + AdvertisedOuiCode *uint32 `protobuf:"varint,45,opt,name=advertised_oui_code,json=advertisedOuiCode,proto3,oneof" json:"advertised_oui_code,omitempty"` + PortVlanId *uint32 `protobuf:"varint,46,opt,name=port_vlan_id,json=portVlanId,proto3,oneof" json:"port_vlan_id,omitempty"` + DefaultVlanPriority *uint32 `protobuf:"varint,47,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3,oneof" json:"default_vlan_priority,omitempty"` + DropUntagged *bool `protobuf:"varint,48,opt,name=drop_untagged,json=dropUntagged,proto3,oneof" json:"drop_untagged,omitempty"` + DropTagged *bool `protobuf:"varint,49,opt,name=drop_tagged,json=dropTagged,proto3,oneof" json:"drop_tagged,omitempty"` + InternalLoopbackMode *PortInternalLoopbackMode `protobuf:"varint,50,opt,name=internal_loopback_mode,json=internalLoopbackMode,proto3,enum=lemming.dataplane.sai.PortInternalLoopbackMode,oneof" json:"internal_loopback_mode,omitempty"` + UseExtendedFec *bool `protobuf:"varint,51,opt,name=use_extended_fec,json=useExtendedFec,proto3,oneof" json:"use_extended_fec,omitempty"` + FecMode *PortFecMode `protobuf:"varint,52,opt,name=fec_mode,json=fecMode,proto3,enum=lemming.dataplane.sai.PortFecMode,oneof" json:"fec_mode,omitempty"` + FecModeExtended *PortFecModeExtended `protobuf:"varint,53,opt,name=fec_mode_extended,json=fecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended,oneof" json:"fec_mode_extended,omitempty"` + UpdateDscp *bool `protobuf:"varint,54,opt,name=update_dscp,json=updateDscp,proto3,oneof" json:"update_dscp,omitempty"` + Mtu *uint32 `protobuf:"varint,55,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` + FloodStormControlPolicerId *uint64 `protobuf:"varint,56,opt,name=flood_storm_control_policer_id,json=floodStormControlPolicerId,proto3,oneof" json:"flood_storm_control_policer_id,omitempty"` + BroadcastStormControlPolicerId *uint64 `protobuf:"varint,57,opt,name=broadcast_storm_control_policer_id,json=broadcastStormControlPolicerId,proto3,oneof" json:"broadcast_storm_control_policer_id,omitempty"` + MulticastStormControlPolicerId *uint64 `protobuf:"varint,58,opt,name=multicast_storm_control_policer_id,json=multicastStormControlPolicerId,proto3,oneof" json:"multicast_storm_control_policer_id,omitempty"` + GlobalFlowControlMode *PortFlowControlMode `protobuf:"varint,59,opt,name=global_flow_control_mode,json=globalFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof" json:"global_flow_control_mode,omitempty"` + IngressAcl *uint64 `protobuf:"varint,60,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,61,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + IngressMacsecAcl *uint64 `protobuf:"varint,62,opt,name=ingress_macsec_acl,json=ingressMacsecAcl,proto3,oneof" json:"ingress_macsec_acl,omitempty"` + EgressMacsecAcl *uint64 `protobuf:"varint,63,opt,name=egress_macsec_acl,json=egressMacsecAcl,proto3,oneof" json:"egress_macsec_acl,omitempty"` + MacsecPortList []uint64 `protobuf:"varint,64,rep,packed,name=macsec_port_list,json=macsecPortList,proto3" json:"macsec_port_list,omitempty"` + IngressMirrorSession []uint64 `protobuf:"varint,65,rep,packed,name=ingress_mirror_session,json=ingressMirrorSession,proto3" json:"ingress_mirror_session,omitempty"` + EgressMirrorSession []uint64 `protobuf:"varint,66,rep,packed,name=egress_mirror_session,json=egressMirrorSession,proto3" json:"egress_mirror_session,omitempty"` + IngressSamplepacketEnable *uint64 `protobuf:"varint,67,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3,oneof" json:"ingress_samplepacket_enable,omitempty"` + EgressSamplepacketEnable *uint64 `protobuf:"varint,68,opt,name=egress_samplepacket_enable,json=egressSamplepacketEnable,proto3,oneof" json:"egress_samplepacket_enable,omitempty"` + IngressSampleMirrorSession []uint64 `protobuf:"varint,69,rep,packed,name=ingress_sample_mirror_session,json=ingressSampleMirrorSession,proto3" json:"ingress_sample_mirror_session,omitempty"` + EgressSampleMirrorSession []uint64 `protobuf:"varint,70,rep,packed,name=egress_sample_mirror_session,json=egressSampleMirrorSession,proto3" json:"egress_sample_mirror_session,omitempty"` + PolicerId *uint64 `protobuf:"varint,71,opt,name=policer_id,json=policerId,proto3,oneof" json:"policer_id,omitempty"` + QosDefaultTc *uint32 `protobuf:"varint,72,opt,name=qos_default_tc,json=qosDefaultTc,proto3,oneof" json:"qos_default_tc,omitempty"` + QosDot1PToTcMap *uint64 `protobuf:"varint,73,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3,oneof" json:"qos_dot1p_to_tc_map,omitempty"` + QosDot1PToColorMap *uint64 `protobuf:"varint,74,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3,oneof" json:"qos_dot1p_to_color_map,omitempty"` + QosDscpToTcMap *uint64 `protobuf:"varint,75,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3,oneof" json:"qos_dscp_to_tc_map,omitempty"` + QosDscpToColorMap *uint64 `protobuf:"varint,76,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3,oneof" json:"qos_dscp_to_color_map,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,77,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` + QosTcAndColorToDot1PMap *uint64 `protobuf:"varint,78,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3,oneof" json:"qos_tc_and_color_to_dot1p_map,omitempty"` + QosTcAndColorToDscpMap *uint64 `protobuf:"varint,79,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3,oneof" json:"qos_tc_and_color_to_dscp_map,omitempty"` + QosTcToPriorityGroupMap *uint64 `protobuf:"varint,80,opt,name=qos_tc_to_priority_group_map,json=qosTcToPriorityGroupMap,proto3,oneof" json:"qos_tc_to_priority_group_map,omitempty"` + QosPfcPriorityToPriorityGroupMap *uint64 `protobuf:"varint,81,opt,name=qos_pfc_priority_to_priority_group_map,json=qosPfcPriorityToPriorityGroupMap,proto3,oneof" json:"qos_pfc_priority_to_priority_group_map,omitempty"` + QosPfcPriorityToQueueMap *uint64 `protobuf:"varint,82,opt,name=qos_pfc_priority_to_queue_map,json=qosPfcPriorityToQueueMap,proto3,oneof" json:"qos_pfc_priority_to_queue_map,omitempty"` + QosSchedulerProfileId *uint64 `protobuf:"varint,83,opt,name=qos_scheduler_profile_id,json=qosSchedulerProfileId,proto3,oneof" json:"qos_scheduler_profile_id,omitempty"` + QosIngressBufferProfileList []uint64 `protobuf:"varint,84,rep,packed,name=qos_ingress_buffer_profile_list,json=qosIngressBufferProfileList,proto3" json:"qos_ingress_buffer_profile_list,omitempty"` + QosEgressBufferProfileList []uint64 `protobuf:"varint,85,rep,packed,name=qos_egress_buffer_profile_list,json=qosEgressBufferProfileList,proto3" json:"qos_egress_buffer_profile_list,omitempty"` + PriorityFlowControlMode *PortPriorityFlowControlMode `protobuf:"varint,86,opt,name=priority_flow_control_mode,json=priorityFlowControlMode,proto3,enum=lemming.dataplane.sai.PortPriorityFlowControlMode,oneof" json:"priority_flow_control_mode,omitempty"` + PriorityFlowControl *uint32 `protobuf:"varint,87,opt,name=priority_flow_control,json=priorityFlowControl,proto3,oneof" json:"priority_flow_control,omitempty"` + PriorityFlowControlRx *uint32 `protobuf:"varint,88,opt,name=priority_flow_control_rx,json=priorityFlowControlRx,proto3,oneof" json:"priority_flow_control_rx,omitempty"` + PriorityFlowControlTx *uint32 `protobuf:"varint,89,opt,name=priority_flow_control_tx,json=priorityFlowControlTx,proto3,oneof" json:"priority_flow_control_tx,omitempty"` + MetaData *uint32 `protobuf:"varint,90,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + EgressBlockPortList []uint64 `protobuf:"varint,91,rep,packed,name=egress_block_port_list,json=egressBlockPortList,proto3" json:"egress_block_port_list,omitempty"` + HwProfileId *uint64 `protobuf:"varint,92,opt,name=hw_profile_id,json=hwProfileId,proto3,oneof" json:"hw_profile_id,omitempty"` + EeeEnable *bool `protobuf:"varint,93,opt,name=eee_enable,json=eeeEnable,proto3,oneof" json:"eee_enable,omitempty"` + EeeIdleTime *uint32 `protobuf:"varint,94,opt,name=eee_idle_time,json=eeeIdleTime,proto3,oneof" json:"eee_idle_time,omitempty"` + EeeWakeTime *uint32 `protobuf:"varint,95,opt,name=eee_wake_time,json=eeeWakeTime,proto3,oneof" json:"eee_wake_time,omitempty"` + PortPoolList []uint64 `protobuf:"varint,96,rep,packed,name=port_pool_list,json=portPoolList,proto3" json:"port_pool_list,omitempty"` + IsolationGroup *uint64 `protobuf:"varint,97,opt,name=isolation_group,json=isolationGroup,proto3,oneof" json:"isolation_group,omitempty"` + PktTxEnable *bool `protobuf:"varint,98,opt,name=pkt_tx_enable,json=pktTxEnable,proto3,oneof" json:"pkt_tx_enable,omitempty"` + TamObject []uint64 `protobuf:"varint,99,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` + SerdesPreemphasis []uint32 `protobuf:"varint,100,rep,packed,name=serdes_preemphasis,json=serdesPreemphasis,proto3" json:"serdes_preemphasis,omitempty"` + SerdesIdriver []uint32 `protobuf:"varint,101,rep,packed,name=serdes_idriver,json=serdesIdriver,proto3" json:"serdes_idriver,omitempty"` + SerdesIpredriver []uint32 `protobuf:"varint,102,rep,packed,name=serdes_ipredriver,json=serdesIpredriver,proto3" json:"serdes_ipredriver,omitempty"` + LinkTrainingEnable *bool `protobuf:"varint,103,opt,name=link_training_enable,json=linkTrainingEnable,proto3,oneof" json:"link_training_enable,omitempty"` + PtpMode *PortPtpMode `protobuf:"varint,104,opt,name=ptp_mode,json=ptpMode,proto3,enum=lemming.dataplane.sai.PortPtpMode,oneof" json:"ptp_mode,omitempty"` + InterfaceType *PortInterfaceType `protobuf:"varint,105,opt,name=interface_type,json=interfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType,oneof" json:"interface_type,omitempty"` + AdvertisedInterfaceType []PortInterfaceType `protobuf:"varint,106,rep,packed,name=advertised_interface_type,json=advertisedInterfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType" json:"advertised_interface_type,omitempty"` + ReferenceClock *uint64 `protobuf:"varint,107,opt,name=reference_clock,json=referenceClock,proto3,oneof" json:"reference_clock,omitempty"` + PrbsPolynomial *uint32 `protobuf:"varint,108,opt,name=prbs_polynomial,json=prbsPolynomial,proto3,oneof" json:"prbs_polynomial,omitempty"` + PortSerdesId *uint64 `protobuf:"varint,109,opt,name=port_serdes_id,json=portSerdesId,proto3,oneof" json:"port_serdes_id,omitempty"` + LinkTrainingFailureStatus *PortLinkTrainingFailureStatus `protobuf:"varint,110,opt,name=link_training_failure_status,json=linkTrainingFailureStatus,proto3,enum=lemming.dataplane.sai.PortLinkTrainingFailureStatus,oneof" json:"link_training_failure_status,omitempty"` + LinkTrainingRxStatus *PortLinkTrainingRxStatus `protobuf:"varint,111,opt,name=link_training_rx_status,json=linkTrainingRxStatus,proto3,enum=lemming.dataplane.sai.PortLinkTrainingRxStatus,oneof" json:"link_training_rx_status,omitempty"` + PrbsConfig *PortPrbsConfig `protobuf:"varint,112,opt,name=prbs_config,json=prbsConfig,proto3,enum=lemming.dataplane.sai.PortPrbsConfig,oneof" json:"prbs_config,omitempty"` + PrbsLockStatus *bool `protobuf:"varint,113,opt,name=prbs_lock_status,json=prbsLockStatus,proto3,oneof" json:"prbs_lock_status,omitempty"` + PrbsLockLossStatus *bool `protobuf:"varint,114,opt,name=prbs_lock_loss_status,json=prbsLockLossStatus,proto3,oneof" json:"prbs_lock_loss_status,omitempty"` + PrbsRxStatus *PortPrbsRxStatus `protobuf:"varint,115,opt,name=prbs_rx_status,json=prbsRxStatus,proto3,enum=lemming.dataplane.sai.PortPrbsRxStatus,oneof" json:"prbs_rx_status,omitempty"` + PrbsRxState *PRBS_RXState `protobuf:"bytes,116,opt,name=prbs_rx_state,json=prbsRxState,proto3,oneof" json:"prbs_rx_state,omitempty"` + AutoNegStatus *bool `protobuf:"varint,117,opt,name=auto_neg_status,json=autoNegStatus,proto3,oneof" json:"auto_neg_status,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,118,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + QosMplsExpToTcMap *uint64 `protobuf:"varint,119,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3,oneof" json:"qos_mpls_exp_to_tc_map,omitempty"` + QosMplsExpToColorMap *uint64 `protobuf:"varint,120,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3,oneof" json:"qos_mpls_exp_to_color_map,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,121,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` + Tpid *uint32 `protobuf:"varint,122,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + ErrStatusList []PortErrStatus `protobuf:"varint,123,rep,packed,name=err_status_list,json=errStatusList,proto3,enum=lemming.dataplane.sai.PortErrStatus" json:"err_status_list,omitempty"` + FabricAttached *bool `protobuf:"varint,124,opt,name=fabric_attached,json=fabricAttached,proto3,oneof" json:"fabric_attached,omitempty"` + FabricAttachedSwitchType *SwitchType `protobuf:"varint,125,opt,name=fabric_attached_switch_type,json=fabricAttachedSwitchType,proto3,enum=lemming.dataplane.sai.SwitchType,oneof" json:"fabric_attached_switch_type,omitempty"` + FabricAttachedSwitchId *uint32 `protobuf:"varint,126,opt,name=fabric_attached_switch_id,json=fabricAttachedSwitchId,proto3,oneof" json:"fabric_attached_switch_id,omitempty"` + FabricAttachedPortIndex *uint32 `protobuf:"varint,127,opt,name=fabric_attached_port_index,json=fabricAttachedPortIndex,proto3,oneof" json:"fabric_attached_port_index,omitempty"` + FabricReachability *FabricPortReachability `protobuf:"bytes,128,opt,name=fabric_reachability,json=fabricReachability,proto3,oneof" json:"fabric_reachability,omitempty"` + SystemPort *uint64 `protobuf:"varint,129,opt,name=system_port,json=systemPort,proto3,oneof" json:"system_port,omitempty"` + AutoNegFecModeOverride *bool `protobuf:"varint,130,opt,name=auto_neg_fec_mode_override,json=autoNegFecModeOverride,proto3,oneof" json:"auto_neg_fec_mode_override,omitempty"` + LoopbackMode *PortLoopbackMode `protobuf:"varint,131,opt,name=loopback_mode,json=loopbackMode,proto3,enum=lemming.dataplane.sai.PortLoopbackMode,oneof" json:"loopback_mode,omitempty"` + MdixModeStatus *PortMdixModeStatus `protobuf:"varint,132,opt,name=mdix_mode_status,json=mdixModeStatus,proto3,enum=lemming.dataplane.sai.PortMdixModeStatus,oneof" json:"mdix_mode_status,omitempty"` + MdixModeConfig *PortMdixModeConfig `protobuf:"varint,133,opt,name=mdix_mode_config,json=mdixModeConfig,proto3,enum=lemming.dataplane.sai.PortMdixModeConfig,oneof" json:"mdix_mode_config,omitempty"` + AutoNegConfigMode *PortAutoNegConfigMode `protobuf:"varint,134,opt,name=auto_neg_config_mode,json=autoNegConfigMode,proto3,enum=lemming.dataplane.sai.PortAutoNegConfigMode,oneof" json:"auto_neg_config_mode,omitempty"` + X1000XSgmiiSlaveAutodetect *bool `protobuf:"varint,135,opt,name=_1000x_sgmii_slave_autodetect,json=1000xSgmiiSlaveAutodetect,proto3,oneof" json:"_1000x_sgmii_slave_autodetect,omitempty"` + ModuleType *PortModuleType `protobuf:"varint,136,opt,name=module_type,json=moduleType,proto3,enum=lemming.dataplane.sai.PortModuleType,oneof" json:"module_type,omitempty"` + DualMedia *PortDualMedia `protobuf:"varint,137,opt,name=dual_media,json=dualMedia,proto3,enum=lemming.dataplane.sai.PortDualMedia,oneof" json:"dual_media,omitempty"` + AutoNegFecModeExtended *PortFecModeExtended `protobuf:"varint,138,opt,name=auto_neg_fec_mode_extended,json=autoNegFecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended,oneof" json:"auto_neg_fec_mode_extended,omitempty"` + Ipg *uint32 `protobuf:"varint,139,opt,name=ipg,proto3,oneof" json:"ipg,omitempty"` + GlobalFlowControlForward *bool `protobuf:"varint,140,opt,name=global_flow_control_forward,json=globalFlowControlForward,proto3,oneof" json:"global_flow_control_forward,omitempty"` + PriorityFlowControlForward *bool `protobuf:"varint,141,opt,name=priority_flow_control_forward,json=priorityFlowControlForward,proto3,oneof" json:"priority_flow_control_forward,omitempty"` + QosDscpToForwardingClassMap *uint64 `protobuf:"varint,142,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3,oneof" json:"qos_dscp_to_forwarding_class_map,omitempty"` + QosMplsExpToForwardingClassMap *uint64 `protobuf:"varint,143,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3,oneof" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` + IpsecPort *uint64 `protobuf:"varint,144,opt,name=ipsec_port,json=ipsecPort,proto3,oneof" json:"ipsec_port,omitempty"` } -func (x *PortBreakoutModeTypeList) Reset() { - *x = PortBreakoutModeTypeList{} +func (x *PortAttribute) Reset() { + *x = PortAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[103] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortBreakoutModeTypeList) String() string { +func (x *PortAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortBreakoutModeTypeList) ProtoMessage() {} +func (*PortAttribute) ProtoMessage() {} -func (x *PortBreakoutModeTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[103] +func (x *PortAttribute) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22253,521 +21833,96 @@ func (x *PortBreakoutModeTypeList) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortBreakoutModeTypeList.ProtoReflect.Descriptor instead. -func (*PortBreakoutModeTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{103} +// Deprecated: Use PortAttribute.ProtoReflect.Descriptor instead. +func (*PortAttribute) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{91} } -func (x *PortBreakoutModeTypeList) GetList() []PortBreakoutModeType { - if x != nil { - return x.List +func (x *PortAttribute) GetType() PortType { + if x != nil && x.Type != nil { + return *x.Type } - return nil -} - -type PortFecModeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []PortFecMode `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"list,omitempty"` + return PortType_PORT_TYPE_UNSPECIFIED } -func (x *PortFecModeList) Reset() { - *x = PortFecModeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[104] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PortAttribute) GetOperStatus() PortOperStatus { + if x != nil && x.OperStatus != nil { + return *x.OperStatus } + return PortOperStatus_PORT_OPER_STATUS_UNSPECIFIED } -func (x *PortFecModeList) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PortAttribute) GetSupportedBreakoutModeType() []PortBreakoutModeType { + if x != nil { + return x.SupportedBreakoutModeType + } + return nil } -func (*PortFecModeList) ProtoMessage() {} - -func (x *PortFecModeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[104] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PortAttribute) GetCurrentBreakoutModeType() PortBreakoutModeType { + if x != nil && x.CurrentBreakoutModeType != nil { + return *x.CurrentBreakoutModeType } - return mi.MessageOf(x) + return PortBreakoutModeType_PORT_BREAKOUT_MODE_TYPE_UNSPECIFIED } -// Deprecated: Use PortFecModeList.ProtoReflect.Descriptor instead. -func (*PortFecModeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{104} +func (x *PortAttribute) GetQosNumberOfQueues() uint32 { + if x != nil && x.QosNumberOfQueues != nil { + return *x.QosNumberOfQueues + } + return 0 } -func (x *PortFecModeList) GetList() []PortFecMode { +func (x *PortAttribute) GetQosQueueList() []uint64 { if x != nil { - return x.List + return x.QosQueueList } return nil } -type PortFecModeExtendedList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []PortFecModeExtended `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"list,omitempty"` +func (x *PortAttribute) GetQosNumberOfSchedulerGroups() uint32 { + if x != nil && x.QosNumberOfSchedulerGroups != nil { + return *x.QosNumberOfSchedulerGroups + } + return 0 } -func (x *PortFecModeExtendedList) Reset() { - *x = PortFecModeExtendedList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[105] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PortAttribute) GetQosSchedulerGroupList() []uint64 { + if x != nil { + return x.QosSchedulerGroupList } + return nil } -func (x *PortFecModeExtendedList) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PortAttribute) GetQosMaximumHeadroomSize() uint32 { + if x != nil && x.QosMaximumHeadroomSize != nil { + return *x.QosMaximumHeadroomSize + } + return 0 } -func (*PortFecModeExtendedList) ProtoMessage() {} - -func (x *PortFecModeExtendedList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[105] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PortAttribute) GetSupportedSpeed() []uint32 { + if x != nil { + return x.SupportedSpeed } - return mi.MessageOf(x) + return nil } -// Deprecated: Use PortFecModeExtendedList.ProtoReflect.Descriptor instead. -func (*PortFecModeExtendedList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{105} +func (x *PortAttribute) GetSupportedFecMode() []PortFecMode { + if x != nil { + return x.SupportedFecMode + } + return nil } -func (x *PortFecModeExtendedList) GetList() []PortFecModeExtended { +func (x *PortAttribute) GetSupportedFecModeExtended() []PortFecModeExtended { if x != nil { - return x.List + return x.SupportedFecModeExtended } return nil } -type PortEyeValuesList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []*PortEyeValues `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` -} - -func (x *PortEyeValuesList) Reset() { - *x = PortEyeValuesList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[106] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortEyeValuesList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortEyeValuesList) ProtoMessage() {} - -func (x *PortEyeValuesList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[106] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PortEyeValuesList.ProtoReflect.Descriptor instead. -func (*PortEyeValuesList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{106} -} - -func (x *PortEyeValuesList) GetList() []*PortEyeValues { - if x != nil { - return x.List - } - return nil -} - -type PortInterfaceTypeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []PortInterfaceType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.PortInterfaceType" json:"list,omitempty"` -} - -func (x *PortInterfaceTypeList) Reset() { - *x = PortInterfaceTypeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[107] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortInterfaceTypeList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortInterfaceTypeList) ProtoMessage() {} - -func (x *PortInterfaceTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[107] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PortInterfaceTypeList.ProtoReflect.Descriptor instead. -func (*PortInterfaceTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{107} -} - -func (x *PortInterfaceTypeList) GetList() []PortInterfaceType { - if x != nil { - return x.List - } - return nil -} - -type PortErrStatusList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []PortErrStatus `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.PortErrStatus" json:"list,omitempty"` -} - -func (x *PortErrStatusList) Reset() { - *x = PortErrStatusList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[108] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortErrStatusList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortErrStatusList) ProtoMessage() {} - -func (x *PortErrStatusList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[108] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PortErrStatusList.ProtoReflect.Descriptor instead. -func (*PortErrStatusList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{108} -} - -func (x *PortErrStatusList) GetList() []PortErrStatus { - if x != nil { - return x.List - } - return nil -} - -type PortAttribute struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type PortType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.PortType" json:"type,omitempty"` - OperStatus PortOperStatus `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,enum=lemming.dataplane.sai.PortOperStatus" json:"oper_status,omitempty"` - SupportedBreakoutModeType *PortBreakoutModeTypeList `protobuf:"bytes,3,opt,name=supported_breakout_mode_type,json=supportedBreakoutModeType,proto3" json:"supported_breakout_mode_type,omitempty"` - CurrentBreakoutModeType PortBreakoutModeType `protobuf:"varint,4,opt,name=current_breakout_mode_type,json=currentBreakoutModeType,proto3,enum=lemming.dataplane.sai.PortBreakoutModeType" json:"current_breakout_mode_type,omitempty"` - QosNumberOfQueues uint32 `protobuf:"varint,5,opt,name=qos_number_of_queues,json=qosNumberOfQueues,proto3" json:"qos_number_of_queues,omitempty"` - QosQueueList *Uint64List `protobuf:"bytes,6,opt,name=qos_queue_list,json=qosQueueList,proto3" json:"qos_queue_list,omitempty"` - QosNumberOfSchedulerGroups uint32 `protobuf:"varint,7,opt,name=qos_number_of_scheduler_groups,json=qosNumberOfSchedulerGroups,proto3" json:"qos_number_of_scheduler_groups,omitempty"` - QosSchedulerGroupList *Uint64List `protobuf:"bytes,8,opt,name=qos_scheduler_group_list,json=qosSchedulerGroupList,proto3" json:"qos_scheduler_group_list,omitempty"` - QosMaximumHeadroomSize uint32 `protobuf:"varint,9,opt,name=qos_maximum_headroom_size,json=qosMaximumHeadroomSize,proto3" json:"qos_maximum_headroom_size,omitempty"` - SupportedSpeed *Uint32List `protobuf:"bytes,10,opt,name=supported_speed,json=supportedSpeed,proto3" json:"supported_speed,omitempty"` - SupportedFecMode *PortFecModeList `protobuf:"bytes,11,opt,name=supported_fec_mode,json=supportedFecMode,proto3" json:"supported_fec_mode,omitempty"` - SupportedFecModeExtended *PortFecModeExtendedList `protobuf:"bytes,12,opt,name=supported_fec_mode_extended,json=supportedFecModeExtended,proto3" json:"supported_fec_mode_extended,omitempty"` - SupportedHalfDuplexSpeed *Uint32List `protobuf:"bytes,13,opt,name=supported_half_duplex_speed,json=supportedHalfDuplexSpeed,proto3" json:"supported_half_duplex_speed,omitempty"` - SupportedAutoNegMode bool `protobuf:"varint,14,opt,name=supported_auto_neg_mode,json=supportedAutoNegMode,proto3" json:"supported_auto_neg_mode,omitempty"` - SupportedFlowControlMode PortFlowControlMode `protobuf:"varint,15,opt,name=supported_flow_control_mode,json=supportedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode" json:"supported_flow_control_mode,omitempty"` - SupportedAsymmetricPauseMode bool `protobuf:"varint,16,opt,name=supported_asymmetric_pause_mode,json=supportedAsymmetricPauseMode,proto3" json:"supported_asymmetric_pause_mode,omitempty"` - SupportedMediaType PortMediaType `protobuf:"varint,17,opt,name=supported_media_type,json=supportedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType" json:"supported_media_type,omitempty"` - RemoteAdvertisedSpeed *Uint32List `protobuf:"bytes,18,opt,name=remote_advertised_speed,json=remoteAdvertisedSpeed,proto3" json:"remote_advertised_speed,omitempty"` - RemoteAdvertisedFecMode *PortFecModeList `protobuf:"bytes,19,opt,name=remote_advertised_fec_mode,json=remoteAdvertisedFecMode,proto3" json:"remote_advertised_fec_mode,omitempty"` - RemoteAdvertisedFecModeExtended *PortFecModeExtendedList `protobuf:"bytes,20,opt,name=remote_advertised_fec_mode_extended,json=remoteAdvertisedFecModeExtended,proto3" json:"remote_advertised_fec_mode_extended,omitempty"` - RemoteAdvertisedHalfDuplexSpeed *Uint32List `protobuf:"bytes,21,opt,name=remote_advertised_half_duplex_speed,json=remoteAdvertisedHalfDuplexSpeed,proto3" json:"remote_advertised_half_duplex_speed,omitempty"` - RemoteAdvertisedAutoNegMode bool `protobuf:"varint,22,opt,name=remote_advertised_auto_neg_mode,json=remoteAdvertisedAutoNegMode,proto3" json:"remote_advertised_auto_neg_mode,omitempty"` - RemoteAdvertisedFlowControlMode PortFlowControlMode `protobuf:"varint,23,opt,name=remote_advertised_flow_control_mode,json=remoteAdvertisedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode" json:"remote_advertised_flow_control_mode,omitempty"` - RemoteAdvertisedAsymmetricPauseMode bool `protobuf:"varint,24,opt,name=remote_advertised_asymmetric_pause_mode,json=remoteAdvertisedAsymmetricPauseMode,proto3" json:"remote_advertised_asymmetric_pause_mode,omitempty"` - RemoteAdvertisedMediaType PortMediaType `protobuf:"varint,25,opt,name=remote_advertised_media_type,json=remoteAdvertisedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType" json:"remote_advertised_media_type,omitempty"` - RemoteAdvertisedOuiCode uint32 `protobuf:"varint,26,opt,name=remote_advertised_oui_code,json=remoteAdvertisedOuiCode,proto3" json:"remote_advertised_oui_code,omitempty"` - NumberOfIngressPriorityGroups uint32 `protobuf:"varint,27,opt,name=number_of_ingress_priority_groups,json=numberOfIngressPriorityGroups,proto3" json:"number_of_ingress_priority_groups,omitempty"` - IngressPriorityGroupList *Uint64List `protobuf:"bytes,28,opt,name=ingress_priority_group_list,json=ingressPriorityGroupList,proto3" json:"ingress_priority_group_list,omitempty"` - EyeValues *PortEyeValuesList `protobuf:"bytes,29,opt,name=eye_values,json=eyeValues,proto3" json:"eye_values,omitempty"` - OperSpeed uint32 `protobuf:"varint,30,opt,name=oper_speed,json=operSpeed,proto3" json:"oper_speed,omitempty"` - HwLaneList *Uint32List `protobuf:"bytes,31,opt,name=hw_lane_list,json=hwLaneList,proto3" json:"hw_lane_list,omitempty"` - Speed uint32 `protobuf:"varint,32,opt,name=speed,proto3" json:"speed,omitempty"` - FullDuplexMode bool `protobuf:"varint,33,opt,name=full_duplex_mode,json=fullDuplexMode,proto3" json:"full_duplex_mode,omitempty"` - AutoNegMode bool `protobuf:"varint,34,opt,name=auto_neg_mode,json=autoNegMode,proto3" json:"auto_neg_mode,omitempty"` - AdminState bool `protobuf:"varint,35,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - MediaType PortMediaType `protobuf:"varint,36,opt,name=media_type,json=mediaType,proto3,enum=lemming.dataplane.sai.PortMediaType" json:"media_type,omitempty"` - AdvertisedSpeed *Uint32List `protobuf:"bytes,37,opt,name=advertised_speed,json=advertisedSpeed,proto3" json:"advertised_speed,omitempty"` - AdvertisedFecMode *PortFecModeList `protobuf:"bytes,38,opt,name=advertised_fec_mode,json=advertisedFecMode,proto3" json:"advertised_fec_mode,omitempty"` - AdvertisedFecModeExtended *PortFecModeExtendedList `protobuf:"bytes,39,opt,name=advertised_fec_mode_extended,json=advertisedFecModeExtended,proto3" json:"advertised_fec_mode_extended,omitempty"` - AdvertisedHalfDuplexSpeed *Uint32List `protobuf:"bytes,40,opt,name=advertised_half_duplex_speed,json=advertisedHalfDuplexSpeed,proto3" json:"advertised_half_duplex_speed,omitempty"` - AdvertisedAutoNegMode bool `protobuf:"varint,41,opt,name=advertised_auto_neg_mode,json=advertisedAutoNegMode,proto3" json:"advertised_auto_neg_mode,omitempty"` - AdvertisedFlowControlMode PortFlowControlMode `protobuf:"varint,42,opt,name=advertised_flow_control_mode,json=advertisedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode" json:"advertised_flow_control_mode,omitempty"` - AdvertisedAsymmetricPauseMode bool `protobuf:"varint,43,opt,name=advertised_asymmetric_pause_mode,json=advertisedAsymmetricPauseMode,proto3" json:"advertised_asymmetric_pause_mode,omitempty"` - AdvertisedMediaType PortMediaType `protobuf:"varint,44,opt,name=advertised_media_type,json=advertisedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType" json:"advertised_media_type,omitempty"` - AdvertisedOuiCode uint32 `protobuf:"varint,45,opt,name=advertised_oui_code,json=advertisedOuiCode,proto3" json:"advertised_oui_code,omitempty"` - PortVlanId uint32 `protobuf:"varint,46,opt,name=port_vlan_id,json=portVlanId,proto3" json:"port_vlan_id,omitempty"` - DefaultVlanPriority uint32 `protobuf:"varint,47,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3" json:"default_vlan_priority,omitempty"` - DropUntagged bool `protobuf:"varint,48,opt,name=drop_untagged,json=dropUntagged,proto3" json:"drop_untagged,omitempty"` - DropTagged bool `protobuf:"varint,49,opt,name=drop_tagged,json=dropTagged,proto3" json:"drop_tagged,omitempty"` - InternalLoopbackMode PortInternalLoopbackMode `protobuf:"varint,50,opt,name=internal_loopback_mode,json=internalLoopbackMode,proto3,enum=lemming.dataplane.sai.PortInternalLoopbackMode" json:"internal_loopback_mode,omitempty"` - UseExtendedFec bool `protobuf:"varint,51,opt,name=use_extended_fec,json=useExtendedFec,proto3" json:"use_extended_fec,omitempty"` - FecMode PortFecMode `protobuf:"varint,52,opt,name=fec_mode,json=fecMode,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"fec_mode,omitempty"` - FecModeExtended PortFecModeExtended `protobuf:"varint,53,opt,name=fec_mode_extended,json=fecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"fec_mode_extended,omitempty"` - UpdateDscp bool `protobuf:"varint,54,opt,name=update_dscp,json=updateDscp,proto3" json:"update_dscp,omitempty"` - Mtu uint32 `protobuf:"varint,55,opt,name=mtu,proto3" json:"mtu,omitempty"` - FloodStormControlPolicerId uint64 `protobuf:"varint,56,opt,name=flood_storm_control_policer_id,json=floodStormControlPolicerId,proto3" json:"flood_storm_control_policer_id,omitempty"` - BroadcastStormControlPolicerId uint64 `protobuf:"varint,57,opt,name=broadcast_storm_control_policer_id,json=broadcastStormControlPolicerId,proto3" json:"broadcast_storm_control_policer_id,omitempty"` - MulticastStormControlPolicerId uint64 `protobuf:"varint,58,opt,name=multicast_storm_control_policer_id,json=multicastStormControlPolicerId,proto3" json:"multicast_storm_control_policer_id,omitempty"` - GlobalFlowControlMode PortFlowControlMode `protobuf:"varint,59,opt,name=global_flow_control_mode,json=globalFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode" json:"global_flow_control_mode,omitempty"` - IngressAcl uint64 `protobuf:"varint,60,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,61,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - IngressMacsecAcl uint64 `protobuf:"varint,62,opt,name=ingress_macsec_acl,json=ingressMacsecAcl,proto3" json:"ingress_macsec_acl,omitempty"` - EgressMacsecAcl uint64 `protobuf:"varint,63,opt,name=egress_macsec_acl,json=egressMacsecAcl,proto3" json:"egress_macsec_acl,omitempty"` - MacsecPortList *Uint64List `protobuf:"bytes,64,opt,name=macsec_port_list,json=macsecPortList,proto3" json:"macsec_port_list,omitempty"` - IngressMirrorSession *Uint64List `protobuf:"bytes,65,opt,name=ingress_mirror_session,json=ingressMirrorSession,proto3" json:"ingress_mirror_session,omitempty"` - EgressMirrorSession *Uint64List `protobuf:"bytes,66,opt,name=egress_mirror_session,json=egressMirrorSession,proto3" json:"egress_mirror_session,omitempty"` - IngressSamplepacketEnable uint64 `protobuf:"varint,67,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3" json:"ingress_samplepacket_enable,omitempty"` - EgressSamplepacketEnable uint64 `protobuf:"varint,68,opt,name=egress_samplepacket_enable,json=egressSamplepacketEnable,proto3" json:"egress_samplepacket_enable,omitempty"` - IngressSampleMirrorSession *Uint64List `protobuf:"bytes,69,opt,name=ingress_sample_mirror_session,json=ingressSampleMirrorSession,proto3" json:"ingress_sample_mirror_session,omitempty"` - EgressSampleMirrorSession *Uint64List `protobuf:"bytes,70,opt,name=egress_sample_mirror_session,json=egressSampleMirrorSession,proto3" json:"egress_sample_mirror_session,omitempty"` - PolicerId uint64 `protobuf:"varint,71,opt,name=policer_id,json=policerId,proto3" json:"policer_id,omitempty"` - QosDefaultTc uint32 `protobuf:"varint,72,opt,name=qos_default_tc,json=qosDefaultTc,proto3" json:"qos_default_tc,omitempty"` - QosDot1PToTcMap uint64 `protobuf:"varint,73,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3" json:"qos_dot1p_to_tc_map,omitempty"` - QosDot1PToColorMap uint64 `protobuf:"varint,74,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3" json:"qos_dot1p_to_color_map,omitempty"` - QosDscpToTcMap uint64 `protobuf:"varint,75,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3" json:"qos_dscp_to_tc_map,omitempty"` - QosDscpToColorMap uint64 `protobuf:"varint,76,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3" json:"qos_dscp_to_color_map,omitempty"` - QosTcToQueueMap uint64 `protobuf:"varint,77,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3" json:"qos_tc_to_queue_map,omitempty"` - QosTcAndColorToDot1PMap uint64 `protobuf:"varint,78,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3" json:"qos_tc_and_color_to_dot1p_map,omitempty"` - QosTcAndColorToDscpMap uint64 `protobuf:"varint,79,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3" json:"qos_tc_and_color_to_dscp_map,omitempty"` - QosTcToPriorityGroupMap uint64 `protobuf:"varint,80,opt,name=qos_tc_to_priority_group_map,json=qosTcToPriorityGroupMap,proto3" json:"qos_tc_to_priority_group_map,omitempty"` - QosPfcPriorityToPriorityGroupMap uint64 `protobuf:"varint,81,opt,name=qos_pfc_priority_to_priority_group_map,json=qosPfcPriorityToPriorityGroupMap,proto3" json:"qos_pfc_priority_to_priority_group_map,omitempty"` - QosPfcPriorityToQueueMap uint64 `protobuf:"varint,82,opt,name=qos_pfc_priority_to_queue_map,json=qosPfcPriorityToQueueMap,proto3" json:"qos_pfc_priority_to_queue_map,omitempty"` - QosSchedulerProfileId uint64 `protobuf:"varint,83,opt,name=qos_scheduler_profile_id,json=qosSchedulerProfileId,proto3" json:"qos_scheduler_profile_id,omitempty"` - QosIngressBufferProfileList *Uint64List `protobuf:"bytes,84,opt,name=qos_ingress_buffer_profile_list,json=qosIngressBufferProfileList,proto3" json:"qos_ingress_buffer_profile_list,omitempty"` - QosEgressBufferProfileList *Uint64List `protobuf:"bytes,85,opt,name=qos_egress_buffer_profile_list,json=qosEgressBufferProfileList,proto3" json:"qos_egress_buffer_profile_list,omitempty"` - PriorityFlowControlMode PortPriorityFlowControlMode `protobuf:"varint,86,opt,name=priority_flow_control_mode,json=priorityFlowControlMode,proto3,enum=lemming.dataplane.sai.PortPriorityFlowControlMode" json:"priority_flow_control_mode,omitempty"` - PriorityFlowControl uint32 `protobuf:"varint,87,opt,name=priority_flow_control,json=priorityFlowControl,proto3" json:"priority_flow_control,omitempty"` - PriorityFlowControlRx uint32 `protobuf:"varint,88,opt,name=priority_flow_control_rx,json=priorityFlowControlRx,proto3" json:"priority_flow_control_rx,omitempty"` - PriorityFlowControlTx uint32 `protobuf:"varint,89,opt,name=priority_flow_control_tx,json=priorityFlowControlTx,proto3" json:"priority_flow_control_tx,omitempty"` - MetaData uint32 `protobuf:"varint,90,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - EgressBlockPortList *Uint64List `protobuf:"bytes,91,opt,name=egress_block_port_list,json=egressBlockPortList,proto3" json:"egress_block_port_list,omitempty"` - HwProfileId uint64 `protobuf:"varint,92,opt,name=hw_profile_id,json=hwProfileId,proto3" json:"hw_profile_id,omitempty"` - EeeEnable bool `protobuf:"varint,93,opt,name=eee_enable,json=eeeEnable,proto3" json:"eee_enable,omitempty"` - EeeIdleTime uint32 `protobuf:"varint,94,opt,name=eee_idle_time,json=eeeIdleTime,proto3" json:"eee_idle_time,omitempty"` - EeeWakeTime uint32 `protobuf:"varint,95,opt,name=eee_wake_time,json=eeeWakeTime,proto3" json:"eee_wake_time,omitempty"` - PortPoolList *Uint64List `protobuf:"bytes,96,opt,name=port_pool_list,json=portPoolList,proto3" json:"port_pool_list,omitempty"` - IsolationGroup uint64 `protobuf:"varint,97,opt,name=isolation_group,json=isolationGroup,proto3" json:"isolation_group,omitempty"` - PktTxEnable bool `protobuf:"varint,98,opt,name=pkt_tx_enable,json=pktTxEnable,proto3" json:"pkt_tx_enable,omitempty"` - TamObject *Uint64List `protobuf:"bytes,99,opt,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` - SerdesPreemphasis *Uint32List `protobuf:"bytes,100,opt,name=serdes_preemphasis,json=serdesPreemphasis,proto3" json:"serdes_preemphasis,omitempty"` - SerdesIdriver *Uint32List `protobuf:"bytes,101,opt,name=serdes_idriver,json=serdesIdriver,proto3" json:"serdes_idriver,omitempty"` - SerdesIpredriver *Uint32List `protobuf:"bytes,102,opt,name=serdes_ipredriver,json=serdesIpredriver,proto3" json:"serdes_ipredriver,omitempty"` - LinkTrainingEnable bool `protobuf:"varint,103,opt,name=link_training_enable,json=linkTrainingEnable,proto3" json:"link_training_enable,omitempty"` - PtpMode PortPtpMode `protobuf:"varint,104,opt,name=ptp_mode,json=ptpMode,proto3,enum=lemming.dataplane.sai.PortPtpMode" json:"ptp_mode,omitempty"` - InterfaceType PortInterfaceType `protobuf:"varint,105,opt,name=interface_type,json=interfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType" json:"interface_type,omitempty"` - AdvertisedInterfaceType *PortInterfaceTypeList `protobuf:"bytes,106,opt,name=advertised_interface_type,json=advertisedInterfaceType,proto3" json:"advertised_interface_type,omitempty"` - ReferenceClock uint64 `protobuf:"varint,107,opt,name=reference_clock,json=referenceClock,proto3" json:"reference_clock,omitempty"` - PrbsPolynomial uint32 `protobuf:"varint,108,opt,name=prbs_polynomial,json=prbsPolynomial,proto3" json:"prbs_polynomial,omitempty"` - PortSerdesId uint64 `protobuf:"varint,109,opt,name=port_serdes_id,json=portSerdesId,proto3" json:"port_serdes_id,omitempty"` - LinkTrainingFailureStatus PortLinkTrainingFailureStatus `protobuf:"varint,110,opt,name=link_training_failure_status,json=linkTrainingFailureStatus,proto3,enum=lemming.dataplane.sai.PortLinkTrainingFailureStatus" json:"link_training_failure_status,omitempty"` - LinkTrainingRxStatus PortLinkTrainingRxStatus `protobuf:"varint,111,opt,name=link_training_rx_status,json=linkTrainingRxStatus,proto3,enum=lemming.dataplane.sai.PortLinkTrainingRxStatus" json:"link_training_rx_status,omitempty"` - PrbsConfig PortPrbsConfig `protobuf:"varint,112,opt,name=prbs_config,json=prbsConfig,proto3,enum=lemming.dataplane.sai.PortPrbsConfig" json:"prbs_config,omitempty"` - PrbsLockStatus bool `protobuf:"varint,113,opt,name=prbs_lock_status,json=prbsLockStatus,proto3" json:"prbs_lock_status,omitempty"` - PrbsLockLossStatus bool `protobuf:"varint,114,opt,name=prbs_lock_loss_status,json=prbsLockLossStatus,proto3" json:"prbs_lock_loss_status,omitempty"` - PrbsRxStatus PortPrbsRxStatus `protobuf:"varint,115,opt,name=prbs_rx_status,json=prbsRxStatus,proto3,enum=lemming.dataplane.sai.PortPrbsRxStatus" json:"prbs_rx_status,omitempty"` - PrbsRxState *PRBS_RXState `protobuf:"bytes,116,opt,name=prbs_rx_state,json=prbsRxState,proto3" json:"prbs_rx_state,omitempty"` - AutoNegStatus bool `protobuf:"varint,117,opt,name=auto_neg_status,json=autoNegStatus,proto3" json:"auto_neg_status,omitempty"` - DisableDecrementTtl bool `protobuf:"varint,118,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3" json:"disable_decrement_ttl,omitempty"` - QosMplsExpToTcMap uint64 `protobuf:"varint,119,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3" json:"qos_mpls_exp_to_tc_map,omitempty"` - QosMplsExpToColorMap uint64 `protobuf:"varint,120,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3" json:"qos_mpls_exp_to_color_map,omitempty"` - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,121,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` - Tpid uint32 `protobuf:"varint,122,opt,name=tpid,proto3" json:"tpid,omitempty"` - ErrStatusList *PortErrStatusList `protobuf:"bytes,123,opt,name=err_status_list,json=errStatusList,proto3" json:"err_status_list,omitempty"` - FabricAttached bool `protobuf:"varint,124,opt,name=fabric_attached,json=fabricAttached,proto3" json:"fabric_attached,omitempty"` - FabricAttachedSwitchType SwitchType `protobuf:"varint,125,opt,name=fabric_attached_switch_type,json=fabricAttachedSwitchType,proto3,enum=lemming.dataplane.sai.SwitchType" json:"fabric_attached_switch_type,omitempty"` - FabricAttachedSwitchId uint32 `protobuf:"varint,126,opt,name=fabric_attached_switch_id,json=fabricAttachedSwitchId,proto3" json:"fabric_attached_switch_id,omitempty"` - FabricAttachedPortIndex uint32 `protobuf:"varint,127,opt,name=fabric_attached_port_index,json=fabricAttachedPortIndex,proto3" json:"fabric_attached_port_index,omitempty"` - FabricReachability *FabricPortReachability `protobuf:"bytes,128,opt,name=fabric_reachability,json=fabricReachability,proto3" json:"fabric_reachability,omitempty"` - SystemPort uint64 `protobuf:"varint,129,opt,name=system_port,json=systemPort,proto3" json:"system_port,omitempty"` - AutoNegFecModeOverride bool `protobuf:"varint,130,opt,name=auto_neg_fec_mode_override,json=autoNegFecModeOverride,proto3" json:"auto_neg_fec_mode_override,omitempty"` - LoopbackMode PortLoopbackMode `protobuf:"varint,131,opt,name=loopback_mode,json=loopbackMode,proto3,enum=lemming.dataplane.sai.PortLoopbackMode" json:"loopback_mode,omitempty"` - MdixModeStatus PortMdixModeStatus `protobuf:"varint,132,opt,name=mdix_mode_status,json=mdixModeStatus,proto3,enum=lemming.dataplane.sai.PortMdixModeStatus" json:"mdix_mode_status,omitempty"` - MdixModeConfig PortMdixModeConfig `protobuf:"varint,133,opt,name=mdix_mode_config,json=mdixModeConfig,proto3,enum=lemming.dataplane.sai.PortMdixModeConfig" json:"mdix_mode_config,omitempty"` - AutoNegConfigMode PortAutoNegConfigMode `protobuf:"varint,134,opt,name=auto_neg_config_mode,json=autoNegConfigMode,proto3,enum=lemming.dataplane.sai.PortAutoNegConfigMode" json:"auto_neg_config_mode,omitempty"` - X1000XSgmiiSlaveAutodetect bool `protobuf:"varint,135,opt,name=_1000x_sgmii_slave_autodetect,json=1000xSgmiiSlaveAutodetect,proto3" json:"_1000x_sgmii_slave_autodetect,omitempty"` - ModuleType PortModuleType `protobuf:"varint,136,opt,name=module_type,json=moduleType,proto3,enum=lemming.dataplane.sai.PortModuleType" json:"module_type,omitempty"` - DualMedia PortDualMedia `protobuf:"varint,137,opt,name=dual_media,json=dualMedia,proto3,enum=lemming.dataplane.sai.PortDualMedia" json:"dual_media,omitempty"` - AutoNegFecModeExtended PortFecModeExtended `protobuf:"varint,138,opt,name=auto_neg_fec_mode_extended,json=autoNegFecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"auto_neg_fec_mode_extended,omitempty"` - Ipg uint32 `protobuf:"varint,139,opt,name=ipg,proto3" json:"ipg,omitempty"` - GlobalFlowControlForward bool `protobuf:"varint,140,opt,name=global_flow_control_forward,json=globalFlowControlForward,proto3" json:"global_flow_control_forward,omitempty"` - PriorityFlowControlForward bool `protobuf:"varint,141,opt,name=priority_flow_control_forward,json=priorityFlowControlForward,proto3" json:"priority_flow_control_forward,omitempty"` - QosDscpToForwardingClassMap uint64 `protobuf:"varint,142,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3" json:"qos_dscp_to_forwarding_class_map,omitempty"` - QosMplsExpToForwardingClassMap uint64 `protobuf:"varint,143,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` - IpsecPort uint64 `protobuf:"varint,144,opt,name=ipsec_port,json=ipsecPort,proto3" json:"ipsec_port,omitempty"` -} - -func (x *PortAttribute) Reset() { - *x = PortAttribute{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[109] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortAttribute) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortAttribute) ProtoMessage() {} - -func (x *PortAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[109] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PortAttribute.ProtoReflect.Descriptor instead. -func (*PortAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{109} -} - -func (x *PortAttribute) GetType() PortType { - if x != nil { - return x.Type - } - return PortType_PORT_TYPE_UNSPECIFIED -} - -func (x *PortAttribute) GetOperStatus() PortOperStatus { - if x != nil { - return x.OperStatus - } - return PortOperStatus_PORT_OPER_STATUS_UNSPECIFIED -} - -func (x *PortAttribute) GetSupportedBreakoutModeType() *PortBreakoutModeTypeList { - if x != nil { - return x.SupportedBreakoutModeType - } - return nil -} - -func (x *PortAttribute) GetCurrentBreakoutModeType() PortBreakoutModeType { - if x != nil { - return x.CurrentBreakoutModeType - } - return PortBreakoutModeType_PORT_BREAKOUT_MODE_TYPE_UNSPECIFIED -} - -func (x *PortAttribute) GetQosNumberOfQueues() uint32 { - if x != nil { - return x.QosNumberOfQueues - } - return 0 -} - -func (x *PortAttribute) GetQosQueueList() *Uint64List { - if x != nil { - return x.QosQueueList - } - return nil -} - -func (x *PortAttribute) GetQosNumberOfSchedulerGroups() uint32 { - if x != nil { - return x.QosNumberOfSchedulerGroups - } - return 0 -} - -func (x *PortAttribute) GetQosSchedulerGroupList() *Uint64List { - if x != nil { - return x.QosSchedulerGroupList - } - return nil -} - -func (x *PortAttribute) GetQosMaximumHeadroomSize() uint32 { - if x != nil { - return x.QosMaximumHeadroomSize - } - return 0 -} - -func (x *PortAttribute) GetSupportedSpeed() *Uint32List { - if x != nil { - return x.SupportedSpeed - } - return nil -} - -func (x *PortAttribute) GetSupportedFecMode() *PortFecModeList { - if x != nil { - return x.SupportedFecMode - } - return nil -} - -func (x *PortAttribute) GetSupportedFecModeExtended() *PortFecModeExtendedList { - if x != nil { - return x.SupportedFecModeExtended - } - return nil -} - -func (x *PortAttribute) GetSupportedHalfDuplexSpeed() *Uint32List { +func (x *PortAttribute) GetSupportedHalfDuplexSpeed() []uint32 { if x != nil { return x.SupportedHalfDuplexSpeed } @@ -22775,55 +21930,55 @@ func (x *PortAttribute) GetSupportedHalfDuplexSpeed() *Uint32List { } func (x *PortAttribute) GetSupportedAutoNegMode() bool { - if x != nil { - return x.SupportedAutoNegMode + if x != nil && x.SupportedAutoNegMode != nil { + return *x.SupportedAutoNegMode } return false } func (x *PortAttribute) GetSupportedFlowControlMode() PortFlowControlMode { - if x != nil { - return x.SupportedFlowControlMode + if x != nil && x.SupportedFlowControlMode != nil { + return *x.SupportedFlowControlMode } return PortFlowControlMode_PORT_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *PortAttribute) GetSupportedAsymmetricPauseMode() bool { - if x != nil { - return x.SupportedAsymmetricPauseMode + if x != nil && x.SupportedAsymmetricPauseMode != nil { + return *x.SupportedAsymmetricPauseMode } return false } func (x *PortAttribute) GetSupportedMediaType() PortMediaType { - if x != nil { - return x.SupportedMediaType + if x != nil && x.SupportedMediaType != nil { + return *x.SupportedMediaType } return PortMediaType_PORT_MEDIA_TYPE_UNSPECIFIED } -func (x *PortAttribute) GetRemoteAdvertisedSpeed() *Uint32List { +func (x *PortAttribute) GetRemoteAdvertisedSpeed() []uint32 { if x != nil { return x.RemoteAdvertisedSpeed } return nil } -func (x *PortAttribute) GetRemoteAdvertisedFecMode() *PortFecModeList { +func (x *PortAttribute) GetRemoteAdvertisedFecMode() []PortFecMode { if x != nil { return x.RemoteAdvertisedFecMode } return nil } -func (x *PortAttribute) GetRemoteAdvertisedFecModeExtended() *PortFecModeExtendedList { +func (x *PortAttribute) GetRemoteAdvertisedFecModeExtended() []PortFecModeExtended { if x != nil { return x.RemoteAdvertisedFecModeExtended } return nil } -func (x *PortAttribute) GetRemoteAdvertisedHalfDuplexSpeed() *Uint32List { +func (x *PortAttribute) GetRemoteAdvertisedHalfDuplexSpeed() []uint32 { if x != nil { return x.RemoteAdvertisedHalfDuplexSpeed } @@ -22831,55 +21986,55 @@ func (x *PortAttribute) GetRemoteAdvertisedHalfDuplexSpeed() *Uint32List { } func (x *PortAttribute) GetRemoteAdvertisedAutoNegMode() bool { - if x != nil { - return x.RemoteAdvertisedAutoNegMode + if x != nil && x.RemoteAdvertisedAutoNegMode != nil { + return *x.RemoteAdvertisedAutoNegMode } return false } func (x *PortAttribute) GetRemoteAdvertisedFlowControlMode() PortFlowControlMode { - if x != nil { - return x.RemoteAdvertisedFlowControlMode + if x != nil && x.RemoteAdvertisedFlowControlMode != nil { + return *x.RemoteAdvertisedFlowControlMode } return PortFlowControlMode_PORT_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *PortAttribute) GetRemoteAdvertisedAsymmetricPauseMode() bool { - if x != nil { - return x.RemoteAdvertisedAsymmetricPauseMode + if x != nil && x.RemoteAdvertisedAsymmetricPauseMode != nil { + return *x.RemoteAdvertisedAsymmetricPauseMode } return false } func (x *PortAttribute) GetRemoteAdvertisedMediaType() PortMediaType { - if x != nil { - return x.RemoteAdvertisedMediaType + if x != nil && x.RemoteAdvertisedMediaType != nil { + return *x.RemoteAdvertisedMediaType } return PortMediaType_PORT_MEDIA_TYPE_UNSPECIFIED } func (x *PortAttribute) GetRemoteAdvertisedOuiCode() uint32 { - if x != nil { - return x.RemoteAdvertisedOuiCode + if x != nil && x.RemoteAdvertisedOuiCode != nil { + return *x.RemoteAdvertisedOuiCode } return 0 } func (x *PortAttribute) GetNumberOfIngressPriorityGroups() uint32 { - if x != nil { - return x.NumberOfIngressPriorityGroups + if x != nil && x.NumberOfIngressPriorityGroups != nil { + return *x.NumberOfIngressPriorityGroups } return 0 } -func (x *PortAttribute) GetIngressPriorityGroupList() *Uint64List { +func (x *PortAttribute) GetIngressPriorityGroupList() []uint64 { if x != nil { return x.IngressPriorityGroupList } return nil } -func (x *PortAttribute) GetEyeValues() *PortEyeValuesList { +func (x *PortAttribute) GetEyeValues() []*PortEyeValues { if x != nil { return x.EyeValues } @@ -22887,13 +22042,13 @@ func (x *PortAttribute) GetEyeValues() *PortEyeValuesList { } func (x *PortAttribute) GetOperSpeed() uint32 { - if x != nil { - return x.OperSpeed + if x != nil && x.OperSpeed != nil { + return *x.OperSpeed } return 0 } -func (x *PortAttribute) GetHwLaneList() *Uint32List { +func (x *PortAttribute) GetHwLaneList() []uint32 { if x != nil { return x.HwLaneList } @@ -22901,62 +22056,62 @@ func (x *PortAttribute) GetHwLaneList() *Uint32List { } func (x *PortAttribute) GetSpeed() uint32 { - if x != nil { - return x.Speed + if x != nil && x.Speed != nil { + return *x.Speed } return 0 } func (x *PortAttribute) GetFullDuplexMode() bool { - if x != nil { - return x.FullDuplexMode + if x != nil && x.FullDuplexMode != nil { + return *x.FullDuplexMode } return false } func (x *PortAttribute) GetAutoNegMode() bool { - if x != nil { - return x.AutoNegMode + if x != nil && x.AutoNegMode != nil { + return *x.AutoNegMode } return false } func (x *PortAttribute) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *PortAttribute) GetMediaType() PortMediaType { - if x != nil { - return x.MediaType + if x != nil && x.MediaType != nil { + return *x.MediaType } return PortMediaType_PORT_MEDIA_TYPE_UNSPECIFIED } -func (x *PortAttribute) GetAdvertisedSpeed() *Uint32List { +func (x *PortAttribute) GetAdvertisedSpeed() []uint32 { if x != nil { return x.AdvertisedSpeed } return nil } -func (x *PortAttribute) GetAdvertisedFecMode() *PortFecModeList { +func (x *PortAttribute) GetAdvertisedFecMode() []PortFecMode { if x != nil { return x.AdvertisedFecMode } return nil } -func (x *PortAttribute) GetAdvertisedFecModeExtended() *PortFecModeExtendedList { +func (x *PortAttribute) GetAdvertisedFecModeExtended() []PortFecModeExtended { if x != nil { return x.AdvertisedFecModeExtended } return nil } -func (x *PortAttribute) GetAdvertisedHalfDuplexSpeed() *Uint32List { +func (x *PortAttribute) GetAdvertisedHalfDuplexSpeed() []uint32 { if x != nil { return x.AdvertisedHalfDuplexSpeed } @@ -22964,181 +22119,181 @@ func (x *PortAttribute) GetAdvertisedHalfDuplexSpeed() *Uint32List { } func (x *PortAttribute) GetAdvertisedAutoNegMode() bool { - if x != nil { - return x.AdvertisedAutoNegMode + if x != nil && x.AdvertisedAutoNegMode != nil { + return *x.AdvertisedAutoNegMode } return false } func (x *PortAttribute) GetAdvertisedFlowControlMode() PortFlowControlMode { - if x != nil { - return x.AdvertisedFlowControlMode + if x != nil && x.AdvertisedFlowControlMode != nil { + return *x.AdvertisedFlowControlMode } return PortFlowControlMode_PORT_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *PortAttribute) GetAdvertisedAsymmetricPauseMode() bool { - if x != nil { - return x.AdvertisedAsymmetricPauseMode + if x != nil && x.AdvertisedAsymmetricPauseMode != nil { + return *x.AdvertisedAsymmetricPauseMode } return false } func (x *PortAttribute) GetAdvertisedMediaType() PortMediaType { - if x != nil { - return x.AdvertisedMediaType + if x != nil && x.AdvertisedMediaType != nil { + return *x.AdvertisedMediaType } return PortMediaType_PORT_MEDIA_TYPE_UNSPECIFIED } func (x *PortAttribute) GetAdvertisedOuiCode() uint32 { - if x != nil { - return x.AdvertisedOuiCode + if x != nil && x.AdvertisedOuiCode != nil { + return *x.AdvertisedOuiCode } return 0 } func (x *PortAttribute) GetPortVlanId() uint32 { - if x != nil { - return x.PortVlanId + if x != nil && x.PortVlanId != nil { + return *x.PortVlanId } return 0 } func (x *PortAttribute) GetDefaultVlanPriority() uint32 { - if x != nil { - return x.DefaultVlanPriority + if x != nil && x.DefaultVlanPriority != nil { + return *x.DefaultVlanPriority } return 0 } func (x *PortAttribute) GetDropUntagged() bool { - if x != nil { - return x.DropUntagged + if x != nil && x.DropUntagged != nil { + return *x.DropUntagged } return false } func (x *PortAttribute) GetDropTagged() bool { - if x != nil { - return x.DropTagged + if x != nil && x.DropTagged != nil { + return *x.DropTagged } return false } func (x *PortAttribute) GetInternalLoopbackMode() PortInternalLoopbackMode { - if x != nil { - return x.InternalLoopbackMode + if x != nil && x.InternalLoopbackMode != nil { + return *x.InternalLoopbackMode } return PortInternalLoopbackMode_PORT_INTERNAL_LOOPBACK_MODE_UNSPECIFIED } func (x *PortAttribute) GetUseExtendedFec() bool { - if x != nil { - return x.UseExtendedFec + if x != nil && x.UseExtendedFec != nil { + return *x.UseExtendedFec } return false } func (x *PortAttribute) GetFecMode() PortFecMode { - if x != nil { - return x.FecMode + if x != nil && x.FecMode != nil { + return *x.FecMode } return PortFecMode_PORT_FEC_MODE_UNSPECIFIED } func (x *PortAttribute) GetFecModeExtended() PortFecModeExtended { - if x != nil { - return x.FecModeExtended + if x != nil && x.FecModeExtended != nil { + return *x.FecModeExtended } return PortFecModeExtended_PORT_FEC_MODE_EXTENDED_UNSPECIFIED } func (x *PortAttribute) GetUpdateDscp() bool { - if x != nil { - return x.UpdateDscp + if x != nil && x.UpdateDscp != nil { + return *x.UpdateDscp } return false } func (x *PortAttribute) GetMtu() uint32 { - if x != nil { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } func (x *PortAttribute) GetFloodStormControlPolicerId() uint64 { - if x != nil { - return x.FloodStormControlPolicerId + if x != nil && x.FloodStormControlPolicerId != nil { + return *x.FloodStormControlPolicerId } return 0 } func (x *PortAttribute) GetBroadcastStormControlPolicerId() uint64 { - if x != nil { - return x.BroadcastStormControlPolicerId + if x != nil && x.BroadcastStormControlPolicerId != nil { + return *x.BroadcastStormControlPolicerId } return 0 } func (x *PortAttribute) GetMulticastStormControlPolicerId() uint64 { - if x != nil { - return x.MulticastStormControlPolicerId + if x != nil && x.MulticastStormControlPolicerId != nil { + return *x.MulticastStormControlPolicerId } return 0 } func (x *PortAttribute) GetGlobalFlowControlMode() PortFlowControlMode { - if x != nil { - return x.GlobalFlowControlMode + if x != nil && x.GlobalFlowControlMode != nil { + return *x.GlobalFlowControlMode } return PortFlowControlMode_PORT_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *PortAttribute) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *PortAttribute) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *PortAttribute) GetIngressMacsecAcl() uint64 { - if x != nil { - return x.IngressMacsecAcl + if x != nil && x.IngressMacsecAcl != nil { + return *x.IngressMacsecAcl } return 0 } func (x *PortAttribute) GetEgressMacsecAcl() uint64 { - if x != nil { - return x.EgressMacsecAcl + if x != nil && x.EgressMacsecAcl != nil { + return *x.EgressMacsecAcl } return 0 } -func (x *PortAttribute) GetMacsecPortList() *Uint64List { +func (x *PortAttribute) GetMacsecPortList() []uint64 { if x != nil { return x.MacsecPortList } return nil } -func (x *PortAttribute) GetIngressMirrorSession() *Uint64List { +func (x *PortAttribute) GetIngressMirrorSession() []uint64 { if x != nil { return x.IngressMirrorSession } return nil } -func (x *PortAttribute) GetEgressMirrorSession() *Uint64List { +func (x *PortAttribute) GetEgressMirrorSession() []uint64 { if x != nil { return x.EgressMirrorSession } @@ -23146,27 +22301,27 @@ func (x *PortAttribute) GetEgressMirrorSession() *Uint64List { } func (x *PortAttribute) GetIngressSamplepacketEnable() uint64 { - if x != nil { - return x.IngressSamplepacketEnable + if x != nil && x.IngressSamplepacketEnable != nil { + return *x.IngressSamplepacketEnable } return 0 } func (x *PortAttribute) GetEgressSamplepacketEnable() uint64 { - if x != nil { - return x.EgressSamplepacketEnable + if x != nil && x.EgressSamplepacketEnable != nil { + return *x.EgressSamplepacketEnable } return 0 } -func (x *PortAttribute) GetIngressSampleMirrorSession() *Uint64List { +func (x *PortAttribute) GetIngressSampleMirrorSession() []uint64 { if x != nil { return x.IngressSampleMirrorSession } return nil } -func (x *PortAttribute) GetEgressSampleMirrorSession() *Uint64List { +func (x *PortAttribute) GetEgressSampleMirrorSession() []uint64 { if x != nil { return x.EgressSampleMirrorSession } @@ -23174,104 +22329,104 @@ func (x *PortAttribute) GetEgressSampleMirrorSession() *Uint64List { } func (x *PortAttribute) GetPolicerId() uint64 { - if x != nil { - return x.PolicerId + if x != nil && x.PolicerId != nil { + return *x.PolicerId } return 0 } func (x *PortAttribute) GetQosDefaultTc() uint32 { - if x != nil { - return x.QosDefaultTc + if x != nil && x.QosDefaultTc != nil { + return *x.QosDefaultTc } return 0 } func (x *PortAttribute) GetQosDot1PToTcMap() uint64 { - if x != nil { - return x.QosDot1PToTcMap + if x != nil && x.QosDot1PToTcMap != nil { + return *x.QosDot1PToTcMap } return 0 } func (x *PortAttribute) GetQosDot1PToColorMap() uint64 { - if x != nil { - return x.QosDot1PToColorMap + if x != nil && x.QosDot1PToColorMap != nil { + return *x.QosDot1PToColorMap } return 0 } func (x *PortAttribute) GetQosDscpToTcMap() uint64 { - if x != nil { - return x.QosDscpToTcMap + if x != nil && x.QosDscpToTcMap != nil { + return *x.QosDscpToTcMap } return 0 } func (x *PortAttribute) GetQosDscpToColorMap() uint64 { - if x != nil { - return x.QosDscpToColorMap + if x != nil && x.QosDscpToColorMap != nil { + return *x.QosDscpToColorMap } return 0 } func (x *PortAttribute) GetQosTcToQueueMap() uint64 { - if x != nil { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } func (x *PortAttribute) GetQosTcAndColorToDot1PMap() uint64 { - if x != nil { - return x.QosTcAndColorToDot1PMap + if x != nil && x.QosTcAndColorToDot1PMap != nil { + return *x.QosTcAndColorToDot1PMap } return 0 } func (x *PortAttribute) GetQosTcAndColorToDscpMap() uint64 { - if x != nil { - return x.QosTcAndColorToDscpMap + if x != nil && x.QosTcAndColorToDscpMap != nil { + return *x.QosTcAndColorToDscpMap } return 0 } func (x *PortAttribute) GetQosTcToPriorityGroupMap() uint64 { - if x != nil { - return x.QosTcToPriorityGroupMap + if x != nil && x.QosTcToPriorityGroupMap != nil { + return *x.QosTcToPriorityGroupMap } return 0 } func (x *PortAttribute) GetQosPfcPriorityToPriorityGroupMap() uint64 { - if x != nil { - return x.QosPfcPriorityToPriorityGroupMap + if x != nil && x.QosPfcPriorityToPriorityGroupMap != nil { + return *x.QosPfcPriorityToPriorityGroupMap } return 0 } func (x *PortAttribute) GetQosPfcPriorityToQueueMap() uint64 { - if x != nil { - return x.QosPfcPriorityToQueueMap + if x != nil && x.QosPfcPriorityToQueueMap != nil { + return *x.QosPfcPriorityToQueueMap } return 0 } func (x *PortAttribute) GetQosSchedulerProfileId() uint64 { - if x != nil { - return x.QosSchedulerProfileId + if x != nil && x.QosSchedulerProfileId != nil { + return *x.QosSchedulerProfileId } return 0 } -func (x *PortAttribute) GetQosIngressBufferProfileList() *Uint64List { +func (x *PortAttribute) GetQosIngressBufferProfileList() []uint64 { if x != nil { return x.QosIngressBufferProfileList } return nil } -func (x *PortAttribute) GetQosEgressBufferProfileList() *Uint64List { +func (x *PortAttribute) GetQosEgressBufferProfileList() []uint64 { if x != nil { return x.QosEgressBufferProfileList } @@ -23279,41 +22434,41 @@ func (x *PortAttribute) GetQosEgressBufferProfileList() *Uint64List { } func (x *PortAttribute) GetPriorityFlowControlMode() PortPriorityFlowControlMode { - if x != nil { - return x.PriorityFlowControlMode + if x != nil && x.PriorityFlowControlMode != nil { + return *x.PriorityFlowControlMode } return PortPriorityFlowControlMode_PORT_PRIORITY_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *PortAttribute) GetPriorityFlowControl() uint32 { - if x != nil { - return x.PriorityFlowControl + if x != nil && x.PriorityFlowControl != nil { + return *x.PriorityFlowControl } return 0 } func (x *PortAttribute) GetPriorityFlowControlRx() uint32 { - if x != nil { - return x.PriorityFlowControlRx + if x != nil && x.PriorityFlowControlRx != nil { + return *x.PriorityFlowControlRx } return 0 } func (x *PortAttribute) GetPriorityFlowControlTx() uint32 { - if x != nil { - return x.PriorityFlowControlTx + if x != nil && x.PriorityFlowControlTx != nil { + return *x.PriorityFlowControlTx } return 0 } func (x *PortAttribute) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } -func (x *PortAttribute) GetEgressBlockPortList() *Uint64List { +func (x *PortAttribute) GetEgressBlockPortList() []uint64 { if x != nil { return x.EgressBlockPortList } @@ -23321,34 +22476,34 @@ func (x *PortAttribute) GetEgressBlockPortList() *Uint64List { } func (x *PortAttribute) GetHwProfileId() uint64 { - if x != nil { - return x.HwProfileId + if x != nil && x.HwProfileId != nil { + return *x.HwProfileId } return 0 } func (x *PortAttribute) GetEeeEnable() bool { - if x != nil { - return x.EeeEnable + if x != nil && x.EeeEnable != nil { + return *x.EeeEnable } return false } func (x *PortAttribute) GetEeeIdleTime() uint32 { - if x != nil { - return x.EeeIdleTime + if x != nil && x.EeeIdleTime != nil { + return *x.EeeIdleTime } return 0 } func (x *PortAttribute) GetEeeWakeTime() uint32 { - if x != nil { - return x.EeeWakeTime + if x != nil && x.EeeWakeTime != nil { + return *x.EeeWakeTime } return 0 } -func (x *PortAttribute) GetPortPoolList() *Uint64List { +func (x *PortAttribute) GetPortPoolList() []uint64 { if x != nil { return x.PortPoolList } @@ -23356,41 +22511,41 @@ func (x *PortAttribute) GetPortPoolList() *Uint64List { } func (x *PortAttribute) GetIsolationGroup() uint64 { - if x != nil { - return x.IsolationGroup + if x != nil && x.IsolationGroup != nil { + return *x.IsolationGroup } return 0 } func (x *PortAttribute) GetPktTxEnable() bool { - if x != nil { - return x.PktTxEnable + if x != nil && x.PktTxEnable != nil { + return *x.PktTxEnable } return false } -func (x *PortAttribute) GetTamObject() *Uint64List { +func (x *PortAttribute) GetTamObject() []uint64 { if x != nil { return x.TamObject } return nil } -func (x *PortAttribute) GetSerdesPreemphasis() *Uint32List { +func (x *PortAttribute) GetSerdesPreemphasis() []uint32 { if x != nil { return x.SerdesPreemphasis } return nil } -func (x *PortAttribute) GetSerdesIdriver() *Uint32List { +func (x *PortAttribute) GetSerdesIdriver() []uint32 { if x != nil { return x.SerdesIdriver } return nil } -func (x *PortAttribute) GetSerdesIpredriver() *Uint32List { +func (x *PortAttribute) GetSerdesIpredriver() []uint32 { if x != nil { return x.SerdesIpredriver } @@ -23398,27 +22553,27 @@ func (x *PortAttribute) GetSerdesIpredriver() *Uint32List { } func (x *PortAttribute) GetLinkTrainingEnable() bool { - if x != nil { - return x.LinkTrainingEnable + if x != nil && x.LinkTrainingEnable != nil { + return *x.LinkTrainingEnable } return false } func (x *PortAttribute) GetPtpMode() PortPtpMode { - if x != nil { - return x.PtpMode + if x != nil && x.PtpMode != nil { + return *x.PtpMode } return PortPtpMode_PORT_PTP_MODE_UNSPECIFIED } func (x *PortAttribute) GetInterfaceType() PortInterfaceType { - if x != nil { - return x.InterfaceType + if x != nil && x.InterfaceType != nil { + return *x.InterfaceType } return PortInterfaceType_PORT_INTERFACE_TYPE_UNSPECIFIED } -func (x *PortAttribute) GetAdvertisedInterfaceType() *PortInterfaceTypeList { +func (x *PortAttribute) GetAdvertisedInterfaceType() []PortInterfaceType { if x != nil { return x.AdvertisedInterfaceType } @@ -23426,64 +22581,64 @@ func (x *PortAttribute) GetAdvertisedInterfaceType() *PortInterfaceTypeList { } func (x *PortAttribute) GetReferenceClock() uint64 { - if x != nil { - return x.ReferenceClock + if x != nil && x.ReferenceClock != nil { + return *x.ReferenceClock } return 0 } func (x *PortAttribute) GetPrbsPolynomial() uint32 { - if x != nil { - return x.PrbsPolynomial + if x != nil && x.PrbsPolynomial != nil { + return *x.PrbsPolynomial } return 0 } func (x *PortAttribute) GetPortSerdesId() uint64 { - if x != nil { - return x.PortSerdesId + if x != nil && x.PortSerdesId != nil { + return *x.PortSerdesId } return 0 } func (x *PortAttribute) GetLinkTrainingFailureStatus() PortLinkTrainingFailureStatus { - if x != nil { - return x.LinkTrainingFailureStatus + if x != nil && x.LinkTrainingFailureStatus != nil { + return *x.LinkTrainingFailureStatus } return PortLinkTrainingFailureStatus_PORT_LINK_TRAINING_FAILURE_STATUS_UNSPECIFIED } func (x *PortAttribute) GetLinkTrainingRxStatus() PortLinkTrainingRxStatus { - if x != nil { - return x.LinkTrainingRxStatus + if x != nil && x.LinkTrainingRxStatus != nil { + return *x.LinkTrainingRxStatus } return PortLinkTrainingRxStatus_PORT_LINK_TRAINING_RX_STATUS_UNSPECIFIED } func (x *PortAttribute) GetPrbsConfig() PortPrbsConfig { - if x != nil { - return x.PrbsConfig + if x != nil && x.PrbsConfig != nil { + return *x.PrbsConfig } return PortPrbsConfig_PORT_PRBS_CONFIG_UNSPECIFIED } func (x *PortAttribute) GetPrbsLockStatus() bool { - if x != nil { - return x.PrbsLockStatus + if x != nil && x.PrbsLockStatus != nil { + return *x.PrbsLockStatus } return false } func (x *PortAttribute) GetPrbsLockLossStatus() bool { - if x != nil { - return x.PrbsLockLossStatus + if x != nil && x.PrbsLockLossStatus != nil { + return *x.PrbsLockLossStatus } return false } func (x *PortAttribute) GetPrbsRxStatus() PortPrbsRxStatus { - if x != nil { - return x.PrbsRxStatus + if x != nil && x.PrbsRxStatus != nil { + return *x.PrbsRxStatus } return PortPrbsRxStatus_PORT_PRBS_RX_STATUS_UNSPECIFIED } @@ -23496,48 +22651,48 @@ func (x *PortAttribute) GetPrbsRxState() *PRBS_RXState { } func (x *PortAttribute) GetAutoNegStatus() bool { - if x != nil { - return x.AutoNegStatus + if x != nil && x.AutoNegStatus != nil { + return *x.AutoNegStatus } return false } func (x *PortAttribute) GetDisableDecrementTtl() bool { - if x != nil { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *PortAttribute) GetQosMplsExpToTcMap() uint64 { - if x != nil { - return x.QosMplsExpToTcMap + if x != nil && x.QosMplsExpToTcMap != nil { + return *x.QosMplsExpToTcMap } return 0 } func (x *PortAttribute) GetQosMplsExpToColorMap() uint64 { - if x != nil { - return x.QosMplsExpToColorMap + if x != nil && x.QosMplsExpToColorMap != nil { + return *x.QosMplsExpToColorMap } return 0 } func (x *PortAttribute) GetQosTcAndColorToMplsExpMap() uint64 { - if x != nil { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } func (x *PortAttribute) GetTpid() uint32 { - if x != nil { - return x.Tpid + if x != nil && x.Tpid != nil { + return *x.Tpid } return 0 } -func (x *PortAttribute) GetErrStatusList() *PortErrStatusList { +func (x *PortAttribute) GetErrStatusList() []PortErrStatus { if x != nil { return x.ErrStatusList } @@ -23545,29 +22700,29 @@ func (x *PortAttribute) GetErrStatusList() *PortErrStatusList { } func (x *PortAttribute) GetFabricAttached() bool { - if x != nil { - return x.FabricAttached + if x != nil && x.FabricAttached != nil { + return *x.FabricAttached } return false } func (x *PortAttribute) GetFabricAttachedSwitchType() SwitchType { - if x != nil { - return x.FabricAttachedSwitchType + if x != nil && x.FabricAttachedSwitchType != nil { + return *x.FabricAttachedSwitchType } return SwitchType_SWITCH_TYPE_UNSPECIFIED } func (x *PortAttribute) GetFabricAttachedSwitchId() uint32 { - if x != nil { - return x.FabricAttachedSwitchId + if x != nil && x.FabricAttachedSwitchId != nil { + return *x.FabricAttachedSwitchId } return 0 } func (x *PortAttribute) GetFabricAttachedPortIndex() uint32 { - if x != nil { - return x.FabricAttachedPortIndex + if x != nil && x.FabricAttachedPortIndex != nil { + return *x.FabricAttachedPortIndex } return 0 } @@ -23580,113 +22735,113 @@ func (x *PortAttribute) GetFabricReachability() *FabricPortReachability { } func (x *PortAttribute) GetSystemPort() uint64 { - if x != nil { - return x.SystemPort + if x != nil && x.SystemPort != nil { + return *x.SystemPort } return 0 } func (x *PortAttribute) GetAutoNegFecModeOverride() bool { - if x != nil { - return x.AutoNegFecModeOverride + if x != nil && x.AutoNegFecModeOverride != nil { + return *x.AutoNegFecModeOverride } return false } func (x *PortAttribute) GetLoopbackMode() PortLoopbackMode { - if x != nil { - return x.LoopbackMode + if x != nil && x.LoopbackMode != nil { + return *x.LoopbackMode } return PortLoopbackMode_PORT_LOOPBACK_MODE_UNSPECIFIED } func (x *PortAttribute) GetMdixModeStatus() PortMdixModeStatus { - if x != nil { - return x.MdixModeStatus + if x != nil && x.MdixModeStatus != nil { + return *x.MdixModeStatus } return PortMdixModeStatus_PORT_MDIX_MODE_STATUS_UNSPECIFIED } func (x *PortAttribute) GetMdixModeConfig() PortMdixModeConfig { - if x != nil { - return x.MdixModeConfig + if x != nil && x.MdixModeConfig != nil { + return *x.MdixModeConfig } return PortMdixModeConfig_PORT_MDIX_MODE_CONFIG_UNSPECIFIED } func (x *PortAttribute) GetAutoNegConfigMode() PortAutoNegConfigMode { - if x != nil { - return x.AutoNegConfigMode + if x != nil && x.AutoNegConfigMode != nil { + return *x.AutoNegConfigMode } return PortAutoNegConfigMode_PORT_AUTO_NEG_CONFIG_MODE_UNSPECIFIED } func (x *PortAttribute) GetX1000XSgmiiSlaveAutodetect() bool { - if x != nil { - return x.X1000XSgmiiSlaveAutodetect + if x != nil && x.X1000XSgmiiSlaveAutodetect != nil { + return *x.X1000XSgmiiSlaveAutodetect } return false } func (x *PortAttribute) GetModuleType() PortModuleType { - if x != nil { - return x.ModuleType + if x != nil && x.ModuleType != nil { + return *x.ModuleType } return PortModuleType_PORT_MODULE_TYPE_UNSPECIFIED } func (x *PortAttribute) GetDualMedia() PortDualMedia { - if x != nil { - return x.DualMedia + if x != nil && x.DualMedia != nil { + return *x.DualMedia } return PortDualMedia_PORT_DUAL_MEDIA_UNSPECIFIED } func (x *PortAttribute) GetAutoNegFecModeExtended() PortFecModeExtended { - if x != nil { - return x.AutoNegFecModeExtended + if x != nil && x.AutoNegFecModeExtended != nil { + return *x.AutoNegFecModeExtended } return PortFecModeExtended_PORT_FEC_MODE_EXTENDED_UNSPECIFIED } func (x *PortAttribute) GetIpg() uint32 { - if x != nil { - return x.Ipg + if x != nil && x.Ipg != nil { + return *x.Ipg } return 0 } func (x *PortAttribute) GetGlobalFlowControlForward() bool { - if x != nil { - return x.GlobalFlowControlForward + if x != nil && x.GlobalFlowControlForward != nil { + return *x.GlobalFlowControlForward } return false } func (x *PortAttribute) GetPriorityFlowControlForward() bool { - if x != nil { - return x.PriorityFlowControlForward + if x != nil && x.PriorityFlowControlForward != nil { + return *x.PriorityFlowControlForward } return false } func (x *PortAttribute) GetQosDscpToForwardingClassMap() uint64 { - if x != nil { - return x.QosDscpToForwardingClassMap + if x != nil && x.QosDscpToForwardingClassMap != nil { + return *x.QosDscpToForwardingClassMap } return 0 } func (x *PortAttribute) GetQosMplsExpToForwardingClassMap() uint64 { - if x != nil { - return x.QosMplsExpToForwardingClassMap + if x != nil && x.QosMplsExpToForwardingClassMap != nil { + return *x.QosMplsExpToForwardingClassMap } return 0 } func (x *PortAttribute) GetIpsecPort() uint64 { - if x != nil { - return x.IpsecPort + if x != nil && x.IpsecPort != nil { + return *x.IpsecPort } return 0 } @@ -23696,17 +22851,17 @@ type PortConnectorAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SystemSidePortId uint64 `protobuf:"varint,1,opt,name=system_side_port_id,json=systemSidePortId,proto3" json:"system_side_port_id,omitempty"` - LineSidePortId uint64 `protobuf:"varint,2,opt,name=line_side_port_id,json=lineSidePortId,proto3" json:"line_side_port_id,omitempty"` - SystemSideFailoverPortId uint64 `protobuf:"varint,3,opt,name=system_side_failover_port_id,json=systemSideFailoverPortId,proto3" json:"system_side_failover_port_id,omitempty"` - LineSideFailoverPortId uint64 `protobuf:"varint,4,opt,name=line_side_failover_port_id,json=lineSideFailoverPortId,proto3" json:"line_side_failover_port_id,omitempty"` - FailoverMode PortConnectorFailoverMode `protobuf:"varint,5,opt,name=failover_mode,json=failoverMode,proto3,enum=lemming.dataplane.sai.PortConnectorFailoverMode" json:"failover_mode,omitempty"` + SystemSidePortId *uint64 `protobuf:"varint,1,opt,name=system_side_port_id,json=systemSidePortId,proto3,oneof" json:"system_side_port_id,omitempty"` + LineSidePortId *uint64 `protobuf:"varint,2,opt,name=line_side_port_id,json=lineSidePortId,proto3,oneof" json:"line_side_port_id,omitempty"` + SystemSideFailoverPortId *uint64 `protobuf:"varint,3,opt,name=system_side_failover_port_id,json=systemSideFailoverPortId,proto3,oneof" json:"system_side_failover_port_id,omitempty"` + LineSideFailoverPortId *uint64 `protobuf:"varint,4,opt,name=line_side_failover_port_id,json=lineSideFailoverPortId,proto3,oneof" json:"line_side_failover_port_id,omitempty"` + FailoverMode *PortConnectorFailoverMode `protobuf:"varint,5,opt,name=failover_mode,json=failoverMode,proto3,enum=lemming.dataplane.sai.PortConnectorFailoverMode,oneof" json:"failover_mode,omitempty"` } func (x *PortConnectorAttribute) Reset() { *x = PortConnectorAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[110] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23719,7 +22874,7 @@ func (x *PortConnectorAttribute) String() string { func (*PortConnectorAttribute) ProtoMessage() {} func (x *PortConnectorAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[110] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23732,40 +22887,40 @@ func (x *PortConnectorAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use PortConnectorAttribute.ProtoReflect.Descriptor instead. func (*PortConnectorAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{110} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{92} } func (x *PortConnectorAttribute) GetSystemSidePortId() uint64 { - if x != nil { - return x.SystemSidePortId + if x != nil && x.SystemSidePortId != nil { + return *x.SystemSidePortId } return 0 } func (x *PortConnectorAttribute) GetLineSidePortId() uint64 { - if x != nil { - return x.LineSidePortId + if x != nil && x.LineSidePortId != nil { + return *x.LineSidePortId } return 0 } func (x *PortConnectorAttribute) GetSystemSideFailoverPortId() uint64 { - if x != nil { - return x.SystemSideFailoverPortId + if x != nil && x.SystemSideFailoverPortId != nil { + return *x.SystemSideFailoverPortId } return 0 } func (x *PortConnectorAttribute) GetLineSideFailoverPortId() uint64 { - if x != nil { - return x.LineSideFailoverPortId + if x != nil && x.LineSideFailoverPortId != nil { + return *x.LineSideFailoverPortId } return 0 } func (x *PortConnectorAttribute) GetFailoverMode() PortConnectorFailoverMode { - if x != nil { - return x.FailoverMode + if x != nil && x.FailoverMode != nil { + return *x.FailoverMode } return PortConnectorFailoverMode_PORT_CONNECTOR_FAILOVER_MODE_UNSPECIFIED } @@ -23775,15 +22930,15 @@ type PortPoolAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PortId uint64 `protobuf:"varint,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - BufferPoolId uint64 `protobuf:"varint,2,opt,name=buffer_pool_id,json=bufferPoolId,proto3" json:"buffer_pool_id,omitempty"` - QosWredProfileId uint64 `protobuf:"varint,3,opt,name=qos_wred_profile_id,json=qosWredProfileId,proto3" json:"qos_wred_profile_id,omitempty"` + PortId *uint64 `protobuf:"varint,1,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + BufferPoolId *uint64 `protobuf:"varint,2,opt,name=buffer_pool_id,json=bufferPoolId,proto3,oneof" json:"buffer_pool_id,omitempty"` + QosWredProfileId *uint64 `protobuf:"varint,3,opt,name=qos_wred_profile_id,json=qosWredProfileId,proto3,oneof" json:"qos_wred_profile_id,omitempty"` } func (x *PortPoolAttribute) Reset() { *x = PortPoolAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[111] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23796,7 +22951,7 @@ func (x *PortPoolAttribute) String() string { func (*PortPoolAttribute) ProtoMessage() {} func (x *PortPoolAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[111] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23809,100 +22964,53 @@ func (x *PortPoolAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use PortPoolAttribute.ProtoReflect.Descriptor instead. func (*PortPoolAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{111} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{93} } func (x *PortPoolAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *PortPoolAttribute) GetBufferPoolId() uint64 { - if x != nil { - return x.BufferPoolId + if x != nil && x.BufferPoolId != nil { + return *x.BufferPoolId } return 0 } func (x *PortPoolAttribute) GetQosWredProfileId() uint64 { - if x != nil { - return x.QosWredProfileId + if x != nil && x.QosWredProfileId != nil { + return *x.QosWredProfileId } return 0 } -type Int32List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []int32 `protobuf:"varint,1,rep,packed,name=list,proto3" json:"list,omitempty"` -} - -func (x *Int32List) Reset() { - *x = Int32List{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[112] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Int32List) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Int32List) ProtoMessage() {} - -func (x *Int32List) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[112] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Int32List.ProtoReflect.Descriptor instead. -func (*Int32List) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{112} -} - -func (x *Int32List) GetList() []int32 { - if x != nil { - return x.List - } - return nil -} - type PortSerdesAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PortId uint64 `protobuf:"varint,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - Preemphasis *Int32List `protobuf:"bytes,2,opt,name=preemphasis,proto3" json:"preemphasis,omitempty"` - Idriver *Int32List `protobuf:"bytes,3,opt,name=idriver,proto3" json:"idriver,omitempty"` - Ipredriver *Int32List `protobuf:"bytes,4,opt,name=ipredriver,proto3" json:"ipredriver,omitempty"` - TxFirPre1 *Int32List `protobuf:"bytes,5,opt,name=tx_fir_pre1,json=txFirPre1,proto3" json:"tx_fir_pre1,omitempty"` - TxFirPre2 *Int32List `protobuf:"bytes,6,opt,name=tx_fir_pre2,json=txFirPre2,proto3" json:"tx_fir_pre2,omitempty"` - TxFirPre3 *Int32List `protobuf:"bytes,7,opt,name=tx_fir_pre3,json=txFirPre3,proto3" json:"tx_fir_pre3,omitempty"` - TxFirMain *Int32List `protobuf:"bytes,8,opt,name=tx_fir_main,json=txFirMain,proto3" json:"tx_fir_main,omitempty"` - TxFirPost1 *Int32List `protobuf:"bytes,9,opt,name=tx_fir_post1,json=txFirPost1,proto3" json:"tx_fir_post1,omitempty"` - TxFirPost2 *Int32List `protobuf:"bytes,10,opt,name=tx_fir_post2,json=txFirPost2,proto3" json:"tx_fir_post2,omitempty"` - TxFirPost3 *Int32List `protobuf:"bytes,11,opt,name=tx_fir_post3,json=txFirPost3,proto3" json:"tx_fir_post3,omitempty"` - TxFirAttn *Int32List `protobuf:"bytes,12,opt,name=tx_fir_attn,json=txFirAttn,proto3" json:"tx_fir_attn,omitempty"` + PortId *uint64 `protobuf:"varint,1,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + Preemphasis []int32 `protobuf:"varint,2,rep,packed,name=preemphasis,proto3" json:"preemphasis,omitempty"` + Idriver []int32 `protobuf:"varint,3,rep,packed,name=idriver,proto3" json:"idriver,omitempty"` + Ipredriver []int32 `protobuf:"varint,4,rep,packed,name=ipredriver,proto3" json:"ipredriver,omitempty"` + TxFirPre1 []int32 `protobuf:"varint,5,rep,packed,name=tx_fir_pre1,json=txFirPre1,proto3" json:"tx_fir_pre1,omitempty"` + TxFirPre2 []int32 `protobuf:"varint,6,rep,packed,name=tx_fir_pre2,json=txFirPre2,proto3" json:"tx_fir_pre2,omitempty"` + TxFirPre3 []int32 `protobuf:"varint,7,rep,packed,name=tx_fir_pre3,json=txFirPre3,proto3" json:"tx_fir_pre3,omitempty"` + TxFirMain []int32 `protobuf:"varint,8,rep,packed,name=tx_fir_main,json=txFirMain,proto3" json:"tx_fir_main,omitempty"` + TxFirPost1 []int32 `protobuf:"varint,9,rep,packed,name=tx_fir_post1,json=txFirPost1,proto3" json:"tx_fir_post1,omitempty"` + TxFirPost2 []int32 `protobuf:"varint,10,rep,packed,name=tx_fir_post2,json=txFirPost2,proto3" json:"tx_fir_post2,omitempty"` + TxFirPost3 []int32 `protobuf:"varint,11,rep,packed,name=tx_fir_post3,json=txFirPost3,proto3" json:"tx_fir_post3,omitempty"` + TxFirAttn []int32 `protobuf:"varint,12,rep,packed,name=tx_fir_attn,json=txFirAttn,proto3" json:"tx_fir_attn,omitempty"` } func (x *PortSerdesAttribute) Reset() { *x = PortSerdesAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[113] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23915,7 +23023,7 @@ func (x *PortSerdesAttribute) String() string { func (*PortSerdesAttribute) ProtoMessage() {} func (x *PortSerdesAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[113] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23928,153 +23036,106 @@ func (x *PortSerdesAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use PortSerdesAttribute.ProtoReflect.Descriptor instead. func (*PortSerdesAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{113} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{94} } func (x *PortSerdesAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } -func (x *PortSerdesAttribute) GetPreemphasis() *Int32List { +func (x *PortSerdesAttribute) GetPreemphasis() []int32 { if x != nil { return x.Preemphasis } return nil } -func (x *PortSerdesAttribute) GetIdriver() *Int32List { +func (x *PortSerdesAttribute) GetIdriver() []int32 { if x != nil { return x.Idriver } return nil } -func (x *PortSerdesAttribute) GetIpredriver() *Int32List { +func (x *PortSerdesAttribute) GetIpredriver() []int32 { if x != nil { return x.Ipredriver } return nil } -func (x *PortSerdesAttribute) GetTxFirPre1() *Int32List { +func (x *PortSerdesAttribute) GetTxFirPre1() []int32 { if x != nil { return x.TxFirPre1 } return nil } -func (x *PortSerdesAttribute) GetTxFirPre2() *Int32List { +func (x *PortSerdesAttribute) GetTxFirPre2() []int32 { if x != nil { return x.TxFirPre2 } return nil } -func (x *PortSerdesAttribute) GetTxFirPre3() *Int32List { +func (x *PortSerdesAttribute) GetTxFirPre3() []int32 { if x != nil { return x.TxFirPre3 } return nil } -func (x *PortSerdesAttribute) GetTxFirMain() *Int32List { +func (x *PortSerdesAttribute) GetTxFirMain() []int32 { if x != nil { return x.TxFirMain } return nil } -func (x *PortSerdesAttribute) GetTxFirPost1() *Int32List { +func (x *PortSerdesAttribute) GetTxFirPost1() []int32 { if x != nil { return x.TxFirPost1 } return nil } -func (x *PortSerdesAttribute) GetTxFirPost2() *Int32List { +func (x *PortSerdesAttribute) GetTxFirPost2() []int32 { if x != nil { return x.TxFirPost2 } return nil } -func (x *PortSerdesAttribute) GetTxFirPost3() *Int32List { +func (x *PortSerdesAttribute) GetTxFirPost3() []int32 { if x != nil { return x.TxFirPost3 } return nil } -func (x *PortSerdesAttribute) GetTxFirAttn() *Int32List { +func (x *PortSerdesAttribute) GetTxFirAttn() []int32 { if x != nil { return x.TxFirAttn } return nil } -type QosMapList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []*QOSMap `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` -} - -func (x *QosMapList) Reset() { - *x = QosMapList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[114] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QosMapList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QosMapList) ProtoMessage() {} - -func (x *QosMapList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[114] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use QosMapList.ProtoReflect.Descriptor instead. -func (*QosMapList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{114} -} - -func (x *QosMapList) GetList() []*QOSMap { - if x != nil { - return x.List - } - return nil -} - type QosMapAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type QosMapType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.QosMapType" json:"type,omitempty"` - MapToValueList *QosMapList `protobuf:"bytes,2,opt,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` + Type *QosMapType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.QosMapType,oneof" json:"type,omitempty"` + MapToValueList []*QOSMap `protobuf:"bytes,2,rep,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` } func (x *QosMapAttribute) Reset() { *x = QosMapAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[115] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24087,7 +23148,7 @@ func (x *QosMapAttribute) String() string { func (*QosMapAttribute) ProtoMessage() {} func (x *QosMapAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[115] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24100,17 +23161,17 @@ func (x *QosMapAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use QosMapAttribute.ProtoReflect.Descriptor instead. func (*QosMapAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{115} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{95} } func (x *QosMapAttribute) GetType() QosMapType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return QosMapType_QOS_MAP_TYPE_UNSPECIFIED } -func (x *QosMapAttribute) GetMapToValueList() *QosMapList { +func (x *QosMapAttribute) GetMapToValueList() []*QOSMap { if x != nil { return x.MapToValueList } @@ -24122,23 +23183,23 @@ type QueueAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type QueueType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.QueueType" json:"type,omitempty"` - Port uint64 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` - Index uint32 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` - ParentSchedulerNode uint64 `protobuf:"varint,4,opt,name=parent_scheduler_node,json=parentSchedulerNode,proto3" json:"parent_scheduler_node,omitempty"` - WredProfileId uint64 `protobuf:"varint,5,opt,name=wred_profile_id,json=wredProfileId,proto3" json:"wred_profile_id,omitempty"` - BufferProfileId uint64 `protobuf:"varint,6,opt,name=buffer_profile_id,json=bufferProfileId,proto3" json:"buffer_profile_id,omitempty"` - SchedulerProfileId uint64 `protobuf:"varint,7,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3" json:"scheduler_profile_id,omitempty"` - PauseStatus bool `protobuf:"varint,8,opt,name=pause_status,json=pauseStatus,proto3" json:"pause_status,omitempty"` - EnablePfcDldr bool `protobuf:"varint,9,opt,name=enable_pfc_dldr,json=enablePfcDldr,proto3" json:"enable_pfc_dldr,omitempty"` - PfcDlrInit bool `protobuf:"varint,10,opt,name=pfc_dlr_init,json=pfcDlrInit,proto3" json:"pfc_dlr_init,omitempty"` - TamObject *Uint64List `protobuf:"bytes,11,opt,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` + Type *QueueType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.QueueType,oneof" json:"type,omitempty"` + Port *uint64 `protobuf:"varint,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + Index *uint32 `protobuf:"varint,3,opt,name=index,proto3,oneof" json:"index,omitempty"` + ParentSchedulerNode *uint64 `protobuf:"varint,4,opt,name=parent_scheduler_node,json=parentSchedulerNode,proto3,oneof" json:"parent_scheduler_node,omitempty"` + WredProfileId *uint64 `protobuf:"varint,5,opt,name=wred_profile_id,json=wredProfileId,proto3,oneof" json:"wred_profile_id,omitempty"` + BufferProfileId *uint64 `protobuf:"varint,6,opt,name=buffer_profile_id,json=bufferProfileId,proto3,oneof" json:"buffer_profile_id,omitempty"` + SchedulerProfileId *uint64 `protobuf:"varint,7,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3,oneof" json:"scheduler_profile_id,omitempty"` + PauseStatus *bool `protobuf:"varint,8,opt,name=pause_status,json=pauseStatus,proto3,oneof" json:"pause_status,omitempty"` + EnablePfcDldr *bool `protobuf:"varint,9,opt,name=enable_pfc_dldr,json=enablePfcDldr,proto3,oneof" json:"enable_pfc_dldr,omitempty"` + PfcDlrInit *bool `protobuf:"varint,10,opt,name=pfc_dlr_init,json=pfcDlrInit,proto3,oneof" json:"pfc_dlr_init,omitempty"` + TamObject []uint64 `protobuf:"varint,11,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` } func (x *QueueAttribute) Reset() { *x = QueueAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[116] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24151,7 +23212,7 @@ func (x *QueueAttribute) String() string { func (*QueueAttribute) ProtoMessage() {} func (x *QueueAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[116] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24164,80 +23225,80 @@ func (x *QueueAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueAttribute.ProtoReflect.Descriptor instead. func (*QueueAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{116} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{96} } func (x *QueueAttribute) GetType() QueueType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return QueueType_QUEUE_TYPE_UNSPECIFIED } func (x *QueueAttribute) GetPort() uint64 { - if x != nil { - return x.Port + if x != nil && x.Port != nil { + return *x.Port } return 0 } func (x *QueueAttribute) GetIndex() uint32 { - if x != nil { - return x.Index + if x != nil && x.Index != nil { + return *x.Index } return 0 } func (x *QueueAttribute) GetParentSchedulerNode() uint64 { - if x != nil { - return x.ParentSchedulerNode + if x != nil && x.ParentSchedulerNode != nil { + return *x.ParentSchedulerNode } return 0 } func (x *QueueAttribute) GetWredProfileId() uint64 { - if x != nil { - return x.WredProfileId + if x != nil && x.WredProfileId != nil { + return *x.WredProfileId } return 0 } func (x *QueueAttribute) GetBufferProfileId() uint64 { - if x != nil { - return x.BufferProfileId + if x != nil && x.BufferProfileId != nil { + return *x.BufferProfileId } return 0 } func (x *QueueAttribute) GetSchedulerProfileId() uint64 { - if x != nil { - return x.SchedulerProfileId + if x != nil && x.SchedulerProfileId != nil { + return *x.SchedulerProfileId } return 0 } func (x *QueueAttribute) GetPauseStatus() bool { - if x != nil { - return x.PauseStatus + if x != nil && x.PauseStatus != nil { + return *x.PauseStatus } return false } func (x *QueueAttribute) GetEnablePfcDldr() bool { - if x != nil { - return x.EnablePfcDldr + if x != nil && x.EnablePfcDldr != nil { + return *x.EnablePfcDldr } return false } func (x *QueueAttribute) GetPfcDlrInit() bool { - if x != nil { - return x.PfcDlrInit + if x != nil && x.PfcDlrInit != nil { + return *x.PfcDlrInit } return false } -func (x *QueueAttribute) GetTamObject() *Uint64List { +func (x *QueueAttribute) GetTamObject() []uint64 { if x != nil { return x.TamObject } @@ -24249,33 +23310,33 @@ type RouterInterfaceAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - VirtualRouterId uint64 `protobuf:"varint,1,opt,name=virtual_router_id,json=virtualRouterId,proto3" json:"virtual_router_id,omitempty"` - Type RouterInterfaceType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.RouterInterfaceType" json:"type,omitempty"` - PortId uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - VlanId uint64 `protobuf:"varint,4,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - OuterVlanId uint32 `protobuf:"varint,5,opt,name=outer_vlan_id,json=outerVlanId,proto3" json:"outer_vlan_id,omitempty"` - InnerVlanId uint32 `protobuf:"varint,6,opt,name=inner_vlan_id,json=innerVlanId,proto3" json:"inner_vlan_id,omitempty"` - BridgeId uint64 `protobuf:"varint,7,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,8,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - AdminV4State bool `protobuf:"varint,9,opt,name=admin_v4_state,json=adminV4State,proto3" json:"admin_v4_state,omitempty"` - AdminV6State bool `protobuf:"varint,10,opt,name=admin_v6_state,json=adminV6State,proto3" json:"admin_v6_state,omitempty"` - Mtu uint32 `protobuf:"varint,11,opt,name=mtu,proto3" json:"mtu,omitempty"` - IngressAcl uint64 `protobuf:"varint,12,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,13,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - NeighborMissPacketAction PacketAction `protobuf:"varint,14,opt,name=neighbor_miss_packet_action,json=neighborMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"neighbor_miss_packet_action,omitempty"` - V4McastEnable bool `protobuf:"varint,15,opt,name=v4_mcast_enable,json=v4McastEnable,proto3" json:"v4_mcast_enable,omitempty"` - V6McastEnable bool `protobuf:"varint,16,opt,name=v6_mcast_enable,json=v6McastEnable,proto3" json:"v6_mcast_enable,omitempty"` - LoopbackPacketAction PacketAction `protobuf:"varint,17,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"loopback_packet_action,omitempty"` - IsVirtual bool `protobuf:"varint,18,opt,name=is_virtual,json=isVirtual,proto3" json:"is_virtual,omitempty"` - NatZoneId uint32 `protobuf:"varint,19,opt,name=nat_zone_id,json=natZoneId,proto3" json:"nat_zone_id,omitempty"` - DisableDecrementTtl bool `protobuf:"varint,20,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3" json:"disable_decrement_ttl,omitempty"` - AdminMplsState bool `protobuf:"varint,21,opt,name=admin_mpls_state,json=adminMplsState,proto3" json:"admin_mpls_state,omitempty"` + VirtualRouterId *uint64 `protobuf:"varint,1,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof" json:"virtual_router_id,omitempty"` + Type *RouterInterfaceType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.RouterInterfaceType,oneof" json:"type,omitempty"` + PortId *uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + VlanId *uint64 `protobuf:"varint,4,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + OuterVlanId *uint32 `protobuf:"varint,5,opt,name=outer_vlan_id,json=outerVlanId,proto3,oneof" json:"outer_vlan_id,omitempty"` + InnerVlanId *uint32 `protobuf:"varint,6,opt,name=inner_vlan_id,json=innerVlanId,proto3,oneof" json:"inner_vlan_id,omitempty"` + BridgeId *uint64 `protobuf:"varint,7,opt,name=bridge_id,json=bridgeId,proto3,oneof" json:"bridge_id,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,8,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + AdminV4State *bool `protobuf:"varint,9,opt,name=admin_v4_state,json=adminV4State,proto3,oneof" json:"admin_v4_state,omitempty"` + AdminV6State *bool `protobuf:"varint,10,opt,name=admin_v6_state,json=adminV6State,proto3,oneof" json:"admin_v6_state,omitempty"` + Mtu *uint32 `protobuf:"varint,11,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` + IngressAcl *uint64 `protobuf:"varint,12,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,13,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + NeighborMissPacketAction *PacketAction `protobuf:"varint,14,opt,name=neighbor_miss_packet_action,json=neighborMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"neighbor_miss_packet_action,omitempty"` + V4McastEnable *bool `protobuf:"varint,15,opt,name=v4_mcast_enable,json=v4McastEnable,proto3,oneof" json:"v4_mcast_enable,omitempty"` + V6McastEnable *bool `protobuf:"varint,16,opt,name=v6_mcast_enable,json=v6McastEnable,proto3,oneof" json:"v6_mcast_enable,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,17,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + IsVirtual *bool `protobuf:"varint,18,opt,name=is_virtual,json=isVirtual,proto3,oneof" json:"is_virtual,omitempty"` + NatZoneId *uint32 `protobuf:"varint,19,opt,name=nat_zone_id,json=natZoneId,proto3,oneof" json:"nat_zone_id,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,20,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + AdminMplsState *bool `protobuf:"varint,21,opt,name=admin_mpls_state,json=adminMplsState,proto3,oneof" json:"admin_mpls_state,omitempty"` } func (x *RouterInterfaceAttribute) Reset() { *x = RouterInterfaceAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[117] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24288,7 +23349,7 @@ func (x *RouterInterfaceAttribute) String() string { func (*RouterInterfaceAttribute) ProtoMessage() {} func (x *RouterInterfaceAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[117] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24301,54 +23362,54 @@ func (x *RouterInterfaceAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use RouterInterfaceAttribute.ProtoReflect.Descriptor instead. func (*RouterInterfaceAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{117} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{97} } func (x *RouterInterfaceAttribute) GetVirtualRouterId() uint64 { - if x != nil { - return x.VirtualRouterId + if x != nil && x.VirtualRouterId != nil { + return *x.VirtualRouterId } return 0 } func (x *RouterInterfaceAttribute) GetType() RouterInterfaceType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return RouterInterfaceType_ROUTER_INTERFACE_TYPE_UNSPECIFIED } func (x *RouterInterfaceAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *RouterInterfaceAttribute) GetVlanId() uint64 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *RouterInterfaceAttribute) GetOuterVlanId() uint32 { - if x != nil { - return x.OuterVlanId + if x != nil && x.OuterVlanId != nil { + return *x.OuterVlanId } return 0 } func (x *RouterInterfaceAttribute) GetInnerVlanId() uint32 { - if x != nil { - return x.InnerVlanId + if x != nil && x.InnerVlanId != nil { + return *x.InnerVlanId } return 0 } func (x *RouterInterfaceAttribute) GetBridgeId() uint64 { - if x != nil { - return x.BridgeId + if x != nil && x.BridgeId != nil { + return *x.BridgeId } return 0 } @@ -24361,92 +23422,92 @@ func (x *RouterInterfaceAttribute) GetSrcMacAddress() []byte { } func (x *RouterInterfaceAttribute) GetAdminV4State() bool { - if x != nil { - return x.AdminV4State + if x != nil && x.AdminV4State != nil { + return *x.AdminV4State } return false } func (x *RouterInterfaceAttribute) GetAdminV6State() bool { - if x != nil { - return x.AdminV6State + if x != nil && x.AdminV6State != nil { + return *x.AdminV6State } return false } func (x *RouterInterfaceAttribute) GetMtu() uint32 { - if x != nil { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } func (x *RouterInterfaceAttribute) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *RouterInterfaceAttribute) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *RouterInterfaceAttribute) GetNeighborMissPacketAction() PacketAction { - if x != nil { - return x.NeighborMissPacketAction + if x != nil && x.NeighborMissPacketAction != nil { + return *x.NeighborMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *RouterInterfaceAttribute) GetV4McastEnable() bool { - if x != nil { - return x.V4McastEnable + if x != nil && x.V4McastEnable != nil { + return *x.V4McastEnable } return false } func (x *RouterInterfaceAttribute) GetV6McastEnable() bool { - if x != nil { - return x.V6McastEnable + if x != nil && x.V6McastEnable != nil { + return *x.V6McastEnable } return false } func (x *RouterInterfaceAttribute) GetLoopbackPacketAction() PacketAction { - if x != nil { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *RouterInterfaceAttribute) GetIsVirtual() bool { - if x != nil { - return x.IsVirtual + if x != nil && x.IsVirtual != nil { + return *x.IsVirtual } return false } func (x *RouterInterfaceAttribute) GetNatZoneId() uint32 { - if x != nil { - return x.NatZoneId + if x != nil && x.NatZoneId != nil { + return *x.NatZoneId } return 0 } func (x *RouterInterfaceAttribute) GetDisableDecrementTtl() bool { - if x != nil { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *RouterInterfaceAttribute) GetAdminMplsState() bool { - if x != nil { - return x.AdminMplsState + if x != nil && x.AdminMplsState != nil { + return *x.AdminMplsState } return false } @@ -24456,18 +23517,18 @@ type RouteEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PacketAction PacketAction `protobuf:"varint,1,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - UserTrapId uint64 `protobuf:"varint,2,opt,name=user_trap_id,json=userTrapId,proto3" json:"user_trap_id,omitempty"` - NextHopId uint64 `protobuf:"varint,3,opt,name=next_hop_id,json=nextHopId,proto3" json:"next_hop_id,omitempty"` - MetaData uint32 `protobuf:"varint,4,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - IpAddrFamily IpAddrFamily `protobuf:"varint,5,opt,name=ip_addr_family,json=ipAddrFamily,proto3,enum=lemming.dataplane.sai.IpAddrFamily" json:"ip_addr_family,omitempty"` - CounterId uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + PacketAction *PacketAction `protobuf:"varint,1,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,2,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + NextHopId *uint64 `protobuf:"varint,3,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + MetaData *uint32 `protobuf:"varint,4,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + IpAddrFamily *IpAddrFamily `protobuf:"varint,5,opt,name=ip_addr_family,json=ipAddrFamily,proto3,enum=lemming.dataplane.sai.IpAddrFamily,oneof" json:"ip_addr_family,omitempty"` + CounterId *uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *RouteEntryAttribute) Reset() { *x = RouteEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[118] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24480,7 +23541,7 @@ func (x *RouteEntryAttribute) String() string { func (*RouteEntryAttribute) ProtoMessage() {} func (x *RouteEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[118] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24493,47 +23554,47 @@ func (x *RouteEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use RouteEntryAttribute.ProtoReflect.Descriptor instead. func (*RouteEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{118} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{98} } func (x *RouteEntryAttribute) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *RouteEntryAttribute) GetUserTrapId() uint64 { - if x != nil { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *RouteEntryAttribute) GetNextHopId() uint64 { - if x != nil { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *RouteEntryAttribute) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *RouteEntryAttribute) GetIpAddrFamily() IpAddrFamily { - if x != nil { - return x.IpAddrFamily + if x != nil && x.IpAddrFamily != nil { + return *x.IpAddrFamily } return IpAddrFamily_IP_ADDR_FAMILY_UNSPECIFIED } func (x *RouteEntryAttribute) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -24543,14 +23604,14 @@ type RpfGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RpfInterfaceCount uint32 `protobuf:"varint,1,opt,name=rpf_interface_count,json=rpfInterfaceCount,proto3" json:"rpf_interface_count,omitempty"` - RpfMemberList *Uint64List `protobuf:"bytes,2,opt,name=rpf_member_list,json=rpfMemberList,proto3" json:"rpf_member_list,omitempty"` + RpfInterfaceCount *uint32 `protobuf:"varint,1,opt,name=rpf_interface_count,json=rpfInterfaceCount,proto3,oneof" json:"rpf_interface_count,omitempty"` + RpfMemberList []uint64 `protobuf:"varint,2,rep,packed,name=rpf_member_list,json=rpfMemberList,proto3" json:"rpf_member_list,omitempty"` } func (x *RpfGroupAttribute) Reset() { *x = RpfGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[119] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24563,7 +23624,7 @@ func (x *RpfGroupAttribute) String() string { func (*RpfGroupAttribute) ProtoMessage() {} func (x *RpfGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[119] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24576,17 +23637,17 @@ func (x *RpfGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use RpfGroupAttribute.ProtoReflect.Descriptor instead. func (*RpfGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{119} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{99} } func (x *RpfGroupAttribute) GetRpfInterfaceCount() uint32 { - if x != nil { - return x.RpfInterfaceCount + if x != nil && x.RpfInterfaceCount != nil { + return *x.RpfInterfaceCount } return 0 } -func (x *RpfGroupAttribute) GetRpfMemberList() *Uint64List { +func (x *RpfGroupAttribute) GetRpfMemberList() []uint64 { if x != nil { return x.RpfMemberList } @@ -24598,14 +23659,14 @@ type RpfGroupMemberAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RpfGroupId uint64 `protobuf:"varint,1,opt,name=rpf_group_id,json=rpfGroupId,proto3" json:"rpf_group_id,omitempty"` - RpfInterfaceId uint64 `protobuf:"varint,2,opt,name=rpf_interface_id,json=rpfInterfaceId,proto3" json:"rpf_interface_id,omitempty"` + RpfGroupId *uint64 `protobuf:"varint,1,opt,name=rpf_group_id,json=rpfGroupId,proto3,oneof" json:"rpf_group_id,omitempty"` + RpfInterfaceId *uint64 `protobuf:"varint,2,opt,name=rpf_interface_id,json=rpfInterfaceId,proto3,oneof" json:"rpf_interface_id,omitempty"` } func (x *RpfGroupMemberAttribute) Reset() { *x = RpfGroupMemberAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[120] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24618,7 +23679,7 @@ func (x *RpfGroupMemberAttribute) String() string { func (*RpfGroupMemberAttribute) ProtoMessage() {} func (x *RpfGroupMemberAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[120] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24631,19 +23692,19 @@ func (x *RpfGroupMemberAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use RpfGroupMemberAttribute.ProtoReflect.Descriptor instead. func (*RpfGroupMemberAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{120} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{100} } func (x *RpfGroupMemberAttribute) GetRpfGroupId() uint64 { - if x != nil { - return x.RpfGroupId + if x != nil && x.RpfGroupId != nil { + return *x.RpfGroupId } return 0 } func (x *RpfGroupMemberAttribute) GetRpfInterfaceId() uint64 { - if x != nil { - return x.RpfInterfaceId + if x != nil && x.RpfInterfaceId != nil { + return *x.RpfInterfaceId } return 0 } @@ -24653,15 +23714,15 @@ type SamplepacketAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SampleRate uint32 `protobuf:"varint,1,opt,name=sample_rate,json=sampleRate,proto3" json:"sample_rate,omitempty"` - Type SamplepacketType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.SamplepacketType" json:"type,omitempty"` - Mode SamplepacketMode `protobuf:"varint,3,opt,name=mode,proto3,enum=lemming.dataplane.sai.SamplepacketMode" json:"mode,omitempty"` + SampleRate *uint32 `protobuf:"varint,1,opt,name=sample_rate,json=sampleRate,proto3,oneof" json:"sample_rate,omitempty"` + Type *SamplepacketType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.SamplepacketType,oneof" json:"type,omitempty"` + Mode *SamplepacketMode `protobuf:"varint,3,opt,name=mode,proto3,enum=lemming.dataplane.sai.SamplepacketMode,oneof" json:"mode,omitempty"` } func (x *SamplepacketAttribute) Reset() { *x = SamplepacketAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[121] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24674,7 +23735,7 @@ func (x *SamplepacketAttribute) String() string { func (*SamplepacketAttribute) ProtoMessage() {} func (x *SamplepacketAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[121] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24687,26 +23748,26 @@ func (x *SamplepacketAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use SamplepacketAttribute.ProtoReflect.Descriptor instead. func (*SamplepacketAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{121} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{101} } func (x *SamplepacketAttribute) GetSampleRate() uint32 { - if x != nil { - return x.SampleRate + if x != nil && x.SampleRate != nil { + return *x.SampleRate } return 0 } func (x *SamplepacketAttribute) GetType() SamplepacketType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return SamplepacketType_SAMPLEPACKET_TYPE_UNSPECIFIED } func (x *SamplepacketAttribute) GetMode() SamplepacketMode { - if x != nil { - return x.Mode + if x != nil && x.Mode != nil { + return *x.Mode } return SamplepacketMode_SAMPLEPACKET_MODE_UNSPECIFIED } @@ -24716,19 +23777,19 @@ type SchedulerAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SchedulingType SchedulingType `protobuf:"varint,1,opt,name=scheduling_type,json=schedulingType,proto3,enum=lemming.dataplane.sai.SchedulingType" json:"scheduling_type,omitempty"` - SchedulingWeight uint32 `protobuf:"varint,2,opt,name=scheduling_weight,json=schedulingWeight,proto3" json:"scheduling_weight,omitempty"` - MeterType MeterType `protobuf:"varint,3,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType" json:"meter_type,omitempty"` - MinBandwidthRate uint64 `protobuf:"varint,4,opt,name=min_bandwidth_rate,json=minBandwidthRate,proto3" json:"min_bandwidth_rate,omitempty"` - MinBandwidthBurstRate uint64 `protobuf:"varint,5,opt,name=min_bandwidth_burst_rate,json=minBandwidthBurstRate,proto3" json:"min_bandwidth_burst_rate,omitempty"` - MaxBandwidthRate uint64 `protobuf:"varint,6,opt,name=max_bandwidth_rate,json=maxBandwidthRate,proto3" json:"max_bandwidth_rate,omitempty"` - MaxBandwidthBurstRate uint64 `protobuf:"varint,7,opt,name=max_bandwidth_burst_rate,json=maxBandwidthBurstRate,proto3" json:"max_bandwidth_burst_rate,omitempty"` + SchedulingType *SchedulingType `protobuf:"varint,1,opt,name=scheduling_type,json=schedulingType,proto3,enum=lemming.dataplane.sai.SchedulingType,oneof" json:"scheduling_type,omitempty"` + SchedulingWeight *uint32 `protobuf:"varint,2,opt,name=scheduling_weight,json=schedulingWeight,proto3,oneof" json:"scheduling_weight,omitempty"` + MeterType *MeterType `protobuf:"varint,3,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType,oneof" json:"meter_type,omitempty"` + MinBandwidthRate *uint64 `protobuf:"varint,4,opt,name=min_bandwidth_rate,json=minBandwidthRate,proto3,oneof" json:"min_bandwidth_rate,omitempty"` + MinBandwidthBurstRate *uint64 `protobuf:"varint,5,opt,name=min_bandwidth_burst_rate,json=minBandwidthBurstRate,proto3,oneof" json:"min_bandwidth_burst_rate,omitempty"` + MaxBandwidthRate *uint64 `protobuf:"varint,6,opt,name=max_bandwidth_rate,json=maxBandwidthRate,proto3,oneof" json:"max_bandwidth_rate,omitempty"` + MaxBandwidthBurstRate *uint64 `protobuf:"varint,7,opt,name=max_bandwidth_burst_rate,json=maxBandwidthBurstRate,proto3,oneof" json:"max_bandwidth_burst_rate,omitempty"` } func (x *SchedulerAttribute) Reset() { *x = SchedulerAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[122] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24741,7 +23802,7 @@ func (x *SchedulerAttribute) String() string { func (*SchedulerAttribute) ProtoMessage() {} func (x *SchedulerAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[122] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24754,54 +23815,54 @@ func (x *SchedulerAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use SchedulerAttribute.ProtoReflect.Descriptor instead. func (*SchedulerAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{122} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{102} } func (x *SchedulerAttribute) GetSchedulingType() SchedulingType { - if x != nil { - return x.SchedulingType + if x != nil && x.SchedulingType != nil { + return *x.SchedulingType } return SchedulingType_SCHEDULING_TYPE_UNSPECIFIED } func (x *SchedulerAttribute) GetSchedulingWeight() uint32 { - if x != nil { - return x.SchedulingWeight + if x != nil && x.SchedulingWeight != nil { + return *x.SchedulingWeight } return 0 } func (x *SchedulerAttribute) GetMeterType() MeterType { - if x != nil { - return x.MeterType + if x != nil && x.MeterType != nil { + return *x.MeterType } return MeterType_METER_TYPE_UNSPECIFIED } func (x *SchedulerAttribute) GetMinBandwidthRate() uint64 { - if x != nil { - return x.MinBandwidthRate + if x != nil && x.MinBandwidthRate != nil { + return *x.MinBandwidthRate } return 0 } func (x *SchedulerAttribute) GetMinBandwidthBurstRate() uint64 { - if x != nil { - return x.MinBandwidthBurstRate + if x != nil && x.MinBandwidthBurstRate != nil { + return *x.MinBandwidthBurstRate } return 0 } func (x *SchedulerAttribute) GetMaxBandwidthRate() uint64 { - if x != nil { - return x.MaxBandwidthRate + if x != nil && x.MaxBandwidthRate != nil { + return *x.MaxBandwidthRate } return 0 } func (x *SchedulerAttribute) GetMaxBandwidthBurstRate() uint64 { - if x != nil { - return x.MaxBandwidthBurstRate + if x != nil && x.MaxBandwidthBurstRate != nil { + return *x.MaxBandwidthBurstRate } return 0 } @@ -24811,19 +23872,19 @@ type SchedulerGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ChildCount uint32 `protobuf:"varint,1,opt,name=child_count,json=childCount,proto3" json:"child_count,omitempty"` - ChildList *Uint64List `protobuf:"bytes,2,opt,name=child_list,json=childList,proto3" json:"child_list,omitempty"` - PortId uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - Level uint32 `protobuf:"varint,4,opt,name=level,proto3" json:"level,omitempty"` - MaxChilds uint32 `protobuf:"varint,5,opt,name=max_childs,json=maxChilds,proto3" json:"max_childs,omitempty"` - SchedulerProfileId uint64 `protobuf:"varint,6,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3" json:"scheduler_profile_id,omitempty"` - ParentNode uint64 `protobuf:"varint,7,opt,name=parent_node,json=parentNode,proto3" json:"parent_node,omitempty"` + ChildCount *uint32 `protobuf:"varint,1,opt,name=child_count,json=childCount,proto3,oneof" json:"child_count,omitempty"` + ChildList []uint64 `protobuf:"varint,2,rep,packed,name=child_list,json=childList,proto3" json:"child_list,omitempty"` + PortId *uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + Level *uint32 `protobuf:"varint,4,opt,name=level,proto3,oneof" json:"level,omitempty"` + MaxChilds *uint32 `protobuf:"varint,5,opt,name=max_childs,json=maxChilds,proto3,oneof" json:"max_childs,omitempty"` + SchedulerProfileId *uint64 `protobuf:"varint,6,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3,oneof" json:"scheduler_profile_id,omitempty"` + ParentNode *uint64 `protobuf:"varint,7,opt,name=parent_node,json=parentNode,proto3,oneof" json:"parent_node,omitempty"` } func (x *SchedulerGroupAttribute) Reset() { *x = SchedulerGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[123] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24836,7 +23897,7 @@ func (x *SchedulerGroupAttribute) String() string { func (*SchedulerGroupAttribute) ProtoMessage() {} func (x *SchedulerGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[123] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24849,17 +23910,17 @@ func (x *SchedulerGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use SchedulerGroupAttribute.ProtoReflect.Descriptor instead. func (*SchedulerGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{123} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{103} } func (x *SchedulerGroupAttribute) GetChildCount() uint32 { - if x != nil { - return x.ChildCount + if x != nil && x.ChildCount != nil { + return *x.ChildCount } return 0 } -func (x *SchedulerGroupAttribute) GetChildList() *Uint64List { +func (x *SchedulerGroupAttribute) GetChildList() []uint64 { if x != nil { return x.ChildList } @@ -24867,101 +23928,54 @@ func (x *SchedulerGroupAttribute) GetChildList() *Uint64List { } func (x *SchedulerGroupAttribute) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *SchedulerGroupAttribute) GetLevel() uint32 { - if x != nil { - return x.Level + if x != nil && x.Level != nil { + return *x.Level } return 0 } func (x *SchedulerGroupAttribute) GetMaxChilds() uint32 { - if x != nil { - return x.MaxChilds + if x != nil && x.MaxChilds != nil { + return *x.MaxChilds } return 0 } func (x *SchedulerGroupAttribute) GetSchedulerProfileId() uint64 { - if x != nil { - return x.SchedulerProfileId + if x != nil && x.SchedulerProfileId != nil { + return *x.SchedulerProfileId } return 0 } func (x *SchedulerGroupAttribute) GetParentNode() uint64 { - if x != nil { - return x.ParentNode + if x != nil && x.ParentNode != nil { + return *x.ParentNode } return 0 } -type TlvEntryList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []*TLVEntry `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` -} - -func (x *TlvEntryList) Reset() { - *x = TlvEntryList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[124] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TlvEntryList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TlvEntryList) ProtoMessage() {} - -func (x *TlvEntryList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[124] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TlvEntryList.ProtoReflect.Descriptor instead. -func (*TlvEntryList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{124} -} - -func (x *TlvEntryList) GetList() []*TLVEntry { - if x != nil { - return x.List - } - return nil -} - type Srv6SidlistAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type Srv6SidlistType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.Srv6SidlistType" json:"type,omitempty"` - TlvList *TlvEntryList `protobuf:"bytes,2,opt,name=tlv_list,json=tlvList,proto3" json:"tlv_list,omitempty"` - SegmentList *BytesList `protobuf:"bytes,3,opt,name=segment_list,json=segmentList,proto3" json:"segment_list,omitempty"` + Type *Srv6SidlistType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.Srv6SidlistType,oneof" json:"type,omitempty"` + TlvList []*TLVEntry `protobuf:"bytes,2,rep,name=tlv_list,json=tlvList,proto3" json:"tlv_list,omitempty"` + SegmentList [][]byte `protobuf:"bytes,3,rep,name=segment_list,json=segmentList,proto3" json:"segment_list,omitempty"` } func (x *Srv6SidlistAttribute) Reset() { *x = Srv6SidlistAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[125] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24974,7 +23988,7 @@ func (x *Srv6SidlistAttribute) String() string { func (*Srv6SidlistAttribute) ProtoMessage() {} func (x *Srv6SidlistAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[125] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24987,24 +24001,24 @@ func (x *Srv6SidlistAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use Srv6SidlistAttribute.ProtoReflect.Descriptor instead. func (*Srv6SidlistAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{125} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{104} } func (x *Srv6SidlistAttribute) GetType() Srv6SidlistType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return Srv6SidlistType_SRV6_SIDLIST_TYPE_UNSPECIFIED } -func (x *Srv6SidlistAttribute) GetTlvList() *TlvEntryList { +func (x *Srv6SidlistAttribute) GetTlvList() []*TLVEntry { if x != nil { return x.TlvList } return nil } -func (x *Srv6SidlistAttribute) GetSegmentList() *BytesList { +func (x *Srv6SidlistAttribute) GetSegmentList() [][]byte { if x != nil { return x.SegmentList } @@ -25016,15 +24030,15 @@ type StpAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - VlanList *Uint32List `protobuf:"bytes,1,opt,name=vlan_list,json=vlanList,proto3" json:"vlan_list,omitempty"` - BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - PortList *Uint64List `protobuf:"bytes,3,opt,name=port_list,json=portList,proto3" json:"port_list,omitempty"` + VlanList []uint32 `protobuf:"varint,1,rep,packed,name=vlan_list,json=vlanList,proto3" json:"vlan_list,omitempty"` + BridgeId *uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3,oneof" json:"bridge_id,omitempty"` + PortList []uint64 `protobuf:"varint,3,rep,packed,name=port_list,json=portList,proto3" json:"port_list,omitempty"` } func (x *StpAttribute) Reset() { *x = StpAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[126] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25037,7 +24051,7 @@ func (x *StpAttribute) String() string { func (*StpAttribute) ProtoMessage() {} func (x *StpAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[126] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25050,10 +24064,10 @@ func (x *StpAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use StpAttribute.ProtoReflect.Descriptor instead. func (*StpAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{126} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{105} } -func (x *StpAttribute) GetVlanList() *Uint32List { +func (x *StpAttribute) GetVlanList() []uint32 { if x != nil { return x.VlanList } @@ -25061,13 +24075,13 @@ func (x *StpAttribute) GetVlanList() *Uint32List { } func (x *StpAttribute) GetBridgeId() uint64 { - if x != nil { - return x.BridgeId + if x != nil && x.BridgeId != nil { + return *x.BridgeId } return 0 } -func (x *StpAttribute) GetPortList() *Uint64List { +func (x *StpAttribute) GetPortList() []uint64 { if x != nil { return x.PortList } @@ -25079,15 +24093,15 @@ type StpPortAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Stp uint64 `protobuf:"varint,1,opt,name=stp,proto3" json:"stp,omitempty"` - BridgePort uint64 `protobuf:"varint,2,opt,name=bridge_port,json=bridgePort,proto3" json:"bridge_port,omitempty"` - State StpPortState `protobuf:"varint,3,opt,name=state,proto3,enum=lemming.dataplane.sai.StpPortState" json:"state,omitempty"` + Stp *uint64 `protobuf:"varint,1,opt,name=stp,proto3,oneof" json:"stp,omitempty"` + BridgePort *uint64 `protobuf:"varint,2,opt,name=bridge_port,json=bridgePort,proto3,oneof" json:"bridge_port,omitempty"` + State *StpPortState `protobuf:"varint,3,opt,name=state,proto3,enum=lemming.dataplane.sai.StpPortState,oneof" json:"state,omitempty"` } func (x *StpPortAttribute) Reset() { *x = StpPortAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[127] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25100,7 +24114,7 @@ func (x *StpPortAttribute) String() string { func (*StpPortAttribute) ProtoMessage() {} func (x *StpPortAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[127] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25113,55 +24127,251 @@ func (x *StpPortAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use StpPortAttribute.ProtoReflect.Descriptor instead. func (*StpPortAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{127} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{106} } func (x *StpPortAttribute) GetStp() uint64 { - if x != nil { - return x.Stp + if x != nil && x.Stp != nil { + return *x.Stp } return 0 } func (x *StpPortAttribute) GetBridgePort() uint64 { - if x != nil { - return x.BridgePort + if x != nil && x.BridgePort != nil { + return *x.BridgePort } return 0 } func (x *StpPortAttribute) GetState() StpPortState { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return StpPortState_STP_PORT_STATE_UNSPECIFIED } -type AclResourceList struct { +type SwitchAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - List []*ACLResource `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + NumberOfActivePorts *uint32 `protobuf:"varint,1,opt,name=number_of_active_ports,json=numberOfActivePorts,proto3,oneof" json:"number_of_active_ports,omitempty"` + MaxNumberOfSupportedPorts *uint32 `protobuf:"varint,2,opt,name=max_number_of_supported_ports,json=maxNumberOfSupportedPorts,proto3,oneof" json:"max_number_of_supported_ports,omitempty"` + PortList []uint64 `protobuf:"varint,3,rep,packed,name=port_list,json=portList,proto3" json:"port_list,omitempty"` + PortMaxMtu *uint32 `protobuf:"varint,4,opt,name=port_max_mtu,json=portMaxMtu,proto3,oneof" json:"port_max_mtu,omitempty"` + CpuPort *uint64 `protobuf:"varint,5,opt,name=cpu_port,json=cpuPort,proto3,oneof" json:"cpu_port,omitempty"` + MaxVirtualRouters *uint32 `protobuf:"varint,6,opt,name=max_virtual_routers,json=maxVirtualRouters,proto3,oneof" json:"max_virtual_routers,omitempty"` + FdbTableSize *uint32 `protobuf:"varint,7,opt,name=fdb_table_size,json=fdbTableSize,proto3,oneof" json:"fdb_table_size,omitempty"` + L3NeighborTableSize *uint32 `protobuf:"varint,8,opt,name=l3_neighbor_table_size,json=l3NeighborTableSize,proto3,oneof" json:"l3_neighbor_table_size,omitempty"` + L3RouteTableSize *uint32 `protobuf:"varint,9,opt,name=l3_route_table_size,json=l3RouteTableSize,proto3,oneof" json:"l3_route_table_size,omitempty"` + LagMembers *uint32 `protobuf:"varint,10,opt,name=lag_members,json=lagMembers,proto3,oneof" json:"lag_members,omitempty"` + NumberOfLags *uint32 `protobuf:"varint,11,opt,name=number_of_lags,json=numberOfLags,proto3,oneof" json:"number_of_lags,omitempty"` + EcmpMembers *uint32 `protobuf:"varint,12,opt,name=ecmp_members,json=ecmpMembers,proto3,oneof" json:"ecmp_members,omitempty"` + NumberOfEcmpGroups *uint32 `protobuf:"varint,13,opt,name=number_of_ecmp_groups,json=numberOfEcmpGroups,proto3,oneof" json:"number_of_ecmp_groups,omitempty"` + NumberOfUnicastQueues *uint32 `protobuf:"varint,14,opt,name=number_of_unicast_queues,json=numberOfUnicastQueues,proto3,oneof" json:"number_of_unicast_queues,omitempty"` + NumberOfMulticastQueues *uint32 `protobuf:"varint,15,opt,name=number_of_multicast_queues,json=numberOfMulticastQueues,proto3,oneof" json:"number_of_multicast_queues,omitempty"` + NumberOfQueues *uint32 `protobuf:"varint,16,opt,name=number_of_queues,json=numberOfQueues,proto3,oneof" json:"number_of_queues,omitempty"` + NumberOfCpuQueues *uint32 `protobuf:"varint,17,opt,name=number_of_cpu_queues,json=numberOfCpuQueues,proto3,oneof" json:"number_of_cpu_queues,omitempty"` + OnLinkRouteSupported *bool `protobuf:"varint,18,opt,name=on_link_route_supported,json=onLinkRouteSupported,proto3,oneof" json:"on_link_route_supported,omitempty"` + OperStatus *SwitchOperStatus `protobuf:"varint,19,opt,name=oper_status,json=operStatus,proto3,enum=lemming.dataplane.sai.SwitchOperStatus,oneof" json:"oper_status,omitempty"` + MaxNumberOfTempSensors *uint32 `protobuf:"varint,20,opt,name=max_number_of_temp_sensors,json=maxNumberOfTempSensors,proto3,oneof" json:"max_number_of_temp_sensors,omitempty"` + TempList []int32 `protobuf:"varint,21,rep,packed,name=temp_list,json=tempList,proto3" json:"temp_list,omitempty"` + MaxTemp *uint32 `protobuf:"varint,22,opt,name=max_temp,json=maxTemp,proto3,oneof" json:"max_temp,omitempty"` + AverageTemp *uint32 `protobuf:"varint,23,opt,name=average_temp,json=averageTemp,proto3,oneof" json:"average_temp,omitempty"` + AclTableMinimumPriority *uint32 `protobuf:"varint,24,opt,name=acl_table_minimum_priority,json=aclTableMinimumPriority,proto3,oneof" json:"acl_table_minimum_priority,omitempty"` + AclTableMaximumPriority *uint32 `protobuf:"varint,25,opt,name=acl_table_maximum_priority,json=aclTableMaximumPriority,proto3,oneof" json:"acl_table_maximum_priority,omitempty"` + AclEntryMinimumPriority *uint32 `protobuf:"varint,26,opt,name=acl_entry_minimum_priority,json=aclEntryMinimumPriority,proto3,oneof" json:"acl_entry_minimum_priority,omitempty"` + AclEntryMaximumPriority *uint32 `protobuf:"varint,27,opt,name=acl_entry_maximum_priority,json=aclEntryMaximumPriority,proto3,oneof" json:"acl_entry_maximum_priority,omitempty"` + AclTableGroupMinimumPriority *uint32 `protobuf:"varint,28,opt,name=acl_table_group_minimum_priority,json=aclTableGroupMinimumPriority,proto3,oneof" json:"acl_table_group_minimum_priority,omitempty"` + AclTableGroupMaximumPriority *uint32 `protobuf:"varint,29,opt,name=acl_table_group_maximum_priority,json=aclTableGroupMaximumPriority,proto3,oneof" json:"acl_table_group_maximum_priority,omitempty"` + FdbDstUserMetaDataRange *Uint32Range `protobuf:"bytes,30,opt,name=fdb_dst_user_meta_data_range,json=fdbDstUserMetaDataRange,proto3,oneof" json:"fdb_dst_user_meta_data_range,omitempty"` + RouteDstUserMetaDataRange *Uint32Range `protobuf:"bytes,31,opt,name=route_dst_user_meta_data_range,json=routeDstUserMetaDataRange,proto3,oneof" json:"route_dst_user_meta_data_range,omitempty"` + NeighborDstUserMetaDataRange *Uint32Range `protobuf:"bytes,32,opt,name=neighbor_dst_user_meta_data_range,json=neighborDstUserMetaDataRange,proto3,oneof" json:"neighbor_dst_user_meta_data_range,omitempty"` + PortUserMetaDataRange *Uint32Range `protobuf:"bytes,33,opt,name=port_user_meta_data_range,json=portUserMetaDataRange,proto3,oneof" json:"port_user_meta_data_range,omitempty"` + VlanUserMetaDataRange *Uint32Range `protobuf:"bytes,34,opt,name=vlan_user_meta_data_range,json=vlanUserMetaDataRange,proto3,oneof" json:"vlan_user_meta_data_range,omitempty"` + AclUserMetaDataRange *Uint32Range `protobuf:"bytes,35,opt,name=acl_user_meta_data_range,json=aclUserMetaDataRange,proto3,oneof" json:"acl_user_meta_data_range,omitempty"` + AclUserTrapIdRange *Uint32Range `protobuf:"bytes,36,opt,name=acl_user_trap_id_range,json=aclUserTrapIdRange,proto3,oneof" json:"acl_user_trap_id_range,omitempty"` + DefaultVlanId *uint64 `protobuf:"varint,37,opt,name=default_vlan_id,json=defaultVlanId,proto3,oneof" json:"default_vlan_id,omitempty"` + DefaultStpInstId *uint64 `protobuf:"varint,38,opt,name=default_stp_inst_id,json=defaultStpInstId,proto3,oneof" json:"default_stp_inst_id,omitempty"` + MaxStpInstance *uint32 `protobuf:"varint,39,opt,name=max_stp_instance,json=maxStpInstance,proto3,oneof" json:"max_stp_instance,omitempty"` + DefaultVirtualRouterId *uint64 `protobuf:"varint,40,opt,name=default_virtual_router_id,json=defaultVirtualRouterId,proto3,oneof" json:"default_virtual_router_id,omitempty"` + DefaultOverrideVirtualRouterId *uint64 `protobuf:"varint,41,opt,name=default_override_virtual_router_id,json=defaultOverrideVirtualRouterId,proto3,oneof" json:"default_override_virtual_router_id,omitempty"` + Default_1QBridgeId *uint64 `protobuf:"varint,42,opt,name=default_1q_bridge_id,json=default1qBridgeId,proto3,oneof" json:"default_1q_bridge_id,omitempty"` + IngressAcl *uint64 `protobuf:"varint,43,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,44,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + QosMaxNumberOfTrafficClasses *uint32 `protobuf:"varint,45,opt,name=qos_max_number_of_traffic_classes,json=qosMaxNumberOfTrafficClasses,proto3,oneof" json:"qos_max_number_of_traffic_classes,omitempty"` + QosMaxNumberOfSchedulerGroupHierarchyLevels *uint32 `protobuf:"varint,46,opt,name=qos_max_number_of_scheduler_group_hierarchy_levels,json=qosMaxNumberOfSchedulerGroupHierarchyLevels,proto3,oneof" json:"qos_max_number_of_scheduler_group_hierarchy_levels,omitempty"` + QosMaxNumberOfSchedulerGroupsPerHierarchyLevel []uint32 `protobuf:"varint,47,rep,packed,name=qos_max_number_of_scheduler_groups_per_hierarchy_level,json=qosMaxNumberOfSchedulerGroupsPerHierarchyLevel,proto3" json:"qos_max_number_of_scheduler_groups_per_hierarchy_level,omitempty"` + QosMaxNumberOfChildsPerSchedulerGroup *uint32 `protobuf:"varint,48,opt,name=qos_max_number_of_childs_per_scheduler_group,json=qosMaxNumberOfChildsPerSchedulerGroup,proto3,oneof" json:"qos_max_number_of_childs_per_scheduler_group,omitempty"` + TotalBufferSize *uint64 `protobuf:"varint,49,opt,name=total_buffer_size,json=totalBufferSize,proto3,oneof" json:"total_buffer_size,omitempty"` + IngressBufferPoolNum *uint32 `protobuf:"varint,50,opt,name=ingress_buffer_pool_num,json=ingressBufferPoolNum,proto3,oneof" json:"ingress_buffer_pool_num,omitempty"` + EgressBufferPoolNum *uint32 `protobuf:"varint,51,opt,name=egress_buffer_pool_num,json=egressBufferPoolNum,proto3,oneof" json:"egress_buffer_pool_num,omitempty"` + AvailableIpv4RouteEntry *uint32 `protobuf:"varint,52,opt,name=available_ipv4_route_entry,json=availableIpv4RouteEntry,proto3,oneof" json:"available_ipv4_route_entry,omitempty"` + AvailableIpv6RouteEntry *uint32 `protobuf:"varint,53,opt,name=available_ipv6_route_entry,json=availableIpv6RouteEntry,proto3,oneof" json:"available_ipv6_route_entry,omitempty"` + AvailableIpv4NexthopEntry *uint32 `protobuf:"varint,54,opt,name=available_ipv4_nexthop_entry,json=availableIpv4NexthopEntry,proto3,oneof" json:"available_ipv4_nexthop_entry,omitempty"` + AvailableIpv6NexthopEntry *uint32 `protobuf:"varint,55,opt,name=available_ipv6_nexthop_entry,json=availableIpv6NexthopEntry,proto3,oneof" json:"available_ipv6_nexthop_entry,omitempty"` + AvailableIpv4NeighborEntry *uint32 `protobuf:"varint,56,opt,name=available_ipv4_neighbor_entry,json=availableIpv4NeighborEntry,proto3,oneof" json:"available_ipv4_neighbor_entry,omitempty"` + AvailableIpv6NeighborEntry *uint32 `protobuf:"varint,57,opt,name=available_ipv6_neighbor_entry,json=availableIpv6NeighborEntry,proto3,oneof" json:"available_ipv6_neighbor_entry,omitempty"` + AvailableNextHopGroupEntry *uint32 `protobuf:"varint,58,opt,name=available_next_hop_group_entry,json=availableNextHopGroupEntry,proto3,oneof" json:"available_next_hop_group_entry,omitempty"` + AvailableNextHopGroupMemberEntry *uint32 `protobuf:"varint,59,opt,name=available_next_hop_group_member_entry,json=availableNextHopGroupMemberEntry,proto3,oneof" json:"available_next_hop_group_member_entry,omitempty"` + AvailableFdbEntry *uint32 `protobuf:"varint,60,opt,name=available_fdb_entry,json=availableFdbEntry,proto3,oneof" json:"available_fdb_entry,omitempty"` + AvailableL2McEntry *uint32 `protobuf:"varint,61,opt,name=available_l2mc_entry,json=availableL2mcEntry,proto3,oneof" json:"available_l2mc_entry,omitempty"` + AvailableIpmcEntry *uint32 `protobuf:"varint,62,opt,name=available_ipmc_entry,json=availableIpmcEntry,proto3,oneof" json:"available_ipmc_entry,omitempty"` + AvailableSnatEntry *uint32 `protobuf:"varint,63,opt,name=available_snat_entry,json=availableSnatEntry,proto3,oneof" json:"available_snat_entry,omitempty"` + AvailableDnatEntry *uint32 `protobuf:"varint,64,opt,name=available_dnat_entry,json=availableDnatEntry,proto3,oneof" json:"available_dnat_entry,omitempty"` + AvailableDoubleNatEntry *uint32 `protobuf:"varint,65,opt,name=available_double_nat_entry,json=availableDoubleNatEntry,proto3,oneof" json:"available_double_nat_entry,omitempty"` + AvailableAclTable []*ACLResource `protobuf:"bytes,66,rep,name=available_acl_table,json=availableAclTable,proto3" json:"available_acl_table,omitempty"` + AvailableAclTableGroup []*ACLResource `protobuf:"bytes,67,rep,name=available_acl_table_group,json=availableAclTableGroup,proto3" json:"available_acl_table_group,omitempty"` + AvailableMySidEntry *uint32 `protobuf:"varint,68,opt,name=available_my_sid_entry,json=availableMySidEntry,proto3,oneof" json:"available_my_sid_entry,omitempty"` + DefaultTrapGroup *uint64 `protobuf:"varint,69,opt,name=default_trap_group,json=defaultTrapGroup,proto3,oneof" json:"default_trap_group,omitempty"` + EcmpHash *uint64 `protobuf:"varint,70,opt,name=ecmp_hash,json=ecmpHash,proto3,oneof" json:"ecmp_hash,omitempty"` + LagHash *uint64 `protobuf:"varint,71,opt,name=lag_hash,json=lagHash,proto3,oneof" json:"lag_hash,omitempty"` + RestartWarm *bool `protobuf:"varint,72,opt,name=restart_warm,json=restartWarm,proto3,oneof" json:"restart_warm,omitempty"` + WarmRecover *bool `protobuf:"varint,73,opt,name=warm_recover,json=warmRecover,proto3,oneof" json:"warm_recover,omitempty"` + RestartType *SwitchRestartType `protobuf:"varint,74,opt,name=restart_type,json=restartType,proto3,enum=lemming.dataplane.sai.SwitchRestartType,oneof" json:"restart_type,omitempty"` + MinPlannedRestartInterval *uint32 `protobuf:"varint,75,opt,name=min_planned_restart_interval,json=minPlannedRestartInterval,proto3,oneof" json:"min_planned_restart_interval,omitempty"` + NvStorageSize *uint64 `protobuf:"varint,76,opt,name=nv_storage_size,json=nvStorageSize,proto3,oneof" json:"nv_storage_size,omitempty"` + MaxAclActionCount *uint32 `protobuf:"varint,77,opt,name=max_acl_action_count,json=maxAclActionCount,proto3,oneof" json:"max_acl_action_count,omitempty"` + MaxAclRangeCount *uint32 `protobuf:"varint,78,opt,name=max_acl_range_count,json=maxAclRangeCount,proto3,oneof" json:"max_acl_range_count,omitempty"` + AclCapability *ACLCapability `protobuf:"bytes,79,opt,name=acl_capability,json=aclCapability,proto3,oneof" json:"acl_capability,omitempty"` + McastSnoopingCapability *SwitchMcastSnoopingCapability `protobuf:"varint,80,opt,name=mcast_snooping_capability,json=mcastSnoopingCapability,proto3,enum=lemming.dataplane.sai.SwitchMcastSnoopingCapability,oneof" json:"mcast_snooping_capability,omitempty"` + SwitchingMode *SwitchSwitchingMode `protobuf:"varint,81,opt,name=switching_mode,json=switchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switching_mode,omitempty"` + BcastCpuFloodEnable *bool `protobuf:"varint,82,opt,name=bcast_cpu_flood_enable,json=bcastCpuFloodEnable,proto3,oneof" json:"bcast_cpu_flood_enable,omitempty"` + McastCpuFloodEnable *bool `protobuf:"varint,83,opt,name=mcast_cpu_flood_enable,json=mcastCpuFloodEnable,proto3,oneof" json:"mcast_cpu_flood_enable,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,84,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,85,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + FdbAgingTime *uint32 `protobuf:"varint,86,opt,name=fdb_aging_time,json=fdbAgingTime,proto3,oneof" json:"fdb_aging_time,omitempty"` + FdbUnicastMissPacketAction *PacketAction `protobuf:"varint,87,opt,name=fdb_unicast_miss_packet_action,json=fdbUnicastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_unicast_miss_packet_action,omitempty"` + FdbBroadcastMissPacketAction *PacketAction `protobuf:"varint,88,opt,name=fdb_broadcast_miss_packet_action,json=fdbBroadcastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_broadcast_miss_packet_action,omitempty"` + FdbMulticastMissPacketAction *PacketAction `protobuf:"varint,89,opt,name=fdb_multicast_miss_packet_action,json=fdbMulticastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_multicast_miss_packet_action,omitempty"` + EcmpDefaultHashAlgorithm *HashAlgorithm `protobuf:"varint,90,opt,name=ecmp_default_hash_algorithm,json=ecmpDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm,oneof" json:"ecmp_default_hash_algorithm,omitempty"` + EcmpDefaultHashSeed *uint32 `protobuf:"varint,91,opt,name=ecmp_default_hash_seed,json=ecmpDefaultHashSeed,proto3,oneof" json:"ecmp_default_hash_seed,omitempty"` + EcmpDefaultHashOffset *uint32 `protobuf:"varint,92,opt,name=ecmp_default_hash_offset,json=ecmpDefaultHashOffset,proto3,oneof" json:"ecmp_default_hash_offset,omitempty"` + EcmpDefaultSymmetricHash *bool `protobuf:"varint,93,opt,name=ecmp_default_symmetric_hash,json=ecmpDefaultSymmetricHash,proto3,oneof" json:"ecmp_default_symmetric_hash,omitempty"` + EcmpHashIpv4 *uint64 `protobuf:"varint,94,opt,name=ecmp_hash_ipv4,json=ecmpHashIpv4,proto3,oneof" json:"ecmp_hash_ipv4,omitempty"` + EcmpHashIpv4InIpv4 *uint64 `protobuf:"varint,95,opt,name=ecmp_hash_ipv4_in_ipv4,json=ecmpHashIpv4InIpv4,proto3,oneof" json:"ecmp_hash_ipv4_in_ipv4,omitempty"` + EcmpHashIpv6 *uint64 `protobuf:"varint,96,opt,name=ecmp_hash_ipv6,json=ecmpHashIpv6,proto3,oneof" json:"ecmp_hash_ipv6,omitempty"` + LagDefaultHashAlgorithm *HashAlgorithm `protobuf:"varint,97,opt,name=lag_default_hash_algorithm,json=lagDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm,oneof" json:"lag_default_hash_algorithm,omitempty"` + LagDefaultHashSeed *uint32 `protobuf:"varint,98,opt,name=lag_default_hash_seed,json=lagDefaultHashSeed,proto3,oneof" json:"lag_default_hash_seed,omitempty"` + LagDefaultHashOffset *uint32 `protobuf:"varint,99,opt,name=lag_default_hash_offset,json=lagDefaultHashOffset,proto3,oneof" json:"lag_default_hash_offset,omitempty"` + LagDefaultSymmetricHash *bool `protobuf:"varint,100,opt,name=lag_default_symmetric_hash,json=lagDefaultSymmetricHash,proto3,oneof" json:"lag_default_symmetric_hash,omitempty"` + LagHashIpv4 *uint64 `protobuf:"varint,101,opt,name=lag_hash_ipv4,json=lagHashIpv4,proto3,oneof" json:"lag_hash_ipv4,omitempty"` + LagHashIpv4InIpv4 *uint64 `protobuf:"varint,102,opt,name=lag_hash_ipv4_in_ipv4,json=lagHashIpv4InIpv4,proto3,oneof" json:"lag_hash_ipv4_in_ipv4,omitempty"` + LagHashIpv6 *uint64 `protobuf:"varint,103,opt,name=lag_hash_ipv6,json=lagHashIpv6,proto3,oneof" json:"lag_hash_ipv6,omitempty"` + CounterRefreshInterval *uint32 `protobuf:"varint,104,opt,name=counter_refresh_interval,json=counterRefreshInterval,proto3,oneof" json:"counter_refresh_interval,omitempty"` + QosDefaultTc *uint32 `protobuf:"varint,105,opt,name=qos_default_tc,json=qosDefaultTc,proto3,oneof" json:"qos_default_tc,omitempty"` + QosDot1PToTcMap *uint64 `protobuf:"varint,106,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3,oneof" json:"qos_dot1p_to_tc_map,omitempty"` + QosDot1PToColorMap *uint64 `protobuf:"varint,107,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3,oneof" json:"qos_dot1p_to_color_map,omitempty"` + QosDscpToTcMap *uint64 `protobuf:"varint,108,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3,oneof" json:"qos_dscp_to_tc_map,omitempty"` + QosDscpToColorMap *uint64 `protobuf:"varint,109,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3,oneof" json:"qos_dscp_to_color_map,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,110,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` + QosTcAndColorToDot1PMap *uint64 `protobuf:"varint,111,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3,oneof" json:"qos_tc_and_color_to_dot1p_map,omitempty"` + QosTcAndColorToDscpMap *uint64 `protobuf:"varint,112,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3,oneof" json:"qos_tc_and_color_to_dscp_map,omitempty"` + SwitchShellEnable *bool `protobuf:"varint,113,opt,name=switch_shell_enable,json=switchShellEnable,proto3,oneof" json:"switch_shell_enable,omitempty"` + SwitchProfileId *uint32 `protobuf:"varint,114,opt,name=switch_profile_id,json=switchProfileId,proto3,oneof" json:"switch_profile_id,omitempty"` + SwitchHardwareInfo []int32 `protobuf:"varint,115,rep,packed,name=switch_hardware_info,json=switchHardwareInfo,proto3" json:"switch_hardware_info,omitempty"` + FirmwarePathName []int32 `protobuf:"varint,116,rep,packed,name=firmware_path_name,json=firmwarePathName,proto3" json:"firmware_path_name,omitempty"` + InitSwitch *bool `protobuf:"varint,117,opt,name=init_switch,json=initSwitch,proto3,oneof" json:"init_switch,omitempty"` + FastApiEnable *bool `protobuf:"varint,118,opt,name=fast_api_enable,json=fastApiEnable,proto3,oneof" json:"fast_api_enable,omitempty"` + MirrorTc *uint32 `protobuf:"varint,119,opt,name=mirror_tc,json=mirrorTc,proto3,oneof" json:"mirror_tc,omitempty"` + AclStageIngress *ACLCapability `protobuf:"bytes,120,opt,name=acl_stage_ingress,json=aclStageIngress,proto3,oneof" json:"acl_stage_ingress,omitempty"` + AclStageEgress *ACLCapability `protobuf:"bytes,121,opt,name=acl_stage_egress,json=aclStageEgress,proto3,oneof" json:"acl_stage_egress,omitempty"` + Srv6MaxSidDepth *uint32 `protobuf:"varint,122,opt,name=srv6_max_sid_depth,json=srv6MaxSidDepth,proto3,oneof" json:"srv6_max_sid_depth,omitempty"` + Srv6TlvType []TlvType `protobuf:"varint,123,rep,packed,name=srv6_tlv_type,json=srv6TlvType,proto3,enum=lemming.dataplane.sai.TlvType" json:"srv6_tlv_type,omitempty"` + QosNumLosslessQueues *uint32 `protobuf:"varint,124,opt,name=qos_num_lossless_queues,json=qosNumLosslessQueues,proto3,oneof" json:"qos_num_lossless_queues,omitempty"` + PfcDlrPacketAction *PacketAction `protobuf:"varint,125,opt,name=pfc_dlr_packet_action,json=pfcDlrPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"pfc_dlr_packet_action,omitempty"` + PfcTcDldIntervalRange *Uint32Range `protobuf:"bytes,126,opt,name=pfc_tc_dld_interval_range,json=pfcTcDldIntervalRange,proto3,oneof" json:"pfc_tc_dld_interval_range,omitempty"` + PfcTcDldInterval []*UintMap `protobuf:"bytes,127,rep,name=pfc_tc_dld_interval,json=pfcTcDldInterval,proto3" json:"pfc_tc_dld_interval,omitempty"` + PfcTcDlrIntervalRange *Uint32Range `protobuf:"bytes,128,opt,name=pfc_tc_dlr_interval_range,json=pfcTcDlrIntervalRange,proto3,oneof" json:"pfc_tc_dlr_interval_range,omitempty"` + PfcTcDlrInterval []*UintMap `protobuf:"bytes,129,rep,name=pfc_tc_dlr_interval,json=pfcTcDlrInterval,proto3" json:"pfc_tc_dlr_interval,omitempty"` + SupportedProtectedObjectType []ObjectType `protobuf:"varint,130,rep,packed,name=supported_protected_object_type,json=supportedProtectedObjectType,proto3,enum=lemming.dataplane.sai.ObjectType" json:"supported_protected_object_type,omitempty"` + TpidOuterVlan *uint32 `protobuf:"varint,131,opt,name=tpid_outer_vlan,json=tpidOuterVlan,proto3,oneof" json:"tpid_outer_vlan,omitempty"` + TpidInnerVlan *uint32 `protobuf:"varint,132,opt,name=tpid_inner_vlan,json=tpidInnerVlan,proto3,oneof" json:"tpid_inner_vlan,omitempty"` + CrcCheckEnable *bool `protobuf:"varint,133,opt,name=crc_check_enable,json=crcCheckEnable,proto3,oneof" json:"crc_check_enable,omitempty"` + CrcRecalculationEnable *bool `protobuf:"varint,134,opt,name=crc_recalculation_enable,json=crcRecalculationEnable,proto3,oneof" json:"crc_recalculation_enable,omitempty"` + NumberOfBfdSession *uint32 `protobuf:"varint,135,opt,name=number_of_bfd_session,json=numberOfBfdSession,proto3,oneof" json:"number_of_bfd_session,omitempty"` + MaxBfdSession *uint32 `protobuf:"varint,136,opt,name=max_bfd_session,json=maxBfdSession,proto3,oneof" json:"max_bfd_session,omitempty"` + SupportedIpv4BfdSessionOffloadType []BfdSessionOffloadType `protobuf:"varint,137,rep,packed,name=supported_ipv4_bfd_session_offload_type,json=supportedIpv4BfdSessionOffloadType,proto3,enum=lemming.dataplane.sai.BfdSessionOffloadType" json:"supported_ipv4_bfd_session_offload_type,omitempty"` + SupportedIpv6BfdSessionOffloadType []BfdSessionOffloadType `protobuf:"varint,138,rep,packed,name=supported_ipv6_bfd_session_offload_type,json=supportedIpv6BfdSessionOffloadType,proto3,enum=lemming.dataplane.sai.BfdSessionOffloadType" json:"supported_ipv6_bfd_session_offload_type,omitempty"` + MinBfdRx *uint32 `protobuf:"varint,139,opt,name=min_bfd_rx,json=minBfdRx,proto3,oneof" json:"min_bfd_rx,omitempty"` + MinBfdTx *uint32 `protobuf:"varint,140,opt,name=min_bfd_tx,json=minBfdTx,proto3,oneof" json:"min_bfd_tx,omitempty"` + EcnEctThresholdEnable *bool `protobuf:"varint,141,opt,name=ecn_ect_threshold_enable,json=ecnEctThresholdEnable,proto3,oneof" json:"ecn_ect_threshold_enable,omitempty"` + VxlanDefaultRouterMac []byte `protobuf:"bytes,142,opt,name=vxlan_default_router_mac,json=vxlanDefaultRouterMac,proto3,oneof" json:"vxlan_default_router_mac,omitempty"` + VxlanDefaultPort *uint32 `protobuf:"varint,143,opt,name=vxlan_default_port,json=vxlanDefaultPort,proto3,oneof" json:"vxlan_default_port,omitempty"` + MaxMirrorSession *uint32 `protobuf:"varint,144,opt,name=max_mirror_session,json=maxMirrorSession,proto3,oneof" json:"max_mirror_session,omitempty"` + MaxSampledMirrorSession *uint32 `protobuf:"varint,145,opt,name=max_sampled_mirror_session,json=maxSampledMirrorSession,proto3,oneof" json:"max_sampled_mirror_session,omitempty"` + SupportedExtendedStatsMode []StatsMode `protobuf:"varint,146,rep,packed,name=supported_extended_stats_mode,json=supportedExtendedStatsMode,proto3,enum=lemming.dataplane.sai.StatsMode" json:"supported_extended_stats_mode,omitempty"` + UninitDataPlaneOnRemoval *bool `protobuf:"varint,147,opt,name=uninit_data_plane_on_removal,json=uninitDataPlaneOnRemoval,proto3,oneof" json:"uninit_data_plane_on_removal,omitempty"` + TamObjectId []uint64 `protobuf:"varint,148,rep,packed,name=tam_object_id,json=tamObjectId,proto3" json:"tam_object_id,omitempty"` + SupportedObjectTypeList []ObjectType `protobuf:"varint,149,rep,packed,name=supported_object_type_list,json=supportedObjectTypeList,proto3,enum=lemming.dataplane.sai.ObjectType" json:"supported_object_type_list,omitempty"` + PreShutdown *bool `protobuf:"varint,150,opt,name=pre_shutdown,json=preShutdown,proto3,oneof" json:"pre_shutdown,omitempty"` + NatZoneCounterObjectId *uint64 `protobuf:"varint,151,opt,name=nat_zone_counter_object_id,json=natZoneCounterObjectId,proto3,oneof" json:"nat_zone_counter_object_id,omitempty"` + NatEnable *bool `protobuf:"varint,152,opt,name=nat_enable,json=natEnable,proto3,oneof" json:"nat_enable,omitempty"` + HardwareAccessBus *SwitchHardwareAccessBus `protobuf:"varint,153,opt,name=hardware_access_bus,json=hardwareAccessBus,proto3,enum=lemming.dataplane.sai.SwitchHardwareAccessBus,oneof" json:"hardware_access_bus,omitempty"` + PlatfromContext *uint64 `protobuf:"varint,154,opt,name=platfrom_context,json=platfromContext,proto3,oneof" json:"platfrom_context,omitempty"` + FirmwareDownloadBroadcast *bool `protobuf:"varint,155,opt,name=firmware_download_broadcast,json=firmwareDownloadBroadcast,proto3,oneof" json:"firmware_download_broadcast,omitempty"` + FirmwareLoadMethod *SwitchFirmwareLoadMethod `protobuf:"varint,156,opt,name=firmware_load_method,json=firmwareLoadMethod,proto3,enum=lemming.dataplane.sai.SwitchFirmwareLoadMethod,oneof" json:"firmware_load_method,omitempty"` + FirmwareLoadType *SwitchFirmwareLoadType `protobuf:"varint,157,opt,name=firmware_load_type,json=firmwareLoadType,proto3,enum=lemming.dataplane.sai.SwitchFirmwareLoadType,oneof" json:"firmware_load_type,omitempty"` + FirmwareDownloadExecute *bool `protobuf:"varint,158,opt,name=firmware_download_execute,json=firmwareDownloadExecute,proto3,oneof" json:"firmware_download_execute,omitempty"` + FirmwareBroadcastStop *bool `protobuf:"varint,159,opt,name=firmware_broadcast_stop,json=firmwareBroadcastStop,proto3,oneof" json:"firmware_broadcast_stop,omitempty"` + FirmwareVerifyAndInitSwitch *bool `protobuf:"varint,160,opt,name=firmware_verify_and_init_switch,json=firmwareVerifyAndInitSwitch,proto3,oneof" json:"firmware_verify_and_init_switch,omitempty"` + FirmwareStatus *bool `protobuf:"varint,161,opt,name=firmware_status,json=firmwareStatus,proto3,oneof" json:"firmware_status,omitempty"` + FirmwareMajorVersion *uint32 `protobuf:"varint,162,opt,name=firmware_major_version,json=firmwareMajorVersion,proto3,oneof" json:"firmware_major_version,omitempty"` + FirmwareMinorVersion *uint32 `protobuf:"varint,163,opt,name=firmware_minor_version,json=firmwareMinorVersion,proto3,oneof" json:"firmware_minor_version,omitempty"` + PortConnectorList []uint64 `protobuf:"varint,164,rep,packed,name=port_connector_list,json=portConnectorList,proto3" json:"port_connector_list,omitempty"` + PropogatePortStateFromLineToSystemPortSupport *bool `protobuf:"varint,165,opt,name=propogate_port_state_from_line_to_system_port_support,json=propogatePortStateFromLineToSystemPortSupport,proto3,oneof" json:"propogate_port_state_from_line_to_system_port_support,omitempty"` + Type *SwitchType `protobuf:"varint,166,opt,name=type,proto3,enum=lemming.dataplane.sai.SwitchType,oneof" json:"type,omitempty"` + MacsecObjectList []uint64 `protobuf:"varint,167,rep,packed,name=macsec_object_list,json=macsecObjectList,proto3" json:"macsec_object_list,omitempty"` + QosMplsExpToTcMap *uint64 `protobuf:"varint,168,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3,oneof" json:"qos_mpls_exp_to_tc_map,omitempty"` + QosMplsExpToColorMap *uint64 `protobuf:"varint,169,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3,oneof" json:"qos_mpls_exp_to_color_map,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,170,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` + SwitchId *uint32 `protobuf:"varint,171,opt,name=switch_id,json=switchId,proto3,oneof" json:"switch_id,omitempty"` + MaxSystemCores *uint32 `protobuf:"varint,172,opt,name=max_system_cores,json=maxSystemCores,proto3,oneof" json:"max_system_cores,omitempty"` + SystemPortConfigList []*SystemPortConfig `protobuf:"bytes,173,rep,name=system_port_config_list,json=systemPortConfigList,proto3" json:"system_port_config_list,omitempty"` + NumberOfSystemPorts *uint32 `protobuf:"varint,174,opt,name=number_of_system_ports,json=numberOfSystemPorts,proto3,oneof" json:"number_of_system_ports,omitempty"` + SystemPortList []uint64 `protobuf:"varint,175,rep,packed,name=system_port_list,json=systemPortList,proto3" json:"system_port_list,omitempty"` + NumberOfFabricPorts *uint32 `protobuf:"varint,176,opt,name=number_of_fabric_ports,json=numberOfFabricPorts,proto3,oneof" json:"number_of_fabric_ports,omitempty"` + FabricPortList []uint64 `protobuf:"varint,177,rep,packed,name=fabric_port_list,json=fabricPortList,proto3" json:"fabric_port_list,omitempty"` + PacketDmaMemoryPoolSize *uint32 `protobuf:"varint,178,opt,name=packet_dma_memory_pool_size,json=packetDmaMemoryPoolSize,proto3,oneof" json:"packet_dma_memory_pool_size,omitempty"` + FailoverConfigMode *SwitchFailoverConfigMode `protobuf:"varint,179,opt,name=failover_config_mode,json=failoverConfigMode,proto3,enum=lemming.dataplane.sai.SwitchFailoverConfigMode,oneof" json:"failover_config_mode,omitempty"` + SupportedFailoverMode *bool `protobuf:"varint,180,opt,name=supported_failover_mode,json=supportedFailoverMode,proto3,oneof" json:"supported_failover_mode,omitempty"` + TunnelObjectsList []uint64 `protobuf:"varint,181,rep,packed,name=tunnel_objects_list,json=tunnelObjectsList,proto3" json:"tunnel_objects_list,omitempty"` + PacketAvailableDmaMemoryPoolSize *uint32 `protobuf:"varint,182,opt,name=packet_available_dma_memory_pool_size,json=packetAvailableDmaMemoryPoolSize,proto3,oneof" json:"packet_available_dma_memory_pool_size,omitempty"` + PreIngressAcl *uint64 `protobuf:"varint,183,opt,name=pre_ingress_acl,json=preIngressAcl,proto3,oneof" json:"pre_ingress_acl,omitempty"` + AvailableSnaptEntry *uint32 `protobuf:"varint,184,opt,name=available_snapt_entry,json=availableSnaptEntry,proto3,oneof" json:"available_snapt_entry,omitempty"` + AvailableDnaptEntry *uint32 `protobuf:"varint,185,opt,name=available_dnapt_entry,json=availableDnaptEntry,proto3,oneof" json:"available_dnapt_entry,omitempty"` + AvailableDoubleNaptEntry *uint32 `protobuf:"varint,186,opt,name=available_double_napt_entry,json=availableDoubleNaptEntry,proto3,oneof" json:"available_double_napt_entry,omitempty"` + SlaveMdioAddrList []uint32 `protobuf:"varint,187,rep,packed,name=slave_mdio_addr_list,json=slaveMdioAddrList,proto3" json:"slave_mdio_addr_list,omitempty"` + MyMacTableMinimumPriority *uint32 `protobuf:"varint,188,opt,name=my_mac_table_minimum_priority,json=myMacTableMinimumPriority,proto3,oneof" json:"my_mac_table_minimum_priority,omitempty"` + MyMacTableMaximumPriority *uint32 `protobuf:"varint,189,opt,name=my_mac_table_maximum_priority,json=myMacTableMaximumPriority,proto3,oneof" json:"my_mac_table_maximum_priority,omitempty"` + MyMacList []uint64 `protobuf:"varint,190,rep,packed,name=my_mac_list,json=myMacList,proto3" json:"my_mac_list,omitempty"` + InstalledMyMacEntries *uint32 `protobuf:"varint,191,opt,name=installed_my_mac_entries,json=installedMyMacEntries,proto3,oneof" json:"installed_my_mac_entries,omitempty"` + AvailableMyMacEntries *uint32 `protobuf:"varint,192,opt,name=available_my_mac_entries,json=availableMyMacEntries,proto3,oneof" json:"available_my_mac_entries,omitempty"` + MaxNumberOfForwardingClasses *uint32 `protobuf:"varint,193,opt,name=max_number_of_forwarding_classes,json=maxNumberOfForwardingClasses,proto3,oneof" json:"max_number_of_forwarding_classes,omitempty"` + QosDscpToForwardingClassMap *uint64 `protobuf:"varint,194,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3,oneof" json:"qos_dscp_to_forwarding_class_map,omitempty"` + QosMplsExpToForwardingClassMap *uint64 `protobuf:"varint,195,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3,oneof" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` + IpsecObjectId *uint64 `protobuf:"varint,196,opt,name=ipsec_object_id,json=ipsecObjectId,proto3,oneof" json:"ipsec_object_id,omitempty"` + IpsecSaTagTpid *uint32 `protobuf:"varint,197,opt,name=ipsec_sa_tag_tpid,json=ipsecSaTagTpid,proto3,oneof" json:"ipsec_sa_tag_tpid,omitempty"` } -func (x *AclResourceList) Reset() { - *x = AclResourceList{} +func (x *SwitchAttribute) Reset() { + *x = SwitchAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[128] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AclResourceList) String() string { +func (x *SwitchAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AclResourceList) ProtoMessage() {} +func (*SwitchAttribute) ProtoMessage() {} -func (x *AclResourceList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[128] +func (x *SwitchAttribute) ProtoReflect() protoreflect.Message { + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25172,1066 +24382,588 @@ func (x *AclResourceList) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AclResourceList.ProtoReflect.Descriptor instead. -func (*AclResourceList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{128} +// Deprecated: Use SwitchAttribute.ProtoReflect.Descriptor instead. +func (*SwitchAttribute) Descriptor() ([]byte, []int) { + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{107} } -func (x *AclResourceList) GetList() []*ACLResource { - if x != nil { - return x.List +func (x *SwitchAttribute) GetNumberOfActivePorts() uint32 { + if x != nil && x.NumberOfActivePorts != nil { + return *x.NumberOfActivePorts } - return nil + return 0 } -type TlvTypeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []TlvType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.TlvType" json:"list,omitempty"` +func (x *SwitchAttribute) GetMaxNumberOfSupportedPorts() uint32 { + if x != nil && x.MaxNumberOfSupportedPorts != nil { + return *x.MaxNumberOfSupportedPorts + } + return 0 } -func (x *TlvTypeList) Reset() { - *x = TlvTypeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[129] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *SwitchAttribute) GetPortList() []uint64 { + if x != nil { + return x.PortList } + return nil } -func (x *TlvTypeList) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *SwitchAttribute) GetPortMaxMtu() uint32 { + if x != nil && x.PortMaxMtu != nil { + return *x.PortMaxMtu + } + return 0 } -func (*TlvTypeList) ProtoMessage() {} - -func (x *TlvTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[129] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *SwitchAttribute) GetCpuPort() uint64 { + if x != nil && x.CpuPort != nil { + return *x.CpuPort } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use TlvTypeList.ProtoReflect.Descriptor instead. -func (*TlvTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{129} +func (x *SwitchAttribute) GetMaxVirtualRouters() uint32 { + if x != nil && x.MaxVirtualRouters != nil { + return *x.MaxVirtualRouters + } + return 0 } -func (x *TlvTypeList) GetList() []TlvType { - if x != nil { - return x.List +func (x *SwitchAttribute) GetFdbTableSize() uint32 { + if x != nil && x.FdbTableSize != nil { + return *x.FdbTableSize } - return nil + return 0 } -type ObjectTypeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []ObjectType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.ObjectType" json:"list,omitempty"` +func (x *SwitchAttribute) GetL3NeighborTableSize() uint32 { + if x != nil && x.L3NeighborTableSize != nil { + return *x.L3NeighborTableSize + } + return 0 } -func (x *ObjectTypeList) Reset() { - *x = ObjectTypeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[130] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *SwitchAttribute) GetL3RouteTableSize() uint32 { + if x != nil && x.L3RouteTableSize != nil { + return *x.L3RouteTableSize } + return 0 } -func (x *ObjectTypeList) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *SwitchAttribute) GetLagMembers() uint32 { + if x != nil && x.LagMembers != nil { + return *x.LagMembers + } + return 0 } -func (*ObjectTypeList) ProtoMessage() {} - -func (x *ObjectTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[130] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *SwitchAttribute) GetNumberOfLags() uint32 { + if x != nil && x.NumberOfLags != nil { + return *x.NumberOfLags } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ObjectTypeList.ProtoReflect.Descriptor instead. -func (*ObjectTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{130} +func (x *SwitchAttribute) GetEcmpMembers() uint32 { + if x != nil && x.EcmpMembers != nil { + return *x.EcmpMembers + } + return 0 } -func (x *ObjectTypeList) GetList() []ObjectType { - if x != nil { - return x.List +func (x *SwitchAttribute) GetNumberOfEcmpGroups() uint32 { + if x != nil && x.NumberOfEcmpGroups != nil { + return *x.NumberOfEcmpGroups } - return nil + return 0 } -type BfdSessionOffloadTypeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *SwitchAttribute) GetNumberOfUnicastQueues() uint32 { + if x != nil && x.NumberOfUnicastQueues != nil { + return *x.NumberOfUnicastQueues + } + return 0 +} - List []BfdSessionOffloadType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.BfdSessionOffloadType" json:"list,omitempty"` +func (x *SwitchAttribute) GetNumberOfMulticastQueues() uint32 { + if x != nil && x.NumberOfMulticastQueues != nil { + return *x.NumberOfMulticastQueues + } + return 0 } -func (x *BfdSessionOffloadTypeList) Reset() { - *x = BfdSessionOffloadTypeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[131] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *SwitchAttribute) GetNumberOfQueues() uint32 { + if x != nil && x.NumberOfQueues != nil { + return *x.NumberOfQueues } + return 0 } -func (x *BfdSessionOffloadTypeList) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *SwitchAttribute) GetNumberOfCpuQueues() uint32 { + if x != nil && x.NumberOfCpuQueues != nil { + return *x.NumberOfCpuQueues + } + return 0 } -func (*BfdSessionOffloadTypeList) ProtoMessage() {} +func (x *SwitchAttribute) GetOnLinkRouteSupported() bool { + if x != nil && x.OnLinkRouteSupported != nil { + return *x.OnLinkRouteSupported + } + return false +} -func (x *BfdSessionOffloadTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[131] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *SwitchAttribute) GetOperStatus() SwitchOperStatus { + if x != nil && x.OperStatus != nil { + return *x.OperStatus } - return mi.MessageOf(x) + return SwitchOperStatus_SWITCH_OPER_STATUS_UNSPECIFIED } -// Deprecated: Use BfdSessionOffloadTypeList.ProtoReflect.Descriptor instead. -func (*BfdSessionOffloadTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{131} +func (x *SwitchAttribute) GetMaxNumberOfTempSensors() uint32 { + if x != nil && x.MaxNumberOfTempSensors != nil { + return *x.MaxNumberOfTempSensors + } + return 0 } -func (x *BfdSessionOffloadTypeList) GetList() []BfdSessionOffloadType { +func (x *SwitchAttribute) GetTempList() []int32 { if x != nil { - return x.List + return x.TempList } return nil } -type StatsModeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []StatsMode `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.StatsMode" json:"list,omitempty"` +func (x *SwitchAttribute) GetMaxTemp() uint32 { + if x != nil && x.MaxTemp != nil { + return *x.MaxTemp + } + return 0 } -func (x *StatsModeList) Reset() { - *x = StatsModeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[132] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *SwitchAttribute) GetAverageTemp() uint32 { + if x != nil && x.AverageTemp != nil { + return *x.AverageTemp } + return 0 } -func (x *StatsModeList) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *SwitchAttribute) GetAclTableMinimumPriority() uint32 { + if x != nil && x.AclTableMinimumPriority != nil { + return *x.AclTableMinimumPriority + } + return 0 } -func (*StatsModeList) ProtoMessage() {} - -func (x *StatsModeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[132] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *SwitchAttribute) GetAclTableMaximumPriority() uint32 { + if x != nil && x.AclTableMaximumPriority != nil { + return *x.AclTableMaximumPriority } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use StatsModeList.ProtoReflect.Descriptor instead. -func (*StatsModeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{132} -} - -func (x *StatsModeList) GetList() []StatsMode { - if x != nil { - return x.List +func (x *SwitchAttribute) GetAclEntryMinimumPriority() uint32 { + if x != nil && x.AclEntryMinimumPriority != nil { + return *x.AclEntryMinimumPriority } - return nil -} - -type SystemPortConfigList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []*SystemPortConfig `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + return 0 } -func (x *SystemPortConfigList) Reset() { - *x = SystemPortConfigList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *SwitchAttribute) GetAclEntryMaximumPriority() uint32 { + if x != nil && x.AclEntryMaximumPriority != nil { + return *x.AclEntryMaximumPriority } + return 0 } -func (x *SystemPortConfigList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SystemPortConfigList) ProtoMessage() {} - -func (x *SystemPortConfigList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[133] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *SwitchAttribute) GetAclTableGroupMinimumPriority() uint32 { + if x != nil && x.AclTableGroupMinimumPriority != nil { + return *x.AclTableGroupMinimumPriority } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use SystemPortConfigList.ProtoReflect.Descriptor instead. -func (*SystemPortConfigList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{133} +func (x *SwitchAttribute) GetAclTableGroupMaximumPriority() uint32 { + if x != nil && x.AclTableGroupMaximumPriority != nil { + return *x.AclTableGroupMaximumPriority + } + return 0 } -func (x *SystemPortConfigList) GetList() []*SystemPortConfig { +func (x *SwitchAttribute) GetFdbDstUserMetaDataRange() *Uint32Range { if x != nil { - return x.List + return x.FdbDstUserMetaDataRange } return nil } -type SwitchAttribute struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NumberOfActivePorts uint32 `protobuf:"varint,1,opt,name=number_of_active_ports,json=numberOfActivePorts,proto3" json:"number_of_active_ports,omitempty"` - MaxNumberOfSupportedPorts uint32 `protobuf:"varint,2,opt,name=max_number_of_supported_ports,json=maxNumberOfSupportedPorts,proto3" json:"max_number_of_supported_ports,omitempty"` - PortList *Uint64List `protobuf:"bytes,3,opt,name=port_list,json=portList,proto3" json:"port_list,omitempty"` - PortMaxMtu uint32 `protobuf:"varint,4,opt,name=port_max_mtu,json=portMaxMtu,proto3" json:"port_max_mtu,omitempty"` - CpuPort uint64 `protobuf:"varint,5,opt,name=cpu_port,json=cpuPort,proto3" json:"cpu_port,omitempty"` - MaxVirtualRouters uint32 `protobuf:"varint,6,opt,name=max_virtual_routers,json=maxVirtualRouters,proto3" json:"max_virtual_routers,omitempty"` - FdbTableSize uint32 `protobuf:"varint,7,opt,name=fdb_table_size,json=fdbTableSize,proto3" json:"fdb_table_size,omitempty"` - L3NeighborTableSize uint32 `protobuf:"varint,8,opt,name=l3_neighbor_table_size,json=l3NeighborTableSize,proto3" json:"l3_neighbor_table_size,omitempty"` - L3RouteTableSize uint32 `protobuf:"varint,9,opt,name=l3_route_table_size,json=l3RouteTableSize,proto3" json:"l3_route_table_size,omitempty"` - LagMembers uint32 `protobuf:"varint,10,opt,name=lag_members,json=lagMembers,proto3" json:"lag_members,omitempty"` - NumberOfLags uint32 `protobuf:"varint,11,opt,name=number_of_lags,json=numberOfLags,proto3" json:"number_of_lags,omitempty"` - EcmpMembers uint32 `protobuf:"varint,12,opt,name=ecmp_members,json=ecmpMembers,proto3" json:"ecmp_members,omitempty"` - NumberOfEcmpGroups uint32 `protobuf:"varint,13,opt,name=number_of_ecmp_groups,json=numberOfEcmpGroups,proto3" json:"number_of_ecmp_groups,omitempty"` - NumberOfUnicastQueues uint32 `protobuf:"varint,14,opt,name=number_of_unicast_queues,json=numberOfUnicastQueues,proto3" json:"number_of_unicast_queues,omitempty"` - NumberOfMulticastQueues uint32 `protobuf:"varint,15,opt,name=number_of_multicast_queues,json=numberOfMulticastQueues,proto3" json:"number_of_multicast_queues,omitempty"` - NumberOfQueues uint32 `protobuf:"varint,16,opt,name=number_of_queues,json=numberOfQueues,proto3" json:"number_of_queues,omitempty"` - NumberOfCpuQueues uint32 `protobuf:"varint,17,opt,name=number_of_cpu_queues,json=numberOfCpuQueues,proto3" json:"number_of_cpu_queues,omitempty"` - OnLinkRouteSupported bool `protobuf:"varint,18,opt,name=on_link_route_supported,json=onLinkRouteSupported,proto3" json:"on_link_route_supported,omitempty"` - OperStatus SwitchOperStatus `protobuf:"varint,19,opt,name=oper_status,json=operStatus,proto3,enum=lemming.dataplane.sai.SwitchOperStatus" json:"oper_status,omitempty"` - MaxNumberOfTempSensors uint32 `protobuf:"varint,20,opt,name=max_number_of_temp_sensors,json=maxNumberOfTempSensors,proto3" json:"max_number_of_temp_sensors,omitempty"` - TempList *Int32List `protobuf:"bytes,21,opt,name=temp_list,json=tempList,proto3" json:"temp_list,omitempty"` - MaxTemp uint32 `protobuf:"varint,22,opt,name=max_temp,json=maxTemp,proto3" json:"max_temp,omitempty"` - AverageTemp uint32 `protobuf:"varint,23,opt,name=average_temp,json=averageTemp,proto3" json:"average_temp,omitempty"` - AclTableMinimumPriority uint32 `protobuf:"varint,24,opt,name=acl_table_minimum_priority,json=aclTableMinimumPriority,proto3" json:"acl_table_minimum_priority,omitempty"` - AclTableMaximumPriority uint32 `protobuf:"varint,25,opt,name=acl_table_maximum_priority,json=aclTableMaximumPriority,proto3" json:"acl_table_maximum_priority,omitempty"` - AclEntryMinimumPriority uint32 `protobuf:"varint,26,opt,name=acl_entry_minimum_priority,json=aclEntryMinimumPriority,proto3" json:"acl_entry_minimum_priority,omitempty"` - AclEntryMaximumPriority uint32 `protobuf:"varint,27,opt,name=acl_entry_maximum_priority,json=aclEntryMaximumPriority,proto3" json:"acl_entry_maximum_priority,omitempty"` - AclTableGroupMinimumPriority uint32 `protobuf:"varint,28,opt,name=acl_table_group_minimum_priority,json=aclTableGroupMinimumPriority,proto3" json:"acl_table_group_minimum_priority,omitempty"` - AclTableGroupMaximumPriority uint32 `protobuf:"varint,29,opt,name=acl_table_group_maximum_priority,json=aclTableGroupMaximumPriority,proto3" json:"acl_table_group_maximum_priority,omitempty"` - FdbDstUserMetaDataRange *Uint32Range `protobuf:"bytes,30,opt,name=fdb_dst_user_meta_data_range,json=fdbDstUserMetaDataRange,proto3" json:"fdb_dst_user_meta_data_range,omitempty"` - RouteDstUserMetaDataRange *Uint32Range `protobuf:"bytes,31,opt,name=route_dst_user_meta_data_range,json=routeDstUserMetaDataRange,proto3" json:"route_dst_user_meta_data_range,omitempty"` - NeighborDstUserMetaDataRange *Uint32Range `protobuf:"bytes,32,opt,name=neighbor_dst_user_meta_data_range,json=neighborDstUserMetaDataRange,proto3" json:"neighbor_dst_user_meta_data_range,omitempty"` - PortUserMetaDataRange *Uint32Range `protobuf:"bytes,33,opt,name=port_user_meta_data_range,json=portUserMetaDataRange,proto3" json:"port_user_meta_data_range,omitempty"` - VlanUserMetaDataRange *Uint32Range `protobuf:"bytes,34,opt,name=vlan_user_meta_data_range,json=vlanUserMetaDataRange,proto3" json:"vlan_user_meta_data_range,omitempty"` - AclUserMetaDataRange *Uint32Range `protobuf:"bytes,35,opt,name=acl_user_meta_data_range,json=aclUserMetaDataRange,proto3" json:"acl_user_meta_data_range,omitempty"` - AclUserTrapIdRange *Uint32Range `protobuf:"bytes,36,opt,name=acl_user_trap_id_range,json=aclUserTrapIdRange,proto3" json:"acl_user_trap_id_range,omitempty"` - DefaultVlanId uint64 `protobuf:"varint,37,opt,name=default_vlan_id,json=defaultVlanId,proto3" json:"default_vlan_id,omitempty"` - DefaultStpInstId uint64 `protobuf:"varint,38,opt,name=default_stp_inst_id,json=defaultStpInstId,proto3" json:"default_stp_inst_id,omitempty"` - MaxStpInstance uint32 `protobuf:"varint,39,opt,name=max_stp_instance,json=maxStpInstance,proto3" json:"max_stp_instance,omitempty"` - DefaultVirtualRouterId uint64 `protobuf:"varint,40,opt,name=default_virtual_router_id,json=defaultVirtualRouterId,proto3" json:"default_virtual_router_id,omitempty"` - DefaultOverrideVirtualRouterId uint64 `protobuf:"varint,41,opt,name=default_override_virtual_router_id,json=defaultOverrideVirtualRouterId,proto3" json:"default_override_virtual_router_id,omitempty"` - Default_1QBridgeId uint64 `protobuf:"varint,42,opt,name=default_1q_bridge_id,json=default1qBridgeId,proto3" json:"default_1q_bridge_id,omitempty"` - IngressAcl uint64 `protobuf:"varint,43,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,44,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - QosMaxNumberOfTrafficClasses uint32 `protobuf:"varint,45,opt,name=qos_max_number_of_traffic_classes,json=qosMaxNumberOfTrafficClasses,proto3" json:"qos_max_number_of_traffic_classes,omitempty"` - QosMaxNumberOfSchedulerGroupHierarchyLevels uint32 `protobuf:"varint,46,opt,name=qos_max_number_of_scheduler_group_hierarchy_levels,json=qosMaxNumberOfSchedulerGroupHierarchyLevels,proto3" json:"qos_max_number_of_scheduler_group_hierarchy_levels,omitempty"` - QosMaxNumberOfSchedulerGroupsPerHierarchyLevel *Uint32List `protobuf:"bytes,47,opt,name=qos_max_number_of_scheduler_groups_per_hierarchy_level,json=qosMaxNumberOfSchedulerGroupsPerHierarchyLevel,proto3" json:"qos_max_number_of_scheduler_groups_per_hierarchy_level,omitempty"` - QosMaxNumberOfChildsPerSchedulerGroup uint32 `protobuf:"varint,48,opt,name=qos_max_number_of_childs_per_scheduler_group,json=qosMaxNumberOfChildsPerSchedulerGroup,proto3" json:"qos_max_number_of_childs_per_scheduler_group,omitempty"` - TotalBufferSize uint64 `protobuf:"varint,49,opt,name=total_buffer_size,json=totalBufferSize,proto3" json:"total_buffer_size,omitempty"` - IngressBufferPoolNum uint32 `protobuf:"varint,50,opt,name=ingress_buffer_pool_num,json=ingressBufferPoolNum,proto3" json:"ingress_buffer_pool_num,omitempty"` - EgressBufferPoolNum uint32 `protobuf:"varint,51,opt,name=egress_buffer_pool_num,json=egressBufferPoolNum,proto3" json:"egress_buffer_pool_num,omitempty"` - AvailableIpv4RouteEntry uint32 `protobuf:"varint,52,opt,name=available_ipv4_route_entry,json=availableIpv4RouteEntry,proto3" json:"available_ipv4_route_entry,omitempty"` - AvailableIpv6RouteEntry uint32 `protobuf:"varint,53,opt,name=available_ipv6_route_entry,json=availableIpv6RouteEntry,proto3" json:"available_ipv6_route_entry,omitempty"` - AvailableIpv4NexthopEntry uint32 `protobuf:"varint,54,opt,name=available_ipv4_nexthop_entry,json=availableIpv4NexthopEntry,proto3" json:"available_ipv4_nexthop_entry,omitempty"` - AvailableIpv6NexthopEntry uint32 `protobuf:"varint,55,opt,name=available_ipv6_nexthop_entry,json=availableIpv6NexthopEntry,proto3" json:"available_ipv6_nexthop_entry,omitempty"` - AvailableIpv4NeighborEntry uint32 `protobuf:"varint,56,opt,name=available_ipv4_neighbor_entry,json=availableIpv4NeighborEntry,proto3" json:"available_ipv4_neighbor_entry,omitempty"` - AvailableIpv6NeighborEntry uint32 `protobuf:"varint,57,opt,name=available_ipv6_neighbor_entry,json=availableIpv6NeighborEntry,proto3" json:"available_ipv6_neighbor_entry,omitempty"` - AvailableNextHopGroupEntry uint32 `protobuf:"varint,58,opt,name=available_next_hop_group_entry,json=availableNextHopGroupEntry,proto3" json:"available_next_hop_group_entry,omitempty"` - AvailableNextHopGroupMemberEntry uint32 `protobuf:"varint,59,opt,name=available_next_hop_group_member_entry,json=availableNextHopGroupMemberEntry,proto3" json:"available_next_hop_group_member_entry,omitempty"` - AvailableFdbEntry uint32 `protobuf:"varint,60,opt,name=available_fdb_entry,json=availableFdbEntry,proto3" json:"available_fdb_entry,omitempty"` - AvailableL2McEntry uint32 `protobuf:"varint,61,opt,name=available_l2mc_entry,json=availableL2mcEntry,proto3" json:"available_l2mc_entry,omitempty"` - AvailableIpmcEntry uint32 `protobuf:"varint,62,opt,name=available_ipmc_entry,json=availableIpmcEntry,proto3" json:"available_ipmc_entry,omitempty"` - AvailableSnatEntry uint32 `protobuf:"varint,63,opt,name=available_snat_entry,json=availableSnatEntry,proto3" json:"available_snat_entry,omitempty"` - AvailableDnatEntry uint32 `protobuf:"varint,64,opt,name=available_dnat_entry,json=availableDnatEntry,proto3" json:"available_dnat_entry,omitempty"` - AvailableDoubleNatEntry uint32 `protobuf:"varint,65,opt,name=available_double_nat_entry,json=availableDoubleNatEntry,proto3" json:"available_double_nat_entry,omitempty"` - AvailableAclTable *AclResourceList `protobuf:"bytes,66,opt,name=available_acl_table,json=availableAclTable,proto3" json:"available_acl_table,omitempty"` - AvailableAclTableGroup *AclResourceList `protobuf:"bytes,67,opt,name=available_acl_table_group,json=availableAclTableGroup,proto3" json:"available_acl_table_group,omitempty"` - AvailableMySidEntry uint32 `protobuf:"varint,68,opt,name=available_my_sid_entry,json=availableMySidEntry,proto3" json:"available_my_sid_entry,omitempty"` - DefaultTrapGroup uint64 `protobuf:"varint,69,opt,name=default_trap_group,json=defaultTrapGroup,proto3" json:"default_trap_group,omitempty"` - EcmpHash uint64 `protobuf:"varint,70,opt,name=ecmp_hash,json=ecmpHash,proto3" json:"ecmp_hash,omitempty"` - LagHash uint64 `protobuf:"varint,71,opt,name=lag_hash,json=lagHash,proto3" json:"lag_hash,omitempty"` - RestartWarm bool `protobuf:"varint,72,opt,name=restart_warm,json=restartWarm,proto3" json:"restart_warm,omitempty"` - WarmRecover bool `protobuf:"varint,73,opt,name=warm_recover,json=warmRecover,proto3" json:"warm_recover,omitempty"` - RestartType SwitchRestartType `protobuf:"varint,74,opt,name=restart_type,json=restartType,proto3,enum=lemming.dataplane.sai.SwitchRestartType" json:"restart_type,omitempty"` - MinPlannedRestartInterval uint32 `protobuf:"varint,75,opt,name=min_planned_restart_interval,json=minPlannedRestartInterval,proto3" json:"min_planned_restart_interval,omitempty"` - NvStorageSize uint64 `protobuf:"varint,76,opt,name=nv_storage_size,json=nvStorageSize,proto3" json:"nv_storage_size,omitempty"` - MaxAclActionCount uint32 `protobuf:"varint,77,opt,name=max_acl_action_count,json=maxAclActionCount,proto3" json:"max_acl_action_count,omitempty"` - MaxAclRangeCount uint32 `protobuf:"varint,78,opt,name=max_acl_range_count,json=maxAclRangeCount,proto3" json:"max_acl_range_count,omitempty"` - AclCapability *ACLCapability `protobuf:"bytes,79,opt,name=acl_capability,json=aclCapability,proto3" json:"acl_capability,omitempty"` - McastSnoopingCapability SwitchMcastSnoopingCapability `protobuf:"varint,80,opt,name=mcast_snooping_capability,json=mcastSnoopingCapability,proto3,enum=lemming.dataplane.sai.SwitchMcastSnoopingCapability" json:"mcast_snooping_capability,omitempty"` - SwitchingMode SwitchSwitchingMode `protobuf:"varint,81,opt,name=switching_mode,json=switchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode" json:"switching_mode,omitempty"` - BcastCpuFloodEnable bool `protobuf:"varint,82,opt,name=bcast_cpu_flood_enable,json=bcastCpuFloodEnable,proto3" json:"bcast_cpu_flood_enable,omitempty"` - McastCpuFloodEnable bool `protobuf:"varint,83,opt,name=mcast_cpu_flood_enable,json=mcastCpuFloodEnable,proto3" json:"mcast_cpu_flood_enable,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,84,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - MaxLearnedAddresses uint32 `protobuf:"varint,85,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3" json:"max_learned_addresses,omitempty"` - FdbAgingTime uint32 `protobuf:"varint,86,opt,name=fdb_aging_time,json=fdbAgingTime,proto3" json:"fdb_aging_time,omitempty"` - FdbUnicastMissPacketAction PacketAction `protobuf:"varint,87,opt,name=fdb_unicast_miss_packet_action,json=fdbUnicastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"fdb_unicast_miss_packet_action,omitempty"` - FdbBroadcastMissPacketAction PacketAction `protobuf:"varint,88,opt,name=fdb_broadcast_miss_packet_action,json=fdbBroadcastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"fdb_broadcast_miss_packet_action,omitempty"` - FdbMulticastMissPacketAction PacketAction `protobuf:"varint,89,opt,name=fdb_multicast_miss_packet_action,json=fdbMulticastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"fdb_multicast_miss_packet_action,omitempty"` - EcmpDefaultHashAlgorithm HashAlgorithm `protobuf:"varint,90,opt,name=ecmp_default_hash_algorithm,json=ecmpDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm" json:"ecmp_default_hash_algorithm,omitempty"` - EcmpDefaultHashSeed uint32 `protobuf:"varint,91,opt,name=ecmp_default_hash_seed,json=ecmpDefaultHashSeed,proto3" json:"ecmp_default_hash_seed,omitempty"` - EcmpDefaultHashOffset uint32 `protobuf:"varint,92,opt,name=ecmp_default_hash_offset,json=ecmpDefaultHashOffset,proto3" json:"ecmp_default_hash_offset,omitempty"` - EcmpDefaultSymmetricHash bool `protobuf:"varint,93,opt,name=ecmp_default_symmetric_hash,json=ecmpDefaultSymmetricHash,proto3" json:"ecmp_default_symmetric_hash,omitempty"` - EcmpHashIpv4 uint64 `protobuf:"varint,94,opt,name=ecmp_hash_ipv4,json=ecmpHashIpv4,proto3" json:"ecmp_hash_ipv4,omitempty"` - EcmpHashIpv4InIpv4 uint64 `protobuf:"varint,95,opt,name=ecmp_hash_ipv4_in_ipv4,json=ecmpHashIpv4InIpv4,proto3" json:"ecmp_hash_ipv4_in_ipv4,omitempty"` - EcmpHashIpv6 uint64 `protobuf:"varint,96,opt,name=ecmp_hash_ipv6,json=ecmpHashIpv6,proto3" json:"ecmp_hash_ipv6,omitempty"` - LagDefaultHashAlgorithm HashAlgorithm `protobuf:"varint,97,opt,name=lag_default_hash_algorithm,json=lagDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm" json:"lag_default_hash_algorithm,omitempty"` - LagDefaultHashSeed uint32 `protobuf:"varint,98,opt,name=lag_default_hash_seed,json=lagDefaultHashSeed,proto3" json:"lag_default_hash_seed,omitempty"` - LagDefaultHashOffset uint32 `protobuf:"varint,99,opt,name=lag_default_hash_offset,json=lagDefaultHashOffset,proto3" json:"lag_default_hash_offset,omitempty"` - LagDefaultSymmetricHash bool `protobuf:"varint,100,opt,name=lag_default_symmetric_hash,json=lagDefaultSymmetricHash,proto3" json:"lag_default_symmetric_hash,omitempty"` - LagHashIpv4 uint64 `protobuf:"varint,101,opt,name=lag_hash_ipv4,json=lagHashIpv4,proto3" json:"lag_hash_ipv4,omitempty"` - LagHashIpv4InIpv4 uint64 `protobuf:"varint,102,opt,name=lag_hash_ipv4_in_ipv4,json=lagHashIpv4InIpv4,proto3" json:"lag_hash_ipv4_in_ipv4,omitempty"` - LagHashIpv6 uint64 `protobuf:"varint,103,opt,name=lag_hash_ipv6,json=lagHashIpv6,proto3" json:"lag_hash_ipv6,omitempty"` - CounterRefreshInterval uint32 `protobuf:"varint,104,opt,name=counter_refresh_interval,json=counterRefreshInterval,proto3" json:"counter_refresh_interval,omitempty"` - QosDefaultTc uint32 `protobuf:"varint,105,opt,name=qos_default_tc,json=qosDefaultTc,proto3" json:"qos_default_tc,omitempty"` - QosDot1PToTcMap uint64 `protobuf:"varint,106,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3" json:"qos_dot1p_to_tc_map,omitempty"` - QosDot1PToColorMap uint64 `protobuf:"varint,107,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3" json:"qos_dot1p_to_color_map,omitempty"` - QosDscpToTcMap uint64 `protobuf:"varint,108,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3" json:"qos_dscp_to_tc_map,omitempty"` - QosDscpToColorMap uint64 `protobuf:"varint,109,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3" json:"qos_dscp_to_color_map,omitempty"` - QosTcToQueueMap uint64 `protobuf:"varint,110,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3" json:"qos_tc_to_queue_map,omitempty"` - QosTcAndColorToDot1PMap uint64 `protobuf:"varint,111,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3" json:"qos_tc_and_color_to_dot1p_map,omitempty"` - QosTcAndColorToDscpMap uint64 `protobuf:"varint,112,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3" json:"qos_tc_and_color_to_dscp_map,omitempty"` - SwitchShellEnable bool `protobuf:"varint,113,opt,name=switch_shell_enable,json=switchShellEnable,proto3" json:"switch_shell_enable,omitempty"` - SwitchProfileId uint32 `protobuf:"varint,114,opt,name=switch_profile_id,json=switchProfileId,proto3" json:"switch_profile_id,omitempty"` - SwitchHardwareInfo *Int32List `protobuf:"bytes,115,opt,name=switch_hardware_info,json=switchHardwareInfo,proto3" json:"switch_hardware_info,omitempty"` - FirmwarePathName *Int32List `protobuf:"bytes,116,opt,name=firmware_path_name,json=firmwarePathName,proto3" json:"firmware_path_name,omitempty"` - InitSwitch bool `protobuf:"varint,117,opt,name=init_switch,json=initSwitch,proto3" json:"init_switch,omitempty"` - FastApiEnable bool `protobuf:"varint,118,opt,name=fast_api_enable,json=fastApiEnable,proto3" json:"fast_api_enable,omitempty"` - MirrorTc uint32 `protobuf:"varint,119,opt,name=mirror_tc,json=mirrorTc,proto3" json:"mirror_tc,omitempty"` - AclStageIngress *ACLCapability `protobuf:"bytes,120,opt,name=acl_stage_ingress,json=aclStageIngress,proto3" json:"acl_stage_ingress,omitempty"` - AclStageEgress *ACLCapability `protobuf:"bytes,121,opt,name=acl_stage_egress,json=aclStageEgress,proto3" json:"acl_stage_egress,omitempty"` - Srv6MaxSidDepth uint32 `protobuf:"varint,122,opt,name=srv6_max_sid_depth,json=srv6MaxSidDepth,proto3" json:"srv6_max_sid_depth,omitempty"` - Srv6TlvType *TlvTypeList `protobuf:"bytes,123,opt,name=srv6_tlv_type,json=srv6TlvType,proto3" json:"srv6_tlv_type,omitempty"` - QosNumLosslessQueues uint32 `protobuf:"varint,124,opt,name=qos_num_lossless_queues,json=qosNumLosslessQueues,proto3" json:"qos_num_lossless_queues,omitempty"` - PfcDlrPacketAction PacketAction `protobuf:"varint,125,opt,name=pfc_dlr_packet_action,json=pfcDlrPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"pfc_dlr_packet_action,omitempty"` - PfcTcDldIntervalRange *Uint32Range `protobuf:"bytes,126,opt,name=pfc_tc_dld_interval_range,json=pfcTcDldIntervalRange,proto3" json:"pfc_tc_dld_interval_range,omitempty"` - PfcTcDldInterval *UintMapList `protobuf:"bytes,127,opt,name=pfc_tc_dld_interval,json=pfcTcDldInterval,proto3" json:"pfc_tc_dld_interval,omitempty"` - PfcTcDlrIntervalRange *Uint32Range `protobuf:"bytes,128,opt,name=pfc_tc_dlr_interval_range,json=pfcTcDlrIntervalRange,proto3" json:"pfc_tc_dlr_interval_range,omitempty"` - PfcTcDlrInterval *UintMapList `protobuf:"bytes,129,opt,name=pfc_tc_dlr_interval,json=pfcTcDlrInterval,proto3" json:"pfc_tc_dlr_interval,omitempty"` - SupportedProtectedObjectType *ObjectTypeList `protobuf:"bytes,130,opt,name=supported_protected_object_type,json=supportedProtectedObjectType,proto3" json:"supported_protected_object_type,omitempty"` - TpidOuterVlan uint32 `protobuf:"varint,131,opt,name=tpid_outer_vlan,json=tpidOuterVlan,proto3" json:"tpid_outer_vlan,omitempty"` - TpidInnerVlan uint32 `protobuf:"varint,132,opt,name=tpid_inner_vlan,json=tpidInnerVlan,proto3" json:"tpid_inner_vlan,omitempty"` - CrcCheckEnable bool `protobuf:"varint,133,opt,name=crc_check_enable,json=crcCheckEnable,proto3" json:"crc_check_enable,omitempty"` - CrcRecalculationEnable bool `protobuf:"varint,134,opt,name=crc_recalculation_enable,json=crcRecalculationEnable,proto3" json:"crc_recalculation_enable,omitempty"` - NumberOfBfdSession uint32 `protobuf:"varint,135,opt,name=number_of_bfd_session,json=numberOfBfdSession,proto3" json:"number_of_bfd_session,omitempty"` - MaxBfdSession uint32 `protobuf:"varint,136,opt,name=max_bfd_session,json=maxBfdSession,proto3" json:"max_bfd_session,omitempty"` - SupportedIpv4BfdSessionOffloadType *BfdSessionOffloadTypeList `protobuf:"bytes,137,opt,name=supported_ipv4_bfd_session_offload_type,json=supportedIpv4BfdSessionOffloadType,proto3" json:"supported_ipv4_bfd_session_offload_type,omitempty"` - SupportedIpv6BfdSessionOffloadType *BfdSessionOffloadTypeList `protobuf:"bytes,138,opt,name=supported_ipv6_bfd_session_offload_type,json=supportedIpv6BfdSessionOffloadType,proto3" json:"supported_ipv6_bfd_session_offload_type,omitempty"` - MinBfdRx uint32 `protobuf:"varint,139,opt,name=min_bfd_rx,json=minBfdRx,proto3" json:"min_bfd_rx,omitempty"` - MinBfdTx uint32 `protobuf:"varint,140,opt,name=min_bfd_tx,json=minBfdTx,proto3" json:"min_bfd_tx,omitempty"` - EcnEctThresholdEnable bool `protobuf:"varint,141,opt,name=ecn_ect_threshold_enable,json=ecnEctThresholdEnable,proto3" json:"ecn_ect_threshold_enable,omitempty"` - VxlanDefaultRouterMac []byte `protobuf:"bytes,142,opt,name=vxlan_default_router_mac,json=vxlanDefaultRouterMac,proto3" json:"vxlan_default_router_mac,omitempty"` - VxlanDefaultPort uint32 `protobuf:"varint,143,opt,name=vxlan_default_port,json=vxlanDefaultPort,proto3" json:"vxlan_default_port,omitempty"` - MaxMirrorSession uint32 `protobuf:"varint,144,opt,name=max_mirror_session,json=maxMirrorSession,proto3" json:"max_mirror_session,omitempty"` - MaxSampledMirrorSession uint32 `protobuf:"varint,145,opt,name=max_sampled_mirror_session,json=maxSampledMirrorSession,proto3" json:"max_sampled_mirror_session,omitempty"` - SupportedExtendedStatsMode *StatsModeList `protobuf:"bytes,146,opt,name=supported_extended_stats_mode,json=supportedExtendedStatsMode,proto3" json:"supported_extended_stats_mode,omitempty"` - UninitDataPlaneOnRemoval bool `protobuf:"varint,147,opt,name=uninit_data_plane_on_removal,json=uninitDataPlaneOnRemoval,proto3" json:"uninit_data_plane_on_removal,omitempty"` - TamObjectId *Uint64List `protobuf:"bytes,148,opt,name=tam_object_id,json=tamObjectId,proto3" json:"tam_object_id,omitempty"` - SupportedObjectTypeList *ObjectTypeList `protobuf:"bytes,149,opt,name=supported_object_type_list,json=supportedObjectTypeList,proto3" json:"supported_object_type_list,omitempty"` - PreShutdown bool `protobuf:"varint,150,opt,name=pre_shutdown,json=preShutdown,proto3" json:"pre_shutdown,omitempty"` - NatZoneCounterObjectId uint64 `protobuf:"varint,151,opt,name=nat_zone_counter_object_id,json=natZoneCounterObjectId,proto3" json:"nat_zone_counter_object_id,omitempty"` - NatEnable bool `protobuf:"varint,152,opt,name=nat_enable,json=natEnable,proto3" json:"nat_enable,omitempty"` - HardwareAccessBus SwitchHardwareAccessBus `protobuf:"varint,153,opt,name=hardware_access_bus,json=hardwareAccessBus,proto3,enum=lemming.dataplane.sai.SwitchHardwareAccessBus" json:"hardware_access_bus,omitempty"` - PlatfromContext uint64 `protobuf:"varint,154,opt,name=platfrom_context,json=platfromContext,proto3" json:"platfrom_context,omitempty"` - FirmwareDownloadBroadcast bool `protobuf:"varint,155,opt,name=firmware_download_broadcast,json=firmwareDownloadBroadcast,proto3" json:"firmware_download_broadcast,omitempty"` - FirmwareLoadMethod SwitchFirmwareLoadMethod `protobuf:"varint,156,opt,name=firmware_load_method,json=firmwareLoadMethod,proto3,enum=lemming.dataplane.sai.SwitchFirmwareLoadMethod" json:"firmware_load_method,omitempty"` - FirmwareLoadType SwitchFirmwareLoadType `protobuf:"varint,157,opt,name=firmware_load_type,json=firmwareLoadType,proto3,enum=lemming.dataplane.sai.SwitchFirmwareLoadType" json:"firmware_load_type,omitempty"` - FirmwareDownloadExecute bool `protobuf:"varint,158,opt,name=firmware_download_execute,json=firmwareDownloadExecute,proto3" json:"firmware_download_execute,omitempty"` - FirmwareBroadcastStop bool `protobuf:"varint,159,opt,name=firmware_broadcast_stop,json=firmwareBroadcastStop,proto3" json:"firmware_broadcast_stop,omitempty"` - FirmwareVerifyAndInitSwitch bool `protobuf:"varint,160,opt,name=firmware_verify_and_init_switch,json=firmwareVerifyAndInitSwitch,proto3" json:"firmware_verify_and_init_switch,omitempty"` - FirmwareStatus bool `protobuf:"varint,161,opt,name=firmware_status,json=firmwareStatus,proto3" json:"firmware_status,omitempty"` - FirmwareMajorVersion uint32 `protobuf:"varint,162,opt,name=firmware_major_version,json=firmwareMajorVersion,proto3" json:"firmware_major_version,omitempty"` - FirmwareMinorVersion uint32 `protobuf:"varint,163,opt,name=firmware_minor_version,json=firmwareMinorVersion,proto3" json:"firmware_minor_version,omitempty"` - PortConnectorList *Uint64List `protobuf:"bytes,164,opt,name=port_connector_list,json=portConnectorList,proto3" json:"port_connector_list,omitempty"` - PropogatePortStateFromLineToSystemPortSupport bool `protobuf:"varint,165,opt,name=propogate_port_state_from_line_to_system_port_support,json=propogatePortStateFromLineToSystemPortSupport,proto3" json:"propogate_port_state_from_line_to_system_port_support,omitempty"` - Type SwitchType `protobuf:"varint,166,opt,name=type,proto3,enum=lemming.dataplane.sai.SwitchType" json:"type,omitempty"` - MacsecObjectList *Uint64List `protobuf:"bytes,167,opt,name=macsec_object_list,json=macsecObjectList,proto3" json:"macsec_object_list,omitempty"` - QosMplsExpToTcMap uint64 `protobuf:"varint,168,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3" json:"qos_mpls_exp_to_tc_map,omitempty"` - QosMplsExpToColorMap uint64 `protobuf:"varint,169,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3" json:"qos_mpls_exp_to_color_map,omitempty"` - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,170,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` - SwitchId uint32 `protobuf:"varint,171,opt,name=switch_id,json=switchId,proto3" json:"switch_id,omitempty"` - MaxSystemCores uint32 `protobuf:"varint,172,opt,name=max_system_cores,json=maxSystemCores,proto3" json:"max_system_cores,omitempty"` - SystemPortConfigList *SystemPortConfigList `protobuf:"bytes,173,opt,name=system_port_config_list,json=systemPortConfigList,proto3" json:"system_port_config_list,omitempty"` - NumberOfSystemPorts uint32 `protobuf:"varint,174,opt,name=number_of_system_ports,json=numberOfSystemPorts,proto3" json:"number_of_system_ports,omitempty"` - SystemPortList *Uint64List `protobuf:"bytes,175,opt,name=system_port_list,json=systemPortList,proto3" json:"system_port_list,omitempty"` - NumberOfFabricPorts uint32 `protobuf:"varint,176,opt,name=number_of_fabric_ports,json=numberOfFabricPorts,proto3" json:"number_of_fabric_ports,omitempty"` - FabricPortList *Uint64List `protobuf:"bytes,177,opt,name=fabric_port_list,json=fabricPortList,proto3" json:"fabric_port_list,omitempty"` - PacketDmaMemoryPoolSize uint32 `protobuf:"varint,178,opt,name=packet_dma_memory_pool_size,json=packetDmaMemoryPoolSize,proto3" json:"packet_dma_memory_pool_size,omitempty"` - FailoverConfigMode SwitchFailoverConfigMode `protobuf:"varint,179,opt,name=failover_config_mode,json=failoverConfigMode,proto3,enum=lemming.dataplane.sai.SwitchFailoverConfigMode" json:"failover_config_mode,omitempty"` - SupportedFailoverMode bool `protobuf:"varint,180,opt,name=supported_failover_mode,json=supportedFailoverMode,proto3" json:"supported_failover_mode,omitempty"` - TunnelObjectsList *Uint64List `protobuf:"bytes,181,opt,name=tunnel_objects_list,json=tunnelObjectsList,proto3" json:"tunnel_objects_list,omitempty"` - PacketAvailableDmaMemoryPoolSize uint32 `protobuf:"varint,182,opt,name=packet_available_dma_memory_pool_size,json=packetAvailableDmaMemoryPoolSize,proto3" json:"packet_available_dma_memory_pool_size,omitempty"` - PreIngressAcl uint64 `protobuf:"varint,183,opt,name=pre_ingress_acl,json=preIngressAcl,proto3" json:"pre_ingress_acl,omitempty"` - AvailableSnaptEntry uint32 `protobuf:"varint,184,opt,name=available_snapt_entry,json=availableSnaptEntry,proto3" json:"available_snapt_entry,omitempty"` - AvailableDnaptEntry uint32 `protobuf:"varint,185,opt,name=available_dnapt_entry,json=availableDnaptEntry,proto3" json:"available_dnapt_entry,omitempty"` - AvailableDoubleNaptEntry uint32 `protobuf:"varint,186,opt,name=available_double_napt_entry,json=availableDoubleNaptEntry,proto3" json:"available_double_napt_entry,omitempty"` - SlaveMdioAddrList *Uint32List `protobuf:"bytes,187,opt,name=slave_mdio_addr_list,json=slaveMdioAddrList,proto3" json:"slave_mdio_addr_list,omitempty"` - MyMacTableMinimumPriority uint32 `protobuf:"varint,188,opt,name=my_mac_table_minimum_priority,json=myMacTableMinimumPriority,proto3" json:"my_mac_table_minimum_priority,omitempty"` - MyMacTableMaximumPriority uint32 `protobuf:"varint,189,opt,name=my_mac_table_maximum_priority,json=myMacTableMaximumPriority,proto3" json:"my_mac_table_maximum_priority,omitempty"` - MyMacList *Uint64List `protobuf:"bytes,190,opt,name=my_mac_list,json=myMacList,proto3" json:"my_mac_list,omitempty"` - InstalledMyMacEntries uint32 `protobuf:"varint,191,opt,name=installed_my_mac_entries,json=installedMyMacEntries,proto3" json:"installed_my_mac_entries,omitempty"` - AvailableMyMacEntries uint32 `protobuf:"varint,192,opt,name=available_my_mac_entries,json=availableMyMacEntries,proto3" json:"available_my_mac_entries,omitempty"` - MaxNumberOfForwardingClasses uint32 `protobuf:"varint,193,opt,name=max_number_of_forwarding_classes,json=maxNumberOfForwardingClasses,proto3" json:"max_number_of_forwarding_classes,omitempty"` - QosDscpToForwardingClassMap uint64 `protobuf:"varint,194,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3" json:"qos_dscp_to_forwarding_class_map,omitempty"` - QosMplsExpToForwardingClassMap uint64 `protobuf:"varint,195,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` - IpsecObjectId uint64 `protobuf:"varint,196,opt,name=ipsec_object_id,json=ipsecObjectId,proto3" json:"ipsec_object_id,omitempty"` - IpsecSaTagTpid uint32 `protobuf:"varint,197,opt,name=ipsec_sa_tag_tpid,json=ipsecSaTagTpid,proto3" json:"ipsec_sa_tag_tpid,omitempty"` -} - -func (x *SwitchAttribute) Reset() { - *x = SwitchAttribute{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[134] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *SwitchAttribute) GetRouteDstUserMetaDataRange() *Uint32Range { + if x != nil { + return x.RouteDstUserMetaDataRange } + return nil } -func (x *SwitchAttribute) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwitchAttribute) ProtoMessage() {} - -func (x *SwitchAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[134] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *SwitchAttribute) GetNeighborDstUserMetaDataRange() *Uint32Range { + if x != nil { + return x.NeighborDstUserMetaDataRange } - return mi.MessageOf(x) -} - -// Deprecated: Use SwitchAttribute.ProtoReflect.Descriptor instead. -func (*SwitchAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{134} + return nil } -func (x *SwitchAttribute) GetNumberOfActivePorts() uint32 { +func (x *SwitchAttribute) GetPortUserMetaDataRange() *Uint32Range { if x != nil { - return x.NumberOfActivePorts + return x.PortUserMetaDataRange } - return 0 + return nil } -func (x *SwitchAttribute) GetMaxNumberOfSupportedPorts() uint32 { +func (x *SwitchAttribute) GetVlanUserMetaDataRange() *Uint32Range { if x != nil { - return x.MaxNumberOfSupportedPorts + return x.VlanUserMetaDataRange } - return 0 + return nil } -func (x *SwitchAttribute) GetPortList() *Uint64List { +func (x *SwitchAttribute) GetAclUserMetaDataRange() *Uint32Range { if x != nil { - return x.PortList + return x.AclUserMetaDataRange } return nil } -func (x *SwitchAttribute) GetPortMaxMtu() uint32 { +func (x *SwitchAttribute) GetAclUserTrapIdRange() *Uint32Range { if x != nil { - return x.PortMaxMtu + return x.AclUserTrapIdRange } - return 0 + return nil } -func (x *SwitchAttribute) GetCpuPort() uint64 { - if x != nil { - return x.CpuPort +func (x *SwitchAttribute) GetDefaultVlanId() uint64 { + if x != nil && x.DefaultVlanId != nil { + return *x.DefaultVlanId } return 0 } -func (x *SwitchAttribute) GetMaxVirtualRouters() uint32 { - if x != nil { - return x.MaxVirtualRouters +func (x *SwitchAttribute) GetDefaultStpInstId() uint64 { + if x != nil && x.DefaultStpInstId != nil { + return *x.DefaultStpInstId } return 0 } -func (x *SwitchAttribute) GetFdbTableSize() uint32 { - if x != nil { - return x.FdbTableSize +func (x *SwitchAttribute) GetMaxStpInstance() uint32 { + if x != nil && x.MaxStpInstance != nil { + return *x.MaxStpInstance } return 0 } -func (x *SwitchAttribute) GetL3NeighborTableSize() uint32 { - if x != nil { - return x.L3NeighborTableSize +func (x *SwitchAttribute) GetDefaultVirtualRouterId() uint64 { + if x != nil && x.DefaultVirtualRouterId != nil { + return *x.DefaultVirtualRouterId } return 0 } -func (x *SwitchAttribute) GetL3RouteTableSize() uint32 { - if x != nil { - return x.L3RouteTableSize +func (x *SwitchAttribute) GetDefaultOverrideVirtualRouterId() uint64 { + if x != nil && x.DefaultOverrideVirtualRouterId != nil { + return *x.DefaultOverrideVirtualRouterId } return 0 } -func (x *SwitchAttribute) GetLagMembers() uint32 { - if x != nil { - return x.LagMembers +func (x *SwitchAttribute) GetDefault_1QBridgeId() uint64 { + if x != nil && x.Default_1QBridgeId != nil { + return *x.Default_1QBridgeId } return 0 } -func (x *SwitchAttribute) GetNumberOfLags() uint32 { - if x != nil { - return x.NumberOfLags +func (x *SwitchAttribute) GetIngressAcl() uint64 { + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } -func (x *SwitchAttribute) GetEcmpMembers() uint32 { - if x != nil { - return x.EcmpMembers +func (x *SwitchAttribute) GetEgressAcl() uint64 { + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } -func (x *SwitchAttribute) GetNumberOfEcmpGroups() uint32 { - if x != nil { - return x.NumberOfEcmpGroups +func (x *SwitchAttribute) GetQosMaxNumberOfTrafficClasses() uint32 { + if x != nil && x.QosMaxNumberOfTrafficClasses != nil { + return *x.QosMaxNumberOfTrafficClasses } return 0 } -func (x *SwitchAttribute) GetNumberOfUnicastQueues() uint32 { - if x != nil { - return x.NumberOfUnicastQueues +func (x *SwitchAttribute) GetQosMaxNumberOfSchedulerGroupHierarchyLevels() uint32 { + if x != nil && x.QosMaxNumberOfSchedulerGroupHierarchyLevels != nil { + return *x.QosMaxNumberOfSchedulerGroupHierarchyLevels } return 0 } -func (x *SwitchAttribute) GetNumberOfMulticastQueues() uint32 { +func (x *SwitchAttribute) GetQosMaxNumberOfSchedulerGroupsPerHierarchyLevel() []uint32 { if x != nil { - return x.NumberOfMulticastQueues + return x.QosMaxNumberOfSchedulerGroupsPerHierarchyLevel } - return 0 + return nil } -func (x *SwitchAttribute) GetNumberOfQueues() uint32 { - if x != nil { - return x.NumberOfQueues +func (x *SwitchAttribute) GetQosMaxNumberOfChildsPerSchedulerGroup() uint32 { + if x != nil && x.QosMaxNumberOfChildsPerSchedulerGroup != nil { + return *x.QosMaxNumberOfChildsPerSchedulerGroup } return 0 } -func (x *SwitchAttribute) GetNumberOfCpuQueues() uint32 { - if x != nil { - return x.NumberOfCpuQueues +func (x *SwitchAttribute) GetTotalBufferSize() uint64 { + if x != nil && x.TotalBufferSize != nil { + return *x.TotalBufferSize } return 0 } -func (x *SwitchAttribute) GetOnLinkRouteSupported() bool { - if x != nil { - return x.OnLinkRouteSupported +func (x *SwitchAttribute) GetIngressBufferPoolNum() uint32 { + if x != nil && x.IngressBufferPoolNum != nil { + return *x.IngressBufferPoolNum } - return false + return 0 } -func (x *SwitchAttribute) GetOperStatus() SwitchOperStatus { - if x != nil { - return x.OperStatus +func (x *SwitchAttribute) GetEgressBufferPoolNum() uint32 { + if x != nil && x.EgressBufferPoolNum != nil { + return *x.EgressBufferPoolNum } - return SwitchOperStatus_SWITCH_OPER_STATUS_UNSPECIFIED + return 0 } -func (x *SwitchAttribute) GetMaxNumberOfTempSensors() uint32 { - if x != nil { - return x.MaxNumberOfTempSensors +func (x *SwitchAttribute) GetAvailableIpv4RouteEntry() uint32 { + if x != nil && x.AvailableIpv4RouteEntry != nil { + return *x.AvailableIpv4RouteEntry } return 0 } -func (x *SwitchAttribute) GetTempList() *Int32List { - if x != nil { - return x.TempList +func (x *SwitchAttribute) GetAvailableIpv6RouteEntry() uint32 { + if x != nil && x.AvailableIpv6RouteEntry != nil { + return *x.AvailableIpv6RouteEntry } - return nil + return 0 } -func (x *SwitchAttribute) GetMaxTemp() uint32 { - if x != nil { - return x.MaxTemp +func (x *SwitchAttribute) GetAvailableIpv4NexthopEntry() uint32 { + if x != nil && x.AvailableIpv4NexthopEntry != nil { + return *x.AvailableIpv4NexthopEntry } return 0 } -func (x *SwitchAttribute) GetAverageTemp() uint32 { - if x != nil { - return x.AverageTemp +func (x *SwitchAttribute) GetAvailableIpv6NexthopEntry() uint32 { + if x != nil && x.AvailableIpv6NexthopEntry != nil { + return *x.AvailableIpv6NexthopEntry } return 0 } -func (x *SwitchAttribute) GetAclTableMinimumPriority() uint32 { - if x != nil { - return x.AclTableMinimumPriority +func (x *SwitchAttribute) GetAvailableIpv4NeighborEntry() uint32 { + if x != nil && x.AvailableIpv4NeighborEntry != nil { + return *x.AvailableIpv4NeighborEntry } return 0 } -func (x *SwitchAttribute) GetAclTableMaximumPriority() uint32 { - if x != nil { - return x.AclTableMaximumPriority +func (x *SwitchAttribute) GetAvailableIpv6NeighborEntry() uint32 { + if x != nil && x.AvailableIpv6NeighborEntry != nil { + return *x.AvailableIpv6NeighborEntry } return 0 } -func (x *SwitchAttribute) GetAclEntryMinimumPriority() uint32 { - if x != nil { - return x.AclEntryMinimumPriority +func (x *SwitchAttribute) GetAvailableNextHopGroupEntry() uint32 { + if x != nil && x.AvailableNextHopGroupEntry != nil { + return *x.AvailableNextHopGroupEntry } return 0 } -func (x *SwitchAttribute) GetAclEntryMaximumPriority() uint32 { - if x != nil { - return x.AclEntryMaximumPriority +func (x *SwitchAttribute) GetAvailableNextHopGroupMemberEntry() uint32 { + if x != nil && x.AvailableNextHopGroupMemberEntry != nil { + return *x.AvailableNextHopGroupMemberEntry } return 0 } -func (x *SwitchAttribute) GetAclTableGroupMinimumPriority() uint32 { - if x != nil { - return x.AclTableGroupMinimumPriority +func (x *SwitchAttribute) GetAvailableFdbEntry() uint32 { + if x != nil && x.AvailableFdbEntry != nil { + return *x.AvailableFdbEntry } return 0 } -func (x *SwitchAttribute) GetAclTableGroupMaximumPriority() uint32 { - if x != nil { - return x.AclTableGroupMaximumPriority +func (x *SwitchAttribute) GetAvailableL2McEntry() uint32 { + if x != nil && x.AvailableL2McEntry != nil { + return *x.AvailableL2McEntry } return 0 } -func (x *SwitchAttribute) GetFdbDstUserMetaDataRange() *Uint32Range { - if x != nil { - return x.FdbDstUserMetaDataRange +func (x *SwitchAttribute) GetAvailableIpmcEntry() uint32 { + if x != nil && x.AvailableIpmcEntry != nil { + return *x.AvailableIpmcEntry } - return nil + return 0 } -func (x *SwitchAttribute) GetRouteDstUserMetaDataRange() *Uint32Range { - if x != nil { - return x.RouteDstUserMetaDataRange +func (x *SwitchAttribute) GetAvailableSnatEntry() uint32 { + if x != nil && x.AvailableSnatEntry != nil { + return *x.AvailableSnatEntry } - return nil + return 0 } -func (x *SwitchAttribute) GetNeighborDstUserMetaDataRange() *Uint32Range { - if x != nil { - return x.NeighborDstUserMetaDataRange +func (x *SwitchAttribute) GetAvailableDnatEntry() uint32 { + if x != nil && x.AvailableDnatEntry != nil { + return *x.AvailableDnatEntry } - return nil + return 0 } -func (x *SwitchAttribute) GetPortUserMetaDataRange() *Uint32Range { - if x != nil { - return x.PortUserMetaDataRange +func (x *SwitchAttribute) GetAvailableDoubleNatEntry() uint32 { + if x != nil && x.AvailableDoubleNatEntry != nil { + return *x.AvailableDoubleNatEntry } - return nil + return 0 } -func (x *SwitchAttribute) GetVlanUserMetaDataRange() *Uint32Range { +func (x *SwitchAttribute) GetAvailableAclTable() []*ACLResource { if x != nil { - return x.VlanUserMetaDataRange + return x.AvailableAclTable } return nil } -func (x *SwitchAttribute) GetAclUserMetaDataRange() *Uint32Range { +func (x *SwitchAttribute) GetAvailableAclTableGroup() []*ACLResource { if x != nil { - return x.AclUserMetaDataRange + return x.AvailableAclTableGroup } return nil } -func (x *SwitchAttribute) GetAclUserTrapIdRange() *Uint32Range { - if x != nil { - return x.AclUserTrapIdRange +func (x *SwitchAttribute) GetAvailableMySidEntry() uint32 { + if x != nil && x.AvailableMySidEntry != nil { + return *x.AvailableMySidEntry } - return nil + return 0 } -func (x *SwitchAttribute) GetDefaultVlanId() uint64 { - if x != nil { - return x.DefaultVlanId +func (x *SwitchAttribute) GetDefaultTrapGroup() uint64 { + if x != nil && x.DefaultTrapGroup != nil { + return *x.DefaultTrapGroup } return 0 } -func (x *SwitchAttribute) GetDefaultStpInstId() uint64 { - if x != nil { - return x.DefaultStpInstId +func (x *SwitchAttribute) GetEcmpHash() uint64 { + if x != nil && x.EcmpHash != nil { + return *x.EcmpHash } return 0 } -func (x *SwitchAttribute) GetMaxStpInstance() uint32 { - if x != nil { - return x.MaxStpInstance +func (x *SwitchAttribute) GetLagHash() uint64 { + if x != nil && x.LagHash != nil { + return *x.LagHash } return 0 } -func (x *SwitchAttribute) GetDefaultVirtualRouterId() uint64 { - if x != nil { - return x.DefaultVirtualRouterId +func (x *SwitchAttribute) GetRestartWarm() bool { + if x != nil && x.RestartWarm != nil { + return *x.RestartWarm } - return 0 + return false } -func (x *SwitchAttribute) GetDefaultOverrideVirtualRouterId() uint64 { - if x != nil { - return x.DefaultOverrideVirtualRouterId +func (x *SwitchAttribute) GetWarmRecover() bool { + if x != nil && x.WarmRecover != nil { + return *x.WarmRecover } - return 0 + return false } -func (x *SwitchAttribute) GetDefault_1QBridgeId() uint64 { - if x != nil { - return x.Default_1QBridgeId +func (x *SwitchAttribute) GetRestartType() SwitchRestartType { + if x != nil && x.RestartType != nil { + return *x.RestartType } - return 0 + return SwitchRestartType_SWITCH_RESTART_TYPE_UNSPECIFIED } -func (x *SwitchAttribute) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl +func (x *SwitchAttribute) GetMinPlannedRestartInterval() uint32 { + if x != nil && x.MinPlannedRestartInterval != nil { + return *x.MinPlannedRestartInterval } return 0 } -func (x *SwitchAttribute) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl +func (x *SwitchAttribute) GetNvStorageSize() uint64 { + if x != nil && x.NvStorageSize != nil { + return *x.NvStorageSize } return 0 } -func (x *SwitchAttribute) GetQosMaxNumberOfTrafficClasses() uint32 { - if x != nil { - return x.QosMaxNumberOfTrafficClasses +func (x *SwitchAttribute) GetMaxAclActionCount() uint32 { + if x != nil && x.MaxAclActionCount != nil { + return *x.MaxAclActionCount } return 0 } -func (x *SwitchAttribute) GetQosMaxNumberOfSchedulerGroupHierarchyLevels() uint32 { - if x != nil { - return x.QosMaxNumberOfSchedulerGroupHierarchyLevels +func (x *SwitchAttribute) GetMaxAclRangeCount() uint32 { + if x != nil && x.MaxAclRangeCount != nil { + return *x.MaxAclRangeCount } return 0 } -func (x *SwitchAttribute) GetQosMaxNumberOfSchedulerGroupsPerHierarchyLevel() *Uint32List { +func (x *SwitchAttribute) GetAclCapability() *ACLCapability { if x != nil { - return x.QosMaxNumberOfSchedulerGroupsPerHierarchyLevel + return x.AclCapability } return nil } -func (x *SwitchAttribute) GetQosMaxNumberOfChildsPerSchedulerGroup() uint32 { - if x != nil { - return x.QosMaxNumberOfChildsPerSchedulerGroup +func (x *SwitchAttribute) GetMcastSnoopingCapability() SwitchMcastSnoopingCapability { + if x != nil && x.McastSnoopingCapability != nil { + return *x.McastSnoopingCapability } - return 0 -} - -func (x *SwitchAttribute) GetTotalBufferSize() uint64 { - if x != nil { - return x.TotalBufferSize - } - return 0 -} - -func (x *SwitchAttribute) GetIngressBufferPoolNum() uint32 { - if x != nil { - return x.IngressBufferPoolNum - } - return 0 -} - -func (x *SwitchAttribute) GetEgressBufferPoolNum() uint32 { - if x != nil { - return x.EgressBufferPoolNum - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableIpv4RouteEntry() uint32 { - if x != nil { - return x.AvailableIpv4RouteEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableIpv6RouteEntry() uint32 { - if x != nil { - return x.AvailableIpv6RouteEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableIpv4NexthopEntry() uint32 { - if x != nil { - return x.AvailableIpv4NexthopEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableIpv6NexthopEntry() uint32 { - if x != nil { - return x.AvailableIpv6NexthopEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableIpv4NeighborEntry() uint32 { - if x != nil { - return x.AvailableIpv4NeighborEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableIpv6NeighborEntry() uint32 { - if x != nil { - return x.AvailableIpv6NeighborEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableNextHopGroupEntry() uint32 { - if x != nil { - return x.AvailableNextHopGroupEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableNextHopGroupMemberEntry() uint32 { - if x != nil { - return x.AvailableNextHopGroupMemberEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableFdbEntry() uint32 { - if x != nil { - return x.AvailableFdbEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableL2McEntry() uint32 { - if x != nil { - return x.AvailableL2McEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableIpmcEntry() uint32 { - if x != nil { - return x.AvailableIpmcEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableSnatEntry() uint32 { - if x != nil { - return x.AvailableSnatEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableDnatEntry() uint32 { - if x != nil { - return x.AvailableDnatEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableDoubleNatEntry() uint32 { - if x != nil { - return x.AvailableDoubleNatEntry - } - return 0 -} - -func (x *SwitchAttribute) GetAvailableAclTable() *AclResourceList { - if x != nil { - return x.AvailableAclTable - } - return nil -} - -func (x *SwitchAttribute) GetAvailableAclTableGroup() *AclResourceList { - if x != nil { - return x.AvailableAclTableGroup - } - return nil -} - -func (x *SwitchAttribute) GetAvailableMySidEntry() uint32 { - if x != nil { - return x.AvailableMySidEntry - } - return 0 -} - -func (x *SwitchAttribute) GetDefaultTrapGroup() uint64 { - if x != nil { - return x.DefaultTrapGroup - } - return 0 -} - -func (x *SwitchAttribute) GetEcmpHash() uint64 { - if x != nil { - return x.EcmpHash - } - return 0 -} - -func (x *SwitchAttribute) GetLagHash() uint64 { - if x != nil { - return x.LagHash - } - return 0 -} - -func (x *SwitchAttribute) GetRestartWarm() bool { - if x != nil { - return x.RestartWarm - } - return false -} - -func (x *SwitchAttribute) GetWarmRecover() bool { - if x != nil { - return x.WarmRecover - } - return false -} - -func (x *SwitchAttribute) GetRestartType() SwitchRestartType { - if x != nil { - return x.RestartType - } - return SwitchRestartType_SWITCH_RESTART_TYPE_UNSPECIFIED -} - -func (x *SwitchAttribute) GetMinPlannedRestartInterval() uint32 { - if x != nil { - return x.MinPlannedRestartInterval - } - return 0 -} - -func (x *SwitchAttribute) GetNvStorageSize() uint64 { - if x != nil { - return x.NvStorageSize - } - return 0 -} - -func (x *SwitchAttribute) GetMaxAclActionCount() uint32 { - if x != nil { - return x.MaxAclActionCount - } - return 0 -} - -func (x *SwitchAttribute) GetMaxAclRangeCount() uint32 { - if x != nil { - return x.MaxAclRangeCount - } - return 0 -} - -func (x *SwitchAttribute) GetAclCapability() *ACLCapability { - if x != nil { - return x.AclCapability - } - return nil -} - -func (x *SwitchAttribute) GetMcastSnoopingCapability() SwitchMcastSnoopingCapability { - if x != nil { - return x.McastSnoopingCapability - } - return SwitchMcastSnoopingCapability_SWITCH_MCAST_SNOOPING_CAPABILITY_UNSPECIFIED + return SwitchMcastSnoopingCapability_SWITCH_MCAST_SNOOPING_CAPABILITY_UNSPECIFIED } func (x *SwitchAttribute) GetSwitchingMode() SwitchSwitchingMode { - if x != nil { - return x.SwitchingMode + if x != nil && x.SwitchingMode != nil { + return *x.SwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } func (x *SwitchAttribute) GetBcastCpuFloodEnable() bool { - if x != nil { - return x.BcastCpuFloodEnable + if x != nil && x.BcastCpuFloodEnable != nil { + return *x.BcastCpuFloodEnable } return false } func (x *SwitchAttribute) GetMcastCpuFloodEnable() bool { - if x != nil { - return x.McastCpuFloodEnable + if x != nil && x.McastCpuFloodEnable != nil { + return *x.McastCpuFloodEnable } return false } @@ -26244,223 +24976,223 @@ func (x *SwitchAttribute) GetSrcMacAddress() []byte { } func (x *SwitchAttribute) GetMaxLearnedAddresses() uint32 { - if x != nil { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *SwitchAttribute) GetFdbAgingTime() uint32 { - if x != nil { - return x.FdbAgingTime + if x != nil && x.FdbAgingTime != nil { + return *x.FdbAgingTime } return 0 } func (x *SwitchAttribute) GetFdbUnicastMissPacketAction() PacketAction { - if x != nil { - return x.FdbUnicastMissPacketAction + if x != nil && x.FdbUnicastMissPacketAction != nil { + return *x.FdbUnicastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SwitchAttribute) GetFdbBroadcastMissPacketAction() PacketAction { - if x != nil { - return x.FdbBroadcastMissPacketAction + if x != nil && x.FdbBroadcastMissPacketAction != nil { + return *x.FdbBroadcastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SwitchAttribute) GetFdbMulticastMissPacketAction() PacketAction { - if x != nil { - return x.FdbMulticastMissPacketAction + if x != nil && x.FdbMulticastMissPacketAction != nil { + return *x.FdbMulticastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SwitchAttribute) GetEcmpDefaultHashAlgorithm() HashAlgorithm { - if x != nil { - return x.EcmpDefaultHashAlgorithm + if x != nil && x.EcmpDefaultHashAlgorithm != nil { + return *x.EcmpDefaultHashAlgorithm } return HashAlgorithm_HASH_ALGORITHM_UNSPECIFIED } func (x *SwitchAttribute) GetEcmpDefaultHashSeed() uint32 { - if x != nil { - return x.EcmpDefaultHashSeed + if x != nil && x.EcmpDefaultHashSeed != nil { + return *x.EcmpDefaultHashSeed } return 0 } func (x *SwitchAttribute) GetEcmpDefaultHashOffset() uint32 { - if x != nil { - return x.EcmpDefaultHashOffset + if x != nil && x.EcmpDefaultHashOffset != nil { + return *x.EcmpDefaultHashOffset } return 0 } func (x *SwitchAttribute) GetEcmpDefaultSymmetricHash() bool { - if x != nil { - return x.EcmpDefaultSymmetricHash + if x != nil && x.EcmpDefaultSymmetricHash != nil { + return *x.EcmpDefaultSymmetricHash } return false } func (x *SwitchAttribute) GetEcmpHashIpv4() uint64 { - if x != nil { - return x.EcmpHashIpv4 + if x != nil && x.EcmpHashIpv4 != nil { + return *x.EcmpHashIpv4 } return 0 } func (x *SwitchAttribute) GetEcmpHashIpv4InIpv4() uint64 { - if x != nil { - return x.EcmpHashIpv4InIpv4 + if x != nil && x.EcmpHashIpv4InIpv4 != nil { + return *x.EcmpHashIpv4InIpv4 } return 0 } func (x *SwitchAttribute) GetEcmpHashIpv6() uint64 { - if x != nil { - return x.EcmpHashIpv6 + if x != nil && x.EcmpHashIpv6 != nil { + return *x.EcmpHashIpv6 } return 0 } func (x *SwitchAttribute) GetLagDefaultHashAlgorithm() HashAlgorithm { - if x != nil { - return x.LagDefaultHashAlgorithm + if x != nil && x.LagDefaultHashAlgorithm != nil { + return *x.LagDefaultHashAlgorithm } return HashAlgorithm_HASH_ALGORITHM_UNSPECIFIED } func (x *SwitchAttribute) GetLagDefaultHashSeed() uint32 { - if x != nil { - return x.LagDefaultHashSeed + if x != nil && x.LagDefaultHashSeed != nil { + return *x.LagDefaultHashSeed } return 0 } func (x *SwitchAttribute) GetLagDefaultHashOffset() uint32 { - if x != nil { - return x.LagDefaultHashOffset + if x != nil && x.LagDefaultHashOffset != nil { + return *x.LagDefaultHashOffset } return 0 } func (x *SwitchAttribute) GetLagDefaultSymmetricHash() bool { - if x != nil { - return x.LagDefaultSymmetricHash + if x != nil && x.LagDefaultSymmetricHash != nil { + return *x.LagDefaultSymmetricHash } return false } func (x *SwitchAttribute) GetLagHashIpv4() uint64 { - if x != nil { - return x.LagHashIpv4 + if x != nil && x.LagHashIpv4 != nil { + return *x.LagHashIpv4 } return 0 } func (x *SwitchAttribute) GetLagHashIpv4InIpv4() uint64 { - if x != nil { - return x.LagHashIpv4InIpv4 + if x != nil && x.LagHashIpv4InIpv4 != nil { + return *x.LagHashIpv4InIpv4 } return 0 } func (x *SwitchAttribute) GetLagHashIpv6() uint64 { - if x != nil { - return x.LagHashIpv6 + if x != nil && x.LagHashIpv6 != nil { + return *x.LagHashIpv6 } return 0 } func (x *SwitchAttribute) GetCounterRefreshInterval() uint32 { - if x != nil { - return x.CounterRefreshInterval + if x != nil && x.CounterRefreshInterval != nil { + return *x.CounterRefreshInterval } return 0 } func (x *SwitchAttribute) GetQosDefaultTc() uint32 { - if x != nil { - return x.QosDefaultTc + if x != nil && x.QosDefaultTc != nil { + return *x.QosDefaultTc } return 0 } func (x *SwitchAttribute) GetQosDot1PToTcMap() uint64 { - if x != nil { - return x.QosDot1PToTcMap + if x != nil && x.QosDot1PToTcMap != nil { + return *x.QosDot1PToTcMap } return 0 } func (x *SwitchAttribute) GetQosDot1PToColorMap() uint64 { - if x != nil { - return x.QosDot1PToColorMap + if x != nil && x.QosDot1PToColorMap != nil { + return *x.QosDot1PToColorMap } return 0 } func (x *SwitchAttribute) GetQosDscpToTcMap() uint64 { - if x != nil { - return x.QosDscpToTcMap + if x != nil && x.QosDscpToTcMap != nil { + return *x.QosDscpToTcMap } return 0 } func (x *SwitchAttribute) GetQosDscpToColorMap() uint64 { - if x != nil { - return x.QosDscpToColorMap + if x != nil && x.QosDscpToColorMap != nil { + return *x.QosDscpToColorMap } return 0 } func (x *SwitchAttribute) GetQosTcToQueueMap() uint64 { - if x != nil { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } func (x *SwitchAttribute) GetQosTcAndColorToDot1PMap() uint64 { - if x != nil { - return x.QosTcAndColorToDot1PMap + if x != nil && x.QosTcAndColorToDot1PMap != nil { + return *x.QosTcAndColorToDot1PMap } return 0 } func (x *SwitchAttribute) GetQosTcAndColorToDscpMap() uint64 { - if x != nil { - return x.QosTcAndColorToDscpMap + if x != nil && x.QosTcAndColorToDscpMap != nil { + return *x.QosTcAndColorToDscpMap } return 0 } func (x *SwitchAttribute) GetSwitchShellEnable() bool { - if x != nil { - return x.SwitchShellEnable + if x != nil && x.SwitchShellEnable != nil { + return *x.SwitchShellEnable } return false } func (x *SwitchAttribute) GetSwitchProfileId() uint32 { - if x != nil { - return x.SwitchProfileId + if x != nil && x.SwitchProfileId != nil { + return *x.SwitchProfileId } return 0 } -func (x *SwitchAttribute) GetSwitchHardwareInfo() *Int32List { +func (x *SwitchAttribute) GetSwitchHardwareInfo() []int32 { if x != nil { return x.SwitchHardwareInfo } return nil } -func (x *SwitchAttribute) GetFirmwarePathName() *Int32List { +func (x *SwitchAttribute) GetFirmwarePathName() []int32 { if x != nil { return x.FirmwarePathName } @@ -26468,22 +25200,22 @@ func (x *SwitchAttribute) GetFirmwarePathName() *Int32List { } func (x *SwitchAttribute) GetInitSwitch() bool { - if x != nil { - return x.InitSwitch + if x != nil && x.InitSwitch != nil { + return *x.InitSwitch } return false } func (x *SwitchAttribute) GetFastApiEnable() bool { - if x != nil { - return x.FastApiEnable + if x != nil && x.FastApiEnable != nil { + return *x.FastApiEnable } return false } func (x *SwitchAttribute) GetMirrorTc() uint32 { - if x != nil { - return x.MirrorTc + if x != nil && x.MirrorTc != nil { + return *x.MirrorTc } return 0 } @@ -26503,13 +25235,13 @@ func (x *SwitchAttribute) GetAclStageEgress() *ACLCapability { } func (x *SwitchAttribute) GetSrv6MaxSidDepth() uint32 { - if x != nil { - return x.Srv6MaxSidDepth + if x != nil && x.Srv6MaxSidDepth != nil { + return *x.Srv6MaxSidDepth } return 0 } -func (x *SwitchAttribute) GetSrv6TlvType() *TlvTypeList { +func (x *SwitchAttribute) GetSrv6TlvType() []TlvType { if x != nil { return x.Srv6TlvType } @@ -26517,15 +25249,15 @@ func (x *SwitchAttribute) GetSrv6TlvType() *TlvTypeList { } func (x *SwitchAttribute) GetQosNumLosslessQueues() uint32 { - if x != nil { - return x.QosNumLosslessQueues + if x != nil && x.QosNumLosslessQueues != nil { + return *x.QosNumLosslessQueues } return 0 } func (x *SwitchAttribute) GetPfcDlrPacketAction() PacketAction { - if x != nil { - return x.PfcDlrPacketAction + if x != nil && x.PfcDlrPacketAction != nil { + return *x.PfcDlrPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } @@ -26537,7 +25269,7 @@ func (x *SwitchAttribute) GetPfcTcDldIntervalRange() *Uint32Range { return nil } -func (x *SwitchAttribute) GetPfcTcDldInterval() *UintMapList { +func (x *SwitchAttribute) GetPfcTcDldInterval() []*UintMap { if x != nil { return x.PfcTcDldInterval } @@ -26551,14 +25283,14 @@ func (x *SwitchAttribute) GetPfcTcDlrIntervalRange() *Uint32Range { return nil } -func (x *SwitchAttribute) GetPfcTcDlrInterval() *UintMapList { +func (x *SwitchAttribute) GetPfcTcDlrInterval() []*UintMap { if x != nil { return x.PfcTcDlrInterval } return nil } -func (x *SwitchAttribute) GetSupportedProtectedObjectType() *ObjectTypeList { +func (x *SwitchAttribute) GetSupportedProtectedObjectType() []ObjectType { if x != nil { return x.SupportedProtectedObjectType } @@ -26566,55 +25298,55 @@ func (x *SwitchAttribute) GetSupportedProtectedObjectType() *ObjectTypeList { } func (x *SwitchAttribute) GetTpidOuterVlan() uint32 { - if x != nil { - return x.TpidOuterVlan + if x != nil && x.TpidOuterVlan != nil { + return *x.TpidOuterVlan } return 0 } func (x *SwitchAttribute) GetTpidInnerVlan() uint32 { - if x != nil { - return x.TpidInnerVlan + if x != nil && x.TpidInnerVlan != nil { + return *x.TpidInnerVlan } return 0 } func (x *SwitchAttribute) GetCrcCheckEnable() bool { - if x != nil { - return x.CrcCheckEnable + if x != nil && x.CrcCheckEnable != nil { + return *x.CrcCheckEnable } return false } func (x *SwitchAttribute) GetCrcRecalculationEnable() bool { - if x != nil { - return x.CrcRecalculationEnable + if x != nil && x.CrcRecalculationEnable != nil { + return *x.CrcRecalculationEnable } return false } func (x *SwitchAttribute) GetNumberOfBfdSession() uint32 { - if x != nil { - return x.NumberOfBfdSession + if x != nil && x.NumberOfBfdSession != nil { + return *x.NumberOfBfdSession } return 0 } func (x *SwitchAttribute) GetMaxBfdSession() uint32 { - if x != nil { - return x.MaxBfdSession + if x != nil && x.MaxBfdSession != nil { + return *x.MaxBfdSession } return 0 } -func (x *SwitchAttribute) GetSupportedIpv4BfdSessionOffloadType() *BfdSessionOffloadTypeList { +func (x *SwitchAttribute) GetSupportedIpv4BfdSessionOffloadType() []BfdSessionOffloadType { if x != nil { return x.SupportedIpv4BfdSessionOffloadType } return nil } -func (x *SwitchAttribute) GetSupportedIpv6BfdSessionOffloadType() *BfdSessionOffloadTypeList { +func (x *SwitchAttribute) GetSupportedIpv6BfdSessionOffloadType() []BfdSessionOffloadType { if x != nil { return x.SupportedIpv6BfdSessionOffloadType } @@ -26622,22 +25354,22 @@ func (x *SwitchAttribute) GetSupportedIpv6BfdSessionOffloadType() *BfdSessionOff } func (x *SwitchAttribute) GetMinBfdRx() uint32 { - if x != nil { - return x.MinBfdRx + if x != nil && x.MinBfdRx != nil { + return *x.MinBfdRx } return 0 } func (x *SwitchAttribute) GetMinBfdTx() uint32 { - if x != nil { - return x.MinBfdTx + if x != nil && x.MinBfdTx != nil { + return *x.MinBfdTx } return 0 } func (x *SwitchAttribute) GetEcnEctThresholdEnable() bool { - if x != nil { - return x.EcnEctThresholdEnable + if x != nil && x.EcnEctThresholdEnable != nil { + return *x.EcnEctThresholdEnable } return false } @@ -26650,27 +25382,27 @@ func (x *SwitchAttribute) GetVxlanDefaultRouterMac() []byte { } func (x *SwitchAttribute) GetVxlanDefaultPort() uint32 { - if x != nil { - return x.VxlanDefaultPort + if x != nil && x.VxlanDefaultPort != nil { + return *x.VxlanDefaultPort } return 0 } func (x *SwitchAttribute) GetMaxMirrorSession() uint32 { - if x != nil { - return x.MaxMirrorSession + if x != nil && x.MaxMirrorSession != nil { + return *x.MaxMirrorSession } return 0 } func (x *SwitchAttribute) GetMaxSampledMirrorSession() uint32 { - if x != nil { - return x.MaxSampledMirrorSession + if x != nil && x.MaxSampledMirrorSession != nil { + return *x.MaxSampledMirrorSession } return 0 } -func (x *SwitchAttribute) GetSupportedExtendedStatsMode() *StatsModeList { +func (x *SwitchAttribute) GetSupportedExtendedStatsMode() []StatsMode { if x != nil { return x.SupportedExtendedStatsMode } @@ -26678,20 +25410,20 @@ func (x *SwitchAttribute) GetSupportedExtendedStatsMode() *StatsModeList { } func (x *SwitchAttribute) GetUninitDataPlaneOnRemoval() bool { - if x != nil { - return x.UninitDataPlaneOnRemoval + if x != nil && x.UninitDataPlaneOnRemoval != nil { + return *x.UninitDataPlaneOnRemoval } return false } -func (x *SwitchAttribute) GetTamObjectId() *Uint64List { +func (x *SwitchAttribute) GetTamObjectId() []uint64 { if x != nil { return x.TamObjectId } return nil } -func (x *SwitchAttribute) GetSupportedObjectTypeList() *ObjectTypeList { +func (x *SwitchAttribute) GetSupportedObjectTypeList() []ObjectType { if x != nil { return x.SupportedObjectTypeList } @@ -26699,104 +25431,104 @@ func (x *SwitchAttribute) GetSupportedObjectTypeList() *ObjectTypeList { } func (x *SwitchAttribute) GetPreShutdown() bool { - if x != nil { - return x.PreShutdown + if x != nil && x.PreShutdown != nil { + return *x.PreShutdown } return false } func (x *SwitchAttribute) GetNatZoneCounterObjectId() uint64 { - if x != nil { - return x.NatZoneCounterObjectId + if x != nil && x.NatZoneCounterObjectId != nil { + return *x.NatZoneCounterObjectId } return 0 } func (x *SwitchAttribute) GetNatEnable() bool { - if x != nil { - return x.NatEnable + if x != nil && x.NatEnable != nil { + return *x.NatEnable } return false } func (x *SwitchAttribute) GetHardwareAccessBus() SwitchHardwareAccessBus { - if x != nil { - return x.HardwareAccessBus + if x != nil && x.HardwareAccessBus != nil { + return *x.HardwareAccessBus } return SwitchHardwareAccessBus_SWITCH_HARDWARE_ACCESS_BUS_UNSPECIFIED } func (x *SwitchAttribute) GetPlatfromContext() uint64 { - if x != nil { - return x.PlatfromContext + if x != nil && x.PlatfromContext != nil { + return *x.PlatfromContext } return 0 } func (x *SwitchAttribute) GetFirmwareDownloadBroadcast() bool { - if x != nil { - return x.FirmwareDownloadBroadcast + if x != nil && x.FirmwareDownloadBroadcast != nil { + return *x.FirmwareDownloadBroadcast } return false } func (x *SwitchAttribute) GetFirmwareLoadMethod() SwitchFirmwareLoadMethod { - if x != nil { - return x.FirmwareLoadMethod + if x != nil && x.FirmwareLoadMethod != nil { + return *x.FirmwareLoadMethod } return SwitchFirmwareLoadMethod_SWITCH_FIRMWARE_LOAD_METHOD_UNSPECIFIED } func (x *SwitchAttribute) GetFirmwareLoadType() SwitchFirmwareLoadType { - if x != nil { - return x.FirmwareLoadType + if x != nil && x.FirmwareLoadType != nil { + return *x.FirmwareLoadType } return SwitchFirmwareLoadType_SWITCH_FIRMWARE_LOAD_TYPE_UNSPECIFIED } func (x *SwitchAttribute) GetFirmwareDownloadExecute() bool { - if x != nil { - return x.FirmwareDownloadExecute + if x != nil && x.FirmwareDownloadExecute != nil { + return *x.FirmwareDownloadExecute } return false } func (x *SwitchAttribute) GetFirmwareBroadcastStop() bool { - if x != nil { - return x.FirmwareBroadcastStop + if x != nil && x.FirmwareBroadcastStop != nil { + return *x.FirmwareBroadcastStop } return false } func (x *SwitchAttribute) GetFirmwareVerifyAndInitSwitch() bool { - if x != nil { - return x.FirmwareVerifyAndInitSwitch + if x != nil && x.FirmwareVerifyAndInitSwitch != nil { + return *x.FirmwareVerifyAndInitSwitch } return false } func (x *SwitchAttribute) GetFirmwareStatus() bool { - if x != nil { - return x.FirmwareStatus + if x != nil && x.FirmwareStatus != nil { + return *x.FirmwareStatus } return false } func (x *SwitchAttribute) GetFirmwareMajorVersion() uint32 { - if x != nil { - return x.FirmwareMajorVersion + if x != nil && x.FirmwareMajorVersion != nil { + return *x.FirmwareMajorVersion } return 0 } func (x *SwitchAttribute) GetFirmwareMinorVersion() uint32 { - if x != nil { - return x.FirmwareMinorVersion + if x != nil && x.FirmwareMinorVersion != nil { + return *x.FirmwareMinorVersion } return 0 } -func (x *SwitchAttribute) GetPortConnectorList() *Uint64List { +func (x *SwitchAttribute) GetPortConnectorList() []uint64 { if x != nil { return x.PortConnectorList } @@ -26804,20 +25536,20 @@ func (x *SwitchAttribute) GetPortConnectorList() *Uint64List { } func (x *SwitchAttribute) GetPropogatePortStateFromLineToSystemPortSupport() bool { - if x != nil { - return x.PropogatePortStateFromLineToSystemPortSupport + if x != nil && x.PropogatePortStateFromLineToSystemPortSupport != nil { + return *x.PropogatePortStateFromLineToSystemPortSupport } return false } func (x *SwitchAttribute) GetType() SwitchType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return SwitchType_SWITCH_TYPE_UNSPECIFIED } -func (x *SwitchAttribute) GetMacsecObjectList() *Uint64List { +func (x *SwitchAttribute) GetMacsecObjectList() []uint64 { if x != nil { return x.MacsecObjectList } @@ -26825,41 +25557,41 @@ func (x *SwitchAttribute) GetMacsecObjectList() *Uint64List { } func (x *SwitchAttribute) GetQosMplsExpToTcMap() uint64 { - if x != nil { - return x.QosMplsExpToTcMap + if x != nil && x.QosMplsExpToTcMap != nil { + return *x.QosMplsExpToTcMap } return 0 } func (x *SwitchAttribute) GetQosMplsExpToColorMap() uint64 { - if x != nil { - return x.QosMplsExpToColorMap + if x != nil && x.QosMplsExpToColorMap != nil { + return *x.QosMplsExpToColorMap } return 0 } func (x *SwitchAttribute) GetQosTcAndColorToMplsExpMap() uint64 { - if x != nil { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } func (x *SwitchAttribute) GetSwitchId() uint32 { - if x != nil { - return x.SwitchId + if x != nil && x.SwitchId != nil { + return *x.SwitchId } return 0 } func (x *SwitchAttribute) GetMaxSystemCores() uint32 { - if x != nil { - return x.MaxSystemCores + if x != nil && x.MaxSystemCores != nil { + return *x.MaxSystemCores } return 0 } -func (x *SwitchAttribute) GetSystemPortConfigList() *SystemPortConfigList { +func (x *SwitchAttribute) GetSystemPortConfigList() []*SystemPortConfig { if x != nil { return x.SystemPortConfigList } @@ -26867,13 +25599,13 @@ func (x *SwitchAttribute) GetSystemPortConfigList() *SystemPortConfigList { } func (x *SwitchAttribute) GetNumberOfSystemPorts() uint32 { - if x != nil { - return x.NumberOfSystemPorts + if x != nil && x.NumberOfSystemPorts != nil { + return *x.NumberOfSystemPorts } return 0 } -func (x *SwitchAttribute) GetSystemPortList() *Uint64List { +func (x *SwitchAttribute) GetSystemPortList() []uint64 { if x != nil { return x.SystemPortList } @@ -26881,13 +25613,13 @@ func (x *SwitchAttribute) GetSystemPortList() *Uint64List { } func (x *SwitchAttribute) GetNumberOfFabricPorts() uint32 { - if x != nil { - return x.NumberOfFabricPorts + if x != nil && x.NumberOfFabricPorts != nil { + return *x.NumberOfFabricPorts } return 0 } -func (x *SwitchAttribute) GetFabricPortList() *Uint64List { +func (x *SwitchAttribute) GetFabricPortList() []uint64 { if x != nil { return x.FabricPortList } @@ -26895,27 +25627,27 @@ func (x *SwitchAttribute) GetFabricPortList() *Uint64List { } func (x *SwitchAttribute) GetPacketDmaMemoryPoolSize() uint32 { - if x != nil { - return x.PacketDmaMemoryPoolSize + if x != nil && x.PacketDmaMemoryPoolSize != nil { + return *x.PacketDmaMemoryPoolSize } return 0 } func (x *SwitchAttribute) GetFailoverConfigMode() SwitchFailoverConfigMode { - if x != nil { - return x.FailoverConfigMode + if x != nil && x.FailoverConfigMode != nil { + return *x.FailoverConfigMode } return SwitchFailoverConfigMode_SWITCH_FAILOVER_CONFIG_MODE_UNSPECIFIED } func (x *SwitchAttribute) GetSupportedFailoverMode() bool { - if x != nil { - return x.SupportedFailoverMode + if x != nil && x.SupportedFailoverMode != nil { + return *x.SupportedFailoverMode } return false } -func (x *SwitchAttribute) GetTunnelObjectsList() *Uint64List { +func (x *SwitchAttribute) GetTunnelObjectsList() []uint64 { if x != nil { return x.TunnelObjectsList } @@ -26923,41 +25655,41 @@ func (x *SwitchAttribute) GetTunnelObjectsList() *Uint64List { } func (x *SwitchAttribute) GetPacketAvailableDmaMemoryPoolSize() uint32 { - if x != nil { - return x.PacketAvailableDmaMemoryPoolSize + if x != nil && x.PacketAvailableDmaMemoryPoolSize != nil { + return *x.PacketAvailableDmaMemoryPoolSize } return 0 } func (x *SwitchAttribute) GetPreIngressAcl() uint64 { - if x != nil { - return x.PreIngressAcl + if x != nil && x.PreIngressAcl != nil { + return *x.PreIngressAcl } return 0 } func (x *SwitchAttribute) GetAvailableSnaptEntry() uint32 { - if x != nil { - return x.AvailableSnaptEntry + if x != nil && x.AvailableSnaptEntry != nil { + return *x.AvailableSnaptEntry } return 0 } func (x *SwitchAttribute) GetAvailableDnaptEntry() uint32 { - if x != nil { - return x.AvailableDnaptEntry + if x != nil && x.AvailableDnaptEntry != nil { + return *x.AvailableDnaptEntry } return 0 } func (x *SwitchAttribute) GetAvailableDoubleNaptEntry() uint32 { - if x != nil { - return x.AvailableDoubleNaptEntry + if x != nil && x.AvailableDoubleNaptEntry != nil { + return *x.AvailableDoubleNaptEntry } return 0 } -func (x *SwitchAttribute) GetSlaveMdioAddrList() *Uint32List { +func (x *SwitchAttribute) GetSlaveMdioAddrList() []uint32 { if x != nil { return x.SlaveMdioAddrList } @@ -26965,20 +25697,20 @@ func (x *SwitchAttribute) GetSlaveMdioAddrList() *Uint32List { } func (x *SwitchAttribute) GetMyMacTableMinimumPriority() uint32 { - if x != nil { - return x.MyMacTableMinimumPriority + if x != nil && x.MyMacTableMinimumPriority != nil { + return *x.MyMacTableMinimumPriority } return 0 } func (x *SwitchAttribute) GetMyMacTableMaximumPriority() uint32 { - if x != nil { - return x.MyMacTableMaximumPriority + if x != nil && x.MyMacTableMaximumPriority != nil { + return *x.MyMacTableMaximumPriority } return 0 } -func (x *SwitchAttribute) GetMyMacList() *Uint64List { +func (x *SwitchAttribute) GetMyMacList() []uint64 { if x != nil { return x.MyMacList } @@ -26986,50 +25718,50 @@ func (x *SwitchAttribute) GetMyMacList() *Uint64List { } func (x *SwitchAttribute) GetInstalledMyMacEntries() uint32 { - if x != nil { - return x.InstalledMyMacEntries + if x != nil && x.InstalledMyMacEntries != nil { + return *x.InstalledMyMacEntries } return 0 } func (x *SwitchAttribute) GetAvailableMyMacEntries() uint32 { - if x != nil { - return x.AvailableMyMacEntries + if x != nil && x.AvailableMyMacEntries != nil { + return *x.AvailableMyMacEntries } return 0 } func (x *SwitchAttribute) GetMaxNumberOfForwardingClasses() uint32 { - if x != nil { - return x.MaxNumberOfForwardingClasses + if x != nil && x.MaxNumberOfForwardingClasses != nil { + return *x.MaxNumberOfForwardingClasses } return 0 } func (x *SwitchAttribute) GetQosDscpToForwardingClassMap() uint64 { - if x != nil { - return x.QosDscpToForwardingClassMap + if x != nil && x.QosDscpToForwardingClassMap != nil { + return *x.QosDscpToForwardingClassMap } return 0 } func (x *SwitchAttribute) GetQosMplsExpToForwardingClassMap() uint64 { - if x != nil { - return x.QosMplsExpToForwardingClassMap + if x != nil && x.QosMplsExpToForwardingClassMap != nil { + return *x.QosMplsExpToForwardingClassMap } return 0 } func (x *SwitchAttribute) GetIpsecObjectId() uint64 { - if x != nil { - return x.IpsecObjectId + if x != nil && x.IpsecObjectId != nil { + return *x.IpsecObjectId } return 0 } func (x *SwitchAttribute) GetIpsecSaTagTpid() uint32 { - if x != nil { - return x.IpsecSaTagTpid + if x != nil && x.IpsecSaTagTpid != nil { + return *x.IpsecSaTagTpid } return 0 } @@ -27039,21 +25771,21 @@ type SwitchTunnelAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TunnelType TunnelType `protobuf:"varint,1,opt,name=tunnel_type,json=tunnelType,proto3,enum=lemming.dataplane.sai.TunnelType" json:"tunnel_type,omitempty"` - LoopbackPacketAction PacketAction `protobuf:"varint,2,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"loopback_packet_action,omitempty"` - TunnelEncapEcnMode TunnelEncapEcnMode `protobuf:"varint,3,opt,name=tunnel_encap_ecn_mode,json=tunnelEncapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelEncapEcnMode" json:"tunnel_encap_ecn_mode,omitempty"` - EncapMappers *Uint64List `protobuf:"bytes,4,opt,name=encap_mappers,json=encapMappers,proto3" json:"encap_mappers,omitempty"` - TunnelDecapEcnMode TunnelDecapEcnMode `protobuf:"varint,5,opt,name=tunnel_decap_ecn_mode,json=tunnelDecapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelDecapEcnMode" json:"tunnel_decap_ecn_mode,omitempty"` - DecapMappers *Uint64List `protobuf:"bytes,6,opt,name=decap_mappers,json=decapMappers,proto3" json:"decap_mappers,omitempty"` - TunnelVxlanUdpSportMode TunnelVxlanUdpSportMode `protobuf:"varint,7,opt,name=tunnel_vxlan_udp_sport_mode,json=tunnelVxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode" json:"tunnel_vxlan_udp_sport_mode,omitempty"` - VxlanUdpSport uint32 `protobuf:"varint,8,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3" json:"vxlan_udp_sport,omitempty"` - VxlanUdpSportMask uint32 `protobuf:"varint,9,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3" json:"vxlan_udp_sport_mask,omitempty"` + TunnelType *TunnelType `protobuf:"varint,1,opt,name=tunnel_type,json=tunnelType,proto3,enum=lemming.dataplane.sai.TunnelType,oneof" json:"tunnel_type,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,2,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + TunnelEncapEcnMode *TunnelEncapEcnMode `protobuf:"varint,3,opt,name=tunnel_encap_ecn_mode,json=tunnelEncapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelEncapEcnMode,oneof" json:"tunnel_encap_ecn_mode,omitempty"` + EncapMappers []uint64 `protobuf:"varint,4,rep,packed,name=encap_mappers,json=encapMappers,proto3" json:"encap_mappers,omitempty"` + TunnelDecapEcnMode *TunnelDecapEcnMode `protobuf:"varint,5,opt,name=tunnel_decap_ecn_mode,json=tunnelDecapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelDecapEcnMode,oneof" json:"tunnel_decap_ecn_mode,omitempty"` + DecapMappers []uint64 `protobuf:"varint,6,rep,packed,name=decap_mappers,json=decapMappers,proto3" json:"decap_mappers,omitempty"` + TunnelVxlanUdpSportMode *TunnelVxlanUdpSportMode `protobuf:"varint,7,opt,name=tunnel_vxlan_udp_sport_mode,json=tunnelVxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode,oneof" json:"tunnel_vxlan_udp_sport_mode,omitempty"` + VxlanUdpSport *uint32 `protobuf:"varint,8,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3,oneof" json:"vxlan_udp_sport,omitempty"` + VxlanUdpSportMask *uint32 `protobuf:"varint,9,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3,oneof" json:"vxlan_udp_sport_mask,omitempty"` } func (x *SwitchTunnelAttribute) Reset() { *x = SwitchTunnelAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[135] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27066,7 +25798,7 @@ func (x *SwitchTunnelAttribute) String() string { func (*SwitchTunnelAttribute) ProtoMessage() {} func (x *SwitchTunnelAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[135] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27079,31 +25811,31 @@ func (x *SwitchTunnelAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use SwitchTunnelAttribute.ProtoReflect.Descriptor instead. func (*SwitchTunnelAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{135} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{108} } func (x *SwitchTunnelAttribute) GetTunnelType() TunnelType { - if x != nil { - return x.TunnelType + if x != nil && x.TunnelType != nil { + return *x.TunnelType } return TunnelType_TUNNEL_TYPE_UNSPECIFIED } func (x *SwitchTunnelAttribute) GetLoopbackPacketAction() PacketAction { - if x != nil { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SwitchTunnelAttribute) GetTunnelEncapEcnMode() TunnelEncapEcnMode { - if x != nil { - return x.TunnelEncapEcnMode + if x != nil && x.TunnelEncapEcnMode != nil { + return *x.TunnelEncapEcnMode } return TunnelEncapEcnMode_TUNNEL_ENCAP_ECN_MODE_UNSPECIFIED } -func (x *SwitchTunnelAttribute) GetEncapMappers() *Uint64List { +func (x *SwitchTunnelAttribute) GetEncapMappers() []uint64 { if x != nil { return x.EncapMappers } @@ -27111,13 +25843,13 @@ func (x *SwitchTunnelAttribute) GetEncapMappers() *Uint64List { } func (x *SwitchTunnelAttribute) GetTunnelDecapEcnMode() TunnelDecapEcnMode { - if x != nil { - return x.TunnelDecapEcnMode + if x != nil && x.TunnelDecapEcnMode != nil { + return *x.TunnelDecapEcnMode } return TunnelDecapEcnMode_TUNNEL_DECAP_ECN_MODE_UNSPECIFIED } -func (x *SwitchTunnelAttribute) GetDecapMappers() *Uint64List { +func (x *SwitchTunnelAttribute) GetDecapMappers() []uint64 { if x != nil { return x.DecapMappers } @@ -27125,22 +25857,22 @@ func (x *SwitchTunnelAttribute) GetDecapMappers() *Uint64List { } func (x *SwitchTunnelAttribute) GetTunnelVxlanUdpSportMode() TunnelVxlanUdpSportMode { - if x != nil { - return x.TunnelVxlanUdpSportMode + if x != nil && x.TunnelVxlanUdpSportMode != nil { + return *x.TunnelVxlanUdpSportMode } return TunnelVxlanUdpSportMode_TUNNEL_VXLAN_UDP_SPORT_MODE_UNSPECIFIED } func (x *SwitchTunnelAttribute) GetVxlanUdpSport() uint32 { - if x != nil { - return x.VxlanUdpSport + if x != nil && x.VxlanUdpSport != nil { + return *x.VxlanUdpSport } return 0 } func (x *SwitchTunnelAttribute) GetVxlanUdpSportMask() uint32 { - if x != nil { - return x.VxlanUdpSportMask + if x != nil && x.VxlanUdpSportMask != nil { + return *x.VxlanUdpSportMask } return 0 } @@ -27150,19 +25882,19 @@ type SystemPortAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type SystemPortType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.SystemPortType" json:"type,omitempty"` - QosNumberOfVoqs uint32 `protobuf:"varint,2,opt,name=qos_number_of_voqs,json=qosNumberOfVoqs,proto3" json:"qos_number_of_voqs,omitempty"` - QosVoqList *Uint64List `protobuf:"bytes,3,opt,name=qos_voq_list,json=qosVoqList,proto3" json:"qos_voq_list,omitempty"` - Port uint64 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"` - AdminState bool `protobuf:"varint,5,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - ConfigInfo *SystemPortConfig `protobuf:"bytes,6,opt,name=config_info,json=configInfo,proto3" json:"config_info,omitempty"` - QosTcToQueueMap uint64 `protobuf:"varint,7,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3" json:"qos_tc_to_queue_map,omitempty"` + Type *SystemPortType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.SystemPortType,oneof" json:"type,omitempty"` + QosNumberOfVoqs *uint32 `protobuf:"varint,2,opt,name=qos_number_of_voqs,json=qosNumberOfVoqs,proto3,oneof" json:"qos_number_of_voqs,omitempty"` + QosVoqList []uint64 `protobuf:"varint,3,rep,packed,name=qos_voq_list,json=qosVoqList,proto3" json:"qos_voq_list,omitempty"` + Port *uint64 `protobuf:"varint,4,opt,name=port,proto3,oneof" json:"port,omitempty"` + AdminState *bool `protobuf:"varint,5,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + ConfigInfo *SystemPortConfig `protobuf:"bytes,6,opt,name=config_info,json=configInfo,proto3,oneof" json:"config_info,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,7,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` } func (x *SystemPortAttribute) Reset() { *x = SystemPortAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[136] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27175,7 +25907,7 @@ func (x *SystemPortAttribute) String() string { func (*SystemPortAttribute) ProtoMessage() {} func (x *SystemPortAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[136] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27188,24 +25920,24 @@ func (x *SystemPortAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemPortAttribute.ProtoReflect.Descriptor instead. func (*SystemPortAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{136} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{109} } func (x *SystemPortAttribute) GetType() SystemPortType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return SystemPortType_SYSTEM_PORT_TYPE_UNSPECIFIED } func (x *SystemPortAttribute) GetQosNumberOfVoqs() uint32 { - if x != nil { - return x.QosNumberOfVoqs + if x != nil && x.QosNumberOfVoqs != nil { + return *x.QosNumberOfVoqs } return 0 } -func (x *SystemPortAttribute) GetQosVoqList() *Uint64List { +func (x *SystemPortAttribute) GetQosVoqList() []uint64 { if x != nil { return x.QosVoqList } @@ -27213,15 +25945,15 @@ func (x *SystemPortAttribute) GetQosVoqList() *Uint64List { } func (x *SystemPortAttribute) GetPort() uint64 { - if x != nil { - return x.Port + if x != nil && x.Port != nil { + return *x.Port } return 0 } func (x *SystemPortAttribute) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } @@ -27234,74 +25966,27 @@ func (x *SystemPortAttribute) GetConfigInfo() *SystemPortConfig { } func (x *SystemPortAttribute) GetQosTcToQueueMap() uint64 { - if x != nil { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } -type TamBindPointTypeList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - List []TamBindPointType `protobuf:"varint,1,rep,packed,name=list,proto3,enum=lemming.dataplane.sai.TamBindPointType" json:"list,omitempty"` -} - -func (x *TamBindPointTypeList) Reset() { - *x = TamBindPointTypeList{} - if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[137] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TamBindPointTypeList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TamBindPointTypeList) ProtoMessage() {} - -func (x *TamBindPointTypeList) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[137] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TamBindPointTypeList.ProtoReflect.Descriptor instead. -func (*TamBindPointTypeList) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{137} -} - -func (x *TamBindPointTypeList) GetList() []TamBindPointType { - if x != nil { - return x.List - } - return nil -} - type TamAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TelemetryObjectsList *Uint64List `protobuf:"bytes,1,opt,name=telemetry_objects_list,json=telemetryObjectsList,proto3" json:"telemetry_objects_list,omitempty"` - EventObjectsList *Uint64List `protobuf:"bytes,2,opt,name=event_objects_list,json=eventObjectsList,proto3" json:"event_objects_list,omitempty"` - IntObjectsList *Uint64List `protobuf:"bytes,3,opt,name=int_objects_list,json=intObjectsList,proto3" json:"int_objects_list,omitempty"` - TamBindPointTypeList *TamBindPointTypeList `protobuf:"bytes,4,opt,name=tam_bind_point_type_list,json=tamBindPointTypeList,proto3" json:"tam_bind_point_type_list,omitempty"` + TelemetryObjectsList []uint64 `protobuf:"varint,1,rep,packed,name=telemetry_objects_list,json=telemetryObjectsList,proto3" json:"telemetry_objects_list,omitempty"` + EventObjectsList []uint64 `protobuf:"varint,2,rep,packed,name=event_objects_list,json=eventObjectsList,proto3" json:"event_objects_list,omitempty"` + IntObjectsList []uint64 `protobuf:"varint,3,rep,packed,name=int_objects_list,json=intObjectsList,proto3" json:"int_objects_list,omitempty"` + TamBindPointTypeList []TamBindPointType `protobuf:"varint,4,rep,packed,name=tam_bind_point_type_list,json=tamBindPointTypeList,proto3,enum=lemming.dataplane.sai.TamBindPointType" json:"tam_bind_point_type_list,omitempty"` } func (x *TamAttribute) Reset() { *x = TamAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[138] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27314,7 +25999,7 @@ func (x *TamAttribute) String() string { func (*TamAttribute) ProtoMessage() {} func (x *TamAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[138] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27327,31 +26012,31 @@ func (x *TamAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamAttribute.ProtoReflect.Descriptor instead. func (*TamAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{138} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{110} } -func (x *TamAttribute) GetTelemetryObjectsList() *Uint64List { +func (x *TamAttribute) GetTelemetryObjectsList() []uint64 { if x != nil { return x.TelemetryObjectsList } return nil } -func (x *TamAttribute) GetEventObjectsList() *Uint64List { +func (x *TamAttribute) GetEventObjectsList() []uint64 { if x != nil { return x.EventObjectsList } return nil } -func (x *TamAttribute) GetIntObjectsList() *Uint64List { +func (x *TamAttribute) GetIntObjectsList() []uint64 { if x != nil { return x.IntObjectsList } return nil } -func (x *TamAttribute) GetTamBindPointTypeList() *TamBindPointTypeList { +func (x *TamAttribute) GetTamBindPointTypeList() []TamBindPointType { if x != nil { return x.TamBindPointTypeList } @@ -27363,19 +26048,19 @@ type TamCollectorAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SrcIp []byte `protobuf:"bytes,1,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` - DstIp []byte `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - Localhost bool `protobuf:"varint,3,opt,name=localhost,proto3" json:"localhost,omitempty"` - VirtualRouterId uint64 `protobuf:"varint,4,opt,name=virtual_router_id,json=virtualRouterId,proto3" json:"virtual_router_id,omitempty"` - TruncateSize uint32 `protobuf:"varint,5,opt,name=truncate_size,json=truncateSize,proto3" json:"truncate_size,omitempty"` - Transport uint64 `protobuf:"varint,6,opt,name=transport,proto3" json:"transport,omitempty"` - DscpValue uint32 `protobuf:"varint,7,opt,name=dscp_value,json=dscpValue,proto3" json:"dscp_value,omitempty"` + SrcIp []byte `protobuf:"bytes,1,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + DstIp []byte `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + Localhost *bool `protobuf:"varint,3,opt,name=localhost,proto3,oneof" json:"localhost,omitempty"` + VirtualRouterId *uint64 `protobuf:"varint,4,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof" json:"virtual_router_id,omitempty"` + TruncateSize *uint32 `protobuf:"varint,5,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + Transport *uint64 `protobuf:"varint,6,opt,name=transport,proto3,oneof" json:"transport,omitempty"` + DscpValue *uint32 `protobuf:"varint,7,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *TamCollectorAttribute) Reset() { *x = TamCollectorAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[139] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27388,7 +26073,7 @@ func (x *TamCollectorAttribute) String() string { func (*TamCollectorAttribute) ProtoMessage() {} func (x *TamCollectorAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[139] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27401,7 +26086,7 @@ func (x *TamCollectorAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamCollectorAttribute.ProtoReflect.Descriptor instead. func (*TamCollectorAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{139} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{111} } func (x *TamCollectorAttribute) GetSrcIp() []byte { @@ -27419,36 +26104,36 @@ func (x *TamCollectorAttribute) GetDstIp() []byte { } func (x *TamCollectorAttribute) GetLocalhost() bool { - if x != nil { - return x.Localhost + if x != nil && x.Localhost != nil { + return *x.Localhost } return false } func (x *TamCollectorAttribute) GetVirtualRouterId() uint64 { - if x != nil { - return x.VirtualRouterId + if x != nil && x.VirtualRouterId != nil { + return *x.VirtualRouterId } return 0 } func (x *TamCollectorAttribute) GetTruncateSize() uint32 { - if x != nil { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *TamCollectorAttribute) GetTransport() uint64 { - if x != nil { - return x.Transport + if x != nil && x.Transport != nil { + return *x.Transport } return 0 } func (x *TamCollectorAttribute) GetDscpValue() uint32 { - if x != nil { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } @@ -27458,17 +26143,17 @@ type TamEventAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type TamEventType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TamEventType" json:"type,omitempty"` - ActionList *Uint64List `protobuf:"bytes,2,opt,name=action_list,json=actionList,proto3" json:"action_list,omitempty"` - CollectorList *Uint64List `protobuf:"bytes,3,opt,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` - Threshold uint64 `protobuf:"varint,4,opt,name=threshold,proto3" json:"threshold,omitempty"` - DscpValue uint32 `protobuf:"varint,5,opt,name=dscp_value,json=dscpValue,proto3" json:"dscp_value,omitempty"` + Type *TamEventType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TamEventType,oneof" json:"type,omitempty"` + ActionList []uint64 `protobuf:"varint,2,rep,packed,name=action_list,json=actionList,proto3" json:"action_list,omitempty"` + CollectorList []uint64 `protobuf:"varint,3,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` + Threshold *uint64 `protobuf:"varint,4,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` + DscpValue *uint32 `protobuf:"varint,5,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *TamEventAttribute) Reset() { *x = TamEventAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[140] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27481,7 +26166,7 @@ func (x *TamEventAttribute) String() string { func (*TamEventAttribute) ProtoMessage() {} func (x *TamEventAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[140] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27494,24 +26179,24 @@ func (x *TamEventAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamEventAttribute.ProtoReflect.Descriptor instead. func (*TamEventAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{140} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{112} } func (x *TamEventAttribute) GetType() TamEventType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TamEventType_TAM_EVENT_TYPE_UNSPECIFIED } -func (x *TamEventAttribute) GetActionList() *Uint64List { +func (x *TamEventAttribute) GetActionList() []uint64 { if x != nil { return x.ActionList } return nil } -func (x *TamEventAttribute) GetCollectorList() *Uint64List { +func (x *TamEventAttribute) GetCollectorList() []uint64 { if x != nil { return x.CollectorList } @@ -27519,15 +26204,15 @@ func (x *TamEventAttribute) GetCollectorList() *Uint64List { } func (x *TamEventAttribute) GetThreshold() uint64 { - if x != nil { - return x.Threshold + if x != nil && x.Threshold != nil { + return *x.Threshold } return 0 } func (x *TamEventAttribute) GetDscpValue() uint32 { - if x != nil { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } @@ -27537,14 +26222,14 @@ type TamEventActionAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReportType uint64 `protobuf:"varint,1,opt,name=report_type,json=reportType,proto3" json:"report_type,omitempty"` - QosActionType uint32 `protobuf:"varint,2,opt,name=qos_action_type,json=qosActionType,proto3" json:"qos_action_type,omitempty"` + ReportType *uint64 `protobuf:"varint,1,opt,name=report_type,json=reportType,proto3,oneof" json:"report_type,omitempty"` + QosActionType *uint32 `protobuf:"varint,2,opt,name=qos_action_type,json=qosActionType,proto3,oneof" json:"qos_action_type,omitempty"` } func (x *TamEventActionAttribute) Reset() { *x = TamEventActionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[141] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27557,7 +26242,7 @@ func (x *TamEventActionAttribute) String() string { func (*TamEventActionAttribute) ProtoMessage() {} func (x *TamEventActionAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[141] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27570,19 +26255,19 @@ func (x *TamEventActionAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamEventActionAttribute.ProtoReflect.Descriptor instead. func (*TamEventActionAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{141} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{113} } func (x *TamEventActionAttribute) GetReportType() uint64 { - if x != nil { - return x.ReportType + if x != nil && x.ReportType != nil { + return *x.ReportType } return 0 } func (x *TamEventActionAttribute) GetQosActionType() uint32 { - if x != nil { - return x.QosActionType + if x != nil && x.QosActionType != nil { + return *x.QosActionType } return 0 } @@ -27592,18 +26277,18 @@ type TamEventThresholdAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HighWatermark uint32 `protobuf:"varint,1,opt,name=high_watermark,json=highWatermark,proto3" json:"high_watermark,omitempty"` - LowWatermark uint32 `protobuf:"varint,2,opt,name=low_watermark,json=lowWatermark,proto3" json:"low_watermark,omitempty"` - Latency uint32 `protobuf:"varint,3,opt,name=latency,proto3" json:"latency,omitempty"` - Rate uint32 `protobuf:"varint,4,opt,name=rate,proto3" json:"rate,omitempty"` - AbsValue uint32 `protobuf:"varint,5,opt,name=abs_value,json=absValue,proto3" json:"abs_value,omitempty"` - Unit TamEventThresholdUnit `protobuf:"varint,6,opt,name=unit,proto3,enum=lemming.dataplane.sai.TamEventThresholdUnit" json:"unit,omitempty"` + HighWatermark *uint32 `protobuf:"varint,1,opt,name=high_watermark,json=highWatermark,proto3,oneof" json:"high_watermark,omitempty"` + LowWatermark *uint32 `protobuf:"varint,2,opt,name=low_watermark,json=lowWatermark,proto3,oneof" json:"low_watermark,omitempty"` + Latency *uint32 `protobuf:"varint,3,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + Rate *uint32 `protobuf:"varint,4,opt,name=rate,proto3,oneof" json:"rate,omitempty"` + AbsValue *uint32 `protobuf:"varint,5,opt,name=abs_value,json=absValue,proto3,oneof" json:"abs_value,omitempty"` + Unit *TamEventThresholdUnit `protobuf:"varint,6,opt,name=unit,proto3,enum=lemming.dataplane.sai.TamEventThresholdUnit,oneof" json:"unit,omitempty"` } func (x *TamEventThresholdAttribute) Reset() { *x = TamEventThresholdAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[142] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27616,7 +26301,7 @@ func (x *TamEventThresholdAttribute) String() string { func (*TamEventThresholdAttribute) ProtoMessage() {} func (x *TamEventThresholdAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[142] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27629,47 +26314,47 @@ func (x *TamEventThresholdAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamEventThresholdAttribute.ProtoReflect.Descriptor instead. func (*TamEventThresholdAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{142} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{114} } func (x *TamEventThresholdAttribute) GetHighWatermark() uint32 { - if x != nil { - return x.HighWatermark + if x != nil && x.HighWatermark != nil { + return *x.HighWatermark } return 0 } func (x *TamEventThresholdAttribute) GetLowWatermark() uint32 { - if x != nil { - return x.LowWatermark + if x != nil && x.LowWatermark != nil { + return *x.LowWatermark } return 0 } func (x *TamEventThresholdAttribute) GetLatency() uint32 { - if x != nil { - return x.Latency + if x != nil && x.Latency != nil { + return *x.Latency } return 0 } func (x *TamEventThresholdAttribute) GetRate() uint32 { - if x != nil { - return x.Rate + if x != nil && x.Rate != nil { + return *x.Rate } return 0 } func (x *TamEventThresholdAttribute) GetAbsValue() uint32 { - if x != nil { - return x.AbsValue + if x != nil && x.AbsValue != nil { + return *x.AbsValue } return 0 } func (x *TamEventThresholdAttribute) GetUnit() TamEventThresholdUnit { - if x != nil { - return x.Unit + if x != nil && x.Unit != nil { + return *x.Unit } return TamEventThresholdUnit_TAM_EVENT_THRESHOLD_UNIT_UNSPECIFIED } @@ -27679,38 +26364,38 @@ type TamIntAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type TamIntType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TamIntType" json:"type,omitempty"` - DeviceId uint32 `protobuf:"varint,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` - IoamTraceType uint32 `protobuf:"varint,3,opt,name=ioam_trace_type,json=ioamTraceType,proto3" json:"ioam_trace_type,omitempty"` - IntPresenceType TamIntPresenceType `protobuf:"varint,4,opt,name=int_presence_type,json=intPresenceType,proto3,enum=lemming.dataplane.sai.TamIntPresenceType" json:"int_presence_type,omitempty"` - IntPresencePb1 uint32 `protobuf:"varint,5,opt,name=int_presence_pb1,json=intPresencePb1,proto3" json:"int_presence_pb1,omitempty"` - IntPresencePb2 uint32 `protobuf:"varint,6,opt,name=int_presence_pb2,json=intPresencePb2,proto3" json:"int_presence_pb2,omitempty"` - IntPresenceDscpValue uint32 `protobuf:"varint,7,opt,name=int_presence_dscp_value,json=intPresenceDscpValue,proto3" json:"int_presence_dscp_value,omitempty"` - Inline bool `protobuf:"varint,8,opt,name=inline,proto3" json:"inline,omitempty"` - IntPresenceL3Protocol uint32 `protobuf:"varint,9,opt,name=int_presence_l3_protocol,json=intPresenceL3Protocol,proto3" json:"int_presence_l3_protocol,omitempty"` - TraceVector uint32 `protobuf:"varint,10,opt,name=trace_vector,json=traceVector,proto3" json:"trace_vector,omitempty"` - ActionVector uint32 `protobuf:"varint,11,opt,name=action_vector,json=actionVector,proto3" json:"action_vector,omitempty"` - P4IntInstructionBitmap uint32 `protobuf:"varint,12,opt,name=p4_int_instruction_bitmap,json=p4IntInstructionBitmap,proto3" json:"p4_int_instruction_bitmap,omitempty"` - MetadataFragmentEnable bool `protobuf:"varint,13,opt,name=metadata_fragment_enable,json=metadataFragmentEnable,proto3" json:"metadata_fragment_enable,omitempty"` - MetadataChecksumEnable bool `protobuf:"varint,14,opt,name=metadata_checksum_enable,json=metadataChecksumEnable,proto3" json:"metadata_checksum_enable,omitempty"` - ReportAllPackets bool `protobuf:"varint,15,opt,name=report_all_packets,json=reportAllPackets,proto3" json:"report_all_packets,omitempty"` - FlowLivenessPeriod uint32 `protobuf:"varint,16,opt,name=flow_liveness_period,json=flowLivenessPeriod,proto3" json:"flow_liveness_period,omitempty"` - LatencySensitivity uint32 `protobuf:"varint,17,opt,name=latency_sensitivity,json=latencySensitivity,proto3" json:"latency_sensitivity,omitempty"` - AclGroup uint64 `protobuf:"varint,18,opt,name=acl_group,json=aclGroup,proto3" json:"acl_group,omitempty"` - MaxHopCount uint32 `protobuf:"varint,19,opt,name=max_hop_count,json=maxHopCount,proto3" json:"max_hop_count,omitempty"` - MaxLength uint32 `protobuf:"varint,20,opt,name=max_length,json=maxLength,proto3" json:"max_length,omitempty"` - NameSpaceId uint32 `protobuf:"varint,21,opt,name=name_space_id,json=nameSpaceId,proto3" json:"name_space_id,omitempty"` - NameSpaceIdGlobal bool `protobuf:"varint,22,opt,name=name_space_id_global,json=nameSpaceIdGlobal,proto3" json:"name_space_id_global,omitempty"` - IngressSamplepacketEnable uint64 `protobuf:"varint,23,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3" json:"ingress_samplepacket_enable,omitempty"` - CollectorList *Uint64List `protobuf:"bytes,24,opt,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` - MathFunc uint64 `protobuf:"varint,25,opt,name=math_func,json=mathFunc,proto3" json:"math_func,omitempty"` - ReportId uint64 `protobuf:"varint,26,opt,name=report_id,json=reportId,proto3" json:"report_id,omitempty"` + Type *TamIntType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TamIntType,oneof" json:"type,omitempty"` + DeviceId *uint32 `protobuf:"varint,2,opt,name=device_id,json=deviceId,proto3,oneof" json:"device_id,omitempty"` + IoamTraceType *uint32 `protobuf:"varint,3,opt,name=ioam_trace_type,json=ioamTraceType,proto3,oneof" json:"ioam_trace_type,omitempty"` + IntPresenceType *TamIntPresenceType `protobuf:"varint,4,opt,name=int_presence_type,json=intPresenceType,proto3,enum=lemming.dataplane.sai.TamIntPresenceType,oneof" json:"int_presence_type,omitempty"` + IntPresencePb1 *uint32 `protobuf:"varint,5,opt,name=int_presence_pb1,json=intPresencePb1,proto3,oneof" json:"int_presence_pb1,omitempty"` + IntPresencePb2 *uint32 `protobuf:"varint,6,opt,name=int_presence_pb2,json=intPresencePb2,proto3,oneof" json:"int_presence_pb2,omitempty"` + IntPresenceDscpValue *uint32 `protobuf:"varint,7,opt,name=int_presence_dscp_value,json=intPresenceDscpValue,proto3,oneof" json:"int_presence_dscp_value,omitempty"` + Inline *bool `protobuf:"varint,8,opt,name=inline,proto3,oneof" json:"inline,omitempty"` + IntPresenceL3Protocol *uint32 `protobuf:"varint,9,opt,name=int_presence_l3_protocol,json=intPresenceL3Protocol,proto3,oneof" json:"int_presence_l3_protocol,omitempty"` + TraceVector *uint32 `protobuf:"varint,10,opt,name=trace_vector,json=traceVector,proto3,oneof" json:"trace_vector,omitempty"` + ActionVector *uint32 `protobuf:"varint,11,opt,name=action_vector,json=actionVector,proto3,oneof" json:"action_vector,omitempty"` + P4IntInstructionBitmap *uint32 `protobuf:"varint,12,opt,name=p4_int_instruction_bitmap,json=p4IntInstructionBitmap,proto3,oneof" json:"p4_int_instruction_bitmap,omitempty"` + MetadataFragmentEnable *bool `protobuf:"varint,13,opt,name=metadata_fragment_enable,json=metadataFragmentEnable,proto3,oneof" json:"metadata_fragment_enable,omitempty"` + MetadataChecksumEnable *bool `protobuf:"varint,14,opt,name=metadata_checksum_enable,json=metadataChecksumEnable,proto3,oneof" json:"metadata_checksum_enable,omitempty"` + ReportAllPackets *bool `protobuf:"varint,15,opt,name=report_all_packets,json=reportAllPackets,proto3,oneof" json:"report_all_packets,omitempty"` + FlowLivenessPeriod *uint32 `protobuf:"varint,16,opt,name=flow_liveness_period,json=flowLivenessPeriod,proto3,oneof" json:"flow_liveness_period,omitempty"` + LatencySensitivity *uint32 `protobuf:"varint,17,opt,name=latency_sensitivity,json=latencySensitivity,proto3,oneof" json:"latency_sensitivity,omitempty"` + AclGroup *uint64 `protobuf:"varint,18,opt,name=acl_group,json=aclGroup,proto3,oneof" json:"acl_group,omitempty"` + MaxHopCount *uint32 `protobuf:"varint,19,opt,name=max_hop_count,json=maxHopCount,proto3,oneof" json:"max_hop_count,omitempty"` + MaxLength *uint32 `protobuf:"varint,20,opt,name=max_length,json=maxLength,proto3,oneof" json:"max_length,omitempty"` + NameSpaceId *uint32 `protobuf:"varint,21,opt,name=name_space_id,json=nameSpaceId,proto3,oneof" json:"name_space_id,omitempty"` + NameSpaceIdGlobal *bool `protobuf:"varint,22,opt,name=name_space_id_global,json=nameSpaceIdGlobal,proto3,oneof" json:"name_space_id_global,omitempty"` + IngressSamplepacketEnable *uint64 `protobuf:"varint,23,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3,oneof" json:"ingress_samplepacket_enable,omitempty"` + CollectorList []uint64 `protobuf:"varint,24,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` + MathFunc *uint64 `protobuf:"varint,25,opt,name=math_func,json=mathFunc,proto3,oneof" json:"math_func,omitempty"` + ReportId *uint64 `protobuf:"varint,26,opt,name=report_id,json=reportId,proto3,oneof" json:"report_id,omitempty"` } func (x *TamIntAttribute) Reset() { *x = TamIntAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[143] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27723,7 +26408,7 @@ func (x *TamIntAttribute) String() string { func (*TamIntAttribute) ProtoMessage() {} func (x *TamIntAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[143] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27736,171 +26421,171 @@ func (x *TamIntAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamIntAttribute.ProtoReflect.Descriptor instead. func (*TamIntAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{143} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{115} } func (x *TamIntAttribute) GetType() TamIntType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TamIntType_TAM_INT_TYPE_UNSPECIFIED } func (x *TamIntAttribute) GetDeviceId() uint32 { - if x != nil { - return x.DeviceId + if x != nil && x.DeviceId != nil { + return *x.DeviceId } return 0 } func (x *TamIntAttribute) GetIoamTraceType() uint32 { - if x != nil { - return x.IoamTraceType + if x != nil && x.IoamTraceType != nil { + return *x.IoamTraceType } return 0 } func (x *TamIntAttribute) GetIntPresenceType() TamIntPresenceType { - if x != nil { - return x.IntPresenceType + if x != nil && x.IntPresenceType != nil { + return *x.IntPresenceType } return TamIntPresenceType_TAM_INT_PRESENCE_TYPE_UNSPECIFIED } func (x *TamIntAttribute) GetIntPresencePb1() uint32 { - if x != nil { - return x.IntPresencePb1 + if x != nil && x.IntPresencePb1 != nil { + return *x.IntPresencePb1 } return 0 } func (x *TamIntAttribute) GetIntPresencePb2() uint32 { - if x != nil { - return x.IntPresencePb2 + if x != nil && x.IntPresencePb2 != nil { + return *x.IntPresencePb2 } return 0 } func (x *TamIntAttribute) GetIntPresenceDscpValue() uint32 { - if x != nil { - return x.IntPresenceDscpValue + if x != nil && x.IntPresenceDscpValue != nil { + return *x.IntPresenceDscpValue } return 0 } func (x *TamIntAttribute) GetInline() bool { - if x != nil { - return x.Inline + if x != nil && x.Inline != nil { + return *x.Inline } return false } func (x *TamIntAttribute) GetIntPresenceL3Protocol() uint32 { - if x != nil { - return x.IntPresenceL3Protocol + if x != nil && x.IntPresenceL3Protocol != nil { + return *x.IntPresenceL3Protocol } return 0 } func (x *TamIntAttribute) GetTraceVector() uint32 { - if x != nil { - return x.TraceVector + if x != nil && x.TraceVector != nil { + return *x.TraceVector } return 0 } func (x *TamIntAttribute) GetActionVector() uint32 { - if x != nil { - return x.ActionVector + if x != nil && x.ActionVector != nil { + return *x.ActionVector } return 0 } func (x *TamIntAttribute) GetP4IntInstructionBitmap() uint32 { - if x != nil { - return x.P4IntInstructionBitmap + if x != nil && x.P4IntInstructionBitmap != nil { + return *x.P4IntInstructionBitmap } return 0 } func (x *TamIntAttribute) GetMetadataFragmentEnable() bool { - if x != nil { - return x.MetadataFragmentEnable + if x != nil && x.MetadataFragmentEnable != nil { + return *x.MetadataFragmentEnable } return false } func (x *TamIntAttribute) GetMetadataChecksumEnable() bool { - if x != nil { - return x.MetadataChecksumEnable + if x != nil && x.MetadataChecksumEnable != nil { + return *x.MetadataChecksumEnable } return false } func (x *TamIntAttribute) GetReportAllPackets() bool { - if x != nil { - return x.ReportAllPackets + if x != nil && x.ReportAllPackets != nil { + return *x.ReportAllPackets } return false } func (x *TamIntAttribute) GetFlowLivenessPeriod() uint32 { - if x != nil { - return x.FlowLivenessPeriod + if x != nil && x.FlowLivenessPeriod != nil { + return *x.FlowLivenessPeriod } return 0 } func (x *TamIntAttribute) GetLatencySensitivity() uint32 { - if x != nil { - return x.LatencySensitivity + if x != nil && x.LatencySensitivity != nil { + return *x.LatencySensitivity } return 0 } func (x *TamIntAttribute) GetAclGroup() uint64 { - if x != nil { - return x.AclGroup + if x != nil && x.AclGroup != nil { + return *x.AclGroup } return 0 } func (x *TamIntAttribute) GetMaxHopCount() uint32 { - if x != nil { - return x.MaxHopCount + if x != nil && x.MaxHopCount != nil { + return *x.MaxHopCount } return 0 } func (x *TamIntAttribute) GetMaxLength() uint32 { - if x != nil { - return x.MaxLength + if x != nil && x.MaxLength != nil { + return *x.MaxLength } return 0 } func (x *TamIntAttribute) GetNameSpaceId() uint32 { - if x != nil { - return x.NameSpaceId + if x != nil && x.NameSpaceId != nil { + return *x.NameSpaceId } return 0 } func (x *TamIntAttribute) GetNameSpaceIdGlobal() bool { - if x != nil { - return x.NameSpaceIdGlobal + if x != nil && x.NameSpaceIdGlobal != nil { + return *x.NameSpaceIdGlobal } return false } func (x *TamIntAttribute) GetIngressSamplepacketEnable() uint64 { - if x != nil { - return x.IngressSamplepacketEnable + if x != nil && x.IngressSamplepacketEnable != nil { + return *x.IngressSamplepacketEnable } return 0 } -func (x *TamIntAttribute) GetCollectorList() *Uint64List { +func (x *TamIntAttribute) GetCollectorList() []uint64 { if x != nil { return x.CollectorList } @@ -27908,15 +26593,15 @@ func (x *TamIntAttribute) GetCollectorList() *Uint64List { } func (x *TamIntAttribute) GetMathFunc() uint64 { - if x != nil { - return x.MathFunc + if x != nil && x.MathFunc != nil { + return *x.MathFunc } return 0 } func (x *TamIntAttribute) GetReportId() uint64 { - if x != nil { - return x.ReportId + if x != nil && x.ReportId != nil { + return *x.ReportId } return 0 } @@ -27926,13 +26611,13 @@ type TamMathFuncAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TamTelMathFuncType TamTelMathFuncType `protobuf:"varint,1,opt,name=tam_tel_math_func_type,json=tamTelMathFuncType,proto3,enum=lemming.dataplane.sai.TamTelMathFuncType" json:"tam_tel_math_func_type,omitempty"` + TamTelMathFuncType *TamTelMathFuncType `protobuf:"varint,1,opt,name=tam_tel_math_func_type,json=tamTelMathFuncType,proto3,enum=lemming.dataplane.sai.TamTelMathFuncType,oneof" json:"tam_tel_math_func_type,omitempty"` } func (x *TamMathFuncAttribute) Reset() { *x = TamMathFuncAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[144] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27945,7 +26630,7 @@ func (x *TamMathFuncAttribute) String() string { func (*TamMathFuncAttribute) ProtoMessage() {} func (x *TamMathFuncAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[144] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27958,12 +26643,12 @@ func (x *TamMathFuncAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamMathFuncAttribute.ProtoReflect.Descriptor instead. func (*TamMathFuncAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{144} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{116} } func (x *TamMathFuncAttribute) GetTamTelMathFuncType() TamTelMathFuncType { - if x != nil { - return x.TamTelMathFuncType + if x != nil && x.TamTelMathFuncType != nil { + return *x.TamTelMathFuncType } return TamTelMathFuncType_TAM_TEL_MATH_FUNC_TYPE_UNSPECIFIED } @@ -27973,19 +26658,19 @@ type TamReportAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type TamReportType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TamReportType" json:"type,omitempty"` - HistogramNumberOfBins uint32 `protobuf:"varint,2,opt,name=histogram_number_of_bins,json=histogramNumberOfBins,proto3" json:"histogram_number_of_bins,omitempty"` - HistogramBinBoundary *Uint32List `protobuf:"bytes,3,opt,name=histogram_bin_boundary,json=histogramBinBoundary,proto3" json:"histogram_bin_boundary,omitempty"` - Quota uint32 `protobuf:"varint,4,opt,name=quota,proto3" json:"quota,omitempty"` - ReportMode TamReportMode `protobuf:"varint,5,opt,name=report_mode,json=reportMode,proto3,enum=lemming.dataplane.sai.TamReportMode" json:"report_mode,omitempty"` - ReportInterval uint32 `protobuf:"varint,6,opt,name=report_interval,json=reportInterval,proto3" json:"report_interval,omitempty"` - EnterpriseNumber uint32 `protobuf:"varint,7,opt,name=enterprise_number,json=enterpriseNumber,proto3" json:"enterprise_number,omitempty"` + Type *TamReportType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TamReportType,oneof" json:"type,omitempty"` + HistogramNumberOfBins *uint32 `protobuf:"varint,2,opt,name=histogram_number_of_bins,json=histogramNumberOfBins,proto3,oneof" json:"histogram_number_of_bins,omitempty"` + HistogramBinBoundary []uint32 `protobuf:"varint,3,rep,packed,name=histogram_bin_boundary,json=histogramBinBoundary,proto3" json:"histogram_bin_boundary,omitempty"` + Quota *uint32 `protobuf:"varint,4,opt,name=quota,proto3,oneof" json:"quota,omitempty"` + ReportMode *TamReportMode `protobuf:"varint,5,opt,name=report_mode,json=reportMode,proto3,enum=lemming.dataplane.sai.TamReportMode,oneof" json:"report_mode,omitempty"` + ReportInterval *uint32 `protobuf:"varint,6,opt,name=report_interval,json=reportInterval,proto3,oneof" json:"report_interval,omitempty"` + EnterpriseNumber *uint32 `protobuf:"varint,7,opt,name=enterprise_number,json=enterpriseNumber,proto3,oneof" json:"enterprise_number,omitempty"` } func (x *TamReportAttribute) Reset() { *x = TamReportAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[145] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27998,7 +26683,7 @@ func (x *TamReportAttribute) String() string { func (*TamReportAttribute) ProtoMessage() {} func (x *TamReportAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[145] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28011,24 +26696,24 @@ func (x *TamReportAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamReportAttribute.ProtoReflect.Descriptor instead. func (*TamReportAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{145} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{117} } func (x *TamReportAttribute) GetType() TamReportType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TamReportType_TAM_REPORT_TYPE_UNSPECIFIED } func (x *TamReportAttribute) GetHistogramNumberOfBins() uint32 { - if x != nil { - return x.HistogramNumberOfBins + if x != nil && x.HistogramNumberOfBins != nil { + return *x.HistogramNumberOfBins } return 0 } -func (x *TamReportAttribute) GetHistogramBinBoundary() *Uint32List { +func (x *TamReportAttribute) GetHistogramBinBoundary() []uint32 { if x != nil { return x.HistogramBinBoundary } @@ -28036,29 +26721,29 @@ func (x *TamReportAttribute) GetHistogramBinBoundary() *Uint32List { } func (x *TamReportAttribute) GetQuota() uint32 { - if x != nil { - return x.Quota + if x != nil && x.Quota != nil { + return *x.Quota } return 0 } func (x *TamReportAttribute) GetReportMode() TamReportMode { - if x != nil { - return x.ReportMode + if x != nil && x.ReportMode != nil { + return *x.ReportMode } return TamReportMode_TAM_REPORT_MODE_UNSPECIFIED } func (x *TamReportAttribute) GetReportInterval() uint32 { - if x != nil { - return x.ReportInterval + if x != nil && x.ReportInterval != nil { + return *x.ReportInterval } return 0 } func (x *TamReportAttribute) GetEnterpriseNumber() uint32 { - if x != nil { - return x.EnterpriseNumber + if x != nil && x.EnterpriseNumber != nil { + return *x.EnterpriseNumber } return 0 } @@ -28068,16 +26753,16 @@ type TamTelemetryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TamTypeList *Uint64List `protobuf:"bytes,1,opt,name=tam_type_list,json=tamTypeList,proto3" json:"tam_type_list,omitempty"` - CollectorList *Uint64List `protobuf:"bytes,2,opt,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` - TamReportingUnit TamReportingUnit `protobuf:"varint,3,opt,name=tam_reporting_unit,json=tamReportingUnit,proto3,enum=lemming.dataplane.sai.TamReportingUnit" json:"tam_reporting_unit,omitempty"` - ReportingInterval uint32 `protobuf:"varint,4,opt,name=reporting_interval,json=reportingInterval,proto3" json:"reporting_interval,omitempty"` + TamTypeList []uint64 `protobuf:"varint,1,rep,packed,name=tam_type_list,json=tamTypeList,proto3" json:"tam_type_list,omitempty"` + CollectorList []uint64 `protobuf:"varint,2,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` + TamReportingUnit *TamReportingUnit `protobuf:"varint,3,opt,name=tam_reporting_unit,json=tamReportingUnit,proto3,enum=lemming.dataplane.sai.TamReportingUnit,oneof" json:"tam_reporting_unit,omitempty"` + ReportingInterval *uint32 `protobuf:"varint,4,opt,name=reporting_interval,json=reportingInterval,proto3,oneof" json:"reporting_interval,omitempty"` } func (x *TamTelemetryAttribute) Reset() { *x = TamTelemetryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[146] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28090,7 +26775,7 @@ func (x *TamTelemetryAttribute) String() string { func (*TamTelemetryAttribute) ProtoMessage() {} func (x *TamTelemetryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[146] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28103,17 +26788,17 @@ func (x *TamTelemetryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamTelemetryAttribute.ProtoReflect.Descriptor instead. func (*TamTelemetryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{146} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{118} } -func (x *TamTelemetryAttribute) GetTamTypeList() *Uint64List { +func (x *TamTelemetryAttribute) GetTamTypeList() []uint64 { if x != nil { return x.TamTypeList } return nil } -func (x *TamTelemetryAttribute) GetCollectorList() *Uint64List { +func (x *TamTelemetryAttribute) GetCollectorList() []uint64 { if x != nil { return x.CollectorList } @@ -28121,15 +26806,15 @@ func (x *TamTelemetryAttribute) GetCollectorList() *Uint64List { } func (x *TamTelemetryAttribute) GetTamReportingUnit() TamReportingUnit { - if x != nil { - return x.TamReportingUnit + if x != nil && x.TamReportingUnit != nil { + return *x.TamReportingUnit } return TamReportingUnit_TAM_REPORTING_UNIT_UNSPECIFIED } func (x *TamTelemetryAttribute) GetReportingInterval() uint32 { - if x != nil { - return x.ReportingInterval + if x != nil && x.ReportingInterval != nil { + return *x.ReportingInterval } return 0 } @@ -28139,28 +26824,28 @@ type TamTelTypeAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TamTelemetryType TamTelemetryType `protobuf:"varint,1,opt,name=tam_telemetry_type,json=tamTelemetryType,proto3,enum=lemming.dataplane.sai.TamTelemetryType" json:"tam_telemetry_type,omitempty"` - IntSwitchIdentifier uint32 `protobuf:"varint,2,opt,name=int_switch_identifier,json=intSwitchIdentifier,proto3" json:"int_switch_identifier,omitempty"` - SwitchEnablePortStats bool `protobuf:"varint,3,opt,name=switch_enable_port_stats,json=switchEnablePortStats,proto3" json:"switch_enable_port_stats,omitempty"` - SwitchEnablePortStatsIngress bool `protobuf:"varint,4,opt,name=switch_enable_port_stats_ingress,json=switchEnablePortStatsIngress,proto3" json:"switch_enable_port_stats_ingress,omitempty"` - SwitchEnablePortStatsEgress bool `protobuf:"varint,5,opt,name=switch_enable_port_stats_egress,json=switchEnablePortStatsEgress,proto3" json:"switch_enable_port_stats_egress,omitempty"` - SwitchEnableVirtualQueueStats bool `protobuf:"varint,6,opt,name=switch_enable_virtual_queue_stats,json=switchEnableVirtualQueueStats,proto3" json:"switch_enable_virtual_queue_stats,omitempty"` - SwitchEnableOutputQueueStats bool `protobuf:"varint,7,opt,name=switch_enable_output_queue_stats,json=switchEnableOutputQueueStats,proto3" json:"switch_enable_output_queue_stats,omitempty"` - SwitchEnableMmuStats bool `protobuf:"varint,8,opt,name=switch_enable_mmu_stats,json=switchEnableMmuStats,proto3" json:"switch_enable_mmu_stats,omitempty"` - SwitchEnableFabricStats bool `protobuf:"varint,9,opt,name=switch_enable_fabric_stats,json=switchEnableFabricStats,proto3" json:"switch_enable_fabric_stats,omitempty"` - SwitchEnableFilterStats bool `protobuf:"varint,10,opt,name=switch_enable_filter_stats,json=switchEnableFilterStats,proto3" json:"switch_enable_filter_stats,omitempty"` - SwitchEnableResourceUtilizationStats bool `protobuf:"varint,11,opt,name=switch_enable_resource_utilization_stats,json=switchEnableResourceUtilizationStats,proto3" json:"switch_enable_resource_utilization_stats,omitempty"` - FabricQ bool `protobuf:"varint,12,opt,name=fabric_q,json=fabricQ,proto3" json:"fabric_q,omitempty"` - NeEnable bool `protobuf:"varint,13,opt,name=ne_enable,json=neEnable,proto3" json:"ne_enable,omitempty"` - DscpValue uint32 `protobuf:"varint,14,opt,name=dscp_value,json=dscpValue,proto3" json:"dscp_value,omitempty"` - MathFunc uint64 `protobuf:"varint,15,opt,name=math_func,json=mathFunc,proto3" json:"math_func,omitempty"` - ReportId uint64 `protobuf:"varint,16,opt,name=report_id,json=reportId,proto3" json:"report_id,omitempty"` + TamTelemetryType *TamTelemetryType `protobuf:"varint,1,opt,name=tam_telemetry_type,json=tamTelemetryType,proto3,enum=lemming.dataplane.sai.TamTelemetryType,oneof" json:"tam_telemetry_type,omitempty"` + IntSwitchIdentifier *uint32 `protobuf:"varint,2,opt,name=int_switch_identifier,json=intSwitchIdentifier,proto3,oneof" json:"int_switch_identifier,omitempty"` + SwitchEnablePortStats *bool `protobuf:"varint,3,opt,name=switch_enable_port_stats,json=switchEnablePortStats,proto3,oneof" json:"switch_enable_port_stats,omitempty"` + SwitchEnablePortStatsIngress *bool `protobuf:"varint,4,opt,name=switch_enable_port_stats_ingress,json=switchEnablePortStatsIngress,proto3,oneof" json:"switch_enable_port_stats_ingress,omitempty"` + SwitchEnablePortStatsEgress *bool `protobuf:"varint,5,opt,name=switch_enable_port_stats_egress,json=switchEnablePortStatsEgress,proto3,oneof" json:"switch_enable_port_stats_egress,omitempty"` + SwitchEnableVirtualQueueStats *bool `protobuf:"varint,6,opt,name=switch_enable_virtual_queue_stats,json=switchEnableVirtualQueueStats,proto3,oneof" json:"switch_enable_virtual_queue_stats,omitempty"` + SwitchEnableOutputQueueStats *bool `protobuf:"varint,7,opt,name=switch_enable_output_queue_stats,json=switchEnableOutputQueueStats,proto3,oneof" json:"switch_enable_output_queue_stats,omitempty"` + SwitchEnableMmuStats *bool `protobuf:"varint,8,opt,name=switch_enable_mmu_stats,json=switchEnableMmuStats,proto3,oneof" json:"switch_enable_mmu_stats,omitempty"` + SwitchEnableFabricStats *bool `protobuf:"varint,9,opt,name=switch_enable_fabric_stats,json=switchEnableFabricStats,proto3,oneof" json:"switch_enable_fabric_stats,omitempty"` + SwitchEnableFilterStats *bool `protobuf:"varint,10,opt,name=switch_enable_filter_stats,json=switchEnableFilterStats,proto3,oneof" json:"switch_enable_filter_stats,omitempty"` + SwitchEnableResourceUtilizationStats *bool `protobuf:"varint,11,opt,name=switch_enable_resource_utilization_stats,json=switchEnableResourceUtilizationStats,proto3,oneof" json:"switch_enable_resource_utilization_stats,omitempty"` + FabricQ *bool `protobuf:"varint,12,opt,name=fabric_q,json=fabricQ,proto3,oneof" json:"fabric_q,omitempty"` + NeEnable *bool `protobuf:"varint,13,opt,name=ne_enable,json=neEnable,proto3,oneof" json:"ne_enable,omitempty"` + DscpValue *uint32 `protobuf:"varint,14,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` + MathFunc *uint64 `protobuf:"varint,15,opt,name=math_func,json=mathFunc,proto3,oneof" json:"math_func,omitempty"` + ReportId *uint64 `protobuf:"varint,16,opt,name=report_id,json=reportId,proto3,oneof" json:"report_id,omitempty"` } func (x *TamTelTypeAttribute) Reset() { *x = TamTelTypeAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[147] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28173,7 +26858,7 @@ func (x *TamTelTypeAttribute) String() string { func (*TamTelTypeAttribute) ProtoMessage() {} func (x *TamTelTypeAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[147] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28186,117 +26871,117 @@ func (x *TamTelTypeAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamTelTypeAttribute.ProtoReflect.Descriptor instead. func (*TamTelTypeAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{147} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{119} } func (x *TamTelTypeAttribute) GetTamTelemetryType() TamTelemetryType { - if x != nil { - return x.TamTelemetryType + if x != nil && x.TamTelemetryType != nil { + return *x.TamTelemetryType } return TamTelemetryType_TAM_TELEMETRY_TYPE_UNSPECIFIED } func (x *TamTelTypeAttribute) GetIntSwitchIdentifier() uint32 { - if x != nil { - return x.IntSwitchIdentifier + if x != nil && x.IntSwitchIdentifier != nil { + return *x.IntSwitchIdentifier } return 0 } func (x *TamTelTypeAttribute) GetSwitchEnablePortStats() bool { - if x != nil { - return x.SwitchEnablePortStats + if x != nil && x.SwitchEnablePortStats != nil { + return *x.SwitchEnablePortStats } return false } func (x *TamTelTypeAttribute) GetSwitchEnablePortStatsIngress() bool { - if x != nil { - return x.SwitchEnablePortStatsIngress + if x != nil && x.SwitchEnablePortStatsIngress != nil { + return *x.SwitchEnablePortStatsIngress } return false } func (x *TamTelTypeAttribute) GetSwitchEnablePortStatsEgress() bool { - if x != nil { - return x.SwitchEnablePortStatsEgress + if x != nil && x.SwitchEnablePortStatsEgress != nil { + return *x.SwitchEnablePortStatsEgress } return false } func (x *TamTelTypeAttribute) GetSwitchEnableVirtualQueueStats() bool { - if x != nil { - return x.SwitchEnableVirtualQueueStats + if x != nil && x.SwitchEnableVirtualQueueStats != nil { + return *x.SwitchEnableVirtualQueueStats } return false } func (x *TamTelTypeAttribute) GetSwitchEnableOutputQueueStats() bool { - if x != nil { - return x.SwitchEnableOutputQueueStats + if x != nil && x.SwitchEnableOutputQueueStats != nil { + return *x.SwitchEnableOutputQueueStats } return false } func (x *TamTelTypeAttribute) GetSwitchEnableMmuStats() bool { - if x != nil { - return x.SwitchEnableMmuStats + if x != nil && x.SwitchEnableMmuStats != nil { + return *x.SwitchEnableMmuStats } return false } func (x *TamTelTypeAttribute) GetSwitchEnableFabricStats() bool { - if x != nil { - return x.SwitchEnableFabricStats + if x != nil && x.SwitchEnableFabricStats != nil { + return *x.SwitchEnableFabricStats } return false } func (x *TamTelTypeAttribute) GetSwitchEnableFilterStats() bool { - if x != nil { - return x.SwitchEnableFilterStats + if x != nil && x.SwitchEnableFilterStats != nil { + return *x.SwitchEnableFilterStats } return false } func (x *TamTelTypeAttribute) GetSwitchEnableResourceUtilizationStats() bool { - if x != nil { - return x.SwitchEnableResourceUtilizationStats + if x != nil && x.SwitchEnableResourceUtilizationStats != nil { + return *x.SwitchEnableResourceUtilizationStats } return false } func (x *TamTelTypeAttribute) GetFabricQ() bool { - if x != nil { - return x.FabricQ + if x != nil && x.FabricQ != nil { + return *x.FabricQ } return false } func (x *TamTelTypeAttribute) GetNeEnable() bool { - if x != nil { - return x.NeEnable + if x != nil && x.NeEnable != nil { + return *x.NeEnable } return false } func (x *TamTelTypeAttribute) GetDscpValue() uint32 { - if x != nil { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } func (x *TamTelTypeAttribute) GetMathFunc() uint64 { - if x != nil { - return x.MathFunc + if x != nil && x.MathFunc != nil { + return *x.MathFunc } return 0 } func (x *TamTelTypeAttribute) GetReportId() uint64 { - if x != nil { - return x.ReportId + if x != nil && x.ReportId != nil { + return *x.ReportId } return 0 } @@ -28306,17 +26991,17 @@ type TamTransportAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TransportType TamTransportType `protobuf:"varint,1,opt,name=transport_type,json=transportType,proto3,enum=lemming.dataplane.sai.TamTransportType" json:"transport_type,omitempty"` - SrcPort uint32 `protobuf:"varint,2,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` - DstPort uint32 `protobuf:"varint,3,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` - TransportAuthType TamTransportAuthType `protobuf:"varint,4,opt,name=transport_auth_type,json=transportAuthType,proto3,enum=lemming.dataplane.sai.TamTransportAuthType" json:"transport_auth_type,omitempty"` - Mtu uint32 `protobuf:"varint,5,opt,name=mtu,proto3" json:"mtu,omitempty"` + TransportType *TamTransportType `protobuf:"varint,1,opt,name=transport_type,json=transportType,proto3,enum=lemming.dataplane.sai.TamTransportType,oneof" json:"transport_type,omitempty"` + SrcPort *uint32 `protobuf:"varint,2,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` + DstPort *uint32 `protobuf:"varint,3,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + TransportAuthType *TamTransportAuthType `protobuf:"varint,4,opt,name=transport_auth_type,json=transportAuthType,proto3,enum=lemming.dataplane.sai.TamTransportAuthType,oneof" json:"transport_auth_type,omitempty"` + Mtu *uint32 `protobuf:"varint,5,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` } func (x *TamTransportAttribute) Reset() { *x = TamTransportAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[148] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28329,7 +27014,7 @@ func (x *TamTransportAttribute) String() string { func (*TamTransportAttribute) ProtoMessage() {} func (x *TamTransportAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[148] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28342,40 +27027,40 @@ func (x *TamTransportAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TamTransportAttribute.ProtoReflect.Descriptor instead. func (*TamTransportAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{148} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{120} } func (x *TamTransportAttribute) GetTransportType() TamTransportType { - if x != nil { - return x.TransportType + if x != nil && x.TransportType != nil { + return *x.TransportType } return TamTransportType_TAM_TRANSPORT_TYPE_UNSPECIFIED } func (x *TamTransportAttribute) GetSrcPort() uint32 { - if x != nil { - return x.SrcPort + if x != nil && x.SrcPort != nil { + return *x.SrcPort } return 0 } func (x *TamTransportAttribute) GetDstPort() uint32 { - if x != nil { - return x.DstPort + if x != nil && x.DstPort != nil { + return *x.DstPort } return 0 } func (x *TamTransportAttribute) GetTransportAuthType() TamTransportAuthType { - if x != nil { - return x.TransportAuthType + if x != nil && x.TransportAuthType != nil { + return *x.TransportAuthType } return TamTransportAuthType_TAM_TRANSPORT_AUTH_TYPE_UNSPECIFIED } func (x *TamTransportAttribute) GetMtu() uint32 { - if x != nil { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } @@ -28385,37 +27070,37 @@ type TunnelAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type TunnelType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelType" json:"type,omitempty"` - UnderlayInterface uint64 `protobuf:"varint,2,opt,name=underlay_interface,json=underlayInterface,proto3" json:"underlay_interface,omitempty"` - OverlayInterface uint64 `protobuf:"varint,3,opt,name=overlay_interface,json=overlayInterface,proto3" json:"overlay_interface,omitempty"` - PeerMode TunnelPeerMode `protobuf:"varint,4,opt,name=peer_mode,json=peerMode,proto3,enum=lemming.dataplane.sai.TunnelPeerMode" json:"peer_mode,omitempty"` - EncapSrcIp []byte `protobuf:"bytes,5,opt,name=encap_src_ip,json=encapSrcIp,proto3" json:"encap_src_ip,omitempty"` - EncapDstIp []byte `protobuf:"bytes,6,opt,name=encap_dst_ip,json=encapDstIp,proto3" json:"encap_dst_ip,omitempty"` - EncapTtlMode TunnelTtlMode `protobuf:"varint,7,opt,name=encap_ttl_mode,json=encapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode" json:"encap_ttl_mode,omitempty"` - EncapTtlVal uint32 `protobuf:"varint,8,opt,name=encap_ttl_val,json=encapTtlVal,proto3" json:"encap_ttl_val,omitempty"` - EncapDscpMode TunnelDscpMode `protobuf:"varint,9,opt,name=encap_dscp_mode,json=encapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode" json:"encap_dscp_mode,omitempty"` - EncapDscpVal uint32 `protobuf:"varint,10,opt,name=encap_dscp_val,json=encapDscpVal,proto3" json:"encap_dscp_val,omitempty"` - EncapGreKeyValid bool `protobuf:"varint,11,opt,name=encap_gre_key_valid,json=encapGreKeyValid,proto3" json:"encap_gre_key_valid,omitempty"` - EncapGreKey uint32 `protobuf:"varint,12,opt,name=encap_gre_key,json=encapGreKey,proto3" json:"encap_gre_key,omitempty"` - EncapEcnMode TunnelEncapEcnMode `protobuf:"varint,13,opt,name=encap_ecn_mode,json=encapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelEncapEcnMode" json:"encap_ecn_mode,omitempty"` - EncapMappers *Uint64List `protobuf:"bytes,14,opt,name=encap_mappers,json=encapMappers,proto3" json:"encap_mappers,omitempty"` - DecapEcnMode TunnelDecapEcnMode `protobuf:"varint,15,opt,name=decap_ecn_mode,json=decapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelDecapEcnMode" json:"decap_ecn_mode,omitempty"` - DecapMappers *Uint64List `protobuf:"bytes,16,opt,name=decap_mappers,json=decapMappers,proto3" json:"decap_mappers,omitempty"` - DecapTtlMode TunnelTtlMode `protobuf:"varint,17,opt,name=decap_ttl_mode,json=decapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode" json:"decap_ttl_mode,omitempty"` - DecapDscpMode TunnelDscpMode `protobuf:"varint,18,opt,name=decap_dscp_mode,json=decapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode" json:"decap_dscp_mode,omitempty"` - TermTableEntryList *Uint64List `protobuf:"bytes,19,opt,name=term_table_entry_list,json=termTableEntryList,proto3" json:"term_table_entry_list,omitempty"` - LoopbackPacketAction PacketAction `protobuf:"varint,20,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"loopback_packet_action,omitempty"` - VxlanUdpSportMode TunnelVxlanUdpSportMode `protobuf:"varint,21,opt,name=vxlan_udp_sport_mode,json=vxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode" json:"vxlan_udp_sport_mode,omitempty"` - VxlanUdpSport uint32 `protobuf:"varint,22,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3" json:"vxlan_udp_sport,omitempty"` - VxlanUdpSportMask uint32 `protobuf:"varint,23,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3" json:"vxlan_udp_sport_mask,omitempty"` - SaIndex uint32 `protobuf:"varint,24,opt,name=sa_index,json=saIndex,proto3" json:"sa_index,omitempty"` - IpsecSaPortList *Uint64List `protobuf:"bytes,25,opt,name=ipsec_sa_port_list,json=ipsecSaPortList,proto3" json:"ipsec_sa_port_list,omitempty"` + Type *TunnelType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelType,oneof" json:"type,omitempty"` + UnderlayInterface *uint64 `protobuf:"varint,2,opt,name=underlay_interface,json=underlayInterface,proto3,oneof" json:"underlay_interface,omitempty"` + OverlayInterface *uint64 `protobuf:"varint,3,opt,name=overlay_interface,json=overlayInterface,proto3,oneof" json:"overlay_interface,omitempty"` + PeerMode *TunnelPeerMode `protobuf:"varint,4,opt,name=peer_mode,json=peerMode,proto3,enum=lemming.dataplane.sai.TunnelPeerMode,oneof" json:"peer_mode,omitempty"` + EncapSrcIp []byte `protobuf:"bytes,5,opt,name=encap_src_ip,json=encapSrcIp,proto3,oneof" json:"encap_src_ip,omitempty"` + EncapDstIp []byte `protobuf:"bytes,6,opt,name=encap_dst_ip,json=encapDstIp,proto3,oneof" json:"encap_dst_ip,omitempty"` + EncapTtlMode *TunnelTtlMode `protobuf:"varint,7,opt,name=encap_ttl_mode,json=encapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode,oneof" json:"encap_ttl_mode,omitempty"` + EncapTtlVal *uint32 `protobuf:"varint,8,opt,name=encap_ttl_val,json=encapTtlVal,proto3,oneof" json:"encap_ttl_val,omitempty"` + EncapDscpMode *TunnelDscpMode `protobuf:"varint,9,opt,name=encap_dscp_mode,json=encapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode,oneof" json:"encap_dscp_mode,omitempty"` + EncapDscpVal *uint32 `protobuf:"varint,10,opt,name=encap_dscp_val,json=encapDscpVal,proto3,oneof" json:"encap_dscp_val,omitempty"` + EncapGreKeyValid *bool `protobuf:"varint,11,opt,name=encap_gre_key_valid,json=encapGreKeyValid,proto3,oneof" json:"encap_gre_key_valid,omitempty"` + EncapGreKey *uint32 `protobuf:"varint,12,opt,name=encap_gre_key,json=encapGreKey,proto3,oneof" json:"encap_gre_key,omitempty"` + EncapEcnMode *TunnelEncapEcnMode `protobuf:"varint,13,opt,name=encap_ecn_mode,json=encapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelEncapEcnMode,oneof" json:"encap_ecn_mode,omitempty"` + EncapMappers []uint64 `protobuf:"varint,14,rep,packed,name=encap_mappers,json=encapMappers,proto3" json:"encap_mappers,omitempty"` + DecapEcnMode *TunnelDecapEcnMode `protobuf:"varint,15,opt,name=decap_ecn_mode,json=decapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelDecapEcnMode,oneof" json:"decap_ecn_mode,omitempty"` + DecapMappers []uint64 `protobuf:"varint,16,rep,packed,name=decap_mappers,json=decapMappers,proto3" json:"decap_mappers,omitempty"` + DecapTtlMode *TunnelTtlMode `protobuf:"varint,17,opt,name=decap_ttl_mode,json=decapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode,oneof" json:"decap_ttl_mode,omitempty"` + DecapDscpMode *TunnelDscpMode `protobuf:"varint,18,opt,name=decap_dscp_mode,json=decapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode,oneof" json:"decap_dscp_mode,omitempty"` + TermTableEntryList []uint64 `protobuf:"varint,19,rep,packed,name=term_table_entry_list,json=termTableEntryList,proto3" json:"term_table_entry_list,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,20,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + VxlanUdpSportMode *TunnelVxlanUdpSportMode `protobuf:"varint,21,opt,name=vxlan_udp_sport_mode,json=vxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode,oneof" json:"vxlan_udp_sport_mode,omitempty"` + VxlanUdpSport *uint32 `protobuf:"varint,22,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3,oneof" json:"vxlan_udp_sport,omitempty"` + VxlanUdpSportMask *uint32 `protobuf:"varint,23,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3,oneof" json:"vxlan_udp_sport_mask,omitempty"` + SaIndex *uint32 `protobuf:"varint,24,opt,name=sa_index,json=saIndex,proto3,oneof" json:"sa_index,omitempty"` + IpsecSaPortList []uint64 `protobuf:"varint,25,rep,packed,name=ipsec_sa_port_list,json=ipsecSaPortList,proto3" json:"ipsec_sa_port_list,omitempty"` } func (x *TunnelAttribute) Reset() { *x = TunnelAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[149] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28428,7 +27113,7 @@ func (x *TunnelAttribute) String() string { func (*TunnelAttribute) ProtoMessage() {} func (x *TunnelAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[149] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28441,33 +27126,33 @@ func (x *TunnelAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TunnelAttribute.ProtoReflect.Descriptor instead. func (*TunnelAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{149} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{121} } func (x *TunnelAttribute) GetType() TunnelType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TunnelType_TUNNEL_TYPE_UNSPECIFIED } func (x *TunnelAttribute) GetUnderlayInterface() uint64 { - if x != nil { - return x.UnderlayInterface + if x != nil && x.UnderlayInterface != nil { + return *x.UnderlayInterface } return 0 } func (x *TunnelAttribute) GetOverlayInterface() uint64 { - if x != nil { - return x.OverlayInterface + if x != nil && x.OverlayInterface != nil { + return *x.OverlayInterface } return 0 } func (x *TunnelAttribute) GetPeerMode() TunnelPeerMode { - if x != nil { - return x.PeerMode + if x != nil && x.PeerMode != nil { + return *x.PeerMode } return TunnelPeerMode_TUNNEL_PEER_MODE_UNSPECIFIED } @@ -28487,55 +27172,55 @@ func (x *TunnelAttribute) GetEncapDstIp() []byte { } func (x *TunnelAttribute) GetEncapTtlMode() TunnelTtlMode { - if x != nil { - return x.EncapTtlMode + if x != nil && x.EncapTtlMode != nil { + return *x.EncapTtlMode } return TunnelTtlMode_TUNNEL_TTL_MODE_UNSPECIFIED } func (x *TunnelAttribute) GetEncapTtlVal() uint32 { - if x != nil { - return x.EncapTtlVal + if x != nil && x.EncapTtlVal != nil { + return *x.EncapTtlVal } return 0 } func (x *TunnelAttribute) GetEncapDscpMode() TunnelDscpMode { - if x != nil { - return x.EncapDscpMode + if x != nil && x.EncapDscpMode != nil { + return *x.EncapDscpMode } return TunnelDscpMode_TUNNEL_DSCP_MODE_UNSPECIFIED } func (x *TunnelAttribute) GetEncapDscpVal() uint32 { - if x != nil { - return x.EncapDscpVal + if x != nil && x.EncapDscpVal != nil { + return *x.EncapDscpVal } return 0 } func (x *TunnelAttribute) GetEncapGreKeyValid() bool { - if x != nil { - return x.EncapGreKeyValid + if x != nil && x.EncapGreKeyValid != nil { + return *x.EncapGreKeyValid } return false } func (x *TunnelAttribute) GetEncapGreKey() uint32 { - if x != nil { - return x.EncapGreKey + if x != nil && x.EncapGreKey != nil { + return *x.EncapGreKey } return 0 } func (x *TunnelAttribute) GetEncapEcnMode() TunnelEncapEcnMode { - if x != nil { - return x.EncapEcnMode + if x != nil && x.EncapEcnMode != nil { + return *x.EncapEcnMode } return TunnelEncapEcnMode_TUNNEL_ENCAP_ECN_MODE_UNSPECIFIED } -func (x *TunnelAttribute) GetEncapMappers() *Uint64List { +func (x *TunnelAttribute) GetEncapMappers() []uint64 { if x != nil { return x.EncapMappers } @@ -28543,13 +27228,13 @@ func (x *TunnelAttribute) GetEncapMappers() *Uint64List { } func (x *TunnelAttribute) GetDecapEcnMode() TunnelDecapEcnMode { - if x != nil { - return x.DecapEcnMode + if x != nil && x.DecapEcnMode != nil { + return *x.DecapEcnMode } return TunnelDecapEcnMode_TUNNEL_DECAP_ECN_MODE_UNSPECIFIED } -func (x *TunnelAttribute) GetDecapMappers() *Uint64List { +func (x *TunnelAttribute) GetDecapMappers() []uint64 { if x != nil { return x.DecapMappers } @@ -28557,20 +27242,20 @@ func (x *TunnelAttribute) GetDecapMappers() *Uint64List { } func (x *TunnelAttribute) GetDecapTtlMode() TunnelTtlMode { - if x != nil { - return x.DecapTtlMode + if x != nil && x.DecapTtlMode != nil { + return *x.DecapTtlMode } return TunnelTtlMode_TUNNEL_TTL_MODE_UNSPECIFIED } func (x *TunnelAttribute) GetDecapDscpMode() TunnelDscpMode { - if x != nil { - return x.DecapDscpMode + if x != nil && x.DecapDscpMode != nil { + return *x.DecapDscpMode } return TunnelDscpMode_TUNNEL_DSCP_MODE_UNSPECIFIED } -func (x *TunnelAttribute) GetTermTableEntryList() *Uint64List { +func (x *TunnelAttribute) GetTermTableEntryList() []uint64 { if x != nil { return x.TermTableEntryList } @@ -28578,41 +27263,41 @@ func (x *TunnelAttribute) GetTermTableEntryList() *Uint64List { } func (x *TunnelAttribute) GetLoopbackPacketAction() PacketAction { - if x != nil { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *TunnelAttribute) GetVxlanUdpSportMode() TunnelVxlanUdpSportMode { - if x != nil { - return x.VxlanUdpSportMode + if x != nil && x.VxlanUdpSportMode != nil { + return *x.VxlanUdpSportMode } return TunnelVxlanUdpSportMode_TUNNEL_VXLAN_UDP_SPORT_MODE_UNSPECIFIED } func (x *TunnelAttribute) GetVxlanUdpSport() uint32 { - if x != nil { - return x.VxlanUdpSport + if x != nil && x.VxlanUdpSport != nil { + return *x.VxlanUdpSport } return 0 } func (x *TunnelAttribute) GetVxlanUdpSportMask() uint32 { - if x != nil { - return x.VxlanUdpSportMask + if x != nil && x.VxlanUdpSportMask != nil { + return *x.VxlanUdpSportMask } return 0 } func (x *TunnelAttribute) GetSaIndex() uint32 { - if x != nil { - return x.SaIndex + if x != nil && x.SaIndex != nil { + return *x.SaIndex } return 0 } -func (x *TunnelAttribute) GetIpsecSaPortList() *Uint64List { +func (x *TunnelAttribute) GetIpsecSaPortList() []uint64 { if x != nil { return x.IpsecSaPortList } @@ -28624,14 +27309,14 @@ type TunnelMapAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type TunnelMapType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelMapType" json:"type,omitempty"` - EntryList *Uint64List `protobuf:"bytes,2,opt,name=entry_list,json=entryList,proto3" json:"entry_list,omitempty"` + Type *TunnelMapType `protobuf:"varint,1,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelMapType,oneof" json:"type,omitempty"` + EntryList []uint64 `protobuf:"varint,2,rep,packed,name=entry_list,json=entryList,proto3" json:"entry_list,omitempty"` } func (x *TunnelMapAttribute) Reset() { *x = TunnelMapAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[150] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28644,7 +27329,7 @@ func (x *TunnelMapAttribute) String() string { func (*TunnelMapAttribute) ProtoMessage() {} func (x *TunnelMapAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[150] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28657,17 +27342,17 @@ func (x *TunnelMapAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TunnelMapAttribute.ProtoReflect.Descriptor instead. func (*TunnelMapAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{150} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{122} } func (x *TunnelMapAttribute) GetType() TunnelMapType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TunnelMapType_TUNNEL_MAP_TYPE_UNSPECIFIED } -func (x *TunnelMapAttribute) GetEntryList() *Uint64List { +func (x *TunnelMapAttribute) GetEntryList() []uint64 { if x != nil { return x.EntryList } @@ -28679,28 +27364,28 @@ type TunnelMapEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TunnelMapType TunnelMapType `protobuf:"varint,1,opt,name=tunnel_map_type,json=tunnelMapType,proto3,enum=lemming.dataplane.sai.TunnelMapType" json:"tunnel_map_type,omitempty"` - TunnelMap uint64 `protobuf:"varint,2,opt,name=tunnel_map,json=tunnelMap,proto3" json:"tunnel_map,omitempty"` - OecnKey uint32 `protobuf:"varint,3,opt,name=oecn_key,json=oecnKey,proto3" json:"oecn_key,omitempty"` - OecnValue uint32 `protobuf:"varint,4,opt,name=oecn_value,json=oecnValue,proto3" json:"oecn_value,omitempty"` - UecnKey uint32 `protobuf:"varint,5,opt,name=uecn_key,json=uecnKey,proto3" json:"uecn_key,omitempty"` - UecnValue uint32 `protobuf:"varint,6,opt,name=uecn_value,json=uecnValue,proto3" json:"uecn_value,omitempty"` - VlanIdKey uint32 `protobuf:"varint,7,opt,name=vlan_id_key,json=vlanIdKey,proto3" json:"vlan_id_key,omitempty"` - VlanIdValue uint32 `protobuf:"varint,8,opt,name=vlan_id_value,json=vlanIdValue,proto3" json:"vlan_id_value,omitempty"` - VniIdKey uint32 `protobuf:"varint,9,opt,name=vni_id_key,json=vniIdKey,proto3" json:"vni_id_key,omitempty"` - VniIdValue uint32 `protobuf:"varint,10,opt,name=vni_id_value,json=vniIdValue,proto3" json:"vni_id_value,omitempty"` - BridgeIdKey uint64 `protobuf:"varint,11,opt,name=bridge_id_key,json=bridgeIdKey,proto3" json:"bridge_id_key,omitempty"` - BridgeIdValue uint64 `protobuf:"varint,12,opt,name=bridge_id_value,json=bridgeIdValue,proto3" json:"bridge_id_value,omitempty"` - VirtualRouterIdKey uint64 `protobuf:"varint,13,opt,name=virtual_router_id_key,json=virtualRouterIdKey,proto3" json:"virtual_router_id_key,omitempty"` - VirtualRouterIdValue uint64 `protobuf:"varint,14,opt,name=virtual_router_id_value,json=virtualRouterIdValue,proto3" json:"virtual_router_id_value,omitempty"` - VsidIdKey uint32 `protobuf:"varint,15,opt,name=vsid_id_key,json=vsidIdKey,proto3" json:"vsid_id_key,omitempty"` - VsidIdValue uint32 `protobuf:"varint,16,opt,name=vsid_id_value,json=vsidIdValue,proto3" json:"vsid_id_value,omitempty"` + TunnelMapType *TunnelMapType `protobuf:"varint,1,opt,name=tunnel_map_type,json=tunnelMapType,proto3,enum=lemming.dataplane.sai.TunnelMapType,oneof" json:"tunnel_map_type,omitempty"` + TunnelMap *uint64 `protobuf:"varint,2,opt,name=tunnel_map,json=tunnelMap,proto3,oneof" json:"tunnel_map,omitempty"` + OecnKey *uint32 `protobuf:"varint,3,opt,name=oecn_key,json=oecnKey,proto3,oneof" json:"oecn_key,omitempty"` + OecnValue *uint32 `protobuf:"varint,4,opt,name=oecn_value,json=oecnValue,proto3,oneof" json:"oecn_value,omitempty"` + UecnKey *uint32 `protobuf:"varint,5,opt,name=uecn_key,json=uecnKey,proto3,oneof" json:"uecn_key,omitempty"` + UecnValue *uint32 `protobuf:"varint,6,opt,name=uecn_value,json=uecnValue,proto3,oneof" json:"uecn_value,omitempty"` + VlanIdKey *uint32 `protobuf:"varint,7,opt,name=vlan_id_key,json=vlanIdKey,proto3,oneof" json:"vlan_id_key,omitempty"` + VlanIdValue *uint32 `protobuf:"varint,8,opt,name=vlan_id_value,json=vlanIdValue,proto3,oneof" json:"vlan_id_value,omitempty"` + VniIdKey *uint32 `protobuf:"varint,9,opt,name=vni_id_key,json=vniIdKey,proto3,oneof" json:"vni_id_key,omitempty"` + VniIdValue *uint32 `protobuf:"varint,10,opt,name=vni_id_value,json=vniIdValue,proto3,oneof" json:"vni_id_value,omitempty"` + BridgeIdKey *uint64 `protobuf:"varint,11,opt,name=bridge_id_key,json=bridgeIdKey,proto3,oneof" json:"bridge_id_key,omitempty"` + BridgeIdValue *uint64 `protobuf:"varint,12,opt,name=bridge_id_value,json=bridgeIdValue,proto3,oneof" json:"bridge_id_value,omitempty"` + VirtualRouterIdKey *uint64 `protobuf:"varint,13,opt,name=virtual_router_id_key,json=virtualRouterIdKey,proto3,oneof" json:"virtual_router_id_key,omitempty"` + VirtualRouterIdValue *uint64 `protobuf:"varint,14,opt,name=virtual_router_id_value,json=virtualRouterIdValue,proto3,oneof" json:"virtual_router_id_value,omitempty"` + VsidIdKey *uint32 `protobuf:"varint,15,opt,name=vsid_id_key,json=vsidIdKey,proto3,oneof" json:"vsid_id_key,omitempty"` + VsidIdValue *uint32 `protobuf:"varint,16,opt,name=vsid_id_value,json=vsidIdValue,proto3,oneof" json:"vsid_id_value,omitempty"` } func (x *TunnelMapEntryAttribute) Reset() { *x = TunnelMapEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[151] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28713,7 +27398,7 @@ func (x *TunnelMapEntryAttribute) String() string { func (*TunnelMapEntryAttribute) ProtoMessage() {} func (x *TunnelMapEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[151] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28726,117 +27411,117 @@ func (x *TunnelMapEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TunnelMapEntryAttribute.ProtoReflect.Descriptor instead. func (*TunnelMapEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{151} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{123} } func (x *TunnelMapEntryAttribute) GetTunnelMapType() TunnelMapType { - if x != nil { - return x.TunnelMapType + if x != nil && x.TunnelMapType != nil { + return *x.TunnelMapType } return TunnelMapType_TUNNEL_MAP_TYPE_UNSPECIFIED } func (x *TunnelMapEntryAttribute) GetTunnelMap() uint64 { - if x != nil { - return x.TunnelMap + if x != nil && x.TunnelMap != nil { + return *x.TunnelMap } return 0 } func (x *TunnelMapEntryAttribute) GetOecnKey() uint32 { - if x != nil { - return x.OecnKey + if x != nil && x.OecnKey != nil { + return *x.OecnKey } return 0 } func (x *TunnelMapEntryAttribute) GetOecnValue() uint32 { - if x != nil { - return x.OecnValue + if x != nil && x.OecnValue != nil { + return *x.OecnValue } return 0 } func (x *TunnelMapEntryAttribute) GetUecnKey() uint32 { - if x != nil { - return x.UecnKey + if x != nil && x.UecnKey != nil { + return *x.UecnKey } return 0 } func (x *TunnelMapEntryAttribute) GetUecnValue() uint32 { - if x != nil { - return x.UecnValue + if x != nil && x.UecnValue != nil { + return *x.UecnValue } return 0 } func (x *TunnelMapEntryAttribute) GetVlanIdKey() uint32 { - if x != nil { - return x.VlanIdKey + if x != nil && x.VlanIdKey != nil { + return *x.VlanIdKey } return 0 } func (x *TunnelMapEntryAttribute) GetVlanIdValue() uint32 { - if x != nil { - return x.VlanIdValue + if x != nil && x.VlanIdValue != nil { + return *x.VlanIdValue } return 0 } func (x *TunnelMapEntryAttribute) GetVniIdKey() uint32 { - if x != nil { - return x.VniIdKey + if x != nil && x.VniIdKey != nil { + return *x.VniIdKey } return 0 } func (x *TunnelMapEntryAttribute) GetVniIdValue() uint32 { - if x != nil { - return x.VniIdValue + if x != nil && x.VniIdValue != nil { + return *x.VniIdValue } return 0 } func (x *TunnelMapEntryAttribute) GetBridgeIdKey() uint64 { - if x != nil { - return x.BridgeIdKey + if x != nil && x.BridgeIdKey != nil { + return *x.BridgeIdKey } return 0 } func (x *TunnelMapEntryAttribute) GetBridgeIdValue() uint64 { - if x != nil { - return x.BridgeIdValue + if x != nil && x.BridgeIdValue != nil { + return *x.BridgeIdValue } return 0 } func (x *TunnelMapEntryAttribute) GetVirtualRouterIdKey() uint64 { - if x != nil { - return x.VirtualRouterIdKey + if x != nil && x.VirtualRouterIdKey != nil { + return *x.VirtualRouterIdKey } return 0 } func (x *TunnelMapEntryAttribute) GetVirtualRouterIdValue() uint64 { - if x != nil { - return x.VirtualRouterIdValue + if x != nil && x.VirtualRouterIdValue != nil { + return *x.VirtualRouterIdValue } return 0 } func (x *TunnelMapEntryAttribute) GetVsidIdKey() uint32 { - if x != nil { - return x.VsidIdKey + if x != nil && x.VsidIdKey != nil { + return *x.VsidIdKey } return 0 } func (x *TunnelMapEntryAttribute) GetVsidIdValue() uint32 { - if x != nil { - return x.VsidIdValue + if x != nil && x.VsidIdValue != nil { + return *x.VsidIdValue } return 0 } @@ -28846,22 +27531,22 @@ type TunnelTermTableEntryAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - VrId uint64 `protobuf:"varint,1,opt,name=vr_id,json=vrId,proto3" json:"vr_id,omitempty"` - Type TunnelTermTableEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelTermTableEntryType" json:"type,omitempty"` - DstIp []byte `protobuf:"bytes,3,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - DstIpMask []byte `protobuf:"bytes,4,opt,name=dst_ip_mask,json=dstIpMask,proto3" json:"dst_ip_mask,omitempty"` - SrcIp []byte `protobuf:"bytes,5,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` - SrcIpMask []byte `protobuf:"bytes,6,opt,name=src_ip_mask,json=srcIpMask,proto3" json:"src_ip_mask,omitempty"` - TunnelType TunnelType `protobuf:"varint,7,opt,name=tunnel_type,json=tunnelType,proto3,enum=lemming.dataplane.sai.TunnelType" json:"tunnel_type,omitempty"` - ActionTunnelId uint64 `protobuf:"varint,8,opt,name=action_tunnel_id,json=actionTunnelId,proto3" json:"action_tunnel_id,omitempty"` - IpAddrFamily IpAddrFamily `protobuf:"varint,9,opt,name=ip_addr_family,json=ipAddrFamily,proto3,enum=lemming.dataplane.sai.IpAddrFamily" json:"ip_addr_family,omitempty"` - IpsecVerified bool `protobuf:"varint,10,opt,name=ipsec_verified,json=ipsecVerified,proto3" json:"ipsec_verified,omitempty"` + VrId *uint64 `protobuf:"varint,1,opt,name=vr_id,json=vrId,proto3,oneof" json:"vr_id,omitempty"` + Type *TunnelTermTableEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelTermTableEntryType,oneof" json:"type,omitempty"` + DstIp []byte `protobuf:"bytes,3,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + DstIpMask []byte `protobuf:"bytes,4,opt,name=dst_ip_mask,json=dstIpMask,proto3,oneof" json:"dst_ip_mask,omitempty"` + SrcIp []byte `protobuf:"bytes,5,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + SrcIpMask []byte `protobuf:"bytes,6,opt,name=src_ip_mask,json=srcIpMask,proto3,oneof" json:"src_ip_mask,omitempty"` + TunnelType *TunnelType `protobuf:"varint,7,opt,name=tunnel_type,json=tunnelType,proto3,enum=lemming.dataplane.sai.TunnelType,oneof" json:"tunnel_type,omitempty"` + ActionTunnelId *uint64 `protobuf:"varint,8,opt,name=action_tunnel_id,json=actionTunnelId,proto3,oneof" json:"action_tunnel_id,omitempty"` + IpAddrFamily *IpAddrFamily `protobuf:"varint,9,opt,name=ip_addr_family,json=ipAddrFamily,proto3,enum=lemming.dataplane.sai.IpAddrFamily,oneof" json:"ip_addr_family,omitempty"` + IpsecVerified *bool `protobuf:"varint,10,opt,name=ipsec_verified,json=ipsecVerified,proto3,oneof" json:"ipsec_verified,omitempty"` } func (x *TunnelTermTableEntryAttribute) Reset() { *x = TunnelTermTableEntryAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[152] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28874,7 +27559,7 @@ func (x *TunnelTermTableEntryAttribute) String() string { func (*TunnelTermTableEntryAttribute) ProtoMessage() {} func (x *TunnelTermTableEntryAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[152] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28887,19 +27572,19 @@ func (x *TunnelTermTableEntryAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use TunnelTermTableEntryAttribute.ProtoReflect.Descriptor instead. func (*TunnelTermTableEntryAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{152} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{124} } func (x *TunnelTermTableEntryAttribute) GetVrId() uint64 { - if x != nil { - return x.VrId + if x != nil && x.VrId != nil { + return *x.VrId } return 0 } func (x *TunnelTermTableEntryAttribute) GetType() TunnelTermTableEntryType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TunnelTermTableEntryType_TUNNEL_TERM_TABLE_ENTRY_TYPE_UNSPECIFIED } @@ -28933,29 +27618,29 @@ func (x *TunnelTermTableEntryAttribute) GetSrcIpMask() []byte { } func (x *TunnelTermTableEntryAttribute) GetTunnelType() TunnelType { - if x != nil { - return x.TunnelType + if x != nil && x.TunnelType != nil { + return *x.TunnelType } return TunnelType_TUNNEL_TYPE_UNSPECIFIED } func (x *TunnelTermTableEntryAttribute) GetActionTunnelId() uint64 { - if x != nil { - return x.ActionTunnelId + if x != nil && x.ActionTunnelId != nil { + return *x.ActionTunnelId } return 0 } func (x *TunnelTermTableEntryAttribute) GetIpAddrFamily() IpAddrFamily { - if x != nil { - return x.IpAddrFamily + if x != nil && x.IpAddrFamily != nil { + return *x.IpAddrFamily } return IpAddrFamily_IP_ADDR_FAMILY_UNSPECIFIED } func (x *TunnelTermTableEntryAttribute) GetIpsecVerified() bool { - if x != nil { - return x.IpsecVerified + if x != nil && x.IpsecVerified != nil { + return *x.IpsecVerified } return false } @@ -28965,17 +27650,17 @@ type UdfAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MatchId uint64 `protobuf:"varint,1,opt,name=match_id,json=matchId,proto3" json:"match_id,omitempty"` - GroupId uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` - Base UdfBase `protobuf:"varint,3,opt,name=base,proto3,enum=lemming.dataplane.sai.UdfBase" json:"base,omitempty"` - Offset uint32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` - HashMask *Uint32List `protobuf:"bytes,5,opt,name=hash_mask,json=hashMask,proto3" json:"hash_mask,omitempty"` + MatchId *uint64 `protobuf:"varint,1,opt,name=match_id,json=matchId,proto3,oneof" json:"match_id,omitempty"` + GroupId *uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3,oneof" json:"group_id,omitempty"` + Base *UdfBase `protobuf:"varint,3,opt,name=base,proto3,enum=lemming.dataplane.sai.UdfBase,oneof" json:"base,omitempty"` + Offset *uint32 `protobuf:"varint,4,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + HashMask []uint32 `protobuf:"varint,5,rep,packed,name=hash_mask,json=hashMask,proto3" json:"hash_mask,omitempty"` } func (x *UdfAttribute) Reset() { *x = UdfAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[153] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28988,7 +27673,7 @@ func (x *UdfAttribute) String() string { func (*UdfAttribute) ProtoMessage() {} func (x *UdfAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[153] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29001,38 +27686,38 @@ func (x *UdfAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use UdfAttribute.ProtoReflect.Descriptor instead. func (*UdfAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{153} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{125} } func (x *UdfAttribute) GetMatchId() uint64 { - if x != nil { - return x.MatchId + if x != nil && x.MatchId != nil { + return *x.MatchId } return 0 } func (x *UdfAttribute) GetGroupId() uint64 { - if x != nil { - return x.GroupId + if x != nil && x.GroupId != nil { + return *x.GroupId } return 0 } func (x *UdfAttribute) GetBase() UdfBase { - if x != nil { - return x.Base + if x != nil && x.Base != nil { + return *x.Base } return UdfBase_UDF_BASE_UNSPECIFIED } func (x *UdfAttribute) GetOffset() uint32 { - if x != nil { - return x.Offset + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *UdfAttribute) GetHashMask() *Uint32List { +func (x *UdfAttribute) GetHashMask() []uint32 { if x != nil { return x.HashMask } @@ -29044,15 +27729,15 @@ type UdfGroupAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UdfList *Uint64List `protobuf:"bytes,1,opt,name=udf_list,json=udfList,proto3" json:"udf_list,omitempty"` - Type UdfGroupType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.UdfGroupType" json:"type,omitempty"` - Length uint32 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"` + UdfList []uint64 `protobuf:"varint,1,rep,packed,name=udf_list,json=udfList,proto3" json:"udf_list,omitempty"` + Type *UdfGroupType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.UdfGroupType,oneof" json:"type,omitempty"` + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } func (x *UdfGroupAttribute) Reset() { *x = UdfGroupAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[154] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29065,7 +27750,7 @@ func (x *UdfGroupAttribute) String() string { func (*UdfGroupAttribute) ProtoMessage() {} func (x *UdfGroupAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[154] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29078,10 +27763,10 @@ func (x *UdfGroupAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use UdfGroupAttribute.ProtoReflect.Descriptor instead. func (*UdfGroupAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{154} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{126} } -func (x *UdfGroupAttribute) GetUdfList() *Uint64List { +func (x *UdfGroupAttribute) GetUdfList() []uint64 { if x != nil { return x.UdfList } @@ -29089,15 +27774,15 @@ func (x *UdfGroupAttribute) GetUdfList() *Uint64List { } func (x *UdfGroupAttribute) GetType() UdfGroupType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return UdfGroupType_UDF_GROUP_TYPE_UNSPECIFIED } func (x *UdfGroupAttribute) GetLength() uint32 { - if x != nil { - return x.Length + if x != nil && x.Length != nil { + return *x.Length } return 0 } @@ -29107,16 +27792,16 @@ type UdfMatchAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - L2Type *AclFieldData `protobuf:"bytes,1,opt,name=l2_type,json=l2Type,proto3" json:"l2_type,omitempty"` - L3Type *AclFieldData `protobuf:"bytes,2,opt,name=l3_type,json=l3Type,proto3" json:"l3_type,omitempty"` - GreType *AclFieldData `protobuf:"bytes,3,opt,name=gre_type,json=greType,proto3" json:"gre_type,omitempty"` - Priority uint32 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"` + L2Type *AclFieldData `protobuf:"bytes,1,opt,name=l2_type,json=l2Type,proto3,oneof" json:"l2_type,omitempty"` + L3Type *AclFieldData `protobuf:"bytes,2,opt,name=l3_type,json=l3Type,proto3,oneof" json:"l3_type,omitempty"` + GreType *AclFieldData `protobuf:"bytes,3,opt,name=gre_type,json=greType,proto3,oneof" json:"gre_type,omitempty"` + Priority *uint32 `protobuf:"varint,4,opt,name=priority,proto3,oneof" json:"priority,omitempty"` } func (x *UdfMatchAttribute) Reset() { *x = UdfMatchAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[155] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29129,7 +27814,7 @@ func (x *UdfMatchAttribute) String() string { func (*UdfMatchAttribute) ProtoMessage() {} func (x *UdfMatchAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[155] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29142,7 +27827,7 @@ func (x *UdfMatchAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use UdfMatchAttribute.ProtoReflect.Descriptor instead. func (*UdfMatchAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{155} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{127} } func (x *UdfMatchAttribute) GetL2Type() *AclFieldData { @@ -29167,8 +27852,8 @@ func (x *UdfMatchAttribute) GetGreType() *AclFieldData { } func (x *UdfMatchAttribute) GetPriority() uint32 { - if x != nil { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } @@ -29178,19 +27863,19 @@ type VirtualRouterAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AdminV4State bool `protobuf:"varint,1,opt,name=admin_v4_state,json=adminV4State,proto3" json:"admin_v4_state,omitempty"` - AdminV6State bool `protobuf:"varint,2,opt,name=admin_v6_state,json=adminV6State,proto3" json:"admin_v6_state,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,3,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - ViolationTtl1PacketAction PacketAction `protobuf:"varint,4,opt,name=violation_ttl1_packet_action,json=violationTtl1PacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"violation_ttl1_packet_action,omitempty"` - ViolationIpOptionsPacketAction PacketAction `protobuf:"varint,5,opt,name=violation_ip_options_packet_action,json=violationIpOptionsPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"violation_ip_options_packet_action,omitempty"` - UnknownL3MulticastPacketAction PacketAction `protobuf:"varint,6,opt,name=unknown_l3_multicast_packet_action,json=unknownL3MulticastPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"unknown_l3_multicast_packet_action,omitempty"` - Label []byte `protobuf:"bytes,7,opt,name=label,proto3" json:"label,omitempty"` + AdminV4State *bool `protobuf:"varint,1,opt,name=admin_v4_state,json=adminV4State,proto3,oneof" json:"admin_v4_state,omitempty"` + AdminV6State *bool `protobuf:"varint,2,opt,name=admin_v6_state,json=adminV6State,proto3,oneof" json:"admin_v6_state,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,3,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + ViolationTtl1PacketAction *PacketAction `protobuf:"varint,4,opt,name=violation_ttl1_packet_action,json=violationTtl1PacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"violation_ttl1_packet_action,omitempty"` + ViolationIpOptionsPacketAction *PacketAction `protobuf:"varint,5,opt,name=violation_ip_options_packet_action,json=violationIpOptionsPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"violation_ip_options_packet_action,omitempty"` + UnknownL3MulticastPacketAction *PacketAction `protobuf:"varint,6,opt,name=unknown_l3_multicast_packet_action,json=unknownL3MulticastPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"unknown_l3_multicast_packet_action,omitempty"` + Label []byte `protobuf:"bytes,7,opt,name=label,proto3,oneof" json:"label,omitempty"` } func (x *VirtualRouterAttribute) Reset() { *x = VirtualRouterAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[156] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29203,7 +27888,7 @@ func (x *VirtualRouterAttribute) String() string { func (*VirtualRouterAttribute) ProtoMessage() {} func (x *VirtualRouterAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[156] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29216,19 +27901,19 @@ func (x *VirtualRouterAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use VirtualRouterAttribute.ProtoReflect.Descriptor instead. func (*VirtualRouterAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{156} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{128} } func (x *VirtualRouterAttribute) GetAdminV4State() bool { - if x != nil { - return x.AdminV4State + if x != nil && x.AdminV4State != nil { + return *x.AdminV4State } return false } func (x *VirtualRouterAttribute) GetAdminV6State() bool { - if x != nil { - return x.AdminV6State + if x != nil && x.AdminV6State != nil { + return *x.AdminV6State } return false } @@ -29241,22 +27926,22 @@ func (x *VirtualRouterAttribute) GetSrcMacAddress() []byte { } func (x *VirtualRouterAttribute) GetViolationTtl1PacketAction() PacketAction { - if x != nil { - return x.ViolationTtl1PacketAction + if x != nil && x.ViolationTtl1PacketAction != nil { + return *x.ViolationTtl1PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *VirtualRouterAttribute) GetViolationIpOptionsPacketAction() PacketAction { - if x != nil { - return x.ViolationIpOptionsPacketAction + if x != nil && x.ViolationIpOptionsPacketAction != nil { + return *x.ViolationIpOptionsPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *VirtualRouterAttribute) GetUnknownL3MulticastPacketAction() PacketAction { - if x != nil { - return x.UnknownL3MulticastPacketAction + if x != nil && x.UnknownL3MulticastPacketAction != nil { + return *x.UnknownL3MulticastPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } @@ -29273,34 +27958,34 @@ type VlanAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - VlanId uint32 `protobuf:"varint,1,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - MemberList *Uint64List `protobuf:"bytes,2,opt,name=member_list,json=memberList,proto3" json:"member_list,omitempty"` - MaxLearnedAddresses uint32 `protobuf:"varint,3,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3" json:"max_learned_addresses,omitempty"` - StpInstance uint64 `protobuf:"varint,4,opt,name=stp_instance,json=stpInstance,proto3" json:"stp_instance,omitempty"` - LearnDisable bool `protobuf:"varint,5,opt,name=learn_disable,json=learnDisable,proto3" json:"learn_disable,omitempty"` - Ipv4McastLookupKeyType VlanMcastLookupKeyType `protobuf:"varint,6,opt,name=ipv4_mcast_lookup_key_type,json=ipv4McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType" json:"ipv4_mcast_lookup_key_type,omitempty"` - Ipv6McastLookupKeyType VlanMcastLookupKeyType `protobuf:"varint,7,opt,name=ipv6_mcast_lookup_key_type,json=ipv6McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType" json:"ipv6_mcast_lookup_key_type,omitempty"` - UnknownNonIpMcastOutputGroupId uint64 `protobuf:"varint,8,opt,name=unknown_non_ip_mcast_output_group_id,json=unknownNonIpMcastOutputGroupId,proto3" json:"unknown_non_ip_mcast_output_group_id,omitempty"` - UnknownIpv4McastOutputGroupId uint64 `protobuf:"varint,9,opt,name=unknown_ipv4_mcast_output_group_id,json=unknownIpv4McastOutputGroupId,proto3" json:"unknown_ipv4_mcast_output_group_id,omitempty"` - UnknownIpv6McastOutputGroupId uint64 `protobuf:"varint,10,opt,name=unknown_ipv6_mcast_output_group_id,json=unknownIpv6McastOutputGroupId,proto3" json:"unknown_ipv6_mcast_output_group_id,omitempty"` - UnknownLinklocalMcastOutputGroupId uint64 `protobuf:"varint,11,opt,name=unknown_linklocal_mcast_output_group_id,json=unknownLinklocalMcastOutputGroupId,proto3" json:"unknown_linklocal_mcast_output_group_id,omitempty"` - IngressAcl uint64 `protobuf:"varint,12,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,13,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - MetaData uint32 `protobuf:"varint,14,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - UnknownUnicastFloodControlType VlanFloodControlType `protobuf:"varint,15,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType" json:"unknown_unicast_flood_control_type,omitempty"` - UnknownUnicastFloodGroup uint64 `protobuf:"varint,16,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3" json:"unknown_unicast_flood_group,omitempty"` - UnknownMulticastFloodControlType VlanFloodControlType `protobuf:"varint,17,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType" json:"unknown_multicast_flood_control_type,omitempty"` - UnknownMulticastFloodGroup uint64 `protobuf:"varint,18,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3" json:"unknown_multicast_flood_group,omitempty"` - BroadcastFloodControlType VlanFloodControlType `protobuf:"varint,19,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType" json:"broadcast_flood_control_type,omitempty"` - BroadcastFloodGroup uint64 `protobuf:"varint,20,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3" json:"broadcast_flood_group,omitempty"` - CustomIgmpSnoopingEnable bool `protobuf:"varint,21,opt,name=custom_igmp_snooping_enable,json=customIgmpSnoopingEnable,proto3" json:"custom_igmp_snooping_enable,omitempty"` - TamObject *Uint64List `protobuf:"bytes,22,opt,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` + VlanId *uint32 `protobuf:"varint,1,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + MemberList []uint64 `protobuf:"varint,2,rep,packed,name=member_list,json=memberList,proto3" json:"member_list,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,3,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + StpInstance *uint64 `protobuf:"varint,4,opt,name=stp_instance,json=stpInstance,proto3,oneof" json:"stp_instance,omitempty"` + LearnDisable *bool `protobuf:"varint,5,opt,name=learn_disable,json=learnDisable,proto3,oneof" json:"learn_disable,omitempty"` + Ipv4McastLookupKeyType *VlanMcastLookupKeyType `protobuf:"varint,6,opt,name=ipv4_mcast_lookup_key_type,json=ipv4McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType,oneof" json:"ipv4_mcast_lookup_key_type,omitempty"` + Ipv6McastLookupKeyType *VlanMcastLookupKeyType `protobuf:"varint,7,opt,name=ipv6_mcast_lookup_key_type,json=ipv6McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType,oneof" json:"ipv6_mcast_lookup_key_type,omitempty"` + UnknownNonIpMcastOutputGroupId *uint64 `protobuf:"varint,8,opt,name=unknown_non_ip_mcast_output_group_id,json=unknownNonIpMcastOutputGroupId,proto3,oneof" json:"unknown_non_ip_mcast_output_group_id,omitempty"` + UnknownIpv4McastOutputGroupId *uint64 `protobuf:"varint,9,opt,name=unknown_ipv4_mcast_output_group_id,json=unknownIpv4McastOutputGroupId,proto3,oneof" json:"unknown_ipv4_mcast_output_group_id,omitempty"` + UnknownIpv6McastOutputGroupId *uint64 `protobuf:"varint,10,opt,name=unknown_ipv6_mcast_output_group_id,json=unknownIpv6McastOutputGroupId,proto3,oneof" json:"unknown_ipv6_mcast_output_group_id,omitempty"` + UnknownLinklocalMcastOutputGroupId *uint64 `protobuf:"varint,11,opt,name=unknown_linklocal_mcast_output_group_id,json=unknownLinklocalMcastOutputGroupId,proto3,oneof" json:"unknown_linklocal_mcast_output_group_id,omitempty"` + IngressAcl *uint64 `protobuf:"varint,12,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,13,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + MetaData *uint32 `protobuf:"varint,14,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + UnknownUnicastFloodControlType *VlanFloodControlType `protobuf:"varint,15,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"unknown_unicast_flood_control_type,omitempty"` + UnknownUnicastFloodGroup *uint64 `protobuf:"varint,16,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3,oneof" json:"unknown_unicast_flood_group,omitempty"` + UnknownMulticastFloodControlType *VlanFloodControlType `protobuf:"varint,17,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"unknown_multicast_flood_control_type,omitempty"` + UnknownMulticastFloodGroup *uint64 `protobuf:"varint,18,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3,oneof" json:"unknown_multicast_flood_group,omitempty"` + BroadcastFloodControlType *VlanFloodControlType `protobuf:"varint,19,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"broadcast_flood_control_type,omitempty"` + BroadcastFloodGroup *uint64 `protobuf:"varint,20,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3,oneof" json:"broadcast_flood_group,omitempty"` + CustomIgmpSnoopingEnable *bool `protobuf:"varint,21,opt,name=custom_igmp_snooping_enable,json=customIgmpSnoopingEnable,proto3,oneof" json:"custom_igmp_snooping_enable,omitempty"` + TamObject []uint64 `protobuf:"varint,22,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` } func (x *VlanAttribute) Reset() { *x = VlanAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[157] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29313,7 +27998,7 @@ func (x *VlanAttribute) String() string { func (*VlanAttribute) ProtoMessage() {} func (x *VlanAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[157] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29326,17 +28011,17 @@ func (x *VlanAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use VlanAttribute.ProtoReflect.Descriptor instead. func (*VlanAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{157} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{129} } func (x *VlanAttribute) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } -func (x *VlanAttribute) GetMemberList() *Uint64List { +func (x *VlanAttribute) GetMemberList() []uint64 { if x != nil { return x.MemberList } @@ -29344,139 +28029,139 @@ func (x *VlanAttribute) GetMemberList() *Uint64List { } func (x *VlanAttribute) GetMaxLearnedAddresses() uint32 { - if x != nil { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *VlanAttribute) GetStpInstance() uint64 { - if x != nil { - return x.StpInstance + if x != nil && x.StpInstance != nil { + return *x.StpInstance } return 0 } func (x *VlanAttribute) GetLearnDisable() bool { - if x != nil { - return x.LearnDisable + if x != nil && x.LearnDisable != nil { + return *x.LearnDisable } return false } func (x *VlanAttribute) GetIpv4McastLookupKeyType() VlanMcastLookupKeyType { - if x != nil { - return x.Ipv4McastLookupKeyType + if x != nil && x.Ipv4McastLookupKeyType != nil { + return *x.Ipv4McastLookupKeyType } return VlanMcastLookupKeyType_VLAN_MCAST_LOOKUP_KEY_TYPE_UNSPECIFIED } func (x *VlanAttribute) GetIpv6McastLookupKeyType() VlanMcastLookupKeyType { - if x != nil { - return x.Ipv6McastLookupKeyType + if x != nil && x.Ipv6McastLookupKeyType != nil { + return *x.Ipv6McastLookupKeyType } return VlanMcastLookupKeyType_VLAN_MCAST_LOOKUP_KEY_TYPE_UNSPECIFIED } func (x *VlanAttribute) GetUnknownNonIpMcastOutputGroupId() uint64 { - if x != nil { - return x.UnknownNonIpMcastOutputGroupId + if x != nil && x.UnknownNonIpMcastOutputGroupId != nil { + return *x.UnknownNonIpMcastOutputGroupId } return 0 } func (x *VlanAttribute) GetUnknownIpv4McastOutputGroupId() uint64 { - if x != nil { - return x.UnknownIpv4McastOutputGroupId + if x != nil && x.UnknownIpv4McastOutputGroupId != nil { + return *x.UnknownIpv4McastOutputGroupId } return 0 } func (x *VlanAttribute) GetUnknownIpv6McastOutputGroupId() uint64 { - if x != nil { - return x.UnknownIpv6McastOutputGroupId + if x != nil && x.UnknownIpv6McastOutputGroupId != nil { + return *x.UnknownIpv6McastOutputGroupId } return 0 } func (x *VlanAttribute) GetUnknownLinklocalMcastOutputGroupId() uint64 { - if x != nil { - return x.UnknownLinklocalMcastOutputGroupId + if x != nil && x.UnknownLinklocalMcastOutputGroupId != nil { + return *x.UnknownLinklocalMcastOutputGroupId } return 0 } func (x *VlanAttribute) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *VlanAttribute) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *VlanAttribute) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *VlanAttribute) GetUnknownUnicastFloodControlType() VlanFloodControlType { - if x != nil { - return x.UnknownUnicastFloodControlType + if x != nil && x.UnknownUnicastFloodControlType != nil { + return *x.UnknownUnicastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *VlanAttribute) GetUnknownUnicastFloodGroup() uint64 { - if x != nil { - return x.UnknownUnicastFloodGroup + if x != nil && x.UnknownUnicastFloodGroup != nil { + return *x.UnknownUnicastFloodGroup } return 0 } func (x *VlanAttribute) GetUnknownMulticastFloodControlType() VlanFloodControlType { - if x != nil { - return x.UnknownMulticastFloodControlType + if x != nil && x.UnknownMulticastFloodControlType != nil { + return *x.UnknownMulticastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *VlanAttribute) GetUnknownMulticastFloodGroup() uint64 { - if x != nil { - return x.UnknownMulticastFloodGroup + if x != nil && x.UnknownMulticastFloodGroup != nil { + return *x.UnknownMulticastFloodGroup } return 0 } func (x *VlanAttribute) GetBroadcastFloodControlType() VlanFloodControlType { - if x != nil { - return x.BroadcastFloodControlType + if x != nil && x.BroadcastFloodControlType != nil { + return *x.BroadcastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *VlanAttribute) GetBroadcastFloodGroup() uint64 { - if x != nil { - return x.BroadcastFloodGroup + if x != nil && x.BroadcastFloodGroup != nil { + return *x.BroadcastFloodGroup } return 0 } func (x *VlanAttribute) GetCustomIgmpSnoopingEnable() bool { - if x != nil { - return x.CustomIgmpSnoopingEnable + if x != nil && x.CustomIgmpSnoopingEnable != nil { + return *x.CustomIgmpSnoopingEnable } return false } -func (x *VlanAttribute) GetTamObject() *Uint64List { +func (x *VlanAttribute) GetTamObject() []uint64 { if x != nil { return x.TamObject } @@ -29488,15 +28173,15 @@ type VlanMemberAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - VlanId uint64 `protobuf:"varint,1,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - BridgePortId uint64 `protobuf:"varint,2,opt,name=bridge_port_id,json=bridgePortId,proto3" json:"bridge_port_id,omitempty"` - VlanTaggingMode VlanTaggingMode `protobuf:"varint,3,opt,name=vlan_tagging_mode,json=vlanTaggingMode,proto3,enum=lemming.dataplane.sai.VlanTaggingMode" json:"vlan_tagging_mode,omitempty"` + VlanId *uint64 `protobuf:"varint,1,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + BridgePortId *uint64 `protobuf:"varint,2,opt,name=bridge_port_id,json=bridgePortId,proto3,oneof" json:"bridge_port_id,omitempty"` + VlanTaggingMode *VlanTaggingMode `protobuf:"varint,3,opt,name=vlan_tagging_mode,json=vlanTaggingMode,proto3,enum=lemming.dataplane.sai.VlanTaggingMode,oneof" json:"vlan_tagging_mode,omitempty"` } func (x *VlanMemberAttribute) Reset() { *x = VlanMemberAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[158] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29509,7 +28194,7 @@ func (x *VlanMemberAttribute) String() string { func (*VlanMemberAttribute) ProtoMessage() {} func (x *VlanMemberAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[158] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29522,26 +28207,26 @@ func (x *VlanMemberAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use VlanMemberAttribute.ProtoReflect.Descriptor instead. func (*VlanMemberAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{158} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{130} } func (x *VlanMemberAttribute) GetVlanId() uint64 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *VlanMemberAttribute) GetBridgePortId() uint64 { - if x != nil { - return x.BridgePortId + if x != nil && x.BridgePortId != nil { + return *x.BridgePortId } return 0 } func (x *VlanMemberAttribute) GetVlanTaggingMode() VlanTaggingMode { - if x != nil { - return x.VlanTaggingMode + if x != nil && x.VlanTaggingMode != nil { + return *x.VlanTaggingMode } return VlanTaggingMode_VLAN_TAGGING_MODE_UNSPECIFIED } @@ -29551,38 +28236,38 @@ type WredAttribute struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GreenEnable bool `protobuf:"varint,1,opt,name=green_enable,json=greenEnable,proto3" json:"green_enable,omitempty"` - GreenMinThreshold uint32 `protobuf:"varint,2,opt,name=green_min_threshold,json=greenMinThreshold,proto3" json:"green_min_threshold,omitempty"` - GreenMaxThreshold uint32 `protobuf:"varint,3,opt,name=green_max_threshold,json=greenMaxThreshold,proto3" json:"green_max_threshold,omitempty"` - GreenDropProbability uint32 `protobuf:"varint,4,opt,name=green_drop_probability,json=greenDropProbability,proto3" json:"green_drop_probability,omitempty"` - YellowEnable bool `protobuf:"varint,5,opt,name=yellow_enable,json=yellowEnable,proto3" json:"yellow_enable,omitempty"` - YellowMinThreshold uint32 `protobuf:"varint,6,opt,name=yellow_min_threshold,json=yellowMinThreshold,proto3" json:"yellow_min_threshold,omitempty"` - YellowMaxThreshold uint32 `protobuf:"varint,7,opt,name=yellow_max_threshold,json=yellowMaxThreshold,proto3" json:"yellow_max_threshold,omitempty"` - YellowDropProbability uint32 `protobuf:"varint,8,opt,name=yellow_drop_probability,json=yellowDropProbability,proto3" json:"yellow_drop_probability,omitempty"` - RedEnable bool `protobuf:"varint,9,opt,name=red_enable,json=redEnable,proto3" json:"red_enable,omitempty"` - RedMinThreshold uint32 `protobuf:"varint,10,opt,name=red_min_threshold,json=redMinThreshold,proto3" json:"red_min_threshold,omitempty"` - RedMaxThreshold uint32 `protobuf:"varint,11,opt,name=red_max_threshold,json=redMaxThreshold,proto3" json:"red_max_threshold,omitempty"` - RedDropProbability uint32 `protobuf:"varint,12,opt,name=red_drop_probability,json=redDropProbability,proto3" json:"red_drop_probability,omitempty"` - Weight uint32 `protobuf:"varint,13,opt,name=weight,proto3" json:"weight,omitempty"` - EcnMarkMode EcnMarkMode `protobuf:"varint,14,opt,name=ecn_mark_mode,json=ecnMarkMode,proto3,enum=lemming.dataplane.sai.EcnMarkMode" json:"ecn_mark_mode,omitempty"` - EcnGreenMinThreshold uint32 `protobuf:"varint,15,opt,name=ecn_green_min_threshold,json=ecnGreenMinThreshold,proto3" json:"ecn_green_min_threshold,omitempty"` - EcnGreenMaxThreshold uint32 `protobuf:"varint,16,opt,name=ecn_green_max_threshold,json=ecnGreenMaxThreshold,proto3" json:"ecn_green_max_threshold,omitempty"` - EcnGreenMarkProbability uint32 `protobuf:"varint,17,opt,name=ecn_green_mark_probability,json=ecnGreenMarkProbability,proto3" json:"ecn_green_mark_probability,omitempty"` - EcnYellowMinThreshold uint32 `protobuf:"varint,18,opt,name=ecn_yellow_min_threshold,json=ecnYellowMinThreshold,proto3" json:"ecn_yellow_min_threshold,omitempty"` - EcnYellowMaxThreshold uint32 `protobuf:"varint,19,opt,name=ecn_yellow_max_threshold,json=ecnYellowMaxThreshold,proto3" json:"ecn_yellow_max_threshold,omitempty"` - EcnYellowMarkProbability uint32 `protobuf:"varint,20,opt,name=ecn_yellow_mark_probability,json=ecnYellowMarkProbability,proto3" json:"ecn_yellow_mark_probability,omitempty"` - EcnRedMinThreshold uint32 `protobuf:"varint,21,opt,name=ecn_red_min_threshold,json=ecnRedMinThreshold,proto3" json:"ecn_red_min_threshold,omitempty"` - EcnRedMaxThreshold uint32 `protobuf:"varint,22,opt,name=ecn_red_max_threshold,json=ecnRedMaxThreshold,proto3" json:"ecn_red_max_threshold,omitempty"` - EcnRedMarkProbability uint32 `protobuf:"varint,23,opt,name=ecn_red_mark_probability,json=ecnRedMarkProbability,proto3" json:"ecn_red_mark_probability,omitempty"` - EcnColorUnawareMinThreshold uint32 `protobuf:"varint,24,opt,name=ecn_color_unaware_min_threshold,json=ecnColorUnawareMinThreshold,proto3" json:"ecn_color_unaware_min_threshold,omitempty"` - EcnColorUnawareMaxThreshold uint32 `protobuf:"varint,25,opt,name=ecn_color_unaware_max_threshold,json=ecnColorUnawareMaxThreshold,proto3" json:"ecn_color_unaware_max_threshold,omitempty"` - EcnColorUnawareMarkProbability uint32 `protobuf:"varint,26,opt,name=ecn_color_unaware_mark_probability,json=ecnColorUnawareMarkProbability,proto3" json:"ecn_color_unaware_mark_probability,omitempty"` + GreenEnable *bool `protobuf:"varint,1,opt,name=green_enable,json=greenEnable,proto3,oneof" json:"green_enable,omitempty"` + GreenMinThreshold *uint32 `protobuf:"varint,2,opt,name=green_min_threshold,json=greenMinThreshold,proto3,oneof" json:"green_min_threshold,omitempty"` + GreenMaxThreshold *uint32 `protobuf:"varint,3,opt,name=green_max_threshold,json=greenMaxThreshold,proto3,oneof" json:"green_max_threshold,omitempty"` + GreenDropProbability *uint32 `protobuf:"varint,4,opt,name=green_drop_probability,json=greenDropProbability,proto3,oneof" json:"green_drop_probability,omitempty"` + YellowEnable *bool `protobuf:"varint,5,opt,name=yellow_enable,json=yellowEnable,proto3,oneof" json:"yellow_enable,omitempty"` + YellowMinThreshold *uint32 `protobuf:"varint,6,opt,name=yellow_min_threshold,json=yellowMinThreshold,proto3,oneof" json:"yellow_min_threshold,omitempty"` + YellowMaxThreshold *uint32 `protobuf:"varint,7,opt,name=yellow_max_threshold,json=yellowMaxThreshold,proto3,oneof" json:"yellow_max_threshold,omitempty"` + YellowDropProbability *uint32 `protobuf:"varint,8,opt,name=yellow_drop_probability,json=yellowDropProbability,proto3,oneof" json:"yellow_drop_probability,omitempty"` + RedEnable *bool `protobuf:"varint,9,opt,name=red_enable,json=redEnable,proto3,oneof" json:"red_enable,omitempty"` + RedMinThreshold *uint32 `protobuf:"varint,10,opt,name=red_min_threshold,json=redMinThreshold,proto3,oneof" json:"red_min_threshold,omitempty"` + RedMaxThreshold *uint32 `protobuf:"varint,11,opt,name=red_max_threshold,json=redMaxThreshold,proto3,oneof" json:"red_max_threshold,omitempty"` + RedDropProbability *uint32 `protobuf:"varint,12,opt,name=red_drop_probability,json=redDropProbability,proto3,oneof" json:"red_drop_probability,omitempty"` + Weight *uint32 `protobuf:"varint,13,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + EcnMarkMode *EcnMarkMode `protobuf:"varint,14,opt,name=ecn_mark_mode,json=ecnMarkMode,proto3,enum=lemming.dataplane.sai.EcnMarkMode,oneof" json:"ecn_mark_mode,omitempty"` + EcnGreenMinThreshold *uint32 `protobuf:"varint,15,opt,name=ecn_green_min_threshold,json=ecnGreenMinThreshold,proto3,oneof" json:"ecn_green_min_threshold,omitempty"` + EcnGreenMaxThreshold *uint32 `protobuf:"varint,16,opt,name=ecn_green_max_threshold,json=ecnGreenMaxThreshold,proto3,oneof" json:"ecn_green_max_threshold,omitempty"` + EcnGreenMarkProbability *uint32 `protobuf:"varint,17,opt,name=ecn_green_mark_probability,json=ecnGreenMarkProbability,proto3,oneof" json:"ecn_green_mark_probability,omitempty"` + EcnYellowMinThreshold *uint32 `protobuf:"varint,18,opt,name=ecn_yellow_min_threshold,json=ecnYellowMinThreshold,proto3,oneof" json:"ecn_yellow_min_threshold,omitempty"` + EcnYellowMaxThreshold *uint32 `protobuf:"varint,19,opt,name=ecn_yellow_max_threshold,json=ecnYellowMaxThreshold,proto3,oneof" json:"ecn_yellow_max_threshold,omitempty"` + EcnYellowMarkProbability *uint32 `protobuf:"varint,20,opt,name=ecn_yellow_mark_probability,json=ecnYellowMarkProbability,proto3,oneof" json:"ecn_yellow_mark_probability,omitempty"` + EcnRedMinThreshold *uint32 `protobuf:"varint,21,opt,name=ecn_red_min_threshold,json=ecnRedMinThreshold,proto3,oneof" json:"ecn_red_min_threshold,omitempty"` + EcnRedMaxThreshold *uint32 `protobuf:"varint,22,opt,name=ecn_red_max_threshold,json=ecnRedMaxThreshold,proto3,oneof" json:"ecn_red_max_threshold,omitempty"` + EcnRedMarkProbability *uint32 `protobuf:"varint,23,opt,name=ecn_red_mark_probability,json=ecnRedMarkProbability,proto3,oneof" json:"ecn_red_mark_probability,omitempty"` + EcnColorUnawareMinThreshold *uint32 `protobuf:"varint,24,opt,name=ecn_color_unaware_min_threshold,json=ecnColorUnawareMinThreshold,proto3,oneof" json:"ecn_color_unaware_min_threshold,omitempty"` + EcnColorUnawareMaxThreshold *uint32 `protobuf:"varint,25,opt,name=ecn_color_unaware_max_threshold,json=ecnColorUnawareMaxThreshold,proto3,oneof" json:"ecn_color_unaware_max_threshold,omitempty"` + EcnColorUnawareMarkProbability *uint32 `protobuf:"varint,26,opt,name=ecn_color_unaware_mark_probability,json=ecnColorUnawareMarkProbability,proto3,oneof" json:"ecn_color_unaware_mark_probability,omitempty"` } func (x *WredAttribute) Reset() { *x = WredAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[159] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29595,7 +28280,7 @@ func (x *WredAttribute) String() string { func (*WredAttribute) ProtoMessage() {} func (x *WredAttribute) ProtoReflect() protoreflect.Message { - mi := &file_dataplane_standalone_proto_common_proto_msgTypes[159] + mi := &file_dataplane_standalone_proto_common_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29608,191 +28293,208 @@ func (x *WredAttribute) ProtoReflect() protoreflect.Message { // Deprecated: Use WredAttribute.ProtoReflect.Descriptor instead. func (*WredAttribute) Descriptor() ([]byte, []int) { - return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{159} + return file_dataplane_standalone_proto_common_proto_rawDescGZIP(), []int{131} } func (x *WredAttribute) GetGreenEnable() bool { - if x != nil { - return x.GreenEnable + if x != nil && x.GreenEnable != nil { + return *x.GreenEnable } return false } func (x *WredAttribute) GetGreenMinThreshold() uint32 { - if x != nil { - return x.GreenMinThreshold + if x != nil && x.GreenMinThreshold != nil { + return *x.GreenMinThreshold } return 0 } func (x *WredAttribute) GetGreenMaxThreshold() uint32 { - if x != nil { - return x.GreenMaxThreshold + if x != nil && x.GreenMaxThreshold != nil { + return *x.GreenMaxThreshold } return 0 } func (x *WredAttribute) GetGreenDropProbability() uint32 { - if x != nil { - return x.GreenDropProbability + if x != nil && x.GreenDropProbability != nil { + return *x.GreenDropProbability } return 0 } func (x *WredAttribute) GetYellowEnable() bool { - if x != nil { - return x.YellowEnable + if x != nil && x.YellowEnable != nil { + return *x.YellowEnable } return false } func (x *WredAttribute) GetYellowMinThreshold() uint32 { - if x != nil { - return x.YellowMinThreshold + if x != nil && x.YellowMinThreshold != nil { + return *x.YellowMinThreshold } return 0 } func (x *WredAttribute) GetYellowMaxThreshold() uint32 { - if x != nil { - return x.YellowMaxThreshold + if x != nil && x.YellowMaxThreshold != nil { + return *x.YellowMaxThreshold } return 0 } func (x *WredAttribute) GetYellowDropProbability() uint32 { - if x != nil { - return x.YellowDropProbability + if x != nil && x.YellowDropProbability != nil { + return *x.YellowDropProbability } return 0 } func (x *WredAttribute) GetRedEnable() bool { - if x != nil { - return x.RedEnable + if x != nil && x.RedEnable != nil { + return *x.RedEnable } return false } func (x *WredAttribute) GetRedMinThreshold() uint32 { - if x != nil { - return x.RedMinThreshold + if x != nil && x.RedMinThreshold != nil { + return *x.RedMinThreshold } return 0 } func (x *WredAttribute) GetRedMaxThreshold() uint32 { - if x != nil { - return x.RedMaxThreshold + if x != nil && x.RedMaxThreshold != nil { + return *x.RedMaxThreshold } return 0 } func (x *WredAttribute) GetRedDropProbability() uint32 { - if x != nil { - return x.RedDropProbability + if x != nil && x.RedDropProbability != nil { + return *x.RedDropProbability } return 0 } func (x *WredAttribute) GetWeight() uint32 { - if x != nil { - return x.Weight + if x != nil && x.Weight != nil { + return *x.Weight } return 0 } func (x *WredAttribute) GetEcnMarkMode() EcnMarkMode { - if x != nil { - return x.EcnMarkMode + if x != nil && x.EcnMarkMode != nil { + return *x.EcnMarkMode } return EcnMarkMode_ECN_MARK_MODE_UNSPECIFIED } func (x *WredAttribute) GetEcnGreenMinThreshold() uint32 { - if x != nil { - return x.EcnGreenMinThreshold + if x != nil && x.EcnGreenMinThreshold != nil { + return *x.EcnGreenMinThreshold } return 0 } func (x *WredAttribute) GetEcnGreenMaxThreshold() uint32 { - if x != nil { - return x.EcnGreenMaxThreshold + if x != nil && x.EcnGreenMaxThreshold != nil { + return *x.EcnGreenMaxThreshold } return 0 } func (x *WredAttribute) GetEcnGreenMarkProbability() uint32 { - if x != nil { - return x.EcnGreenMarkProbability + if x != nil && x.EcnGreenMarkProbability != nil { + return *x.EcnGreenMarkProbability } return 0 } func (x *WredAttribute) GetEcnYellowMinThreshold() uint32 { - if x != nil { - return x.EcnYellowMinThreshold + if x != nil && x.EcnYellowMinThreshold != nil { + return *x.EcnYellowMinThreshold } return 0 } func (x *WredAttribute) GetEcnYellowMaxThreshold() uint32 { - if x != nil { - return x.EcnYellowMaxThreshold + if x != nil && x.EcnYellowMaxThreshold != nil { + return *x.EcnYellowMaxThreshold } return 0 } func (x *WredAttribute) GetEcnYellowMarkProbability() uint32 { - if x != nil { - return x.EcnYellowMarkProbability + if x != nil && x.EcnYellowMarkProbability != nil { + return *x.EcnYellowMarkProbability } return 0 } func (x *WredAttribute) GetEcnRedMinThreshold() uint32 { - if x != nil { - return x.EcnRedMinThreshold + if x != nil && x.EcnRedMinThreshold != nil { + return *x.EcnRedMinThreshold } return 0 } func (x *WredAttribute) GetEcnRedMaxThreshold() uint32 { - if x != nil { - return x.EcnRedMaxThreshold + if x != nil && x.EcnRedMaxThreshold != nil { + return *x.EcnRedMaxThreshold } return 0 } func (x *WredAttribute) GetEcnRedMarkProbability() uint32 { - if x != nil { - return x.EcnRedMarkProbability + if x != nil && x.EcnRedMarkProbability != nil { + return *x.EcnRedMarkProbability } return 0 } func (x *WredAttribute) GetEcnColorUnawareMinThreshold() uint32 { - if x != nil { - return x.EcnColorUnawareMinThreshold + if x != nil && x.EcnColorUnawareMinThreshold != nil { + return *x.EcnColorUnawareMinThreshold } return 0 } func (x *WredAttribute) GetEcnColorUnawareMaxThreshold() uint32 { - if x != nil { - return x.EcnColorUnawareMaxThreshold + if x != nil && x.EcnColorUnawareMaxThreshold != nil { + return *x.EcnColorUnawareMaxThreshold } return 0 } func (x *WredAttribute) GetEcnColorUnawareMarkProbability() uint32 { - if x != nil { - return x.EcnColorUnawareMarkProbability + if x != nil && x.EcnColorUnawareMarkProbability != nil { + return *x.EcnColorUnawareMarkProbability } return 0 } +var file_dataplane_standalone_proto_common_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*int32)(nil), + Field: 50000, + Name: "lemming.dataplane.sai.attr_enum_value", + Tag: "varint,50000,opt,name=attr_enum_value", + Filename: "dataplane/standalone/proto/common.proto", + }, +} + +// Extension fields to descriptorpb.FieldOptions. +var ( + // optional int32 attr_enum_value = 50000; + E_AttrEnumValue = &file_dataplane_standalone_proto_common_proto_extTypes[0] +) + var File_dataplane_standalone_proto_common_proto protoreflect.FileDescriptor var file_dataplane_standalone_proto_common_proto_rawDesc = []byte{ @@ -29802,9028 +28504,11219 @@ var file_dataplane_standalone_proto_common_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xf1, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xf1, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, + 0x04, 0x75, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x75, + 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x10, 0x0a, 0x02, 0x69, + 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x12, 0x3d, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x6c, 0x69, 0x73, 0x74, + 0x12, 0x18, 0x0a, 0x06, 0x69, 0x70, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, + 0x48, 0x00, 0x52, 0x06, 0x69, 0x70, 0x61, 0x64, 0x64, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0x69, 0x0a, 0x0d, 0x41, 0x43, 0x4c, 0x43, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0xc1, 0x03, 0x0a, 0x0c, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x75, - 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x75, 0x69, 0x6e, - 0x74, 0x12, 0x12, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x03, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, - 0x3d, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x06, 0x69, 0x70, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, - 0x52, 0x06, 0x69, 0x70, 0x61, 0x64, 0x64, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0x69, 0x0a, 0x0d, 0x41, 0x43, 0x4c, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x22, 0xc1, 0x03, 0x0a, 0x0c, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x61, 0x73, - 0x6b, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, - 0x6d, 0x61, 0x73, 0x6b, 0x55, 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x6d, 0x61, 0x73, 0x6b, - 0x5f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, - 0x73, 0x6b, 0x49, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x61, - 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, 0x73, 0x6b, 0x4d, - 0x61, 0x63, 0x12, 0x19, 0x0a, 0x07, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x73, 0x6b, 0x49, 0x70, 0x12, 0x40, 0x0a, - 0x09, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, - 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x01, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x55, 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a, - 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x48, - 0x01, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x07, - 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x63, 0x12, 0x19, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, - 0x49, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, - 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x01, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, - 0x4c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x06, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0xa9, 0x01, 0x0a, 0x0b, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x62, - 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x62, 0x69, 0x6e, 0x64, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x4e, 0x75, 0x6d, - 0x22, 0x9a, 0x01, 0x0a, 0x25, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x66, - 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x62, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x12, 0x4b, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x6d, + 0x61, 0x73, 0x6b, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, + 0x52, 0x08, 0x6d, 0x61, 0x73, 0x6b, 0x55, 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x6d, 0x61, + 0x73, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, + 0x6d, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x6d, 0x61, 0x73, 0x6b, 0x5f, + 0x6d, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, 0x73, + 0x6b, 0x4d, 0x61, 0x63, 0x12, 0x19, 0x0a, 0x07, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x70, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x73, 0x6b, 0x49, 0x70, 0x12, + 0x40, 0x0a, 0x09, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x6f, 0x6c, + 0x12, 0x1d, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x55, 0x69, 0x6e, 0x74, 0x12, + 0x1b, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x01, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x08, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, + 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x63, 0x12, 0x19, 0x0a, 0x07, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x06, 0x64, 0x61, + 0x74, 0x61, 0x49, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x53, 0x0a, - 0x16, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, - 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x08, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, - 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, - 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x0a, 0x05, - 0x62, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x62, 0x76, 0x49, - 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x18, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3e, - 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, - 0x0a, 0x09, 0x66, 0x64, 0x62, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x08, 0x66, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3e, 0x0a, 0x05, - 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x01, 0x52, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x06, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x0a, 0x0a, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x04, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x0b, 0x41, 0x43, 0x4c, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, + 0x46, 0x0a, 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, + 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x62, 0x69, + 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x9a, 0x01, 0x0a, 0x25, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x24, + 0x0a, 0x0e, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x22, 0x3f, 0x0a, 0x0a, - 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x32, 0x0a, - 0x08, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, - 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x61, 0x73, - 0x6b, 0x22, 0xb1, 0x01, 0x0a, 0x09, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, - 0x76, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, - 0x64, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xec, 0x01, 0x0a, 0x1d, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, - 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x70, 0x73, 0x65, 0x63, - 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x70, - 0x73, 0x65, 0x63, 0x53, 0x61, 0x49, 0x64, 0x12, 0x6c, 0x0a, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, - 0x5f, 0x73, 0x61, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x4f, 0x63, 0x74, 0x65, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x17, 0x69, 0x70, - 0x73, 0x65, 0x63, 0x53, 0x61, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x1c, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x65, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x6e, 0x5f, 0x61, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x70, 0x73, - 0x65, 0x63, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x6e, 0x41, 0x74, 0x4d, 0x61, 0x78, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x09, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, + 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x53, 0x0a, 0x16, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x08, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, - 0x13, 0x0a, 0x05, 0x62, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x62, 0x76, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x07, 0x55, 0x69, 0x6e, - 0x74, 0x4d, 0x61, 0x70, 0x12, 0x45, 0x0a, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x6d, 0x61, 0x70, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, - 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x6d, 0x61, 0x70, 0x1a, 0x3a, 0x0a, 0x0c, 0x55, - 0x69, 0x6e, 0x74, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x62, 0x0a, 0x0d, 0x4d, 0x63, 0x61, 0x73, 0x74, - 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x0a, 0x05, 0x62, 0x76, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x62, 0x76, 0x49, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x0a, - 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x4c, - 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, - 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x72, 0x67, 0x73, 0x5f, 0x6c, 0x65, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x72, 0x67, 0x73, 0x4c, 0x65, 0x6e, - 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, - 0x69, 0x64, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x53, 0x72, - 0x63, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x44, 0x73, - 0x74, 0x49, 0x70, 0x12, 0x1d, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x6b, - 0x65, 0x79, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6b, - 0x65, 0x79, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x6b, 0x65, 0x79, 0x4c, 0x34, 0x44, 0x73, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x72, 0x63, - 0x5f, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x73, - 0x6b, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x64, - 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x09, 0x6d, - 0x61, 0x73, 0x6b, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0a, 0x6d, 0x61, 0x73, 0x6b, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, - 0x6d, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x73, - 0x6b, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x6b, 0x4c, 0x34, 0x53, 0x72, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x6c, 0x34, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x6b, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x42, - 0x05, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xb0, - 0x01, 0x0a, 0x08, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, - 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, - 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x62, 0x0a, 0x0d, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, - 0x15, 0x0a, 0x06, 0x72, 0x69, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x72, 0x69, 0x66, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x71, 0x0a, 0x0d, 0x50, 0x6f, 0x72, 0x74, 0x45, 0x79, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, - 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x7b, 0x0a, 0x1a, 0x50, 0x6f, 0x72, 0x74, - 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, - 0x44, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x75, 0x0a, 0x0c, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x08, 0x72, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf2, 0x01, 0x0a, - 0x0c, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x0e, 0x0a, - 0x02, 0x74, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x74, 0x63, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x73, 0x63, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x69, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x72, 0x69, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x70, - 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x70, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x38, 0x0a, 0x05, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, - 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, - 0x78, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, - 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x66, - 0x63, 0x22, 0x7a, 0x0a, 0x06, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x12, 0x35, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x01, - 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x05, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, - 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, + 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x13, 0x0a, 0x05, 0x62, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x04, 0x62, 0x76, 0x49, 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x18, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, + 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x66, 0x64, 0x62, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, + 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x66, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x3e, 0x0a, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, + 0x22, 0x3f, 0x0a, 0x0a, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, + 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x32, 0x0a, 0x08, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x12, 0x0a, + 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x61, 0x64, 0x64, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xb1, 0x01, 0x0a, 0x09, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x76, 0x72, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, + 0x04, 0x76, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xec, 0x01, 0x0a, 0x1d, 0x49, 0x70, + 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0b, 0x69, + 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x49, 0x64, 0x12, 0x6c, 0x0a, 0x1b, 0x69, + 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, + 0x4f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x17, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x1c, 0x69, 0x70, 0x73, + 0x65, 0x63, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x6e, 0x5f, 0x61, 0x74, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x17, 0x69, 0x70, 0x73, 0x65, 0x63, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x6e, 0x41, 0x74, + 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x09, 0x4c, 0x32, 0x6d, + 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x62, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x62, 0x76, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, + 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, + 0x07, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x45, 0x0a, 0x07, 0x75, 0x69, 0x6e, 0x74, + 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x6d, 0x61, + 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x6d, 0x61, 0x70, 0x1a, + 0x3a, 0x0a, 0x0c, 0x55, 0x69, 0x6e, 0x74, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x62, 0x0a, 0x0d, 0x4d, + 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, + 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x0a, 0x05, 0x62, 0x76, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x62, 0x76, 0x49, 0x64, 0x22, + 0xe4, 0x01, 0x0a, 0x0a, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, + 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x76, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, + 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x65, 0x6e, 0x12, 0x28, 0x0a, 0x10, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x65, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x6f, 0x64, 0x65, 0x4c, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x72, 0x67, + 0x73, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x72, 0x67, + 0x73, 0x4c, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x03, 0x73, 0x69, 0x64, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x4e, 0x61, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x6b, + 0x65, 0x79, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x6b, + 0x65, 0x79, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1d, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6b, 0x65, + 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x34, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x0c, 0x6b, 0x65, 0x79, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x27, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x6b, 0x65, 0x79, 0x4c, + 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x73, 0x6b, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, + 0x09, 0x6d, 0x61, 0x73, 0x6b, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, + 0x73, 0x6b, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x01, 0x52, 0x09, 0x6d, 0x61, 0x73, 0x6b, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0a, + 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x0a, + 0x10, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x6b, 0x4c, + 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x73, 0x6b, + 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x6b, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, + 0x6f, 0x72, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x61, + 0x73, 0x6b, 0x22, 0xb0, 0x01, 0x0a, 0x08, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, + 0x76, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, + 0x64, 0x12, 0x39, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf1, 0x01, 0x0a, 0x10, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x17, 0x0a, - 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x11, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x43, 0x6f, 0x72, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, - 0x65, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x6f, 0x71, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x56, 0x6f, 0x71, 0x22, 0x31, 0x0a, 0x04, - 0x48, 0x4d, 0x41, 0x43, 0x12, 0x15, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x6d, 0x61, 0x63, 0x22, - 0xbb, 0x01, 0x0a, 0x08, 0x54, 0x4c, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0c, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x10, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, - 0x52, 0x0f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x12, 0x31, 0x0a, 0x04, 0x68, 0x6d, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x4d, 0x41, 0x43, 0x48, 0x00, 0x52, 0x04, - 0x68, 0x6d, 0x61, 0x63, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x31, 0x0a, - 0x0b, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x61, 0x78, - 0x22, 0xbc, 0x01, 0x0a, 0x13, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, - 0xab, 0x63, 0x0a, 0x11, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, - 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x12, 0x54, - 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x62, 0x0a, 0x0d, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x69, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x69, 0x66, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x71, 0x0a, 0x0d, 0x50, 0x6f, 0x72, + 0x74, 0x45, 0x79, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, + 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x65, + 0x66, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x7b, 0x0a, 0x1a, + 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, + 0x74, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x75, 0x0a, 0x0c, 0x50, 0x52, 0x42, + 0x53, 0x5f, 0x52, 0x58, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x72, 0x78, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, - 0x6f, 0x72, 0x64, 0x32, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, - 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x07, 0x20, 0x01, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x52, 0x78, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, 0x72, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x74, + 0x63, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x64, 0x73, 0x63, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x72, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x72, 0x69, 0x6f, 0x12, + 0x0e, 0x0a, 0x02, 0x70, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x70, 0x67, 0x12, + 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x38, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x70, + 0x6c, 0x73, 0x45, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x02, 0x66, 0x63, 0x22, 0x7a, 0x0a, 0x06, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x12, + 0x35, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x4f, + 0x53, 0x4d, 0x61, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, + 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x12, 0x46, + 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, + 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x5f, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x0a, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf1, 0x01, 0x0a, + 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x72, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x76, + 0x6f, 0x71, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x56, 0x6f, 0x71, + 0x22, 0x31, 0x0a, 0x04, 0x48, 0x4d, 0x41, 0x43, 0x12, 0x15, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x68, + 0x6d, 0x61, 0x63, 0x22, 0xbb, 0x01, 0x0a, 0x08, 0x54, 0x4c, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x23, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x10, 0x6f, 0x70, 0x61, 0x71, + 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x04, 0x68, 0x6d, 0x61, 0x63, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x4d, 0x41, 0x43, + 0x48, 0x00, 0x52, 0x04, 0x68, 0x6d, 0x61, 0x63, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x22, 0x31, 0x0a, 0x0b, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, + 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6d, 0x61, 0x78, 0x22, 0xc4, 0x02, 0x0a, 0x13, 0x41, 0x63, 0x6c, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x08, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x07, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, + 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x91, 0x8d, 0x01, 0x0a, + 0x11, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x24, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, + 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, + 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x88, + 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x11, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, + 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x11, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, + 0x31, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, - 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, - 0x64, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, - 0x12, 0x49, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, 0x54, 0x0a, 0x14, 0x66, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, + 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, - 0x33, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, - 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x12, 0x54, 0x0a, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, + 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, + 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, - 0x72, 0x64, 0x30, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x88, 0x01, 0x01, 0x12, 0x5f, + 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, + 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, + 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x11, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, + 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, + 0x61, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x4d, + 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x0a, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, - 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, - 0x47, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x0a, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, + 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x14, 0x48, 0x13, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, + 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x15, 0x48, 0x14, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, + 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, - 0x63, 0x12, 0x45, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, - 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x45, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, - 0x50, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, - 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, - 0x70, 0x12, 0x50, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, - 0x74, 0x49, 0x70, 0x12, 0x49, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x4b, - 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x49, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, - 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x15, 0x52, 0x0c, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, + 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x17, 0x48, 0x16, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x49, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x17, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x18, 0x52, 0x0c, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x52, 0x0a, 0x13, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x54, - 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, - 0x6e, 0x50, 0x72, 0x69, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x1d, 0x20, 0x01, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x1a, 0x48, 0x19, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x50, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, - 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x52, 0x0a, 0x13, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x54, - 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, - 0x6e, 0x50, 0x72, 0x69, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x20, 0x20, 0x01, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1b, 0x48, 0x1a, 0x52, + 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, - 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x4e, 0x0a, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x59, 0x0a, 0x17, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x53, 0x72, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x59, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x58, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x27, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1c, 0x48, 0x1b, 0x52, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, + 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1d, 0x48, 0x1c, + 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, + 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, 0x1d, + 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1f, 0x48, 0x1e, + 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, + 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x5b, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, - 0x70, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x73, 0x63, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x63, 0x6e, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x74, 0x6c, 0x12, 0x40, 0x0a, 0x09, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x20, 0x48, + 0x1f, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, + 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x21, 0x48, 0x20, 0x52, + 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, 0x48, 0x21, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, + 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, 0x12, 0x49, 0x0a, - 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, - 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, - 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x4e, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, - 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, - 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, - 0x70, 0x46, 0x72, 0x61, 0x67, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x32, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x23, 0x48, 0x22, 0x52, 0x13, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, - 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x12, 0x4b, 0x0a, - 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x0f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x35, 0x20, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x24, 0x48, + 0x23, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x44, + 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x37, 0x20, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x25, 0x48, 0x24, + 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x38, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x39, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x12, 0x50, 0x0a, 0x12, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, - 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x61, 0x73, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x12, 0x4d, 0x0a, 0x10, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, - 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x48, 0x25, + 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x27, 0x48, 0x26, + 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x30, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x18, - 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x28, + 0x48, 0x27, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x17, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x29, 0x48, 0x28, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, + 0x70, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x2a, 0x48, 0x29, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x63, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x18, + 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, 0x6c, 0x12, 0x56, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x30, 0x45, 0x78, 0x70, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, - 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x12, 0x5a, - 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, + 0x48, 0x2a, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x4b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x2c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2c, 0x48, 0x2b, 0x52, + 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, - 0x74, 0x74, 0x6c, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, - 0x74, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x42, 0x20, 0x01, 0x28, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2d, 0x48, 0x2c, 0x52, 0x08, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x45, 0x78, 0x70, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, - 0x62, 0x6f, 0x73, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x42, - 0x6f, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x44, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x56, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2e, 0x48, 0x2d, 0x52, 0x0c, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x2f, 0x48, 0x2e, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x30, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x30, 0x48, 0x2f, 0x52, + 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, + 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x32, 0x54, 0x74, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x18, - 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x31, 0x48, 0x30, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, + 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x32, 0x48, 0x31, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x49, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x18, 0x33, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x33, 0x48, 0x32, 0x52, + 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x34, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x34, 0x48, + 0x33, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, + 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x35, 0x48, 0x34, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x36, 0x48, 0x35, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x37, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x37, 0x48, 0x36, 0x52, + 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x38, 0x48, 0x37, 0x52, 0x0f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x76, 0x6e, 0x69, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x39, 0x48, 0x38, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, + 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x45, 0x78, 0x70, 0x12, 0x56, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x32, 0x42, 0x6f, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x49, 0x20, 0x01, 0x28, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3a, + 0x48, 0x39, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x61, 0x73, 0x56, 0x6c, 0x61, 0x6e, + 0x54, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3b, 0x48, 0x3a, 0x52, 0x0e, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x54, 0x74, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, - 0x65, 0x78, 0x70, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3c, 0x48, 0x3b, 0x52, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, + 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x3d, 0x48, 0x3c, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, + 0x65, 0x78, 0x70, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x45, - 0x78, 0x70, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4b, 0x20, 0x01, 0x28, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x3e, 0x48, 0x3d, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, + 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, 0x3e, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x34, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x18, - 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, 0x6c, 0x12, 0x56, - 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x34, 0x45, 0x78, 0x70, 0x12, 0x56, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, - 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x12, 0x59, - 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x44, 0x73, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x5d, 0x0a, 0x19, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x40, 0x48, 0x3f, 0x52, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, + 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x41, 0x48, 0x40, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, + 0x65, 0x78, 0x70, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x42, 0x48, 0x41, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, + 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x63, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x18, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x54, 0x0a, - 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x54, 0x20, 0x01, 0x28, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x43, 0x48, 0x42, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, - 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x52, 0x0a, 0x13, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x44, 0x48, 0x43, 0x52, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, + 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x5e, 0x0a, - 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x56, 0x20, 0x01, 0x28, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x45, 0x48, 0x44, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x32, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, + 0x65, 0x78, 0x70, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x46, 0x48, 0x45, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, + 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x47, 0x48, 0x46, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, - 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x68, 0x0a, - 0x1f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, - 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, - 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x48, 0x48, 0x47, 0x52, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, + 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1a, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x62, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x70, - 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x4d, 0x0a, 0x10, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x49, 0x48, 0x48, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x33, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, + 0x65, 0x78, 0x70, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x4a, 0x48, 0x49, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, + 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4b, 0x48, 0x4a, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x65, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x4c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4c, 0x48, 0x4b, 0x52, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, + 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x4d, 0x48, 0x4c, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x15, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, + 0x65, 0x78, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x4e, 0x48, 0x4d, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, + 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4f, 0x48, 0x4e, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x64, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x50, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x50, 0x48, 0x4f, 0x52, 0x13, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x51, 0x48, 0x50, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x6e, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x52, 0x48, 0x51, 0x52, 0x18, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x53, 0x48, 0x52, 0x52, 0x11, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, + 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x54, 0x48, 0x53, 0x52, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x55, 0x48, 0x54, 0x52, 0x10, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, + 0x01, 0x12, 0x69, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, + 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, + 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x56, + 0x48, 0x55, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x4e, 0x70, 0x75, 0x4d, + 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x73, 0x0a, 0x1f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, + 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, + 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x42, 0x74, 0x68, 0x4f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x13, 0x66, 0x69, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x57, + 0x48, 0x56, 0x52, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x6d, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, + 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x58, 0x48, 0x57, 0x52, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x58, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x59, 0x48, 0x58, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x74, + 0x68, 0x4f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x41, 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x12, - 0x63, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x18, - 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x69, 0x6e, 0x12, 0x63, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x12, 0x54, 0x0a, 0x14, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x5a, 0x48, 0x59, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x65, 0x74, 0x68, 0x53, + 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1c, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, 0x48, 0x5a, 0x52, 0x18, 0x75, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1c, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, 0x48, 0x5b, 0x52, 0x18, 0x75, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x14, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x5d, 0x48, 0x5c, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x48, 0x5d, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x58, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x5f, 0x48, 0x5e, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, 0x4b, 0x65, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, + 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, 0x4b, - 0x65, 0x79, 0x12, 0x50, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, - 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, - 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x12, 0x52, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, 0x12, 0x56, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x56, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, - 0x12, 0x4b, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x60, 0x48, 0x5f, 0x52, 0x0f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x61, 0x48, 0x60, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x12, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, + 0x70, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x62, 0x48, 0x61, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x58, 0x0a, - 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x63, 0x48, 0x62, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, + 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x48, 0x63, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x52, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x65, 0x48, 0x64, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, - 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x52, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x66, 0x48, 0x65, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x15, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, + 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x67, 0x48, 0x66, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x68, 0x48, 0x67, 0x52, 0x12, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x69, 0x48, 0x68, 0x52, 0x10, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x48, 0x0a, 0x0d, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x6b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x54, 0x63, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x12, 0x5c, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, - 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x6d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, - 0x12, 0x5e, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x6e, 0x20, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6a, 0x48, 0x69, 0x52, + 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6b, 0x48, 0x6a, 0x52, 0x0b, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x17, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6c, 0x48, 0x6b, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x6d, 0x48, 0x6c, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, + 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x19, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6e, 0x48, 0x6d, 0x52, 0x15, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, + 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x6f, 0x48, 0x6e, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x74, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x69, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, - 0x12, 0x5c, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x6f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x5e, - 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x70, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x65, 0x74, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x51, - 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x49, - 0x64, 0x12, 0x53, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, - 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x51, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x73, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x51, 0x0a, 0x12, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, - 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x12, 0x4f, 0x0a, 0x11, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, - 0x70, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x70, 0x48, + 0x6f, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x65, + 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x12, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x4f, 0x0a, - 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x69, 0x70, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x53, - 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, - 0x70, 0x76, 0x36, 0x12, 0x53, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x71, 0x48, 0x70, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, + 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, + 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x72, 0x48, 0x71, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x56, + 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x12, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, + 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x73, 0x48, 0x72, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, + 0x63, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x74, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x74, 0x48, + 0x73, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, + 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, 0x4c, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x65, 0x74, 0x44, 0x73, 0x63, 0x70, 0x12, 0x4a, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x75, 0x48, 0x74, 0x52, 0x0e, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x76, 0x48, 0x75, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, + 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x77, 0x48, 0x76, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, + 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x78, 0x48, 0x77, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, + 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x63, 0x70, + 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x79, 0x48, 0x78, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, + 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, - 0x63, 0x6e, 0x12, 0x58, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, - 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x58, 0x0a, 0x16, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x34, 0x44, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x71, 0x0a, 0x22, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x7d, 0x20, 0x01, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7a, 0x48, 0x79, 0x52, 0x0c, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x45, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, + 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7b, 0x48, 0x7a, 0x52, 0x12, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x63, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x21, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x7e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5c, 0x0a, 0x18, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, - 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x1d, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x81, 0x01, 0x20, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7c, 0x48, 0x7b, + 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x34, 0x44, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x7c, 0x0a, 0x22, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x5b, - 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x6f, 0x5f, - 0x6e, 0x6f, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7d, 0x48, + 0x7c, 0x52, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x21, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x44, 0x6f, 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x12, 0x5b, 0x0a, 0x17, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x6c, 0x44, 0x74, - 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x12, 0x5c, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, - 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x72, 0x0a, 0x23, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, - 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, - 0x6c, 0x54, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x6b, 0x0a, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, - 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, - 0x6e, 0x74, 0x12, 0x69, 0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, - 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x73, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7e, 0x48, 0x7d, 0x52, 0x1e, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x67, 0x0a, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x7f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7f, 0x48, + 0x7e, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x6c, 0x4d, + 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x73, 0x0a, 0x1d, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x80, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x80, 0x01, 0x48, + 0x7f, 0x52, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x68, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x81, 0x01, 0x48, 0x80, + 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x17, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6c, + 0x65, 0x61, 0x72, 0x6e, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x49, 0x0a, - 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x5f, 0x6e, 0x61, 0x74, 0x18, 0x89, + 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x82, 0x01, 0x48, 0x81, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x6f, 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, + 0x6c, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x4e, 0x61, 0x74, 0x12, 0x51, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x18, 0x8a, 0x01, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0x83, 0x01, 0x48, 0x82, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x6c, + 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, + 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x74, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x84, 0x01, 0x48, 0x83, 0x01, 0x52, + 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x1e, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x85, 0x01, 0x48, 0x84, + 0x01, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x44, 0x72, 0x6f, + 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x7f, 0x0a, 0x23, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, + 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x86, 0x01, 0x48, 0x85, 0x01, 0x52, 0x1e, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x54, 0x61, 0x69, 0x6c, 0x44, 0x72, + 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x78, 0x0a, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x87, 0x01, 0x48, 0x86, 0x01, 0x52, 0x1b, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x1e, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x12, 0x51, 0x0a, 0x11, 0x61, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x88, + 0x01, 0x48, 0x87, 0x01, 0x52, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x74, 0x65, 0x6c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, + 0x5f, 0x6e, 0x61, 0x74, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, 0x01, 0x48, 0x88, 0x01, 0x52, 0x0b, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x4e, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x11, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x8a, 0x01, 0x48, 0x89, 0x01, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x5a, - 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x5c, 0x0a, 0x17, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x8b, 0x01, 0x48, 0x8a, 0x01, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x16, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x65, 0x0a, 0x1c, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x61, - 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x12, - 0x58, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, - 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6d, - 0x49, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, - 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x53, 0x0a, - 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, - 0x6c, 0x6f, 0x77, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, - 0x6f, 0x77, 0x12, 0x59, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, - 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x92, 0x01, 0x20, + 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8c, 0x01, 0x48, 0x8b, 0x01, 0x52, 0x13, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, + 0x77, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, + 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0x8d, 0x01, 0x48, 0x8c, 0x01, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x72, 0x0a, 0x1c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x18, + 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0x8e, 0x01, 0x48, 0x8d, 0x01, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, + 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x12, 0x5b, 0x0a, - 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6d, 0x70, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8f, 0x01, + 0x48, 0x8e, 0x01, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6d, 0x49, 0x6e, + 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x1a, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x45, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0e, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x76, 0x72, 0x66, 0x18, 0x94, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x56, 0x72, 0x66, 0x12, 0x64, 0x0a, 0x1b, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x86, 0x01, - 0x0a, 0x11, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x53, 0x0a, 0x14, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, - 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3b, - 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x11, 0x41, - 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x90, 0x01, 0x48, 0x8f, 0x01, 0x52, + 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x12, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, 0x6c, 0x6f, + 0x77, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x91, 0x01, 0x48, 0x90, 0x01, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, + 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x67, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x10, 0x41, 0x63, - 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, - 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x20, 0x0a, 0x0a, 0x55, 0x69, 0x6e, 0x74, 0x36, - 0x34, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x04, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x8a, 0x26, 0x0a, 0x11, 0x41, 0x63, - 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x3c, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x53, 0x74, - 0x61, 0x67, 0x65, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x63, 0x0a, - 0x18, 0x61, 0x63, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x61, 0x63, - 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x61, 0x63, 0x6c, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x92, 0x01, 0x48, 0x91, 0x01, 0x52, 0x12, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, + 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x93, 0x01, 0x48, 0x92, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x74, 0x45, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x58, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x76, 0x72, + 0x66, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x94, 0x01, 0x48, 0x93, 0x01, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x56, 0x72, 0x66, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1b, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x95, 0x01, 0x48, 0x94, 0x01, 0x52, + 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, + 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, + 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x30, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, + 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x63, 0x66, 0x69, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x70, 0x72, 0x69, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, + 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x74, 0x63, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, + 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, + 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x42, 0x1a, 0x0a, + 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, + 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, + 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, + 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, + 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x34, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, + 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x68, 0x69, 0x74, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, + 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, + 0x6f, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x63, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, + 0x69, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x1c, + 0x0a, 0x1a, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, + 0x64, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, + 0x61, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x63, 0x6e, 0x42, 0x19, 0x0a, 0x17, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x20, 0x0a, 0x1e, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, + 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x6f, 0x70, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, + 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x21, + 0x0a, 0x1f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x64, + 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x26, 0x0a, 0x24, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, + 0x6c, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x42, 0x21, 0x0a, + 0x1f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x74, 0x65, 0x6c, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x5f, 0x6e, + 0x61, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, + 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x64, 0x72, 0x6f, 0x70, 0x73, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x61, 0x69, 0x6c, + 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, + 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x76, 0x72, 0x66, + 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x22, 0xaf, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, - 0x61, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, - 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, - 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x22, 0xf1, 0x3f, 0x0a, 0x11, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x65, 0x0a, 0x18, 0x61, 0x63, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, + 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x52, 0x14, 0x61, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x14, 0x61, 0x63, 0x6c, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x52, 0x11, 0x61, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x02, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, + 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x03, 0x52, 0x11, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x04, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, + 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x08, 0x48, 0x05, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, + 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, - 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, - 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, - 0x64, 0x30, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, - 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x30, 0x12, 0x24, 0x0a, 0x0e, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, - 0x36, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, - 0x64, 0x33, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x30, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x06, 0x52, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, + 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0a, 0x48, 0x07, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, + 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x08, 0x52, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x33, 0x88, + 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x09, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x32, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0d, 0x48, 0x0a, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, + 0x76, 0x36, 0x57, 0x6f, 0x72, 0x64, 0x31, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, + 0x64, 0x30, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0b, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, 0x6f, - 0x72, 0x64, 0x32, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x57, - 0x6f, 0x72, 0x64, 0x31, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, - 0x57, 0x6f, 0x72, 0x64, 0x30, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, - 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, - 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x22, 0x0a, 0x0d, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x12, - 0x20, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x49, - 0x70, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, - 0x74, 0x49, 0x70, 0x12, 0x2b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, - 0x12, 0x2b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x24, 0x0a, - 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, - 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, - 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x66, + 0x72, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0c, 0x52, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x76, 0x36, 0x88, + 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0d, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0e, 0x52, 0x0b, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x53, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x0f, 0x52, 0x0b, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x10, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x11, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, + 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x12, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, + 0x48, 0x13, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x44, 0x73, + 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x17, 0x48, 0x14, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x50, + 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x15, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, + 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x16, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x17, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1b, 0x48, 0x18, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, - 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, - 0x72, 0x69, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, - 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x2f, 0x0a, 0x14, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, - 0x63, 0x66, 0x69, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x2d, 0x0a, 0x13, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, - 0x70, 0x72, 0x69, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x2f, 0x0a, 0x14, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x63, 0x66, 0x69, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x29, 0x0a, - 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, - 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x24, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, - 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x17, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x28, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x73, 0x63, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x45, 0x63, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, - 0x74, 0x6c, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, - 0x74, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x18, - 0x2e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, 0x12, - 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, - 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, - 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x29, 0x0a, - 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, - 0x63, 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x32, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, - 0x72, 0x61, 0x67, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x33, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, - 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x74, 0x63, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, - 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x36, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, - 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x39, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x12, - 0x2b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x48, 0x61, 0x73, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x10, + 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1c, 0x48, 0x19, + 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1d, 0x48, 0x1a, 0x52, 0x11, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, 0x1b, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x75, + 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, + 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1f, + 0x48, 0x1c, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, + 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x20, 0x48, 0x1d, 0x52, 0x11, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x21, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x21, 0x48, 0x1e, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, + 0x48, 0x1f, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, + 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x23, 0x48, 0x20, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4c, + 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x17, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x24, 0x48, 0x21, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, + 0x4c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x17, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x25, 0x48, 0x22, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, + 0x72, 0x4c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x48, 0x23, 0x52, + 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x27, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x27, 0x48, 0x24, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x28, 0x48, 0x25, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x29, + 0x48, 0x26, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x17, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x2a, 0x48, 0x27, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x2b, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, 0x28, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x2c, 0x48, 0x29, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x63, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x2d, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2d, 0x48, 0x2a, 0x52, 0x08, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x2e, 0x48, 0x2b, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2f, 0x48, 0x2c, + 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x30, + 0x48, 0x2d, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, + 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x31, 0x48, 0x2e, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, + 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, + 0x32, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x32, 0x48, 0x2f, 0x52, 0x0e, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, 0x61, 0x67, 0x88, 0x01, 0x01, + 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x33, 0x48, 0x30, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x70, + 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x34, 0x48, 0x31, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, + 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x35, 0x48, 0x32, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x36, 0x48, 0x33, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x37, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x37, 0x48, 0x34, 0x52, 0x0f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x38, 0x48, 0x35, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x39, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x39, 0x48, 0x36, 0x52, 0x0f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x76, 0x6e, 0x69, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3a, 0x48, + 0x37, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, + 0x69, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, + 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3b, 0x48, 0x38, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x61, 0x73, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, - 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, - 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, 0x6c, - 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, - 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x40, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, + 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3c, 0x48, 0x39, 0x52, 0x0e, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x3d, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3d, 0x48, 0x3a, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x3e, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3e, 0x48, 0x3b, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x54, 0x74, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, 0x3c, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x40, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x40, 0x48, 0x3d, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, + 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x41, 0x48, 0x3e, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x42, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x42, 0x48, 0x3f, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x42, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x54, 0x74, 0x6c, - 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x31, - 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x44, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x31, 0x42, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x45, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, - 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x46, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x54, 0x74, 0x6c, - 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x47, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, - 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x48, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x32, 0x42, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x49, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, - 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x54, 0x74, 0x6c, - 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, - 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x43, 0x48, 0x40, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x31, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, + 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x44, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x44, + 0x48, 0x41, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x31, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x45, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x45, + 0x48, 0x42, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x32, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, + 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x46, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x46, + 0x48, 0x43, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x32, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, + 0x78, 0x70, 0x18, 0x47, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x47, 0x48, 0x44, + 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x32, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x62, 0x6f, 0x73, + 0x18, 0x48, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x48, 0x48, 0x45, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x42, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x49, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x49, 0x48, 0x46, 0x52, 0x14, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, + 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4a, 0x48, 0x47, 0x52, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x54, + 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4b, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4b, 0x48, 0x48, 0x52, 0x12, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x45, 0x78, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x4c, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, - 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, 0x6c, - 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, - 0x45, 0x78, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x50, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x12, 0x34, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x18, 0x51, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, - 0x62, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x19, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x54, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, - 0x55, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, 0x6e, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, - 0x56, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x57, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x46, 0x64, 0x62, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, - 0x69, 0x74, 0x12, 0x43, 0x0a, 0x1f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x3d, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x59, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, - 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x74, 0x68, 0x4f, 0x70, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, - 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x41, 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, - 0x12, 0x3e, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4c, 0x48, 0x49, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x42, 0x6f, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x4d, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4d, 0x48, 0x4a, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4e, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4e, 0x48, 0x4b, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x54, 0x74, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4f, 0x48, 0x4c, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x45, 0x78, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x50, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x50, 0x48, 0x4d, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, + 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x51, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x51, 0x48, 0x4e, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, + 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x43, + 0x0a, 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x52, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x52, 0x48, 0x4f, 0x52, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x18, 0x53, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x53, 0x48, + 0x50, 0x52, 0x18, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x54, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x54, 0x48, 0x51, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x18, 0x55, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x55, 0x48, 0x52, + 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x6c, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x56, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x56, 0x48, 0x53, 0x52, 0x10, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x44, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, + 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x57, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x57, 0x48, 0x54, 0x52, 0x15, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x46, 0x64, 0x62, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, + 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x1f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x55, 0x52, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, + 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x59, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x59, 0x48, 0x56, 0x52, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x4e, 0x70, 0x75, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x73, 0x74, 0x48, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, 0x6f, 0x70, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5a, + 0x48, 0x57, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x74, 0x68, 0x4f, 0x70, 0x63, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, + 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x18, 0x5b, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, 0x48, 0x58, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x41, 0x65, 0x74, 0x68, 0x53, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x49, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, - 0x18, 0x5c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, - 0x12, 0x3e, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, - 0x18, 0x5d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, - 0x12, 0x58, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, - 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, - 0x22, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x60, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, - 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, - 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x61, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x62, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x6c, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x61, 0x63, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x64, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x6c, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0xbd, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x6c, 0x54, 0x61, + 0x18, 0x5c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, 0x48, 0x59, 0x52, 0x18, + 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1c, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x5d, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5d, 0x48, 0x5a, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x5e, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x52, + 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x5f, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x5b, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x60, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x60, 0x48, + 0x5c, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x36, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x61, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x61, 0x48, 0x5d, 0x52, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x6d, 0x49, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x62, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x62, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, + 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x6c, 0x5f, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x63, 0x48, 0x5e, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x48, 0x5f, + 0x52, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x6c, + 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, + 0x64, 0x33, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x32, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, + 0x6f, 0x72, 0x64, 0x31, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x30, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, + 0x63, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x6d, 0x61, 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x70, 0x72, 0x69, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x6c, + 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x65, 0x63, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x74, 0x74, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x6f, + 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, + 0x63, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x69, 0x70, 0x5f, + 0x66, 0x72, 0x61, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x63, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, + 0x67, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x30, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x30, 0x5f, 0x62, 0x6f, 0x73, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x31, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x65, 0x78, 0x70, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x74, 0x74, 0x6c, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, + 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, + 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x33, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, + 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x65, 0x78, 0x70, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x34, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x1d, 0x0a, + 0x1b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6e, 0x70, 0x75, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x42, 0x22, 0x0a, 0x20, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, + 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, + 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x6e, 0x70, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x69, + 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x74, 0x68, 0x5f, + 0x6f, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x61, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x79, 0x6e, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x42, + 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0xcf, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x65, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, - 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, - 0x63, 0x0a, 0x18, 0x61, 0x63, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, - 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, - 0x61, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1c, 0x41, 0x63, 0x6c, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x63, 0x6c, 0x5f, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x6c, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x22, 0xfa, 0x0b, 0x0a, 0x13, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x68, 0x77, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, - 0x75, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x68, 0x77, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x63, - 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, - 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0c, - 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x74, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x74, 0x63, 0x12, 0x1b, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x61, + 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x18, 0x61, 0x63, + 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x14, 0x61, 0x63, 0x6c, + 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x1c, 0x41, 0x63, 0x6c, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x12, 0x61, 0x63, 0x6c, + 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x61, + 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x0a, 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xbe, 0x14, 0x0a, 0x13, 0x42, + 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x68, 0x77, 0x5f, 0x6c, + 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x77, 0x4c, 0x6f, 0x6f, + 0x6b, 0x75, 0x70, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0e, 0x76, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x76, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, + 0x04, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x13, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x06, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, - 0x61, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, - 0x19, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x61, 0x0a, 0x16, 0x62, 0x66, 0x64, 0x5f, 0x65, 0x6e, - 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, - 0x66, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x14, 0x62, 0x66, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x68, - 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x6f, 0x73, - 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, - 0x74, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x49, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, - 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x12, 0x31, 0x0a, 0x15, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x53, 0x72, 0x63, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x31, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x72, 0x63, - 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x73, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x65, 0x63, 0x68, 0x6f, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x18, - 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x62, 0x69, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, - 0x62, 0x69, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x54, 0x78, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x69, - 0x6e, 0x5f, 0x72, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x52, - 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, - 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, - 0x74, 0x78, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x4d, 0x69, 0x6e, 0x54, 0x78, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x78, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x52, 0x78, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6f, 0x66, 0x66, - 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x67, 0x6f, - 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0c, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x54, 0x78, 0x12, 0x23, 0x0a, - 0x0d, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x78, 0x18, 0x25, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x52, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x67, - 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x61, - 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x67, - 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x69, - 0x61, 0x67, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, - 0x81, 0x06, 0x0a, 0x0f, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, + 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, + 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, + 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, + 0x16, 0x62, 0x66, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, - 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, - 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x23, - 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x79, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, - 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x1e, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, - 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, - 0x0a, 0x1b, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x7d, 0x0a, - 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, + 0x48, 0x0d, 0x52, 0x14, 0x62, 0x66, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x69, + 0x70, 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, + 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x74, + 0x6f, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, + 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x03, 0x74, + 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x74, 0x6f, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x14, 0x48, 0x13, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x09, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, + 0x48, 0x15, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x72, 0x63, 0x49, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x16, + 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x17, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x64, 0x73, + 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x18, 0x52, 0x0d, 0x64, 0x73, 0x74, + 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0b, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x19, 0x52, 0x0a, 0x65, 0x63, 0x68, 0x6f, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x08, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x68, 0x6f, 0x70, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x1b, 0x48, 0x1a, 0x52, 0x08, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x04, 0x63, 0x62, 0x69, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x1c, 0x48, 0x1b, 0x52, 0x04, 0x63, 0x62, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x1d, 0x48, 0x1c, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x54, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, 0x1d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, + 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1f, 0x48, 0x1e, 0x52, + 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x20, 0x48, 0x1f, 0x52, 0x0b, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x78, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x21, 0x48, 0x20, 0x52, 0x0b, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, 0x48, 0x21, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, + 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x66, + 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x23, 0x48, + 0x22, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x74, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x24, 0x48, 0x23, + 0x52, 0x0c, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x54, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x72, 0x78, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x25, 0x48, 0x24, + 0x52, 0x0c, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x67, 0x18, + 0x26, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x48, 0x25, 0x52, 0x09, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x67, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x27, 0x48, 0x26, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x44, 0x69, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x28, 0x48, 0x27, 0x52, 0x10, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x77, 0x5f, + 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, + 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x64, + 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, + 0x63, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, + 0x62, 0x66, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x68, 0x64, 0x72, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x63, 0x68, + 0x6f, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x68, 0x6f, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x62, 0x69, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x69, + 0x6e, 0x5f, 0x72, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x69, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, + 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x72, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x64, 0x69, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x64, 0x69, 0x61, 0x67, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0xcb, 0x08, 0x0a, 0x0f, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x13, 0x6d, 0x61, 0x78, + 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x84, 0x01, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, + 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x88, 0x01, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x1d, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x6e, 0x0a, 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, - 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, - 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x32, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, - 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, - 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x22, 0xd8, 0x05, 0x0a, 0x13, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, - 0x4f, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, - 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x69, 0x66, - 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x69, 0x66, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x11, 0x66, 0x64, - 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, - 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, - 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, - 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x2a, - 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x25, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, - 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xd6, - 0x02, 0x0a, 0x13, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, - 0x6c, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, - 0x03, 0x74, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, + 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x4c, 0x0a, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x1a, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, + 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, + 0x13, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, + 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x25, 0x0a, 0x23, + 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, 0x1e, + 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, + 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xfa, 0x08, 0x0a, 0x13, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0c, 0x74, + 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0b, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, + 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x72, + 0x69, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x05, 0x48, 0x04, 0x52, 0x05, 0x72, 0x69, 0x66, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, + 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, + 0x11, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x64, 0x62, 0x4c, 0x65, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, + 0x48, 0x07, 0x52, 0x0f, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, + 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x13, 0x6d, + 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x89, 0x01, 0x0a, 0x2a, 0x66, 0x64, 0x62, 0x5f, 0x6c, 0x65, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x76, 0x69, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x03, 0x74, - 0x61, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x78, 0x6f, 0x66, 0x66, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x26, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xe7, 0x02, 0x0a, 0x16, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x58, 0x0a, - 0x0e, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x54, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x54, 0x68, 0x12, 0x17, 0x0a, - 0x07, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x78, 0x6f, 0x66, 0x66, 0x54, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x78, 0x6f, 0x6e, 0x5f, 0x74, 0x68, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x78, 0x6f, 0x6e, 0x54, 0x68, 0x12, 0x22, 0x0a, - 0x0d, 0x78, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x78, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x54, - 0x68, 0x22, 0x4a, 0x0a, 0x10, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, - 0x10, 0x49, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x11, 0x4f, 0x75, - 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x38, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xed, 0x02, 0x0a, 0x15, 0x44, 0x65, - 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x25, 0x66, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0a, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x11, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, + 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x10, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x69, + 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x0e, 0x69, 0x73, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x69, 0x66, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x64, 0x62, + 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x2d, 0x0a, 0x2b, 0x5f, 0x66, 0x64, 0x62, + 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, + 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xd2, 0x03, 0x0a, 0x13, 0x42, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, + 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x60, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4e, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x64, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x56, 0x0a, 0x13, 0x69, 0x6e, 0x5f, 0x64, 0x72, 0x6f, - 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x44, 0x72, - 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x69, 0x6e, - 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x59, - 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x85, 0x04, 0x0a, 0x0d, 0x44, 0x74, - 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x69, - 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, - 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x73, - 0x74, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x2e, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x33, 0x0a, - 0x16, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x65, 0x61, - 0x72, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x66, - 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x79, 0x63, - 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, + 0x0d, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x52, 0x03, 0x74, 0x61, 0x6d, 0x12, 0x26, 0x0a, 0x09, 0x78, 0x6f, 0x66, + 0x66, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x04, 0x52, 0x08, 0x78, 0x6f, 0x66, 0x66, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x05, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x78, 0x6f, + 0x66, 0x66, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x72, 0x65, 0x64, + 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x22, 0xcb, 0x04, 0x0a, 0x16, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x06, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, + 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, + 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x54, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x78, 0x6f, 0x66, 0x66, + 0x5f, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x05, 0x52, 0x06, 0x78, 0x6f, 0x66, 0x66, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, + 0x78, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x06, 0x52, 0x05, 0x78, 0x6f, 0x6e, 0x54, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x0d, 0x78, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0b, 0x78, + 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x54, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x68, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x78, 0x6f, 0x66, 0x66, 0x5f, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x78, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x78, 0x6f, 0x6e, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x68, 0x22, 0x5e, 0x0a, 0x10, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x41, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, - 0x73, 0x69, 0x6e, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0b, - 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x4c, 0x34, 0x44, 0x73, 0x63, - 0x70, 0x22, 0x94, 0x01, 0x0a, 0x12, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, - 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x73, 0x63, - 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, - 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbf, 0x02, 0x0a, 0x17, 0x44, 0x74, 0x65, - 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x78, - 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x18, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2c, 0x0a, 0x12, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x44, - 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x65, 0x70, - 0x74, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x6c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x74, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x22, 0x1f, 0x0a, 0x09, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xe8, 0x01, 0x0a, 0x1a, 0x44, 0x74, - 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, - 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x12, - 0x40, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x22, 0xe1, 0x02, 0x0a, 0x11, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb5, 0x03, 0x0a, 0x15, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x0b, + 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x13, 0x69, 0x6e, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x44, + 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x52, + 0x10, 0x69, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x5b, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x52, 0x11, 0x6f, 0x75, 0x74, + 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x22, 0x8e, 0x06, 0x0a, 0x0d, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, + 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x63, + 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x63, 0x61, + 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x64, + 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, + 0x10, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x11, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x79, 0x63, 0x6c, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, + 0x13, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, + 0x79, 0x63, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x12, 0x6c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x4e, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, + 0x08, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x4c, 0x34, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x6e, 0x74, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, + 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, + 0x63, 0x70, 0x22, 0xe0, 0x01, 0x0a, 0x12, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, + 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0d, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x64, 0x73, + 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x94, 0x04, 0x0a, 0x17, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x2d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x12, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x72, 0x74, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x19, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, + 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x16, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xd8, 0x02, 0x0a, + 0x18, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x08, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x32, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x0e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x62, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0b, 0x62, 0x72, 0x65, 0x61, 0x63, + 0x68, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x74, 0x61, 0x69, + 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x88, 0x01, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x61, + 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x22, 0xbc, 0x02, 0x0a, 0x1a, 0x44, 0x74, 0x65, 0x6c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x02, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, + 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x01, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x05, 0x48, 0x03, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xb8, 0x04, 0x0a, 0x11, 0x46, 0x64, 0x62, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, - 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, - 0x24, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, - 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x49, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x63, 0x5f, - 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x4d, 0x61, 0x63, 0x4d, 0x6f, 0x76, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x46, 0x64, 0x62, - 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x24, - 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x62, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x04, 0x62, 0x76, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, - 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, - 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, - 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x69, 0x70, 0x76, - 0x34, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x61, - 0x73, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x13, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, - 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x68, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x6e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0e, 0x75, 0x64, 0x66, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x75, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x61, 0x0a, 0x1c, 0x66, 0x69, 0x6e, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x69, 0x6e, - 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x18, 0x66, 0x69, 0x6e, - 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9d, 0x02, 0x0a, 0x0f, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, - 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x06, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, + 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x06, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6d, + 0x6f, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, + 0x07, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x63, 0x4d, 0x6f, 0x76, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6d, 0x6f, 0x76, + 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x11, 0x46, 0x64, 0x62, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x05, 0x62, 0x76, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x04, 0x62, 0x76, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x76, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x1d, 0x46, 0x69, 0x6e, + 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x5d, 0x0a, 0x11, 0x6e, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, + 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x08, 0x69, 0x70, + 0x76, 0x36, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x68, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x16, 0x6e, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, 0x13, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, + 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, + 0x75, 0x64, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0c, 0x75, 0x64, 0x66, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x1c, 0x66, 0x69, 0x6e, 0x65, + 0x5f, 0x67, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x52, 0x18, 0x66, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, + 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xc7, + 0x03, 0x0a, 0x0f, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x05, 0x6f, 0x62, + 0x6a, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, - 0x54, 0x61, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x6d, 0x63, 0x67, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x63, 0x67, 0x72, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x03, 0x0a, 0x15, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x24, 0x0a, 0x0e, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, - 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x61, 0x67, 0x12, 0x49, 0x0a, 0x0e, 0x68, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x5f, 0x74, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x4c, 0x61, - 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x38, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, + 0x74, 0x69, 0x66, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, + 0x48, 0x05, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x3b, + 0x0a, 0x14, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x63, 0x67, 0x72, + 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x06, 0x52, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, + 0x63, 0x67, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x62, 0x6a, 0x5f, 0x69, 0x64, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x63, + 0x67, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa5, 0x05, 0x0a, 0x15, 0x48, 0x6f, 0x73, + 0x74, 0x69, 0x66, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x0e, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x5f, 0x74, 0x72, 0x61, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x61, 0x67, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, + 0x0e, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x5f, 0x74, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, + 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x4c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0c, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x63, - 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x7a, 0x65, - 0x72, 0x6f, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x78, 0x22, 0xfc, 0x01, 0x0a, 0x19, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x74, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x66, 0x22, 0x9f, 0x03, 0x0a, 0x13, 0x48, 0x6f, 0x73, 0x74, - 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x42, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, - 0x66, 0x54, 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x74, 0x72, 0x61, 0x70, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, - 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x10, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, + 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, + 0x0a, 0x7a, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x78, 0x88, 0x01, 0x01, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, + 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, + 0x61, 0x67, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x5f, 0x74, 0x78, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x5f, 0x6c, 0x61, 0x67, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x78, + 0x22, 0xf0, 0x02, 0x0a, 0x19, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x4a, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6f, 0x62, + 0x6a, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, + 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x06, 0x74, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x60, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x66, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x06, 0x68, 0x6f, 0x73, + 0x74, 0x49, 0x66, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x62, 0x6a, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, + 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x68, 0x6f, 0x73, 0x74, + 0x5f, 0x69, 0x66, 0x22, 0xec, 0x03, 0x0a, 0x13, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, + 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x74, + 0x72, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x74, + 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, + 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x48, 0x0a, 0x0e, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x74, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x6d, + 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x52, 0x0d, 0x6d, 0x69, 0x72, 0x72, 0x6f, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x18, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x07, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x22, 0xf5, 0x01, 0x0a, 0x1e, 0x48, 0x6f, 0x73, 0x74, + 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0d, 0x6d, 0x69, 0x72, - 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x6b, 0x0a, 0x18, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x22, 0xaa, 0x01, 0x0a, 0x1e, 0x48, 0x6f, 0x73, 0x74, 0x69, - 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x54, 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x61, 0x70, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x22, 0xa5, 0x01, 0x0a, 0x1d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x33, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x03, 0x74, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb9, 0x04, 0x0a, 0x13, - 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x6f, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x50, 0x6f, - 0x70, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x74, - 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, - 0x12, 0x43, 0x0a, 0x08, 0x70, 0x73, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x73, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x70, 0x73, - 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x12, 0x2a, 0x0a, 0x12, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, - 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x15, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, - 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, - 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x6f, - 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x70, - 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x6f, 0x70, - 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x50, 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x70, 0x6f, - 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x12, 0x49, 0x70, 0x6d, 0x63, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x48, - 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x12, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x6d, - 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69, 0x70, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x10, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0e, 0x69, 0x70, 0x6d, 0x63, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x64, 0x0a, 0x18, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x22, - 0x0a, 0x0d, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x70, 0x6d, 0x63, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x0f, 0x49, 0x70, 0x73, 0x65, - 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, + 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, + 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x74, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, + 0xcf, 0x01, 0x0a, 0x1d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x30, 0x0a, 0x0e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x0d, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x03, 0x74, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x03, 0x74, 0x61, 0x6d, 0x12, 0x1f, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x02, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0xef, 0x06, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, + 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x50, 0x6f, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x52, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x22, 0x83, 0x09, 0x0a, 0x0e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x1e, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, - 0x74, 0x65, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x24, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x75, 0x74, - 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x75, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x59, 0x0a, 0x2a, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x25, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x6f, - 0x72, 0x65, 0x41, 0x6e, 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x64, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x12, 0x44, 0x0a, 0x1f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, - 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x6e, 0x5f, 0x33, 0x32, 0x62, + 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x03, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x08, 0x70, 0x73, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, + 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x73, 0x63, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x07, 0x70, 0x73, 0x63, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x05, 0x71, 0x6f, 0x73, 0x54, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x12, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0e, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, + 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, + 0x48, 0x07, 0x52, 0x11, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0c, 0x70, 0x6f, 0x70, 0x5f, + 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x50, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x09, 0x48, 0x08, 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0c, 0x70, 0x6f, 0x70, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x51, 0x6f, + 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0a, 0x70, + 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, + 0x66, 0x5f, 0x70, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x73, + 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, + 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, + 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, + 0x61, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x70, 0x5f, 0x71, 0x6f, 0x73, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x22, 0x80, 0x02, 0x0a, 0x12, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x0a, 0x72, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x12, 0x49, 0x70, 0x6d, 0x63, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x0a, + 0x11, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x0f, 0x69, 0x70, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0e, 0x69, 0x70, 0x6d, 0x63, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x18, 0x49, + 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x0d, 0x69, 0x70, 0x6d, 0x63, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x69, 0x70, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x6d, 0x63, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, + 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x90, 0x0e, 0x0a, + 0x0e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x4d, 0x0a, 0x1e, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x1a, 0x74, 0x65, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x59, + 0x0a, 0x24, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x5f, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, + 0x6f, 0x64, 0x65, 0x43, 0x75, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x2a, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x25, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x6e, 0x64, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x19, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x16, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x64, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x1f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x73, 0x6e, 0x5f, 0x33, 0x32, 0x62, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x10, 0x73, 0x6e, 0x33, 0x32, 0x62, 0x69, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x73, 0x6e, 0x5f, 0x36, 0x34, 0x62, 0x69, - 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x11, 0x65, 0x73, 0x6e, 0x36, 0x34, 0x62, 0x69, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, - 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, - 0x6d, 0x74, 0x75, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x53, 0x69, 0x64, 0x65, 0x4d, 0x74, 0x75, 0x12, 0x2e, 0x0a, 0x13, 0x77, 0x61, 0x72, 0x6d, - 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x53, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, - 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, - 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x61, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x63, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, - 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, - 0x67, 0x54, 0x70, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x73, - 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, - 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6f, 0x63, 0x74, 0x65, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, - 0x61, 0x72, 0x6b, 0x12, 0x39, 0x0a, 0x19, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x10, 0x73, 0x6e, 0x33, 0x32, + 0x62, 0x69, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x39, 0x0a, 0x13, 0x65, 0x73, 0x6e, 0x5f, 0x36, 0x34, 0x62, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x06, 0x52, 0x11, 0x65, 0x73, 0x6e, 0x36, 0x34, 0x62, 0x69, 0x74, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x15, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x08, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x53, 0x69, 0x64, 0x65, 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x77, + 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, + 0x52, 0x11, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, + 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x09, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, + 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, + 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x09, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0b, 0x52, 0x08, 0x63, 0x74, 0x61, 0x67, + 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, + 0x74, 0x70, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, + 0x48, 0x0c, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, + 0x67, 0x73, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x6f, + 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, + 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0e, 0x52, 0x17, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x48, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x19, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x4c, 0x6f, 0x77, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x3f, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x2c, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x73, - 0x65, 0x63, 0x5f, 0x73, 0x61, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x12, 0x3a, 0x0a, - 0x07, 0x73, 0x61, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x06, 0x73, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xb3, 0x02, 0x0a, 0x12, 0x49, 0x70, - 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x74, 0x61, - 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x63, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, - 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x49, - 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x76, 0x72, 0x66, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x76, 0x72, 0x66, 0x46, 0x72, 0x6f, 0x6d, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x5e, 0x0a, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x22, - 0xe2, 0x07, 0x0a, 0x10, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0f, 0x52, 0x16, + 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x77, 0x57, 0x61, 0x74, + 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x70, 0x73, 0x65, 0x63, 0x49, 0x64, 0x12, - 0x5c, 0x0a, 0x12, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x10, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x11, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x07, 0x73, 0x61, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x14, 0x52, 0x06, 0x73, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x21, 0x0a, + 0x1f, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, + 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x5f, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x2d, 0x0a, 0x2b, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, + 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, + 0x6e, 0x5f, 0x33, 0x32, 0x62, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x73, 0x6e, 0x5f, 0x36, 0x34, 0x62, 0x69, 0x74, 0x5f, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, + 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x74, 0x61, 0x67, + 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, + 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x67, + 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, + 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, + 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x22, + 0xee, 0x03, 0x0a, 0x12, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x63, 0x74, + 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x0c, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1b, 0x76, 0x72, 0x66, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, + 0x52, 0x17, 0x76, 0x72, 0x66, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, + 0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x15, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x4f, 0x63, 0x74, 0x65, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x6f, 0x63, 0x74, - 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, - 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x53, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x61, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x61, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x49, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, + 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x76, 0x72, 0x66, 0x5f, 0x66, + 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x22, 0xa3, 0x0c, 0x0a, 0x10, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x69, + 0x70, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x24, 0x0a, 0x08, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x07, 0x69, 0x70, 0x73, 0x65, + 0x63, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x12, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, + 0x53, 0x61, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x10, 0x6f, 0x63, 0x74, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x35, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x61, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, + 0x52, 0x07, 0x73, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, + 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x52, 0x0d, 0x69, 0x70, 0x73, + 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x09, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x5f, 0x73, 0x70, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x07, 0x48, 0x05, 0x52, 0x08, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x70, 0x69, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x73, 0x6e, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x08, 0x48, 0x06, 0x52, 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x45, 0x73, 0x6e, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x69, 0x70, 0x73, 0x65, 0x63, + 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x70, 0x69, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x70, 0x69, 0x12, 0x28, 0x0a, 0x10, - 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x73, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x45, 0x73, 0x6e, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, - 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, - 0x52, 0x0b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x12, 0x1f, 0x0a, - 0x0b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x61, - 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x43, 0x0a, - 0x1e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, - 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x1e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, - 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, + 0x72, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x0b, 0x69, 0x70, 0x73, 0x65, 0x63, + 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4b, + 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x09, 0x52, 0x04, 0x73, 0x61, 0x6c, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x07, + 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x1e, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0b, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x65, 0x72, 0x6d, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, - 0x72, 0x6d, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x2d, 0x0a, 0x13, 0x74, 0x65, 0x72, 0x6d, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x74, 0x65, 0x72, 0x6d, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, - 0x72, 0x6d, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x74, 0x65, 0x72, 0x6d, - 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, 0x65, 0x72, 0x6d, 0x53, 0x72, 0x63, 0x49, 0x70, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, - 0x63, 0x5f, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x72, 0x6d, - 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x65, 0x73, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x45, 0x73, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x45, 0x73, 0x6e, 0x22, 0xaf, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x55, 0x0a, 0x15, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x13, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x78, 0x0a, 0x1d, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x6f, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x10, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x12, 0x4c, 0x32, - 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6c, 0x32, 0x6d, - 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x10, - 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0e, 0x6c, 0x32, 0x6d, 0x63, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x18, 0x4c, 0x32, - 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, - 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x32, - 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x32, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, - 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6c, 0x32, 0x6d, 0x63, - 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, 0x22, 0x8d, 0x03, 0x0a, 0x0c, 0x4c, - 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x20, 0x0a, 0x0c, 0x70, + 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x1e, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0c, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, + 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x74, 0x65, + 0x72, 0x6d, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x09, 0x74, 0x65, 0x72, 0x6d, 0x44, 0x73, 0x74, + 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0e, 0x52, 0x10, 0x74, 0x65, 0x72, 0x6d, + 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2b, 0x0a, 0x0c, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0f, 0x52, 0x0a, 0x74, + 0x65, 0x72, 0x6d, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x12, + 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x10, + 0x52, 0x0f, 0x74, 0x65, 0x72, 0x6d, 0x53, 0x72, 0x63, 0x49, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, + 0x11, 0x52, 0x09, 0x74, 0x65, 0x72, 0x6d, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x12, 0x52, 0x09, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x45, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x13, 0x52, 0x11, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x73, + 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x73, + 0x65, 0x63, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x70, 0x69, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x73, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x63, 0x69, 0x70, + 0x68, 0x65, 0x72, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5f, + 0x6b, 0x65, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x61, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x21, 0x0a, 0x1f, + 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x65, 0x72, 0x6d, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x65, 0x72, + 0x6d, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, + 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x52, 0x13, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0xba, 0x01, 0x0a, 0x1d, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x37, 0x0a, 0x12, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x10, 0x69, 0x73, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x73, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x6f, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0xc2, 0x01, 0x0a, + 0x12, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x22, 0x91, 0x01, 0x0a, 0x12, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x11, 0x6c, 0x32, 0x6d, 0x63, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x32, 0x6d, + 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x10, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, + 0x0e, 0x6c, 0x32, 0x6d, 0x63, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe9, 0x01, 0x0a, 0x18, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x0d, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x0b, 0x6c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0c, 0x6c, 0x32, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x32, 0x6d, 0x63, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x32, + 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, + 0x70, 0x22, 0xef, 0x04, 0x0a, 0x0c, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, 0x08, 0x70, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x09, 0x65, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x32, 0x0a, - 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, - 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, - 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x72, 0x6f, - 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x94, 0x01, 0x0a, 0x12, 0x4c, - 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, - 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x22, 0x55, 0x0a, 0x15, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, - 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, - 0x74, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x20, 0x0a, 0x0a, 0x55, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xd4, 0x0b, 0x0a, 0x0f, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x44, - 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x24, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, - 0x65, 0x43, 0x75, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x12, 0x59, 0x0a, 0x2a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, + 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, + 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, + 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, 0x61, + 0x67, 0x67, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, + 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x05, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x15, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, + 0x67, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, + 0x67, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x06, 0x6c, 0x61, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x0e, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x69, + 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0xf7, 0x10, 0x0a, 0x0f, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x24, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x75, 0x74, 0x5f, + 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x75, + 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x2a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x25, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x6e, 0x64, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, - 0x39, 0x0a, 0x19, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x16, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, - 0x64, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x1f, 0x73, 0x74, - 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6c, - 0x65, 0x61, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x61, 0x64, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x12, 0x38, 0x0a, 0x19, 0x73, 0x63, 0x69, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x63, 0x69, 0x49, 0x6e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x12, 0x6b, 0x0a, 0x1b, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, - 0x75, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, - 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x18, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, - 0x69, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6e, 0x5f, 0x33, 0x32, - 0x62, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, 0x6e, 0x33, 0x32, 0x62, 0x69, 0x74, 0x53, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x78, 0x70, 0x6e, 0x5f, 0x36, 0x34, 0x62, - 0x69, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x78, 0x70, 0x6e, 0x36, 0x34, 0x62, 0x69, 0x74, 0x53, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x63, 0x6d, 0x5f, 0x61, 0x65, 0x73, - 0x31, 0x32, 0x38, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x67, 0x63, 0x6d, 0x41, 0x65, 0x73, 0x31, 0x32, 0x38, 0x53, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x63, 0x6d, 0x5f, 0x61, - 0x65, 0x73, 0x32, 0x35, 0x36, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x67, 0x63, 0x6d, 0x41, 0x65, 0x73, 0x32, 0x35, 0x36, - 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x5b, 0x0a, 0x18, 0x73, 0x65, 0x63, - 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x25, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x41, 0x6e, 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x19, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x16, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x61, 0x64, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x4f, 0x0a, 0x1f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, + 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, + 0x04, 0x52, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x64, + 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x43, 0x0a, 0x19, 0x73, 0x63, 0x69, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x15, 0x73, 0x63, + 0x69, 0x49, 0x6e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x16, - 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x53, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x69, 0x64, 0x65, 0x4d, 0x74, 0x75, 0x12, 0x2e, - 0x0a, 0x13, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x77, 0x61, 0x72, - 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x28, - 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, - 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x74, 0x61, 0x67, - 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x74, 0x61, - 0x67, 0x54, 0x70, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, - 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, 0x70, - 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x50, 0x61, 0x72, - 0x73, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, - 0x5f, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x79, - 0x70, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x51, 0x0a, 0x13, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, - 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, - 0x77, 0x12, 0x3e, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x17, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, - 0x63, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, - 0x61, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x10, 0x6d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0e, - 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x61, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x63, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x06, 0x73, 0x63, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0xa3, 0x02, 0x0a, 0x13, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x10, 0x6d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, - 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x74, 0x61, 0x67, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x61, - 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5e, 0x0a, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, + 0x53, 0x75, 0x69, 0x74, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x52, 0x18, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x12, 0x70, 0x6e, 0x5f, 0x33, 0x32, 0x62, 0x69, + 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x10, 0x70, 0x6e, 0x33, 0x32, 0x62, + 0x69, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x13, 0x78, 0x70, 0x6e, 0x5f, 0x36, 0x34, 0x62, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x09, 0x48, 0x07, 0x52, 0x11, 0x78, 0x70, 0x6e, 0x36, 0x34, 0x62, 0x69, 0x74, 0x53, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x67, 0x63, 0x6d, + 0x5f, 0x61, 0x65, 0x73, 0x31, 0x32, 0x38, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, + 0x12, 0x67, 0x63, 0x6d, 0x41, 0x65, 0x73, 0x31, 0x32, 0x38, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x67, 0x63, 0x6d, 0x5f, 0x61, 0x65, + 0x73, 0x32, 0x35, 0x36, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x09, 0x52, 0x12, 0x67, 0x63, + 0x6d, 0x41, 0x65, 0x73, 0x32, 0x35, 0x36, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x18, 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x52, 0x16, 0x73, 0x65, 0x63, + 0x74, 0x61, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, + 0x64, 0x65, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0d, 0x48, 0x0a, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x69, 0x64, 0x65, + 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, + 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0b, 0x52, 0x11, 0x77, 0x61, 0x72, + 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0f, 0x48, 0x0c, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, + 0x0d, 0x52, 0x08, 0x63, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0e, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, + 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x0f, 0x52, 0x11, 0x6d, 0x61, + 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, - 0x64, 0x65, 0x52, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xf2, 0x02, 0x0a, 0x11, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x51, 0x0a, - 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x13, 0x0a, 0x05, 0x73, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x63, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x02, 0x61, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x61, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x03, 0x73, 0x61, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, - 0x75, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, - 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, - 0x64, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x58, 0x70, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, - 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x73, 0x63, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x73, 0x63, 0x69, 0x22, 0x8d, 0x05, 0x0a, - 0x11, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x51, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, + 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x10, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, + 0x0a, 0x16, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x70, 0x61, 0x73, + 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x14, 0x48, 0x11, 0x52, 0x14, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, + 0x42, 0x79, 0x70, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x15, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x12, 0x52, 0x13, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, + 0x77, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x17, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x52, 0x08, 0x66, + 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x13, 0x52, 0x11, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x14, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x27, 0x0a, 0x25, 0x5f, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, + 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x2d, 0x0a, 0x2b, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x73, 0x63, 0x69, 0x5f, 0x69, 0x6e, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, + 0x61, 0x63, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x6e, 0x5f, 0x33, 0x32, 0x62, 0x69, 0x74, + 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x78, + 0x70, 0x6e, 0x5f, 0x36, 0x34, 0x62, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x67, 0x63, 0x6d, 0x5f, 0x61, 0x65, 0x73, 0x31, 0x32, + 0x38, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x67, 0x63, 0x6d, 0x5f, 0x61, 0x65, 0x73, 0x32, 0x35, 0x36, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, + 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x77, 0x61, 0x72, + 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, + 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x70, 0x68, + 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x22, 0xd3, + 0x01, 0x0a, 0x13, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x52, 0x0c, 0x61, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x63, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x06, 0x73, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb5, 0x03, 0x0a, 0x13, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x10, + 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0b, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x63, 0x74, 0x61, + 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x74, + 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xf6, 0x04, 0x0a, + 0x11, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x12, 0x3b, 0x0a, - 0x1a, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x5f, 0x73, 0x63, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x17, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, - 0x74, 0x53, 0x63, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x53, 0x65, 0x63, 0x74, 0x61, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x13, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, 0x73, 0x63, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x02, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x02, 0x52, 0x02, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x73, + 0x61, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, + 0x52, 0x03, 0x73, 0x61, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x04, + 0x73, 0x61, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x05, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, + 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x06, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, + 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x58, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x11, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x73, + 0x63, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, + 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x73, 0x63, 0x69, 0x88, 0x01, 0x01, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x5f, 0x69, 0x64, 0x42, 0x05, + 0x0a, 0x03, 0x5f, 0x61, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x61, 0x6b, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x61, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, + 0x6b, 0x65, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x64, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x70, 0x6e, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x5f, 0x73, 0x73, 0x63, 0x69, 0x22, 0xd4, 0x07, 0x0a, 0x11, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x10, 0x6d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0a, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x53, 0x63, 0x69, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x69, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x03, 0x52, 0x17, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x45, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x53, 0x63, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x14, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x65, 0x63, + 0x74, 0x61, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, - 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x6d, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x05, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, + 0x61, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x61, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x09, 0x52, 0x06, 0x73, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x63, 0x0a, 0x13, 0x6d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, + 0x09, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x69, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x5f, 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x64, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, - 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x6d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x61, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x06, 0x73, - 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, - 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x52, 0x11, 0x6d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, - 0x2b, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x9a, 0x01, 0x0a, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, + 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x16, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, + 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9c, 0x0d, 0x0a, 0x16, 0x4d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x75, + 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, + 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x02, 0x74, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x05, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x06, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x07, + 0x76, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0a, 0x48, 0x09, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0b, 0x48, 0x0a, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x75, 0x0a, 0x19, 0x65, 0x72, 0x73, 0x70, 0x61, + 0x6e, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x45, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, + 0x48, 0x0b, 0x52, 0x17, 0x65, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x0d, 0x69, 0x70, 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x0c, 0x69, + 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0e, 0x48, 0x0d, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x74, + 0x74, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, + 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x49, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, + 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x0d, 0x73, 0x72, 0x63, + 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x0d, + 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x11, 0x67, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x14, 0x48, 0x13, 0x52, 0x0f, 0x67, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x16, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, + 0x14, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x16, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x07, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, + 0x48, 0x15, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x16, 0x52, 0x0a, 0x75, 0x64, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, + 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x17, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, + 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x63, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x63, 0x66, 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x65, 0x72, + 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x68, 0x64, + 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x6f, + 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x72, 0x65, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, 0x69, + 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xaa, 0x02, 0x0a, 0x0e, 0x4d, 0x79, 0x4d, 0x61, 0x63, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x06, 0x76, + 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x22, 0xa9, 0x05, 0x0a, 0x13, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x69, 0x0a, 0x11, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, + 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x7c, 0x0a, 0x18, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x76, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, + 0x72, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x16, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x61, + 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, + 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, + 0x76, 0x72, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x06, 0x52, 0x03, 0x76, 0x72, 0x66, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, + 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, + 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x72, 0x66, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, + 0xd9, 0x06, 0x0a, 0x11, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x73, 0x72, 0x63, 0x49, + 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, + 0x04, 0x76, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, + 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4d, 0x61, + 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x09, 0x6c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x09, 0x6c, + 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, + 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, + 0x5f, 0x63, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, + 0x48, 0x0c, 0x52, 0x09, 0x68, 0x69, 0x74, 0x42, 0x69, 0x74, 0x43, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x07, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x06, 0x68, 0x69, 0x74, 0x42, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x22, 0xcb, 0x05, 0x0a, 0x17, + 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x22, 0xa3, 0x08, 0x0a, 0x16, 0x4d, 0x69, - 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, - 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, - 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x0f, 0x63, - 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, - 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x74, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x76, 0x6c, 0x61, - 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x6c, 0x61, - 0x6e, 0x43, 0x66, 0x69, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x12, 0x6a, 0x0a, 0x19, 0x65, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, - 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x45, 0x72, 0x73, 0x70, - 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x17, 0x65, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, 0x70, - 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x69, 0x70, 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, - 0x74, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, - 0x72, 0x63, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x64, - 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, - 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x73, 0x74, - 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x67, 0x72, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, - 0x16, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, - 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x75, - 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, - 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x22, - 0xa9, 0x01, 0x0a, 0x0e, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, - 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6d, 0x61, 0x63, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xc5, 0x03, 0x0a, 0x13, - 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, + 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x07, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x30, 0x0a, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, + 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63, 0x61, + 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x45, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x17, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, + 0x65, 0x64, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x12, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, + 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x7a, 0x6f, + 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x64, 0x69, 0x73, + 0x63, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x42, + 0x22, 0x0a, 0x20, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdc, 0x05, 0x0a, 0x16, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, - 0x69, 0x6f, 0x72, 0x12, 0x71, 0x0a, 0x18, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, - 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x52, 0x16, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, + 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, + 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x48, 0x6f, 0x73, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x05, 0x48, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x65, 0x6e, + 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, + 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x61, + 0x70, 0x49, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x76, 0x72, 0x66, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x22, 0xe8, 0x03, 0x0a, 0x11, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x6e, 0x61, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0c, 0x69, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, + 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6d, 0x70, 0x6f, + 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x73, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0xbc, 0x09, 0x0a, 0x10, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x41, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6e, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x73, - 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x09, 0x73, 0x72, 0x63, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x13, 0x0a, 0x05, 0x76, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, - 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x73, - 0x74, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x73, 0x72, - 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x34, - 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x34, - 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x79, 0x74, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, - 0x5f, 0x63, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x69, 0x74, 0x42, - 0x69, 0x74, 0x43, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x74, 0x42, 0x69, 0x74, 0x22, 0xb6, - 0x03, 0x0a, 0x17, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x6e, 0x61, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6e, 0x61, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x25, - 0x0a, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x69, - 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, - 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, - 0x64, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1c, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc1, 0x03, 0x0a, 0x16, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x73, 0x74, - 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, - 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x68, 0x6f, 0x73, - 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6e, - 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, - 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x61, 0x70, - 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x49, 0x6d, 0x70, 0x6f, 0x73, 0x65, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x66, 0x61, 0x6d, 0x69, - 0x6c, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x0c, 0x69, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x9c, 0x06, 0x0a, 0x10, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x76, 0x6e, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x56, 0x6e, 0x69, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, - 0x61, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x61, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x6c, - 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x72, - 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0a, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1d, - 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, - 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, + 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x02, 0x69, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x03, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x63, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x6c, 0x69, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x06, 0x52, 0x0d, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x52, + 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x0a, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, - 0x6c, 0x12, 0x42, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, - 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x73, 0x65, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, - 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, - 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, - 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4c, 0x0a, - 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, - 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x6f, 0x75, - 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, - 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, - 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, - 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x22, 0xff, 0x02, 0x0a, 0x15, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x14, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3b, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, - 0x65, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, - 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, - 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, - 0x65, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x22, 0x41, 0x0a, 0x0b, - 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, - 0xa9, 0x01, 0x0a, 0x18, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, + 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0b, 0x48, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, + 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, + 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, + 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0b, 0x52, 0x0e, + 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x11, - 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x61, 0x70, - 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xbf, 0x03, 0x0a, 0x1b, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x60, - 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, - 0x12, 0x5a, 0x0a, 0x0d, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0c, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, + 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6f, 0x75, + 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x0e, 0x6f, 0x75, + 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x4e, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, + 0x6d, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, + 0x0e, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x70, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x6d, 0x61, 0x63, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, + 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, + 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x22, 0xa1, 0x04, 0x0a, 0x15, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x2f, 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x0c, - 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, - 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, - 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4b, 0x0a, - 0x10, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x91, 0x05, 0x0a, 0x10, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x3f, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x36, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x6f, - 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x30, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x02, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, + 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, + 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x0e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, + 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, 0x22, 0xbf, 0x01, 0x0a, 0x18, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x62, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x63, 0x62, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x63, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x62, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x70, 0x62, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x70, 0x69, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x70, 0x69, 0x72, 0x12, 0x53, - 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x11, 0x72, 0x65, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb7, 0x05, + 0x0a, 0x1b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x0a, + 0x11, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, + 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x6b, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, + 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x65, + 0x0a, 0x0d, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x6f, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x09, 0x48, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6f, 0x62, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x91, 0x07, 0x0a, 0x10, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0a, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0c, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, + 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x63, 0x62, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x03, 0x63, 0x62, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x63, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x03, 0x63, 0x69, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x03, 0x70, 0x62, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x03, 0x70, 0x62, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x70, + 0x69, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, + 0x52, 0x03, 0x70, 0x69, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, + 0x48, 0x07, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x09, 0x48, 0x08, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x71, 0x0a, 0x21, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5b, - 0x0a, 0x18, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x0f, 0x50, - 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, - 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x59, 0x0a, 0x17, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, - 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, - 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x22, 0x4d, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x45, 0x79, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, - 0x74, 0x45, 0x79, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x22, 0x55, 0x0a, 0x15, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x45, - 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xc9, 0x4c, 0x0a, 0x0d, 0x50, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, + 0x48, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x73, 0x0a, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x52, 0x1d, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x62, 0x73, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x63, 0x69, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x73, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x70, 0x69, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xde, 0x66, 0x0a, 0x0d, + 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4f, - 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x70, 0x0a, 0x1c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x19, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x68, 0x0a, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x6f, 0x66, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x72, 0x0a, 0x1c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x72, + 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x19, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x73, 0x0a, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x17, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x71, 0x6f, 0x73, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x71, - 0x6f, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x1e, 0x71, - 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x71, 0x6f, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, - 0x5a, 0x0a, 0x18, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x15, 0x71, 0x6f, 0x73, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x19, 0x71, - 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x72, - 0x6f, 0x6f, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, - 0x71, 0x6f, 0x73, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x72, 0x6f, - 0x6f, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x70, 0x65, - 0x65, 0x64, 0x12, 0x54, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, - 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x6d, 0x0a, 0x1b, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, - 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x18, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x1b, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, - 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x48, 0x61, 0x6c, 0x66, 0x44, 0x75, - 0x70, 0x6c, 0x65, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x69, 0x0a, 0x1b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x1f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, - 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x56, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x17, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, - 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x15, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, - 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x63, 0x0a, 0x1a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x06, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x4d, 0x0a, 0x1e, 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6f, 0x66, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x04, 0x52, 0x1a, 0x71, 0x6f, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x18, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x52, 0x15, 0x71, 0x6f, 0x73, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x44, 0x0a, 0x19, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x05, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x4d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x69, + 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x52, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x52, 0x10, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x0a, 0x1b, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0c, 0x52, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x65, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x43, 0x0a, + 0x1b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, + 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x03, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x52, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x48, 0x61, 0x6c, 0x66, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x12, 0x40, 0x0a, 0x17, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x06, 0x52, 0x14, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x1b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x7c, 0x0a, 0x23, 0x72, 0x65, + 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x07, 0x52, 0x18, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x08, 0x52, 0x1c, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x14, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x09, 0x52, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x65, 0x0a, + 0x1a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x52, 0x17, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x7e, 0x0a, 0x23, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x14, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x14, 0x52, 0x1f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x23, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x64, + 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x15, 0x20, 0x03, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x52, 0x1f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x48, 0x61, 0x6c, 0x66, 0x44, 0x75, 0x70, + 0x6c, 0x65, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x1f, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x0a, 0x52, 0x1b, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x4e, + 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x23, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, - 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x1f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x6f, 0x0a, 0x23, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, - 0x6c, 0x66, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, - 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x1f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x48, 0x61, 0x6c, 0x66, 0x44, 0x75, - 0x70, 0x6c, 0x65, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x1f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x1b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x78, 0x0a, 0x23, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x54, 0x0a, 0x27, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, - 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x23, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x73, 0x79, 0x6d, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x65, 0x0a, 0x1c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x4f, 0x75, 0x69, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x48, 0x0a, 0x21, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, - 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x60, 0x0a, - 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, - 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x47, 0x0a, 0x0a, 0x65, 0x79, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x45, 0x79, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x65, - 0x79, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, - 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6f, 0x70, - 0x65, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x43, 0x0a, 0x0c, 0x68, 0x77, 0x5f, 0x6c, 0x61, - 0x6e, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x0a, 0x68, 0x77, 0x4c, 0x61, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x65, - 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, - 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x75, - 0x6c, 0x6c, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0d, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x22, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x0f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x53, - 0x70, 0x65, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, - 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x0a, 0x1c, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x27, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, - 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, - 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x62, 0x0a, - 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6c, 0x66, - 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x28, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x64, 0x48, 0x61, 0x6c, 0x66, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x53, 0x70, 0x65, 0x65, - 0x64, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x29, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, - 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x6b, 0x0a, 0x1c, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x19, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x20, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x1d, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x73, 0x79, - 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x58, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, - 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x64, 0x4f, 0x75, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, - 0x64, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, - 0x67, 0x67, 0x65, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, - 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x12, 0x65, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x32, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x0b, 0x52, 0x1f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x5f, 0x0a, 0x27, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x0c, 0x52, 0x23, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x73, 0x79, 0x6d, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x70, 0x0a, 0x1c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, - 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, - 0x10, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x65, - 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x46, 0x65, 0x63, 0x12, 0x3d, 0x0a, 0x08, 0x66, 0x65, 0x63, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x66, - 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x56, 0x0a, 0x11, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x19, 0x48, 0x0d, 0x52, 0x19, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x0e, 0x52, 0x17, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x4f, 0x75, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x21, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1b, 0x48, 0x0f, 0x52, 0x1d, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x43, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1c, + 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1c, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x65, 0x79, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x45, 0x79, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x1d, 0x52, 0x09, 0x65, 0x79, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x28, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, 0x10, 0x52, 0x09, 0x6f, 0x70, 0x65, + 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x68, 0x77, 0x5f, + 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x1f, 0x52, 0x0a, 0x68, 0x77, 0x4c, 0x61, 0x6e, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x1f, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x20, 0x48, 0x11, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, + 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x21, 0x48, 0x12, 0x52, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x5f, + 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x22, 0x48, 0x13, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x23, 0x48, 0x14, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x24, 0x48, 0x15, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x10, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x25, 0x52, 0x0f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x71, 0x0a, + 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x27, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, + 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x27, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x12, 0x45, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, + 0x61, 0x6c, 0x66, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x18, 0x28, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x28, 0x52, 0x19, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x48, 0x61, 0x6c, 0x66, 0x44, 0x75, 0x70, 0x6c, + 0x65, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x18, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x29, 0x48, + 0x16, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x75, 0x74, + 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x1c, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, - 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x0f, 0x66, - 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x36, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x73, 0x63, 0x70, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, - 0x75, 0x12, 0x42, 0x0a, 0x1e, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x38, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x66, 0x6c, 0x6f, 0x6f, 0x64, - 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x65, 0x72, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x22, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x1e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, - 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x4a, 0x0a, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, - 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x12, 0x63, 0x0a, - 0x18, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x15, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, - 0x6c, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x41, 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, - 0x6c, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, - 0x63, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, - 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x12, 0x4b, 0x0a, 0x10, - 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x57, 0x0a, 0x16, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x15, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, - 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, - 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x1b, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x65, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x64, 0x0a, 0x1d, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x1a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, - 0x1c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, - 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x46, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x19, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x47, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x74, 0x63, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x54, 0x63, 0x12, 0x2c, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, - 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x49, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, - 0x63, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, - 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2a, 0x0a, 0x12, 0x71, 0x6f, 0x73, 0x5f, - 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4b, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x54, - 0x63, 0x4d, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, - 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4c, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2c, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, - 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4d, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x4d, 0x61, 0x70, 0x12, 0x3e, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, - 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, - 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x71, 0x6f, 0x73, - 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, 0x31, - 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3c, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x2a, 0x48, 0x17, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x20, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x2b, 0x48, 0x18, 0x52, 0x1d, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x41, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x2c, 0x48, 0x19, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2d, 0x48, + 0x1a, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x4f, 0x75, 0x69, + 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x2e, 0x48, 0x1b, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x2f, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2f, 0x48, 0x1c, 0x52, 0x13, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, + 0x67, 0x67, 0x65, 0x64, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x30, + 0x48, 0x1d, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x31, 0x48, 0x1e, + 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x70, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x32, 0x48, 0x1f, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x33, 0x48, 0x20, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x46, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x08, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x34, 0x48, 0x21, 0x52, 0x07, 0x66, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x61, 0x0a, 0x11, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x35, 0x48, 0x22, 0x52, + 0x0f, 0x66, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x73, + 0x63, 0x70, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x36, 0x48, 0x23, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x37, 0x48, 0x24, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x1e, + 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x38, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x38, 0x48, 0x25, 0x52, 0x1a, 0x66, 0x6c, + 0x6f, 0x6f, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x39, 0x48, 0x26, 0x52, + 0x1e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x3a, 0x48, 0x27, 0x52, 0x1e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x18, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3b, 0x48, 0x28, 0x52, + 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x3c, 0x48, 0x29, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, + 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x61, 0x63, 0x6c, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3d, 0x48, + 0x2a, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x3e, 0x48, 0x2b, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x3f, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, 0x2c, 0x52, 0x0f, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x40, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x40, 0x52, + 0x0e, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x3a, 0x0a, 0x16, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x41, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x41, 0x52, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, + 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x15, 0x65, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x42, + 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x43, + 0x48, 0x2d, 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x47, 0x0a, 0x1a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x44, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x44, 0x48, 0x2e, 0x52, 0x18, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1d, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x45, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x45, 0x52, 0x1a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x1c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x46, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x46, 0x52, 0x19, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x47, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x47, 0x48, 0x2f, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x48, 0x48, 0x30, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, + 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x49, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x49, 0x48, 0x31, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x44, 0x6f, + 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, + 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x4a, 0x48, 0x32, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, + 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x12, + 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, + 0x61, 0x70, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4b, 0x48, 0x33, + 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, + 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4c, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4c, 0x48, 0x34, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x44, + 0x73, 0x63, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x4d, 0x48, 0x35, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1d, 0x71, 0x6f, 0x73, + 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, + 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4e, 0x48, 0x36, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, + 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x4d, 0x61, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, - 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, 0x70, 0x4d, - 0x61, 0x70, 0x12, 0x3d, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x50, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, + 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4f, + 0x48, 0x37, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, + 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x50, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x50, 0x48, 0x38, 0x52, 0x17, 0x71, 0x6f, 0x73, + 0x54, 0x63, 0x54, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x26, 0x71, 0x6f, 0x73, 0x5f, 0x70, + 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x51, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x51, 0x48, 0x39, 0x52, + 0x20, 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, - 0x70, 0x12, 0x50, 0x0a, 0x26, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x51, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x20, 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x54, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x61, 0x70, 0x12, 0x3f, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x52, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x71, 0x6f, 0x73, 0x50, - 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x4d, 0x61, 0x70, 0x12, 0x37, 0x0a, 0x18, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x53, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x71, 0x6f, 0x73, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x67, 0x0a, - 0x1f, 0x71, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x65, 0x0a, 0x1e, 0x71, 0x6f, 0x73, 0x5f, 0x65, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x52, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x52, 0x48, 0x3a, 0x52, 0x18, 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x42, 0x0a, 0x18, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x53, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x53, 0x48, 0x3b, 0x52, 0x15, 0x71, 0x6f, 0x73, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, 0x71, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x54, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x54, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x48, 0x0a, 0x1e, 0x71, 0x6f, 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x55, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x55, 0x52, 0x1a, + 0x71, 0x6f, 0x73, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x7a, 0x0a, 0x1a, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x1a, 0x71, 0x6f, 0x73, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x6f, 0x0a, - 0x1a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x56, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, - 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x32, - 0x0a, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x78, 0x18, 0x58, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, - 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x78, 0x12, 0x37, 0x0a, 0x18, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x78, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x70, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x56, 0x48, 0x3c, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, + 0x57, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x57, 0x48, 0x3d, 0x52, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x54, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x56, 0x0a, 0x16, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x5b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x77, 0x5f, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0b, 0x68, 0x77, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x65, 0x65, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x65, 0x65, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0d, - 0x65, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5e, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x65, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x65, 0x65, 0x5f, 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x65, 0x65, 0x57, 0x61, 0x6b, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6f, - 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, + 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, + 0x78, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x3e, 0x52, + 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x74, 0x78, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x59, 0x48, 0x3f, 0x52, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5a, 0x48, 0x40, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, + 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x5b, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, 0x52, 0x13, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x2d, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, 0x48, 0x41, 0x52, + 0x0b, 0x68, 0x77, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x65, 0x65, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x5d, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5d, 0x48, 0x42, 0x52, 0x09, 0x65, 0x65, 0x65, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x65, 0x65, + 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x48, 0x43, 0x52, 0x0b, 0x65, 0x65, 0x65, 0x49, 0x64, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x65, 0x65, 0x5f, + 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x44, 0x52, 0x0b, 0x65, 0x65, 0x65, 0x57, 0x61, 0x6b, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x60, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x60, 0x52, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x61, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x61, 0x48, 0x45, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x70, 0x6b, 0x74, 0x5f, 0x74, + 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x62, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x62, 0x48, 0x46, 0x52, 0x0b, 0x70, 0x6b, 0x74, 0x54, 0x78, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x63, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x63, + 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x12, 0x73, + 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, + 0x73, 0x18, 0x64, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x52, 0x11, 0x73, + 0x65, 0x72, 0x64, 0x65, 0x73, 0x50, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, + 0x12, 0x2b, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x18, 0x65, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x65, 0x52, 0x0d, + 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x31, 0x0a, + 0x11, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x18, 0x66, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x66, 0x52, 0x10, + 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, + 0x12, 0x3b, 0x0a, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x67, 0x48, 0x47, 0x52, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, + 0x08, 0x70, 0x74, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x74, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x68, 0x48, 0x48, 0x52, 0x07, 0x70, 0x74, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x69, 0x48, + 0x49, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x6a, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6a, 0x52, 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x32, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6b, 0x48, 0x4a, + 0x52, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x63, 0x6b, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, + 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x6c, 0x48, 0x4b, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, + 0x6d, 0x69, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x6d, 0x48, 0x4c, 0x52, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, + 0x64, 0x65, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x80, 0x01, 0x0a, 0x1c, 0x6c, 0x69, 0x6e, + 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6e, 0x48, 0x4d, 0x52, 0x19, 0x6c, + 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x17, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x78, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, - 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x61, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x6b, 0x74, 0x5f, 0x74, 0x78, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x62, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, - 0x6b, 0x74, 0x54, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x74, 0x61, - 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x50, 0x0a, 0x12, - 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, - 0x69, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x73, 0x65, 0x72, - 0x64, 0x65, 0x73, 0x50, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x12, 0x48, - 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x64, 0x65, - 0x73, 0x49, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x64, - 0x65, 0x73, 0x5f, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x66, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x70, - 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x67, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x74, - 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x6f, 0x48, 0x4e, 0x52, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x51, + 0x0a, 0x0b, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x70, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, + 0x50, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x70, + 0x48, 0x4f, 0x52, 0x0a, 0x70, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x10, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x71, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x71, 0x48, 0x50, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x72, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x72, 0x48, 0x51, 0x52, 0x12, 0x70, + 0x72, 0x62, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x6f, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x72, 0x78, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x52, 0x07, 0x70, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x69, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x17, 0x61, 0x64, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x0a, - 0x0f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, - 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79, - 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, - 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x64, 0x12, 0x75, 0x0a, 0x1c, - 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x6e, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4c, - 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x75, - 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x19, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x66, 0x0a, 0x17, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x6f, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, - 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x78, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x70, - 0x72, 0x62, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, - 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x70, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x71, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, - 0x72, 0x62, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, - 0x15, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x72, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x72, - 0x62, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x6f, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x0c, 0x70, 0x72, 0x62, 0x73, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x47, 0x0a, 0x0d, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x62, - 0x73, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x75, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x76, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x54, 0x74, 0x6c, 0x12, 0x31, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x52, 0x78, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x73, 0x48, 0x52, 0x52, 0x0c, 0x70, + 0x72, 0x62, 0x73, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x52, + 0x0a, 0x0d, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x52, + 0x42, 0x53, 0x5f, 0x52, 0x58, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x74, + 0x48, 0x53, 0x52, 0x0b, 0x70, 0x72, 0x62, 0x73, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x75, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x75, 0x48, 0x54, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x76, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x76, 0x48, 0x55, 0x52, 0x13, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x77, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, - 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x37, 0x0a, 0x19, 0x71, 0x6f, 0x73, 0x5f, 0x6d, - 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x78, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, - 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, - 0x12, 0x43, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, - 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, - 0x78, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x7a, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x12, 0x50, 0x0a, 0x0f, 0x65, 0x72, 0x72, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x7b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x45, - 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0d, 0x65, 0x72, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x66, - 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x7c, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x1b, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x18, 0x66, 0x61, - 0x62, 0x72, 0x69, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x5f, 0x69, 0x64, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x66, 0x61, 0x62, 0x72, 0x69, - 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, - 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x7f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x5f, - 0x0a, 0x13, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x12, 0x66, 0x61, 0x62, - 0x72, 0x69, 0x63, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x20, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x81, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, - 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, - 0x82, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x46, - 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x4d, - 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x83, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x52, - 0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x54, 0x0a, - 0x10, 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x0e, 0x6d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x10, 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x77, 0x48, 0x56, 0x52, 0x11, 0x71, 0x6f, + 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x42, 0x0a, 0x19, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, + 0x78, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x78, 0x48, 0x57, 0x52, 0x14, 0x71, + 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, + 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x79, 0x48, 0x58, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, + 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, + 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x7a, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7a, 0x48, 0x59, 0x52, 0x04, 0x74, 0x70, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x7b, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x6d, 0x64, 0x69, 0x78, 0x4d, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5e, 0x0a, 0x14, 0x61, 0x75, 0x74, - 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x5f, 0x31, 0x30, - 0x30, 0x30, 0x78, 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x5f, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x19, 0x31, 0x30, 0x30, 0x30, 0x78, 0x53, 0x67, 0x6d, 0x69, 0x69, 0x53, 0x6c, 0x61, - 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x12, 0x47, 0x0a, 0x0b, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x88, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7b, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0f, 0x66, 0x61, 0x62, + 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x7c, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7c, 0x48, 0x5a, 0x52, 0x0e, 0x66, 0x61, 0x62, 0x72, + 0x69, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6b, 0x0a, + 0x1b, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x7d, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7d, 0x48, 0x5b, 0x52, 0x18, 0x66, + 0x61, 0x62, 0x72, 0x69, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x19, 0x66, 0x61, + 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x7e, 0x48, 0x5c, 0x52, 0x16, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x46, 0x0a, 0x1a, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x7f, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7f, 0x48, 0x5d, 0x52, 0x17, 0x66, 0x61, + 0x62, 0x72, 0x69, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x6b, 0x0a, 0x13, 0x66, 0x61, 0x62, 0x72, + 0x69, 0x63, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, + 0x61, 0x62, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x80, 0x01, 0x48, 0x5e, 0x52, 0x12, + 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0x81, 0x01, 0x48, 0x5f, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, + 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x82, 0x01, 0x48, + 0x60, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, + 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x0d, + 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x83, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x83, 0x01, 0x48, 0x61, 0x52, 0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x10, 0x6d, 0x64, 0x69, 0x78, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x84, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x64, 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x44, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x52, 0x09, 0x64, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x67, 0x0a, 0x1a, 0x61, - 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x16, 0x61, 0x75, - 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x12, 0x11, 0x0a, 0x03, 0x69, 0x70, 0x67, 0x18, 0x8b, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x69, 0x70, 0x67, 0x12, 0x3e, 0x0a, 0x1b, 0x67, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x42, 0x0a, 0x1d, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x1a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x46, 0x0a, 0x20, 0x71, - 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, - 0x8e, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, - 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x4d, 0x61, 0x70, 0x12, 0x4d, 0x0a, 0x24, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x8f, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, - 0x61, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, - 0x72, 0x74, 0x22, 0xc5, 0x02, 0x0a, 0x16, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x0a, - 0x13, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x53, 0x69, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x11, - 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x69, 0x64, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x69, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, - 0x72, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x1a, 0x6c, 0x69, 0x6e, 0x65, 0x5f, - 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6c, 0x69, 0x6e, - 0x65, 0x53, 0x69, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, - 0x74, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, + 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x84, 0x01, 0x48, 0x62, 0x52, 0x0e, 0x6d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x10, 0x6d, 0x64, 0x69, + 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x85, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0x85, 0x01, 0x48, 0x63, 0x52, 0x0e, 0x6d, 0x64, 0x69, 0x78, 0x4d, 0x6f, + 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x14, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x66, 0x61, - 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x50, - 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, - 0x2d, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x71, 0x6f, - 0x73, 0x57, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x1f, - 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, - 0x86, 0x06, 0x0a, 0x13, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x12, 0x42, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, - 0x61, 0x73, 0x69, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x12, 0x40, 0x0a, 0x0a, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, - 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0a, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x72, 0x65, - 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, - 0x50, 0x72, 0x65, 0x31, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, - 0x72, 0x65, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x74, 0x78, 0x46, - 0x69, 0x72, 0x50, 0x72, 0x65, 0x32, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, - 0x5f, 0x70, 0x72, 0x65, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x74, - 0x78, 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, 0x33, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, - 0x69, 0x72, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x4d, 0x61, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x78, - 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x6f, 0x73, 0x74, 0x31, 0x12, 0x42, - 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x32, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, - 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x6f, 0x73, - 0x74, 0x32, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, - 0x74, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, - 0x72, 0x50, 0x6f, 0x73, 0x74, 0x33, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, - 0x5f, 0x61, 0x74, 0x74, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x74, - 0x78, 0x46, 0x69, 0x72, 0x41, 0x74, 0x74, 0x6e, 0x22, 0x3f, 0x0a, 0x0a, 0x51, 0x6f, 0x73, 0x4d, - 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x86, 0x01, 0x48, + 0x64, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x1d, 0x5f, 0x31, 0x30, 0x30, 0x30, + 0x78, 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x5f, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0x87, 0x01, 0x48, 0x65, 0x52, 0x19, 0x31, 0x30, 0x30, 0x30, 0x78, 0x53, + 0x67, 0x6d, 0x69, 0x69, 0x53, 0x6c, 0x61, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x88, 0x01, 0x48, 0x66, 0x52, 0x0a, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0a, 0x64, + 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x44, 0x75, 0x61, + 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, 0x01, 0x48, 0x67, 0x52, + 0x09, 0x64, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x73, 0x0a, + 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x8a, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, + 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x8a, 0x01, 0x48, 0x68, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, + 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x03, 0x69, 0x70, 0x67, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8b, 0x01, 0x48, 0x69, 0x52, 0x03, 0x69, 0x70, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x1b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8c, 0x01, 0x48, 0x6a, + 0x52, 0x18, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, + 0x1d, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x8d, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8d, 0x01, 0x48, 0x6b, 0x52, 0x1a, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, + 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8e, 0x01, 0x48, + 0x6c, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x59, 0x0a, 0x24, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8f, 0x01, 0x48, 0x6d, 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, + 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, + 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0a, + 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x90, 0x01, 0x48, 0x6e, 0x52, 0x09, 0x69, 0x70, 0x73, 0x65, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x72, + 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6f, 0x66, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x71, 0x6f, + 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x42, 0x1c, 0x0a, 0x1a, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, + 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, + 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x26, 0x0a, 0x24, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x2a, 0x0a, 0x28, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x1d, 0x0a, 0x1b, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x24, 0x0a, 0x22, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, + 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1f, 0x0a, + 0x1d, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x23, + 0x0a, 0x21, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, + 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x66, + 0x65, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x21, 0x0a, + 0x1f, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, + 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x1b, + 0x0a, 0x19, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, + 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, + 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, + 0x61, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, + 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, + 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, + 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, + 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, + 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x29, 0x0a, 0x27, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x6d, 0x61, 0x70, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x78, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x6c, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x77, + 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x73, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x6b, 0x74, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x74, 0x70, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, + 0x69, 0x64, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, + 0x6c, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1c, 0x0a, 0x1a, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, + 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x61, 0x62, + 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x1e, 0x0a, 0x1c, + 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x1c, 0x0a, 0x1a, + 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x66, + 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x61, + 0x62, 0x72, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, + 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x64, 0x69, 0x78, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x58, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x78, + 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x5f, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x74, + 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x75, 0x61, 0x6c, + 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, + 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x70, 0x67, 0x42, 0x1e, 0x0a, + 0x1c, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x20, 0x0a, + 0x1e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, + 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, + 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xfc, 0x03, 0x0a, + 0x16, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x13, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x53, 0x69, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x34, 0x0a, 0x11, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x69, 0x64, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1c, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x18, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x69, 0x64, + 0x65, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1a, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, + 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x16, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x69, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x0d, 0x66, 0x61, 0x69, + 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, + 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, + 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, + 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, + 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x11, + 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, + 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x77, 0x72, + 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x10, 0x71, 0x6f, 0x73, + 0x57, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x22, 0xe9, 0x03, 0x0a, 0x13, 0x50, 0x6f, 0x72, 0x74, + 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, + 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0b, + 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x12, 0x1e, 0x0a, 0x07, 0x69, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x52, 0x07, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0a, 0x69, + 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x52, 0x0a, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x31, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x52, 0x09, 0x74, 0x78, + 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, 0x31, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, + 0x72, 0x5f, 0x70, 0x72, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, 0x32, 0x12, 0x24, 0x0a, + 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x33, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, + 0x72, 0x65, 0x33, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x52, 0x09, + 0x74, 0x78, 0x46, 0x69, 0x72, 0x4d, 0x61, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x78, 0x5f, + 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x09, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x6f, 0x73, 0x74, + 0x31, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x74, + 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x52, 0x0a, 0x74, + 0x78, 0x46, 0x69, 0x72, 0x50, 0x6f, 0x73, 0x74, 0x32, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x78, 0x5f, + 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x6f, 0x73, 0x74, + 0x33, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x6e, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x52, 0x09, 0x74, 0x78, + 0x46, 0x69, 0x72, 0x41, 0x74, 0x74, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x6f, + 0x73, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x6d, 0x61, 0x70, + 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x4f, 0x53, - 0x4d, 0x61, 0x70, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x0f, 0x51, 0x6f, - 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0xd9, 0x03, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x4d, 0x61, 0x70, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x54, 0x6f, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x22, 0xd9, 0x05, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x77, 0x72, 0x65, - 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, - 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, 0x63, - 0x5f, 0x64, 0x6c, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x50, 0x66, 0x63, 0x44, 0x6c, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x66, - 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x40, 0x0a, 0x0a, - 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x8f, - 0x07, 0x0a, 0x18, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x76, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x13, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x62, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x0f, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, + 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x50, 0x66, 0x63, 0x44, 0x6c, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, + 0x0c, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0a, 0x70, 0x66, 0x63, + 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x61, + 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0b, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x72, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x22, 0xf1, + 0x0b, 0x0a, 0x18, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, - 0x0d, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x26, - 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, - 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x03, 0x6d, 0x74, 0x75, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x61, 0x63, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x61, 0x63, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x41, 0x63, 0x6c, 0x12, 0x62, 0x0a, 0x1b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x34, 0x5f, 0x6d, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x76, 0x36, 0x4d, 0x63, 0x61, - 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, + 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x08, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, + 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x72, + 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x0c, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, + 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, + 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x18, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4d, + 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0f, 0x48, 0x0e, 0x52, 0x0d, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x0d, 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x6c, - 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, - 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x56, 0x69, 0x72, 0x74, 0x75, - 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, - 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x22, 0xa8, 0x02, 0x0a, 0x13, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, - 0x61, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x66, 0x61, 0x6d, - 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x0c, - 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x11, - 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x70, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, - 0x72, 0x70, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x70, 0x66, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0d, 0x72, - 0x70, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x65, 0x0a, 0x17, - 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, - 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x70, 0x66, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x70, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x49, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x15, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3b, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x6d, + 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x09, 0x69, 0x73, 0x56, 0x69, + 0x72, 0x74, 0x75, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x5f, + 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x13, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x15, 0x48, 0x14, 0x52, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x70, 0x6c, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, + 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, + 0x74, 0x75, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, + 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, + 0x6c, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6d, + 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x6f, + 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, + 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x22, 0xcd, 0x03, 0x0a, 0x13, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x2b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0a, 0x75, + 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, + 0x54, 0x0a, 0x0e, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x05, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, + 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x11, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x13, 0x72, 0x70, 0x66, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x11, 0x72, + 0x70, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x70, 0x66, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x52, 0x0d, 0x72, 0x70, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x70, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x17, 0x52, 0x70, + 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x72, 0x70, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x70, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x70, 0x66, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x70, 0x66, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, + 0x0a, 0x15, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xa0, 0x03, 0x0a, 0x12, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x4e, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3f, 0x0a, 0x0a, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, - 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x42, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6d, - 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, - 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6d, - 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, 0x74, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x10, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, - 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, 0x61, 0x74, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x17, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x09, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, - 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, - 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, - 0x61, 0x78, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, 0x0c, 0x54, - 0x6c, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x54, 0x4c, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x22, 0xd7, 0x01, 0x0a, 0x14, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x6c, 0x76, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x54, 0x6c, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x74, 0x6c, - 0x76, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0b, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x0c, 0x53, - 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, - 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x70, - 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x74, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x74, 0x70, 0x12, - 0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x41, - 0x63, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, - 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x41, 0x0a, 0x0b, 0x54, 0x6c, 0x76, 0x54, 0x79, 0x70, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x6c, 0x76, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x47, 0x0a, 0x0e, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x19, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x40, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x22, 0x45, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, - 0x64, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x14, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x3b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xcd, 0x60, - 0x0a, 0x0f, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x6d, - 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x8e, 0x05, 0x0a, 0x12, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x0f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x4a, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x6d, + 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, + 0x10, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x15, + 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, + 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, + 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x10, 0x6d, 0x61, + 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x42, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x15, 0x6d, 0x61, 0x78, + 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, + 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0xa0, 0x03, 0x0a, 0x17, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x0a, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x09, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, 0x52, 0x0a, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x14, 0x53, 0x72, + 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, + 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x74, 0x6c, 0x76, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, - 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x74, 0x75, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, - 0x75, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x70, - 0x75, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x69, 0x72, - 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x64, 0x62, 0x5f, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, - 0x64, 0x62, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6c, - 0x33, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x33, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x2d, 0x0a, 0x13, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6c, - 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x6c, 0x61, - 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x4f, 0x66, 0x4c, 0x61, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x63, - 0x6d, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, + 0x73, 0x61, 0x69, 0x2e, 0x54, 0x4c, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x52, 0x07, 0x74, 0x6c, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0c, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x8a, 0x01, + 0x0a, 0x0c, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x21, + 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x26, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x08, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x10, 0x53, + 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x1b, 0x0a, 0x03, 0x73, 0x74, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x02, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x73, 0x74, 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x22, 0xc0, 0x91, 0x01, 0x0a, 0x0f, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6f, 0x66, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x13, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x19, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, + 0x66, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x02, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x74, 0x75, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x07, 0x63, 0x70, + 0x75, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, + 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x11, 0x6d, + 0x61, 0x78, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x64, 0x62, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x64, 0x62, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x13, 0x6c, 0x33, + 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x10, 0x6c, 0x33, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x0a, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x09, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4f, 0x66, 0x4c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x65, + 0x63, 0x6d, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x0b, 0x65, 0x63, 0x6d, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x4f, 0x66, 0x45, 0x63, 0x6d, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x37, 0x0a, 0x18, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x6f, 0x66, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x4f, 0x66, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x14, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x4f, 0x66, 0x43, 0x70, 0x75, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x35, 0x0a, - 0x17, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, - 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, - 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, - 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x54, - 0x65, 0x6d, 0x70, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x65, - 0x6d, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x08, 0x74, 0x65, 0x6d, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, - 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x78, - 0x54, 0x65, 0x6d, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x65, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x63, 0x6c, 0x5f, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x61, 0x63, 0x6c, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x61, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3b, - 0x0a, 0x1a, 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x17, 0x61, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x20, 0x61, - 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x20, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x61, - 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x61, 0x0a, 0x1c, 0x66, - 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x17, 0x66, 0x64, 0x62, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x65, - 0x0a, 0x1e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x19, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x6b, 0x0a, 0x21, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x1c, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x73, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x5c, 0x0a, 0x19, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0b, + 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x45, 0x63, 0x6d, 0x70, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, + 0x0c, 0x52, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x17, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, + 0x66, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, + 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x10, 0x48, 0x0e, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0f, 0x52, 0x11, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x43, 0x70, 0x75, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x10, 0x52, 0x14, 0x6f, + 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x11, 0x52, 0x0a, 0x6f, 0x70, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1a, 0x6d, + 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x12, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4f, 0x66, 0x54, 0x65, 0x6d, 0x70, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x15, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x52, 0x08, 0x74, 0x65, 0x6d, + 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x13, 0x52, + 0x07, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x61, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x14, 0x52, 0x0b, 0x61, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x61, 0x63, 0x6c, + 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x18, 0x48, 0x15, 0x52, 0x17, 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x16, 0x52, 0x17, 0x61, + 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x61, 0x63, 0x6c, + 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x1a, 0x48, 0x17, 0x52, 0x17, 0x61, 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1b, 0x48, 0x18, 0x52, 0x17, 0x61, + 0x63, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x61, 0x63, 0x6c, + 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1c, 0x48, 0x19, 0x52, 0x1c, 0x61, 0x63, 0x6c, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, + 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1d, 0x48, 0x1a, 0x52, 0x1c, + 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x6c, 0x0a, 0x1c, 0x66, 0x64, 0x62, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1e, 0x48, + 0x1b, 0x52, 0x17, 0x66, 0x64, 0x62, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x70, 0x0a, + 0x1e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, - 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x15, 0x70, 0x6f, 0x72, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x5c, 0x0a, 0x19, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1f, 0x48, + 0x1c, 0x52, 0x19, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x76, 0x0a, 0x21, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x20, 0x48, 0x1d, 0x52, 0x1c, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x44, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x19, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x21, 0x48, 0x1e, 0x52, 0x15, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x67, 0x0a, 0x19, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x15, 0x76, 0x6c, 0x61, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x5a, - 0x0a, 0x18, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, + 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, 0x48, 0x1f, 0x52, + 0x15, 0x76, 0x6c, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x65, 0x0a, 0x18, 0x61, 0x63, 0x6c, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x23, 0x48, 0x20, 0x52, 0x14, 0x61, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x61, 0x0a, 0x16, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, + 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x14, 0x61, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x56, 0x0a, 0x16, 0x61, 0x63, - 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x12, - 0x61, 0x63, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x53, 0x74, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, - 0x5f, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x27, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x28, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x4a, - 0x0a, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, - 0x64, 0x65, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, - 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x31, 0x71, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x31, 0x71, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x47, 0x0a, 0x21, 0x71, - 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, - 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x71, 0x6f, 0x73, 0x4d, 0x61, 0x78, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x32, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, - 0x63, 0x68, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x2b, 0x71, 0x6f, 0x73, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x69, - 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x12, 0x91, 0x01, - 0x0a, 0x36, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, - 0x68, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x2e, 0x71, 0x6f, 0x73, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, - 0x66, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x50, 0x65, 0x72, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x5b, 0x0a, 0x2c, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x25, 0x71, 0x6f, 0x73, 0x4d, 0x61, 0x78, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x50, 0x65, 0x72, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, - 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, - 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x4e, 0x75, - 0x6d, 0x12, 0x33, 0x0a, 0x16, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x33, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, - 0x6f, 0x6f, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x61, 0x6e, 0x67, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x24, 0x48, 0x21, 0x52, 0x12, 0x61, 0x63, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x25, 0x48, 0x22, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, + 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x26, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x48, 0x23, 0x52, 0x10, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x27, + 0x48, 0x24, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x19, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x28, 0x48, 0x25, + 0x52, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, + 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x29, 0x48, 0x26, 0x52, + 0x1e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x31, 0x71, + 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2a, 0x48, 0x27, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x31, 0x71, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x2b, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, 0x28, 0x52, 0x0a, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x2c, 0x48, 0x29, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x21, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x2d, 0x48, 0x2a, 0x52, 0x1c, 0x71, 0x6f, 0x73, 0x4d, 0x61, 0x78, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x72, 0x0a, 0x32, 0x71, 0x6f, 0x73, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x68, 0x69, + 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x2e, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2e, 0x48, 0x2b, 0x52, 0x2b, 0x71, 0x6f, + 0x73, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, + 0x63, 0x68, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x36, + 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, + 0x66, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x2f, 0x52, 0x2e, 0x71, 0x6f, 0x73, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x4f, 0x66, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x50, 0x65, 0x72, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x66, 0x0a, 0x2c, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x30, 0x48, 0x2c, + 0x52, 0x25, 0x71, 0x6f, 0x73, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, + 0x43, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x50, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x31, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x31, 0x48, 0x2d, 0x52, 0x0f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x17, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x32, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x32, 0x48, 0x2e, 0x52, 0x14, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x4e, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x33, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x33, 0x48, 0x2f, 0x52, 0x13, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x4e, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x34, 0x48, 0x30, 0x52, + 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x35, 0x48, 0x31, 0x52, 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x1e, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x4f, 0x0a, 0x25, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x0a, - 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x30, 0x0a, + 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x36, 0x48, + 0x32, 0x52, 0x19, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x34, + 0x4e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x4a, 0x0a, 0x1c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x37, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x37, 0x48, 0x33, 0x52, 0x19, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, + 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x1d, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x38, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x38, 0x48, 0x34, 0x52, 0x1a, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x1d, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x39, 0x48, 0x35, 0x52, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x1e, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x3a, 0x48, 0x36, 0x52, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x25, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3b, 0x48, 0x37, 0x52, 0x20, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x66, 0x64, 0x62, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x3c, 0x48, 0x38, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x32, 0x6d, 0x63, 0x5f, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x30, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x6d, - 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, - 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6e, 0x61, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x64, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x40, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6e, 0x61, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x56, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x61, 0x0a, 0x19, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x16, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x33, 0x0a, - 0x16, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x79, 0x5f, 0x73, 0x69, - 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x72, - 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x45, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x46, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x19, 0x0a, - 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x47, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x18, 0x48, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, 0x61, 0x72, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x77, - 0x61, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x49, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x4b, - 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x4a, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x6d, - 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x4b, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x19, 0x6d, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x76, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x4c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x76, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x6c, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x4d, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x6c, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x4e, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 0x61, 0x63, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x43, 0x4c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x52, 0x0d, 0x61, 0x63, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x12, 0x70, 0x0a, 0x19, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, - 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x50, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, - 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x17, 0x6d, 0x63, 0x61, 0x73, - 0x74, 0x53, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x62, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x62, 0x63, 0x61, 0x73, 0x74, 0x43, 0x70, 0x75, - 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6d, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x3d, 0x48, 0x39, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x32, + 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3e, 0x48, 0x3a, + 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x3f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, 0x3b, 0x52, 0x12, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x64, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x40, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x40, 0x48, 0x3c, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x41, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x41, 0x48, 0x3d, 0x52, 0x17, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4e, 0x61, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x13, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x43, 0x4c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x42, + 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x63, 0x0a, 0x19, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x43, 0x4c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x43, + 0x52, 0x16, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x6c, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x16, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x79, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x44, 0x48, 0x3e, + 0x52, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x45, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x45, 0x48, 0x3f, 0x52, 0x10, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x09, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x46, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x46, 0x48, 0x40, 0x52, 0x08, 0x65, 0x63, + 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x6c, 0x61, 0x67, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x47, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x47, 0x48, 0x41, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x2c, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x18, + 0x48, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x48, 0x48, 0x42, 0x52, 0x0b, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, 0x61, 0x72, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, + 0x0c, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x49, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x49, 0x48, 0x43, 0x52, 0x0b, 0x77, 0x61, 0x72, + 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0c, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x4a, 0x48, 0x44, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1c, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, + 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4b, 0x48, + 0x45, 0x52, 0x19, 0x6d, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x0f, 0x6e, 0x76, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4c, 0x48, 0x46, + 0x52, 0x0d, 0x6e, 0x76, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4d, 0x48, 0x47, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, + 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x4e, 0x48, 0x48, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x61, 0x63, 0x6c, 0x5f, + 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x43, 0x4c, 0x43, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4f, 0x48, 0x49, 0x52, 0x0d, + 0x61, 0x63, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x7b, 0x0a, 0x19, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, 0x69, + 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x50, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x43, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x50, 0x48, + 0x4a, 0x52, 0x17, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, + 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x51, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x51, 0x48, 0x4b, 0x52, 0x0d, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x62, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x53, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x63, 0x61, - 0x73, 0x74, 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, - 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, - 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, - 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, - 0x66, 0x64, 0x62, 0x5f, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x56, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x64, 0x62, 0x41, 0x67, 0x69, 0x6e, 0x67, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x1e, 0x66, 0x64, 0x62, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x1a, 0x66, 0x64, 0x62, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x20, 0x66, - 0x64, 0x62, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, - 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x58, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1c, 0x66, 0x64, 0x62, 0x42, - 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x20, 0x66, 0x64, 0x62, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x59, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1c, 0x66, 0x64, 0x62, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x33, 0x0a, 0x16, 0x65, 0x63, - 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, - 0x73, 0x65, 0x65, 0x64, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x65, 0x63, 0x6d, 0x70, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, 0x12, - 0x37, 0x0a, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x5c, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x15, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, - 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, - 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x12, 0x32, 0x0a, - 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x65, - 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x49, 0x70, 0x76, - 0x34, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x18, 0x60, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, - 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x12, 0x61, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, - 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, - 0x65, 0x65, 0x64, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, 0x12, 0x35, 0x0a, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x52, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x52, 0x48, 0x4c, 0x52, 0x13, 0x62, 0x63, 0x61, 0x73, 0x74, 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, + 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x6d, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x53, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x53, 0x48, 0x4d, 0x52, 0x13, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, + 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, + 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x54, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x54, 0x48, 0x4e, 0x52, 0x0d, 0x73, 0x72, + 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, + 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x55, 0x48, 0x4f, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, + 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x0e, 0x66, 0x64, 0x62, 0x5f, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x56, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x56, 0x48, 0x50, 0x52, 0x0c, 0x66, + 0x64, 0x62, 0x41, 0x67, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x72, + 0x0a, 0x1e, 0x66, 0x64, 0x62, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x57, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x57, 0x48, 0x51, 0x52, 0x1a, 0x66, 0x64, 0x62, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, + 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x76, 0x0a, 0x20, 0x66, 0x64, 0x62, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x52, 0x52, 0x1c, 0x66, 0x64, 0x62, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x20, 0x66, 0x64, + 0x62, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x59, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x59, 0x48, + 0x53, 0x52, 0x1c, 0x66, 0x64, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, + 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x5a, 0x48, 0x54, 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x5b, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, 0x48, 0x55, 0x52, 0x13, 0x65, 0x63, 0x6d, 0x70, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x5c, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, 0x48, 0x56, 0x52, 0x15, 0x65, 0x63, + 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x5d, 0x48, 0x57, 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x48, 0x58, + 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x5f, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x59, 0x52, 0x12, 0x65, 0x63, 0x6d, 0x70, 0x48, + 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x18, 0x60, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x60, 0x48, 0x5a, + 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, + 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, + 0x61, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, + 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x61, 0x48, 0x5b, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x62, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x62, 0x48, 0x5c, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, - 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x64, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x18, 0x65, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, - 0x68, 0x49, 0x70, 0x76, 0x34, 0x12, 0x30, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x66, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, - 0x34, 0x49, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x67, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x12, 0x38, 0x0a, 0x18, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x71, - 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x63, 0x12, 0x2c, 0x0a, 0x13, 0x71, - 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, - 0x31, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x16, 0x71, 0x6f, 0x73, - 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, - 0x74, 0x31, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2a, 0x0a, - 0x12, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, - 0x63, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x15, 0x71, 0x6f, 0x73, - 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, - 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2c, 0x0a, 0x13, 0x71, - 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, - 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x3e, 0x0a, 0x1d, 0x71, 0x6f, 0x73, - 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, - 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, - 0x6f, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3c, 0x0a, 0x1c, 0x71, 0x6f, 0x73, - 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, - 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x70, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, - 0x44, 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x71, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, 0x65, 0x6c, - 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x72, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x14, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x68, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x73, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x12, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4e, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x6d, 0x77, - 0x61, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x74, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x74, 0x33, - 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x5f, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x75, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x6e, - 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x61, 0x73, 0x74, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x76, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x66, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x63, 0x18, 0x77, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x63, 0x12, 0x50, 0x0a, - 0x11, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x43, 0x4c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0f, - 0x61, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x4e, 0x0a, 0x10, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x43, 0x4c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, - 0x0e, 0x61, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x2b, 0x0a, 0x12, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x5f, - 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x72, 0x76, - 0x36, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x46, 0x0a, 0x0d, - 0x73, 0x72, 0x76, 0x36, 0x5f, 0x74, 0x6c, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x7b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x6c, 0x76, 0x54, - 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0b, 0x73, 0x72, 0x76, 0x36, 0x54, 0x6c, 0x76, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, - 0x6c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18, - 0x7c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4e, 0x75, 0x6d, 0x4c, 0x6f, 0x73, - 0x73, 0x6c, 0x65, 0x73, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x15, 0x70, - 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x12, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x19, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, - 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x15, 0x70, 0x66, 0x63, 0x54, - 0x63, 0x44, 0x6c, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x51, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x64, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x12, 0x5d, 0x0a, 0x19, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, - 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x15, 0x70, 0x66, - 0x63, 0x54, 0x63, 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, - 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x63, 0x48, 0x5d, 0x52, 0x14, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x46, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, + 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x64, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x48, 0x5e, 0x52, 0x17, 0x6c, 0x61, 0x67, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x65, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x65, 0x48, 0x5f, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, + 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, + 0x66, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x66, 0x48, 0x60, 0x52, 0x11, 0x6c, + 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x49, 0x70, 0x76, 0x34, + 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x18, 0x67, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x67, + 0x48, 0x61, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x88, + 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x68, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x68, 0x48, 0x62, 0x52, 0x16, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x69, 0x48, 0x63, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, + 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, + 0x6a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6a, 0x48, 0x64, 0x52, 0x0f, 0x71, + 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, + 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x6b, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6b, 0x48, 0x65, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, + 0x74, 0x31, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x12, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, + 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x6c, 0x48, 0x66, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x54, + 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, + 0x18, 0x6d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6d, 0x48, 0x67, 0x52, 0x11, + 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, + 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x6e, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6e, 0x48, 0x68, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, + 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x6f, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6f, 0x48, 0x69, 0x52, 0x17, 0x71, 0x6f, + 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, + 0x31, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, + 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, + 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x70, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x70, 0x48, 0x6a, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x68, 0x65, 0x6c, + 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x71, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x71, 0x48, 0x6b, 0x52, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, + 0x65, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x72, 0x48, 0x6c, 0x52, + 0x0f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x68, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x73, 0x20, 0x03, 0x28, + 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x73, 0x52, 0x12, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x12, 0x66, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x74, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x74, 0x52, 0x10, 0x66, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x50, 0x61, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x75, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x75, 0x48, 0x6d, 0x52, 0x0a, 0x69, 0x6e, + 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, + 0x61, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x76, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7b, 0x48, 0x6e, 0x52, 0x0d, 0x66, 0x61, + 0x73, 0x74, 0x41, 0x70, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x63, 0x18, 0x77, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7c, 0x48, 0x6f, 0x52, 0x08, 0x6d, 0x69, 0x72, 0x72, 0x6f, + 0x72, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x11, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x78, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x43, 0x4c, 0x43, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7d, 0x48, 0x70, 0x52, + 0x0f, 0x61, 0x63, 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x10, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x43, 0x4c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7e, 0x48, 0x71, 0x52, 0x0e, 0x61, 0x63, 0x6c, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x12, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x64, + 0x65, 0x70, 0x74, 0x68, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7f, + 0x48, 0x72, 0x52, 0x0f, 0x73, 0x72, 0x76, 0x36, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x44, 0x65, + 0x70, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x74, + 0x6c, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x7b, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x6c, 0x76, 0x54, 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x80, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x76, 0x36, 0x54, 0x6c, 0x76, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x41, 0x0a, 0x17, 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x6c, 0x6f, 0x73, + 0x73, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18, 0x7c, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x81, 0x01, 0x48, 0x73, 0x52, 0x14, 0x71, 0x6f, 0x73, + 0x4e, 0x75, 0x6d, 0x4c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x15, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x7d, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x83, 0x01, 0x48, + 0x74, 0x52, 0x12, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x19, 0x70, 0x66, 0x63, 0x5f, + 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0x84, 0x01, 0x48, 0x75, 0x52, 0x15, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, + 0x6c, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x54, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x7f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0x85, 0x01, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x64, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x69, 0x0a, 0x19, 0x70, 0x66, 0x63, 0x5f, + 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x86, 0x01, 0x48, 0x76, 0x52, 0x15, 0x70, 0x66, 0x63, 0x54, 0x63, + 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, + 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x81, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, - 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x72, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x6d, 0x0a, 0x1f, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x1c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x70, 0x69, 0x64, 0x5f, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x74, 0x70, 0x69, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x12, - 0x27, 0x0a, 0x0f, 0x74, 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, - 0x61, 0x6e, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x70, 0x69, 0x64, 0x49, - 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x63, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x85, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x72, 0x63, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x18, 0x63, 0x72, 0x63, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x86, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x63, 0x72, 0x63, 0x52, 0x65, 0x63, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, - 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x66, 0x64, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, - 0x78, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x86, 0x01, 0x0a, 0x27, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x62, - 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x42, - 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x27, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x70, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x87, 0x01, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, + 0x6c, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x70, 0x0a, 0x1f, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x82, 0x01, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x88, 0x01, 0x52, 0x1c, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x0f, + 0x74, 0x70, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, + 0x83, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, 0x01, 0x48, 0x77, 0x52, + 0x0d, 0x74, 0x70, 0x69, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x0f, 0x74, 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0x8a, 0x01, 0x48, 0x78, 0x52, 0x0d, 0x74, 0x70, 0x69, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, + 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x10, 0x63, 0x72, 0x63, 0x5f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8b, 0x01, 0x48, 0x79, 0x52, 0x0e, 0x63, 0x72, 0x63, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, + 0x18, 0x63, 0x72, 0x63, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8c, 0x01, 0x48, 0x7a, 0x52, 0x16, 0x63, 0x72, 0x63, 0x52, 0x65, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, + 0x66, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x87, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8e, 0x01, 0x48, 0x7b, 0x52, 0x12, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x66, 0x64, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x8f, 0x01, 0x48, 0x7c, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x42, 0x66, 0x64, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x89, 0x01, 0x0a, 0x27, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x62, 0x66, 0x64, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x89, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, + 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x90, + 0x01, 0x52, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x22, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x49, 0x70, 0x76, 0x36, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x72, 0x78, 0x18, 0x8b, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x66, 0x64, 0x52, 0x78, 0x12, 0x1d, 0x0a, 0x0a, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x27, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x8a, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x91, 0x01, 0x52, 0x22, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x49, 0x70, 0x76, 0x36, 0x42, 0x66, 0x64, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x29, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x72, 0x78, 0x18, + 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x92, 0x01, 0x48, 0x7d, 0x52, + 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x66, 0x64, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x74, 0x78, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x66, 0x64, 0x54, 0x78, 0x12, 0x38, 0x0a, 0x18, 0x65, - 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, - 0x65, 0x63, 0x6e, 0x45, 0x63, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, - 0x63, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x12, - 0x2d, 0x0a, 0x12, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x78, - 0x6c, 0x61, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2d, - 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x78, - 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, - 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x72, - 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x91, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x4d, 0x69, - 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x1d, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x92, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x1a, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x75, 0x6e, - 0x69, 0x6e, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4f, 0x6e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x0b, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x63, + 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x93, 0x01, 0x48, 0x7e, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, + 0x66, 0x64, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x65, + 0x63, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x94, + 0x01, 0x48, 0x7f, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, + 0x18, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x95, 0x01, 0x48, 0x80, 0x01, 0x52, 0x15, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x12, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x96, 0x01, 0x48, 0x81, 0x01, 0x52, 0x10, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x3a, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x97, 0x01, 0x48, 0x82, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x4d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1a, + 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x98, 0x01, 0x48, 0x83, 0x01, 0x52, 0x17, 0x6d, 0x61, 0x78, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6b, 0x0a, 0x1d, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x92, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x99, 0x01, 0x52, 0x1a, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x1c, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0x9a, 0x01, 0x48, 0x84, 0x01, 0x52, 0x18, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x94, 0x01, 0x20, 0x03, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x9b, + 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x66, 0x0a, 0x1a, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x95, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x17, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, - 0x6f, 0x77, 0x6e, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x53, - 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3b, 0x0a, 0x1a, 0x6e, 0x61, 0x74, 0x5f, 0x7a, + 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x9d, 0x01, 0x52, 0x17, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x9e, 0x01, 0x48, 0x85, 0x01, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x53, 0x68, 0x75, 0x74, + 0x64, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1a, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6e, 0x61, - 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x98, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5f, 0x0a, 0x13, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x73, 0x18, 0x99, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0x9f, 0x01, 0x48, 0x86, 0x01, 0x52, 0x16, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0a, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x98, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa0, 0x01, 0x48, 0x87, 0x01, + 0x52, 0x09, 0x6e, 0x61, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6c, + 0x0a, 0x13, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x5f, 0x62, 0x75, 0x73, 0x18, 0x99, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x75, 0x73, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0xa1, 0x01, 0x48, 0x88, 0x01, 0x52, 0x11, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x10, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x9a, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa2, 0x01, 0x48, 0x89, + 0x01, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x18, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xa5, 0x01, 0x48, 0x8a, 0x01, 0x52, 0x19, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x14, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x9c, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, - 0x75, 0x73, 0x52, 0x11, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x42, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, - 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x9a, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x12, 0x3f, 0x0a, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x18, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa6, 0x01, 0x48, 0x8b, 0x01, 0x52, 0x12, 0x66, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x52, 0x12, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x5c, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x9d, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x19, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, - 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x12, 0x37, 0x0a, 0x17, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x9f, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x15, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x45, 0x0a, 0x1f, 0x66, 0x69, - 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x6e, - 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0xa0, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0xa1, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x66, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x66, 0x69, - 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x6a, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x16, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, - 0x69, 0x6e, 0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xa3, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x14, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x13, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0xa4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x70, 0x6f, 0x72, 0x74, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x6d, 0x0a, - 0x35, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x5f, - 0x74, 0x6f, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0xa5, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x2d, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x36, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0xa6, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xa7, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, - 0x18, 0xa8, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, - 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x19, 0x71, 0x6f, - 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0xa9, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, - 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x4d, 0x61, 0x70, 0x12, 0x44, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, - 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, - 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0xab, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0xac, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, - 0x72, 0x65, 0x73, 0x12, 0x63, 0x0a, 0x17, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xad, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x18, 0xae, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x4f, 0x66, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x4c, - 0x0a, 0x10, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0xaf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x16, + 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa7, 0x01, 0x48, 0x8c, 0x01, 0x52, 0x10, 0x66, 0x69, 0x72, 0x6d, + 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x48, 0x0a, 0x19, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x9e, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa8, 0x01, 0x48, 0x8d, 0x01, 0x52, 0x17, 0x66, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x17, 0x66, 0x69, 0x72, + 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x73, 0x74, 0x6f, 0x70, 0x18, 0x9f, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xa9, 0x01, 0x48, 0x8e, 0x01, 0x52, 0x15, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x52, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x18, 0xa0, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xaa, 0x01, + 0x48, 0x8f, 0x01, 0x52, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xa1, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xab, 0x01, 0x48, 0x90, 0x01, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x16, 0x66, 0x69, + 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xac, 0x01, 0x48, 0x91, 0x01, 0x52, 0x14, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4d, + 0x61, 0x6a, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x16, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xa3, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0xad, 0x01, 0x48, 0x92, 0x01, 0x52, 0x14, 0x66, 0x69, 0x72, 0x6d, 0x77, + 0x61, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x13, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xa4, 0x01, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0xae, 0x01, 0x52, 0x11, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x7a, 0x0a, 0x35, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0xa5, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xaf, + 0x01, 0x48, 0x93, 0x01, 0x52, 0x2d, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x65, + 0x54, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0xa6, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb0, 0x01, 0x48, + 0x94, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x12, 0x6d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0xa7, 0x01, 0x20, 0x03, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb1, 0x01, 0x52, + 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x3f, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0xa8, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb2, 0x01, 0x48, 0x95, 0x01, 0x52, 0x11, 0x71, 0x6f, + 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x19, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, + 0xa9, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb3, 0x01, 0x48, 0x96, 0x01, + 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x71, 0x6f, 0x73, + 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0xaa, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb4, 0x01, 0x48, 0x97, 0x01, 0x52, 0x19, + 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, + 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x09, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0xab, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb5, 0x01, 0x48, 0x98, 0x01, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0xac, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb6, 0x01, 0x48, 0x99, 0x01, 0x52, 0x0e, 0x6d, 0x61, + 0x78, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x66, 0x0a, 0x17, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xad, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb7, + 0x01, 0x52, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x18, 0xae, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb8, 0x01, 0x48, + 0x9a, 0x01, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xaf, + 0x01, 0x20, 0x03, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb9, 0x01, 0x52, 0x0e, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0xb0, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x10, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xb1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x0e, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x3d, 0x0a, 0x1b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x6d, 0x61, 0x5f, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0xb2, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x6d, - 0x61, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x62, 0x0a, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xb3, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, - 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, - 0x12, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, 0x17, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xb4, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x13, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0xb5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x50, 0x0a, 0x25, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6d, 0x61, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, - 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xb6, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x44, 0x6d, 0x61, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0xb7, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x72, - 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x33, 0x0a, 0x15, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x74, 0x5f, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x18, 0xb8, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, 0x76, 0x61, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0xb0, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xba, 0x01, 0x48, 0x9b, 0x01, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, + 0x66, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x10, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0xb1, 0x01, 0x20, 0x03, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xbb, + 0x01, 0x52, 0x0e, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x4a, 0x0a, 0x1b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x6d, 0x61, 0x5f, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0xb2, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xbc, 0x01, 0x48, 0x9c, + 0x01, 0x52, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x6d, 0x61, 0x4d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, + 0x14, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xb3, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x6f, + 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xbd, 0x01, 0x48, 0x9d, 0x01, 0x52, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x17, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xb4, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0xbe, 0x01, 0x48, 0x9e, 0x01, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x13, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xb5, 0x01, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xbf, 0x01, 0x52, 0x11, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x25, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x64, 0x6d, 0x61, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xb6, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0xc0, 0x01, 0x48, 0x9f, 0x01, 0x52, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6d, 0x61, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0f, 0x70, + 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0xb7, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc1, 0x01, 0x48, 0xa0, 0x01, 0x52, + 0x0d, 0x70, 0x72, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, + 0x6e, 0x61, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0xb8, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc2, 0x01, 0x48, 0xa1, 0x01, 0x52, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x33, 0x0a, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6e, - 0x61, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0xb9, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6e, 0x61, 0x70, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3e, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x64, 0x6e, 0x61, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0xb9, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc3, 0x01, 0x48, 0xa2, 0x01, 0x52, 0x13, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6e, 0x61, 0x70, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x70, 0x74, 0x5f, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x18, 0xba, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x70, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x14, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x6d, - 0x64, 0x69, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xbb, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, - 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x4d, 0x64, - 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x1d, 0x6d, 0x79, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0xba, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xc4, 0x01, 0x48, 0xa3, 0x01, 0x52, 0x18, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x70, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x37, 0x0a, 0x14, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x69, 0x6f, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xbb, 0x01, 0x20, 0x03, 0x28, + 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc5, 0x01, 0x52, 0x11, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x4d, + 0x64, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x1d, 0x6d, + 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0xbc, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc6, 0x01, 0x48, 0xa4, 0x01, 0x52, 0x19, 0x6d, + 0x79, 0x4d, 0x61, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x1d, 0x6d, + 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0xbd, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc7, 0x01, 0x48, 0xa5, 0x01, 0x52, 0x19, 0x6d, + 0x79, 0x4d, 0x61, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0b, 0x6d, + 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xbe, 0x01, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc8, 0x01, 0x52, 0x09, 0x6d, 0x79, 0x4d, 0x61, 0x63, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x18, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, + 0x5f, 0x6d, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, + 0xbf, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc9, 0x01, 0x48, 0xa6, 0x01, + 0x52, 0x15, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x79, 0x4d, 0x61, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x18, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x65, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0xc0, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xca, 0x01, 0x48, 0xa7, 0x01, 0x52, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x20, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6f, 0x66, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0xc1, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0xcb, 0x01, 0x48, 0xa8, 0x01, 0x52, 0x1c, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4f, 0x66, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0xc2, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xcc, 0x01, 0x48, 0xa9, 0x01, 0x52, 0x1b, 0x71, 0x6f, + 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, + 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x24, + 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, + 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x6d, 0x61, 0x70, 0x18, 0xc3, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xcd, 0x01, 0x48, 0xaa, 0x01, 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, + 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, + 0x63, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0xc4, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xce, 0x01, 0x48, 0xab, 0x01, 0x52, 0x0d, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, + 0x0a, 0x11, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x18, 0xc5, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xcf, + 0x01, 0x48, 0xac, 0x01, 0x52, 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x54, 0x61, 0x67, + 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, + 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x64, 0x62, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x6c, 0x33, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x33, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x6c, + 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6f, 0x66, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x42, 0x1b, + 0x0a, 0x19, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x70, + 0x75, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6f, 0x6e, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x73, + 0x6f, 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, + 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x23, 0x0a, + 0x21, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x66, 0x64, 0x62, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x24, 0x0a, 0x22, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, + 0x1c, 0x0a, 0x1a, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, + 0x63, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x31, 0x71, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x61, 0x63, 0x6c, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x35, 0x0a, 0x33, 0x5f, 0x71, 0x6f, + 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, + 0x42, 0x2f, 0x0a, 0x2d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, + 0x6e, 0x75, 0x6d, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x1d, 0x0a, + 0x1b, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x1f, 0x0a, 0x1d, + 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x1f, 0x0a, + 0x1d, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x20, + 0x0a, 0x1e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x28, 0x0a, 0x26, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x64, + 0x62, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, + 0x70, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x64, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x79, 0x5f, 0x73, 0x69, 0x64, 0x5f, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, + 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x61, 0x72, + 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6d, + 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x6e, 0x76, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6e, + 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x62, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, + 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, + 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x64, 0x62, + 0x5f, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x21, 0x0a, 0x1f, 0x5f, + 0x66, 0x64, 0x62, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, + 0x0a, 0x21, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x65, 0x63, 0x6d, + 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x65, 0x63, 0x6d, + 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, + 0x65, 0x65, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, + 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6c, 0x61, 0x67, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x74, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, + 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x19, 0x0a, 0x17, 0x5f, + 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, + 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x42, + 0x20, 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, + 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, + 0x61, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x68, + 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x74, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x63, 0x6c, + 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x64, + 0x65, 0x70, 0x74, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, + 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, + 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x66, 0x63, + 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x5f, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x63, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x72, 0x63, 0x5f, 0x72, 0x65, 0x63, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x62, + 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x72, 0x78, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x66, 0x64, 0x5f, 0x74, 0x78, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x68, 0x75, + 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, + 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, + 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x66, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, + 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x38, 0x0a, 0x36, 0x5f, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, + 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, + 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, + 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x19, 0x0a, 0x17, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x6d, + 0x61, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, + 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x28, 0x0a, 0x26, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6d, 0x61, + 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6e, + 0x61, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x6e, + 0x61, 0x70, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6d, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0xbc, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x19, 0x6d, 0x79, 0x4d, 0x61, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, - 0x1d, 0x6d, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0xbd, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x6d, 0x79, 0x4d, 0x61, 0x63, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0xbe, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x6d, 0x79, 0x4d, 0x61, 0x63, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, - 0x64, 0x5f, 0x6d, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x18, 0xbf, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, - 0x65, 0x64, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x38, - 0x0a, 0x18, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x79, 0x5f, 0x6d, - 0x61, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0xc0, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x79, 0x4d, 0x61, - 0x63, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x20, 0x6d, 0x61, 0x78, 0x5f, + 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x20, 0x0a, 0x1e, 0x5f, + 0x6d, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x79, 0x5f, 0x6d, + 0x61, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x5f, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0xc1, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x46, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, - 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0xc2, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x71, 0x6f, - 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, - 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x4d, 0x0a, 0x24, 0x71, 0x6f, 0x73, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x23, 0x0a, 0x21, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, - 0x70, 0x18, 0xc3, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, - 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, - 0x63, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0xc4, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x74, 0x61, - 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0xc5, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, - 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x54, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x22, 0xc9, 0x05, - 0x0a, 0x15, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x6c, - 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, - 0x65, 0x6e, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x15, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, - 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, - 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x64, 0x65, - 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, - 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x17, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, + 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, + 0x70, 0x73, 0x65, 0x63, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x5f, + 0x74, 0x70, 0x69, 0x64, 0x22, 0x88, 0x07, 0x0a, 0x15, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x4d, + 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, + 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, + 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, + 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, + 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x67, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x52, 0x0c, 0x64, + 0x65, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x77, 0x0a, 0x1b, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, - 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xef, 0x02, 0x0a, 0x13, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, - 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x12, - 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x76, 0x6f, - 0x71, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x4f, 0x66, 0x56, 0x6f, 0x71, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x71, 0x6f, 0x73, - 0x5f, 0x76, 0x6f, 0x71, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0a, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x04, 0x52, 0x17, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, + 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x08, 0x48, 0x05, 0x52, 0x0d, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, + 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x06, 0x52, 0x11, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, + 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, + 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x22, + 0xf5, 0x03, 0x0a, 0x13, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x12, 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x76, + 0x6f, 0x71, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x56, 0x6f, + 0x71, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x71, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x52, 0x0a, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x0a, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, - 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x22, 0x53, 0x0a, 0x14, 0x54, - 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x42, 0x69, 0x6e, - 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x22, 0xea, 0x02, 0x0a, 0x0c, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x57, 0x0a, 0x16, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x12, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x10, 0x69, - 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, - 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x63, 0x0a, 0x18, 0x74, 0x61, 0x6d, 0x5f, + 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x05, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, + 0x66, 0x5f, 0x76, 0x6f, 0x71, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x22, 0x95, 0x02, 0x0a, 0x0c, 0x54, 0x61, 0x6d, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x16, 0x74, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, 0x14, + 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x65, 0x0a, 0x18, 0x74, 0x61, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x74, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x64, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xf1, 0x01, - 0x0a, 0x15, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x12, 0x15, - 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, - 0x6f, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x97, 0x02, 0x0a, 0x11, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, - 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, - 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x17, 0x54, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x71, 0x6f, 0x73, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x71, 0x6f, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, - 0xf5, 0x01, 0x0a, 0x1a, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x25, + 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x52, 0x14, 0x74, 0x61, 0x6d, 0x42, 0x69, + 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0xa7, 0x03, 0x0a, 0x15, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, + 0x6f, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, + 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x74, 0x72, + 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x68, 0x6f, 0x73, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, + 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x11, 0x54, 0x61, + 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0a, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x02, 0x52, 0x09, 0x64, 0x73, + 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0b, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x71, 0x6f, 0x73, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0d, 0x71, 0x6f, 0x73, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x71, 0x6f, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x88, 0x03, 0x0a, 0x1a, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x0e, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, - 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, - 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x6f, - 0x77, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x61, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x61, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x62, 0x73, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x62, 0x73, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x55, 0x6e, 0x69, - 0x74, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xc1, 0x09, 0x0a, 0x0f, 0x54, 0x61, 0x6d, 0x49, - 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0f, 0x69, 0x6f, 0x61, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x6f, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x5f, 0x70, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, - 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x69, - 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, - 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, - 0x62, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x62, 0x31, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x62, 0x32, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x50, - 0x62, 0x32, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x63, 0x65, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, - 0x44, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x6c, - 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x6c, 0x33, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, - 0x4c, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, - 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x19, 0x70, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x70, 0x34, 0x49, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x38, 0x0a, - 0x18, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, - 0x30, 0x0a, 0x14, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, - 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x66, - 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, - 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x14, 0x54, - 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x5d, 0x0a, 0x16, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x5f, 0x6d, - 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, - 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, - 0x74, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x93, 0x03, 0x0a, 0x12, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x42, 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x16, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x5f, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, + 0x68, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x0d, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, + 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x0c, 0x6c, 0x6f, 0x77, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, + 0x12, 0x23, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x04, 0x72, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x61, 0x62, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, + 0x08, 0x61, 0x62, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x04, + 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, + 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x69, + 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x62, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xbf, 0x0f, 0x0a, 0x0f, 0x54, + 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x40, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x61, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x0b, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xae, 0x02, 0x0a, 0x15, 0x54, 0x61, 0x6d, - 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0b, 0x74, 0x61, - 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x12, 0x74, 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x08, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x69, 0x6f, 0x61, 0x6d, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6f, 0x61, 0x6d, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x11, 0x69, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, + 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x62, + 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, + 0x0e, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x62, 0x31, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x63, 0x65, 0x5f, 0x70, 0x62, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, + 0x65, 0x50, 0x62, 0x32, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, + 0x52, 0x14, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x73, 0x63, + 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x06, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, + 0x07, 0x52, 0x06, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, + 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x33, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x63, 0x65, 0x4c, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x2c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0b, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0c, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x19, 0x70, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x16, 0x70, 0x34, 0x49, 0x6e, 0x74, + 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x6d, 0x61, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x16, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0e, 0x48, 0x0d, 0x52, 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, + 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, + 0x48, 0x0e, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x12, 0x66, + 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, + 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x08, 0x61, 0x63, 0x6c, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x14, 0x48, 0x13, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, + 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x3a, 0x0a, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x16, 0x48, 0x15, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1b, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x16, 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x18, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x18, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, + 0x63, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x17, 0x52, + 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x18, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x69, 0x6f, 0x61, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x62, 0x31, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x62, 0x32, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x33, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x34, 0x5f, 0x69, 0x6e, + 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, + 0x74, 0x6d, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, + 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x9b, 0x01, 0x0a, + 0x14, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x68, 0x0a, 0x16, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, + 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, + 0x6d, 0x54, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x12, 0x74, 0x61, 0x6d, 0x54, 0x65, 0x6c, + 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x74, 0x68, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa2, 0x04, 0x0a, 0x12, 0x54, + 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x10, 0x74, 0x61, 0x6d, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x93, 0x07, 0x0a, 0x13, 0x54, 0x61, - 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x55, 0x0a, 0x12, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, - 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, - 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x74, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x5f, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x69, 0x6e, 0x74, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x18, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x44, 0x0a, - 0x1f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x48, 0x0a, 0x21, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x15, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4f, 0x66, 0x42, 0x69, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x5f, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x52, 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x05, 0x71, + 0x75, 0x6f, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x11, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, + 0x52, 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x1b, + 0x0a, 0x19, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x6e, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x71, 0x75, 0x6f, 0x74, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0xb8, 0x02, 0x0a, 0x15, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x74, 0x61, 0x6d, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x60, 0x0a, 0x12, 0x74, 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x10, 0x74, + 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x38, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, + 0x6e, 0x69, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xf2, 0x0b, 0x0a, 0x13, 0x54, + 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x60, 0x0a, 0x12, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x10, 0x74, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x74, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x15, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x1f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x1b, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x21, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x1d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x46, 0x0a, - 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6d, 0x75, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x1a, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, - 0x62, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x61, - 0x62, 0x72, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x28, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x24, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x74, - 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, - 0x0a, 0x08, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x51, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x65, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, - 0x6e, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, - 0x6e, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, - 0x8c, 0x02, 0x0a, 0x15, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x74, 0x72, 0x61, + 0x75, 0x61, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x51, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x14, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6d, 0x75, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, + 0x08, 0x52, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, + 0x61, 0x62, 0x72, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, + 0x1a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x28, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, + 0x24, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x66, 0x61, 0x62, 0x72, + 0x69, 0x63, 0x5f, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, + 0x48, 0x0b, 0x52, 0x07, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x51, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x08, 0x6e, 0x65, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, + 0x48, 0x0d, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x08, 0x6d, 0x61, 0x74, + 0x68, 0x46, 0x75, 0x6e, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x10, 0x48, 0x0f, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x74, 0x5f, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x23, + 0x0a, 0x21, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x23, 0x0a, + 0x21, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x1d, 0x0a, + 0x1b, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x2b, 0x0a, 0x29, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x61, + 0x62, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x65, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, + 0x63, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x22, + 0x90, 0x03, 0x0a, 0x15, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x72, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x5b, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, - 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0x87, - 0x0c, 0x0a, 0x0f, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x75, 0x6e, 0x64, - 0x65, 0x72, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, - 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x52, - 0x08, 0x70, 0x65, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x20, 0x0a, 0x0c, 0x65, - 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4a, 0x0a, - 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x4d, 0x0a, - 0x0f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x65, - 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0e, - 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x56, - 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x47, - 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x65, - 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, - 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x45, - 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x4f, - 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x46, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, - 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, - 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, - 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, - 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, - 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x54, 0x0a, 0x15, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x12, 0x74, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, - 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x6c, - 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x14, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, - 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, - 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x14, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, - 0x08, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x73, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4e, 0x0a, 0x12, 0x69, 0x70, 0x73, 0x65, - 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, - 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x07, + 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x64, 0x73, + 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x66, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, + 0x68, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x03, 0x6d, + 0x74, 0x75, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, + 0x74, 0x75, 0x22, 0x91, 0x10, 0x0a, 0x0f, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x12, 0x75, 0x6e, 0x64, 0x65, + 0x72, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x11, 0x75, 0x6e, + 0x64, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x65, + 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xf8, 0x04, 0x0a, 0x17, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x65, 0x63, 0x6e, 0x4b, 0x65, 0x79, 0x12, - 0x1d, 0x0a, 0x0a, 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6f, 0x65, 0x63, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x75, 0x65, 0x63, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x75, 0x65, 0x63, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x65, 0x63, - 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x75, - 0x65, 0x63, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, - 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x0a, - 0x76, 0x6e, 0x69, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x76, 0x6e, 0x69, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x6e, - 0x69, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x76, 0x6e, 0x69, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x4b, 0x65, 0x79, - 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x76, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x17, 0x76, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x76, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x73, 0x69, 0x64, 0x49, 0x64, 0x4b, - 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x73, 0x69, 0x64, 0x49, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc7, 0x03, 0x0a, 0x1d, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, 0x12, 0x43, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, + 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x08, 0x70, 0x65, + 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x65, 0x6e, 0x63, + 0x61, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x72, + 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x05, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x74, 0x49, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x64, 0x73, 0x74, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, - 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, - 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x72, 0x63, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, - 0x12, 0x42, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, + 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x6e, + 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, + 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x6e, 0x63, + 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, + 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, + 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0a, 0x48, 0x09, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x56, 0x61, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x61, 0x70, + 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x0b, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, + 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x49, - 0x0a, 0x0e, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x0c, 0x69, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x70, 0x73, - 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x22, 0xd0, 0x01, 0x0a, 0x0c, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, - 0x66, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x61, 0x73, 0x6b, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x4d, - 0x61, 0x73, 0x6b, 0x22, 0xa2, 0x01, 0x0a, 0x11, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x75, 0x64, 0x66, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, + 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x45, + 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x65, 0x6e, 0x63, + 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, + 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, + 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, + 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x52, 0x0c, 0x64, + 0x65, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x64, + 0x65, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, + 0x0e, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, - 0x75, 0x64, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, - 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xeb, 0x01, 0x0a, 0x11, 0x55, 0x64, 0x66, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3c, - 0x0a, 0x07, 0x6c, 0x32, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x6c, 0x32, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x07, - 0x6c, 0x33, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x0f, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x61, + 0x70, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, + 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x13, 0x52, 0x12, 0x74, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, + 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, + 0x48, 0x10, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x14, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, + 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, + 0x11, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x12, 0x52, 0x0d, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, + 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x13, + 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, + 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x14, + 0x52, 0x07, 0x73, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, + 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x19, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x52, 0x0f, + 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x75, 0x6e, 0x64, + 0x65, 0x72, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, + 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x6e, 0x63, + 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, + 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x6e, + 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x6f, 0x6f, + 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, + 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x61, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x87, 0x01, 0x0a, 0x12, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x43, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x09, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x22, 0xc3, 0x08, 0x0a, 0x17, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x0f, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x08, 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x6f, 0x65, 0x63, 0x6e, 0x4b, + 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x03, 0x52, 0x09, 0x6f, 0x65, 0x63, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x08, 0x75, 0x65, 0x63, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x07, 0x75, 0x65, 0x63, 0x6e, 0x4b, + 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x75, 0x65, 0x63, 0x6e, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x05, 0x52, 0x09, 0x75, 0x65, 0x63, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0b, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x09, 0x76, 0x6c, + 0x61, 0x6e, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0b, 0x76, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0a, 0x76, 0x6e, 0x69, + 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x08, 0x76, 0x6e, 0x69, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x76, 0x6e, 0x69, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, + 0x52, 0x0a, 0x76, 0x6e, 0x69, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0b, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x0f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, + 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x12, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x40, 0x0a, 0x17, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x14, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x09, + 0x76, 0x73, 0x69, 0x64, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, + 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x0b, 0x76, 0x73, 0x69, + 0x64, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, + 0x65, 0x63, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x75, 0x65, 0x63, 0x6e, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x6e, 0x69, + 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x76, 0x6e, 0x69, 0x5f, + 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x76, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, + 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc9, 0x05, 0x0a, 0x1d, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x04, 0x76, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4d, 0x61, + 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x05, 0x73, + 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x69, + 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x73, 0x72, 0x63, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x88, + 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x08, 0x48, 0x07, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x0c, 0x69, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0e, + 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0d, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x22, 0x8d, 0x02, 0x0a, 0x0c, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x06, 0x6c, 0x33, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x67, 0x72, - 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x07, 0x67, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xea, 0x03, 0x0a, 0x16, 0x56, 0x69, 0x72, 0x74, 0x75, - 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x42, 0x61, 0x73, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, + 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x11, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x75, 0x64, 0x66, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x52, 0x07, 0x75, 0x64, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x02, 0x0a, 0x11, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x07, 0x6c, 0x32, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x32, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x07, 0x6c, 0x33, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x33, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x08, + 0x67, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x67, 0x72, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x03, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x6c, 0x32, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, + 0x33, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x22, 0xea, 0x05, 0x0a, 0x16, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x0e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x64, 0x0a, 0x1c, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, + 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x6f, 0x0a, 0x1c, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, + 0x6c, 0x31, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x03, 0x52, 0x19, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x74, + 0x6c, 0x31, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x7a, 0x0a, 0x22, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x1e, 0x76, 0x69, 0x6f, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, + 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, + 0x33, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, 0x6c, 0x31, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x25, 0x0a, 0x23, + 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xd7, 0x11, + 0x0a, 0x0d, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0a, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x15, 0x6d, 0x61, + 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x01, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x73, 0x74, 0x70, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0b, 0x73, 0x74, 0x70, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x72, 0x6e, + 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x19, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x74, 0x6c, 0x31, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x22, 0x76, - 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1e, 0x76, 0x69, - 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x22, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1e, 0x75, - 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x33, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x22, 0xef, 0x0b, 0x0a, 0x0d, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x42, - 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, - 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, - 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x65, 0x61, - 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x69, - 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, - 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x16, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, - 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x69, 0x0a, 0x1a, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, - 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x69, 0x70, - 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, - 0x6e, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4e, 0x6f, 0x6e, 0x49, 0x70, - 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x12, 0x49, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x49, 0x0a, - 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x49, 0x70, 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x27, 0x75, 0x6e, 0x6b, 0x6e, + 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, + 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, + 0x48, 0x04, 0x52, 0x16, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, + 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, + 0x1a, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, + 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, 0x52, 0x16, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x63, + 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, + 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x4e, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x22, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, + 0x52, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, + 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x54, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x49, + 0x70, 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x27, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x63, 0x61, 0x73, 0x74, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1f, 0x0a, - 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1d, - 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x77, 0x0a, 0x22, 0x75, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, - 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, - 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, + 0x09, 0x52, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, + 0x63, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0b, + 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, + 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0e, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x7b, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x6f, - 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x20, 0x75, + 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x86, 0x01, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, + 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, + 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0f, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, + 0x0a, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x10, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, - 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x41, 0x0a, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x6c, 0x0a, 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x32, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, - 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x13, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, + 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x77, 0x0a, 0x1c, + 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, + 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x11, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x12, 0x52, 0x13, 0x62, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x49, 0x67, 0x6d, 0x70, 0x53, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x13, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x11, - 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, + 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, + 0x13, 0x52, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x67, 0x6d, 0x70, 0x53, 0x6e, 0x6f, + 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x16, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, + 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, + 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1d, 0x0a, 0x1b, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, + 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x42, 0x2a, 0x0a, 0x28, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x69, + 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1f, 0x0a, 0x1d, + 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, + 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x13, 0x56, 0x6c, 0x61, 0x6e, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x67, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, - 0x22, 0xe5, 0x0a, 0x0a, 0x0d, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, - 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x64, - 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x72, 0x6f, 0x70, - 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x79, - 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0c, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x30, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, - 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, - 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, - 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x72, 0x6f, - 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x67, + 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xa1, 0x12, 0x0a, 0x0d, 0x57, 0x72, 0x65, + 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x0c, 0x67, 0x72, + 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x11, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, + 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, + 0x0a, 0x16, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, + 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x14, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x72, 0x6f, + 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, + 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, + 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x17, 0x79, 0x65, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, + 0x48, 0x07, 0x52, 0x15, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, + 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x72, - 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, - 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x12, 0x72, 0x65, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x46, 0x0a, - 0x0d, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x45, 0x63, 0x6e, - 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x65, 0x63, 0x6e, 0x4d, 0x61, 0x72, - 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, - 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, - 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x35, 0x0a, 0x17, - 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x65, - 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, - 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x09, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, + 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x69, + 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x11, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, + 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, 0x6f, 0x70, + 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x12, 0x72, 0x65, 0x64, 0x44, + 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0d, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x45, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x0b, 0x65, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x65, 0x63, 0x6e, 0x5f, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, + 0x52, 0x14, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x65, 0x63, 0x6e, + 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, + 0x48, 0x0f, 0x52, 0x14, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x65, + 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, + 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x17, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x37, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, - 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x63, 0x6e, - 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x63, 0x6e, - 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, - 0x6f, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, - 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, - 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x72, - 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x52, 0x65, - 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x44, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, - 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x44, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x15, 0x65, + 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, + 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, + 0x12, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x65, + 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, + 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x13, 0x52, 0x18, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, + 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, + 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x12, 0x65, 0x63, + 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x15, 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, + 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x16, 0x52, 0x15, 0x65, 0x63, 0x6e, + 0x52, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x18, 0x48, 0x17, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, - 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4a, 0x0a, 0x22, - 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, - 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, - 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2a, 0xbe, 0x0f, 0x0a, 0x0d, 0x41, 0x63, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, - 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, - 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, - 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x44, - 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, - 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, - 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, - 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, - 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x41, - 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, - 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, - 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x18, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x65, 0x63, 0x6e, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x19, 0x52, 0x1e, 0x65, 0x63, 0x6e, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, + 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, + 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x79, + 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, + 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, + 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, + 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x63, + 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x65, 0x63, 0x6e, 0x5f, + 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1e, 0x0a, 0x1c, + 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x72, 0x6b, + 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x72, + 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x22, 0x0a, + 0x20, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, + 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, + 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2a, 0xbe, 0x0f, 0x0a, + 0x0d, 0x41, 0x63, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, + 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x1f, 0x0a, + 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x02, 0x12, 0x21, + 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x05, 0x12, + 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x08, 0x12, - 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x10, 0x09, + 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, - 0x4c, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x43, 0x10, 0x0b, 0x12, - 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, - 0x4c, 0x4f, 0x52, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4e, - 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x0d, 0x12, 0x26, 0x0a, 0x22, - 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, - 0x52, 0x49, 0x10, 0x0e, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x45, - 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x0f, 0x12, 0x26, 0x0a, 0x22, 0x41, - 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x45, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, - 0x49, 0x10, 0x10, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x49, 0x44, 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, - 0x5f, 0x50, 0x52, 0x49, 0x10, 0x12, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x52, - 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x13, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, - 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x15, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, + 0x53, 0x10, 0x08, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, + 0x45, 0x52, 0x10, 0x09, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, + 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x4c, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, + 0x43, 0x10, 0x0b, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, + 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x0d, + 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x0e, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x17, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x0f, 0x12, + 0x26, 0x0a, 0x22, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x10, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, + 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x12, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, - 0x54, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x18, 0x12, 0x1c, 0x0a, 0x18, + 0x54, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x13, 0x12, 0x1f, 0x0a, 0x1b, 0x41, + 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x45, 0x54, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x19, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, - 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, - 0x54, 0x5f, 0x45, 0x43, 0x4e, 0x10, 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4c, - 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1b, 0x12, 0x23, 0x0a, 0x1f, + 0x53, 0x45, 0x54, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x15, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, - 0x1c, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, - 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x10, 0x1d, 0x12, 0x2e, 0x0a, 0x2a, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, - 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x10, 0x1e, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x4d, 0x45, - 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x1f, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x4c, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, - 0x49, 0x53, 0x54, 0x10, 0x20, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, - 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x21, 0x12, 0x24, 0x0a, 0x20, 0x41, - 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x45, 0x54, 0x5f, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x10, - 0x22, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, - 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x10, 0x23, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, - 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x24, 0x12, 0x2b, 0x0a, - 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x25, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x43, - 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, - 0x45, 0x4c, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x26, 0x12, 0x2c, 0x0a, 0x28, + 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, - 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x27, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, - 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, - 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x28, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x4c, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x4e, 0x41, - 0x54, 0x10, 0x29, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, - 0x54, 0x10, 0x2a, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, - 0x45, 0x10, 0x2b, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x2c, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, - 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x53, 0x10, 0x2d, 0x12, 0x29, - 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x49, - 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x53, 0x10, 0x2e, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x4c, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, - 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x2f, 0x12, 0x27, 0x0a, - 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x10, 0x30, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, - 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x31, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4c, - 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x44, 0x10, 0x32, 0x12, 0x24, 0x0a, 0x20, + 0x53, 0x45, 0x54, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x17, 0x12, 0x20, + 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x18, + 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x19, 0x12, 0x1b, + 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x43, 0x4e, 0x10, 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x41, + 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x45, 0x54, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1b, + 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x1c, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x1d, 0x12, 0x2e, 0x0a, 0x2a, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x1e, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x43, + 0x4c, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x1f, 0x12, 0x2a, 0x0a, + 0x26, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x20, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, + 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x21, 0x12, + 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4c, 0x45, + 0x41, 0x52, 0x4e, 0x10, 0x22, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, + 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x10, 0x23, 0x12, 0x24, 0x0a, 0x20, 0x41, + 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, + 0x24, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x25, 0x12, 0x30, + 0x0a, 0x2c, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x26, + 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x41, + 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x27, 0x12, 0x2b, + 0x0a, 0x27, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x4c, + 0x4c, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x28, 0x12, 0x1a, 0x0a, 0x16, 0x41, + 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x29, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x49, + 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x2a, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x2b, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x52, + 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x2c, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x45, 0x54, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x44, - 0x10, 0x33, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x56, 0x52, 0x46, 0x10, 0x34, 0x12, - 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, - 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x35, 0x2a, 0xff, 0x01, 0x0a, 0x10, 0x41, 0x63, - 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, - 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, - 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, - 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, - 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x47, 0x10, 0x02, 0x12, 0x1c, - 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, - 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, - 0x46, 0x41, 0x43, 0x45, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, - 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, - 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x46, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x41, - 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x06, 0x2a, 0x9f, 0x01, 0x0a, 0x0d, - 0x41, 0x63, 0x6c, 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x12, 0x20, 0x0a, - 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, - 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, - 0x5f, 0x4f, 0x50, 0x5f, 0x4e, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, - 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x5f, 0x49, 0x4e, - 0x54, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x5f, 0x49, 0x4f, 0x41, 0x4d, 0x10, 0x03, 0x12, 0x1d, - 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, - 0x4f, 0x50, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x43, 0x41, 0x52, 0x44, 0x10, 0x04, 0x2a, 0xa9, 0x01, - 0x0a, 0x09, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x17, 0x41, - 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x53, + 0x10, 0x2d, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x53, 0x10, 0x2e, 0x12, 0x22, 0x0a, + 0x1e, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, + 0x2f, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x30, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, + 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, + 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x31, 0x12, 0x23, 0x0a, 0x1f, 0x41, + 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x45, 0x54, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x44, 0x10, 0x32, + 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, + 0x48, 0x5f, 0x49, 0x44, 0x10, 0x33, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x56, 0x52, + 0x46, 0x10, 0x34, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, + 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x35, 0x2a, 0xff, 0x01, + 0x0a, 0x10, 0x41, 0x63, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x42, + 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, + 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x47, + 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x03, + 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, + 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x46, 0x10, 0x05, 0x12, + 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x06, 0x2a, + 0x9f, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x6c, 0x44, 0x74, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x4f, + 0x70, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, + 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, + 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x5f, 0x4e, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, + 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, + 0x50, 0x5f, 0x49, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x44, + 0x54, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x5f, 0x49, 0x4f, 0x41, 0x4d, + 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x46, + 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x50, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x43, 0x41, 0x52, 0x44, 0x10, + 0x04, 0x2a, 0xa9, 0x01, 0x0a, 0x09, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x46, 0x72, 0x61, 0x67, 0x12, + 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, + 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x41, 0x4e, 0x59, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, + 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x41, + 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x46, + 0x52, 0x41, 0x47, 0x5f, 0x4f, 0x52, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, + 0x10, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x48, 0x45, 0x41, + 0x44, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, + 0x41, 0x47, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x05, 0x2a, 0x9c, 0x02, + 0x0a, 0x09, 0x41, 0x63, 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, + 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x43, 0x4c, 0x5f, - 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x18, 0x0a, - 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x4e, 0x4f, 0x4e, - 0x5f, 0x46, 0x52, 0x41, 0x47, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x49, - 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, - 0x4f, 0x52, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x43, 0x4c, - 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x04, 0x12, - 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x5f, 0x4e, - 0x4f, 0x4e, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x05, 0x2a, 0x9c, 0x02, 0x0a, 0x09, 0x41, 0x63, - 0x6c, 0x49, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x49, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x43, 0x4c, - 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, - 0x12, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, - 0x5f, 0x49, 0x50, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x41, 0x4e, 0x59, 0x10, 0x04, 0x12, 0x18, - 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, - 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x43, 0x4c, 0x5f, - 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x41, 0x4e, 0x59, 0x10, - 0x06, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x41, - 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x50, 0x10, 0x08, - 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x52, 0x50, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x09, 0x12, 0x19, 0x0a, - 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x50, - 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x10, 0x0a, 0x2a, 0xda, 0x01, 0x0a, 0x0c, 0x41, 0x63, 0x6c, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x4c, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x34, 0x5f, 0x53, - 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x01, 0x12, - 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x41, - 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, - 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, - 0x41, 0x4e, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, - 0x4e, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4c, 0x45, 0x4e, - 0x47, 0x54, 0x48, 0x10, 0x05, 0x2a, 0xa8, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x6c, 0x53, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, - 0x11, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, - 0x53, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, - 0x45, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, - 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, - 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, - 0x47, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, - 0x2a, 0x81, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, - 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x10, - 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4c, 0x4c, - 0x45, 0x4c, 0x10, 0x02, 0x2a, 0xc9, 0x06, 0x0a, 0x03, 0x41, 0x70, 0x69, 0x12, 0x13, 0x0a, 0x0f, - 0x41, 0x50, 0x49, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x41, 0x49, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, - 0x49, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, - 0x49, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, - 0x46, 0x44, 0x42, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x56, 0x4c, 0x41, - 0x4e, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x50, 0x49, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, - 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x41, - 0x50, 0x49, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x50, - 0x49, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, - 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x50, 0x49, 0x5f, 0x52, 0x4f, 0x55, 0x54, - 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x10, - 0x0a, 0x0c, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x10, 0x0b, - 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x0c, 0x12, 0x0e, 0x0a, - 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x10, 0x0d, 0x12, 0x0e, 0x0a, - 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0e, 0x12, 0x14, 0x0a, - 0x10, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x10, 0x0f, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x54, 0x50, 0x10, 0x10, - 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x4c, 0x41, 0x47, 0x10, 0x11, 0x12, 0x0f, 0x0a, - 0x0b, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x10, 0x12, 0x12, 0x0c, - 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x10, 0x13, 0x12, 0x0f, 0x0a, 0x0b, - 0x41, 0x50, 0x49, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x14, 0x12, 0x0d, 0x0a, - 0x09, 0x41, 0x50, 0x49, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x15, 0x12, 0x11, 0x0a, 0x0d, - 0x41, 0x50, 0x49, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x10, 0x16, 0x12, - 0x17, 0x0a, 0x13, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x17, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, - 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0x18, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, - 0x48, 0x41, 0x53, 0x48, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x55, 0x44, - 0x46, 0x10, 0x1a, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, - 0x4c, 0x10, 0x1b, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x10, - 0x1c, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x10, 0x1d, 0x12, - 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x49, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x50, 0x49, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x50, 0x49, 0x5f, 0x49, 0x50, - 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x20, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, - 0x49, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x10, 0x21, 0x12, 0x0e, 0x0a, - 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x10, 0x22, 0x12, 0x0b, 0x0a, - 0x07, 0x41, 0x50, 0x49, 0x5f, 0x54, 0x41, 0x4d, 0x10, 0x23, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, - 0x49, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x10, 0x24, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, - 0x4d, 0x50, 0x4c, 0x53, 0x10, 0x25, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x44, 0x54, - 0x45, 0x4c, 0x10, 0x26, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x46, 0x44, 0x10, - 0x27, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x50, 0x49, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x28, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, - 0x49, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x50, 0x49, 0x5f, 0x43, - 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x2a, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x50, 0x49, 0x5f, - 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x2b, 0x12, - 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x10, 0x2c, 0x12, - 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x10, 0x2d, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, - 0x41, 0x43, 0x10, 0x2e, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x50, 0x49, 0x5f, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x10, 0x2f, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x30, - 0x2a, 0xae, 0x01, 0x0a, 0x14, 0x42, 0x66, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x46, 0x44, - 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x46, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, - 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x49, - 0x4e, 0x5f, 0x49, 0x50, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x46, 0x44, 0x5f, 0x45, 0x4e, - 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4c, 0x33, 0x5f, 0x47, 0x52, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x02, - 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x46, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, - 0x03, 0x2a, 0xb0, 0x01, 0x0a, 0x15, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x42, - 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, - 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, - 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x42, - 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, - 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x54, 0x45, 0x4e, 0x41, 0x4e, - 0x43, 0x45, 0x10, 0x03, 0x2a, 0x98, 0x01, 0x0a, 0x0e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, - 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x46, 0x44, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, - 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, - 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, - 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, + 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, + 0x0e, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x10, + 0x02, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x43, 0x4c, + 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x41, 0x4e, 0x59, + 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, + 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, + 0x41, 0x4e, 0x59, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x07, 0x12, + 0x13, 0x0a, 0x0f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, + 0x52, 0x50, 0x10, 0x08, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x50, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, + 0x09, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x41, 0x52, 0x50, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x10, 0x0a, 0x2a, 0xda, 0x01, 0x0a, + 0x0c, 0x41, 0x63, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x1a, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, + 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, + 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, + 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x4c, 0x5f, + 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, + 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x4c, 0x5f, 0x52, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x05, 0x2a, 0xa8, 0x01, 0x0a, 0x08, 0x41, 0x63, + 0x6c, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, + 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x49, + 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x43, 0x4c, 0x5f, + 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x1c, + 0x0a, 0x18, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, + 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x4c, + 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x05, 0x2a, 0x81, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x43, + 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x54, + 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, + 0x52, 0x41, 0x4c, 0x4c, 0x45, 0x4c, 0x10, 0x02, 0x2a, 0xc9, 0x06, 0x0a, 0x03, 0x41, 0x70, 0x69, + 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x49, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x41, 0x49, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0e, + 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x0c, + 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, + 0x41, 0x50, 0x49, 0x5f, 0x46, 0x44, 0x42, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, + 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x50, 0x49, 0x5f, 0x56, + 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, + 0x0d, 0x0a, 0x09, 0x41, 0x50, 0x49, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10, 0x07, 0x12, 0x10, + 0x0a, 0x0c, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x08, + 0x12, 0x16, 0x0a, 0x12, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x50, 0x49, 0x5f, + 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, + 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, + 0x4f, 0x52, 0x10, 0x0b, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x41, 0x43, 0x4c, 0x10, + 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x10, + 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x0f, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x53, + 0x54, 0x50, 0x10, 0x10, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x4c, 0x41, 0x47, 0x10, + 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, + 0x10, 0x12, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x10, 0x13, + 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x50, 0x49, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, + 0x14, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x50, 0x49, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x15, + 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, + 0x52, 0x10, 0x16, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, + 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x17, 0x12, 0x0e, 0x0a, 0x0a, + 0x41, 0x50, 0x49, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0x18, 0x12, 0x0c, 0x0a, 0x08, + 0x41, 0x50, 0x49, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, + 0x49, 0x5f, 0x55, 0x44, 0x46, 0x10, 0x1a, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x1b, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x4c, + 0x32, 0x4d, 0x43, 0x10, 0x1c, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x49, 0x50, 0x4d, + 0x43, 0x10, 0x1d, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x49, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x50, 0x49, 0x5f, 0x4c, 0x32, + 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x50, + 0x49, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x20, 0x12, 0x11, + 0x0a, 0x0d, 0x41, 0x50, 0x49, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x10, + 0x21, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x10, + 0x22, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x54, 0x41, 0x4d, 0x10, 0x23, 0x12, 0x0c, + 0x0a, 0x08, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x10, 0x24, 0x12, 0x0c, 0x0a, 0x08, + 0x41, 0x50, 0x49, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x10, 0x25, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, + 0x49, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x10, 0x26, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, + 0x42, 0x46, 0x44, 0x10, 0x27, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x50, 0x49, 0x5f, 0x49, 0x53, 0x4f, + 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x28, 0x12, 0x0b, + 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, 0x41, + 0x50, 0x49, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x2a, 0x12, 0x15, 0x0a, 0x11, + 0x41, 0x50, 0x49, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, + 0x52, 0x10, 0x2b, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x43, 0x10, 0x2c, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, + 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x2d, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x5f, + 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x2e, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x50, 0x49, 0x5f, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x10, 0x2f, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x4d, + 0x41, 0x58, 0x10, 0x30, 0x2a, 0xae, 0x01, 0x0a, 0x14, 0x42, 0x66, 0x64, 0x45, 0x6e, 0x63, 0x61, + 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, + 0x22, 0x42, 0x46, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x46, 0x44, 0x5f, 0x45, 0x4e, 0x43, + 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x49, 0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x49, 0x50, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x46, + 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x33, 0x5f, 0x47, 0x52, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, + 0x45, 0x4c, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x46, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x41, + 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x2a, 0xb0, 0x01, 0x0a, 0x15, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x28, 0x0a, 0x24, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, + 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, + 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, + 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x12, + 0x27, 0x0a, 0x23, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, + 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x54, + 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x2a, 0x98, 0x01, 0x0a, 0x0e, 0x42, 0x66, 0x64, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x42, + 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, + 0x1b, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x20, + 0x0a, 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, + 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x53, 0x10, 0x03, 0x2a, 0xa8, 0x01, 0x0a, 0x0f, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, + 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x03, 0x2a, - 0xa8, 0x01, 0x0a, 0x0f, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x4d, 0x49, - 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x46, 0x44, 0x5f, - 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x4f, - 0x57, 0x4e, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x03, - 0x12, 0x18, 0x0a, 0x14, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x50, 0x10, 0x04, 0x2a, 0xc2, 0x01, 0x0a, 0x0e, 0x42, - 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, - 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x45, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x46, 0x44, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, + 0x49, 0x54, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x50, 0x10, 0x04, 0x2a, 0xc2, + 0x01, 0x0a, 0x0e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4d, 0x41, 0x4e, 0x44, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x46, 0x44, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4d, 0x41, + 0x4e, 0x44, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, + 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4d, 0x41, 0x4e, 0x44, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, - 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4d, 0x41, 0x4e, 0x44, 0x5f, 0x50, - 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x46, 0x44, 0x5f, - 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x53, 0x59, - 0x4e, 0x43, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x42, - 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x04, 0x2a, - 0xe2, 0x01, 0x0a, 0x16, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x52, - 0x49, 0x44, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, - 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, - 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x01, 0x12, 0x22, - 0x0a, 0x1e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, - 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x4f, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x49, 0x56, + 0x45, 0x10, 0x04, 0x2a, 0xe2, 0x01, 0x0a, 0x16, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x6c, + 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, + 0x0a, 0x25, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x52, 0x49, + 0x44, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, + 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, - 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x49, 0x4e, - 0x45, 0x44, 0x10, 0x04, 0x2a, 0xce, 0x02, 0x0a, 0x19, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x46, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x52, 0x49, - 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, - 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, - 0x4c, 0x45, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x48, 0x57, 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x52, + 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, + 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x03, + 0x12, 0x26, 0x0a, 0x22, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, + 0x4d, 0x42, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xce, 0x02, 0x0a, 0x19, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x64, 0x62, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, + 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, + 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x29, 0x0a, + 0x25, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, + 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, + 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x52, 0x49, 0x44, + 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, + 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x48, 0x57, 0x10, 0x03, 0x12, 0x2a, + 0x0a, 0x26, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, + 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x43, 0x50, 0x55, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x10, 0x04, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x50, 0x55, 0x5f, - 0x54, 0x52, 0x41, 0x50, 0x10, 0x04, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, - 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x50, 0x55, 0x5f, 0x4c, 0x4f, 0x47, 0x10, - 0x05, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x2a, 0xb6, 0x01, 0x0a, 0x0e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, - 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x52, - 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, - 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x52, - 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, - 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x42, - 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, + 0x4c, 0x4f, 0x47, 0x10, 0x05, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, + 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x2a, 0xb6, 0x01, 0x0a, 0x0e, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x2a, 0x8d, - 0x01, 0x0a, 0x15, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x52, 0x49, 0x44, - 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, - 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x52, 0x49, - 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xc9, - 0x01, 0x0a, 0x0e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x1d, - 0x0a, 0x19, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x1e, 0x0a, - 0x1a, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x31, 0x51, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1e, 0x0a, - 0x1a, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x31, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x1b, 0x0a, - 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x05, 0x2a, 0x99, 0x01, 0x0a, 0x0a, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, - 0x44, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, - 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1a, 0x0a, - 0x16, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, - 0x44, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x2a, 0x51, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x31, 0x51, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x44, 0x10, 0x02, 0x2a, 0xb2, 0x08, 0x0a, 0x0e, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x1c, - 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x29, - 0x0a, 0x25, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, - 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x55, 0x46, - 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x41, - 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, - 0x24, 0x0a, 0x20, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x2f, 0x0a, 0x2b, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, - 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, - 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, - 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x06, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x55, 0x46, 0x46, 0x45, - 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, - 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, - 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x07, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x55, 0x46, 0x46, 0x45, - 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x53, 0x10, 0x08, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, - 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, - 0x53, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, - 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0a, 0x12, 0x27, - 0x0a, 0x23, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, - 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0b, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x55, 0x46, 0x46, 0x45, - 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, - 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, - 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x42, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, + 0x0a, 0x1a, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x1f, + 0x0a, 0x1b, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, + 0x1f, 0x0a, 0x1b, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x03, + 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, + 0x10, 0x04, 0x2a, 0x8d, 0x01, 0x0a, 0x15, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x24, + 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x47, 0x47, + 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x01, 0x12, 0x23, 0x0a, + 0x1f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x47, + 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, + 0x10, 0x02, 0x2a, 0xc9, 0x01, 0x0a, 0x0e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, 0x49, 0x44, 0x47, + 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, + 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x51, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, + 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, + 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x05, 0x2a, 0x99, + 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1b, 0x0a, + 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, + 0x49, 0x44, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, + 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, + 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1b, 0x0a, + 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, + 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x2a, 0x51, 0x0a, 0x0a, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, 0x44, + 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x51, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x52, 0x49, + 0x44, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x44, 0x10, 0x02, 0x2a, 0xb2, 0x08, + 0x0a, 0x0e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, + 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, + 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x01, 0x12, 0x24, 0x0a, + 0x20, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, + 0x53, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, + 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x2f, 0x0a, 0x2b, 0x42, 0x55, 0x46, + 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, + 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x55, + 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, + 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, + 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x55, 0x46, + 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, + 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, + 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x06, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, - 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0d, 0x12, 0x33, 0x0a, - 0x2f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, - 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, - 0x10, 0x0e, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, - 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, - 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, - 0x54, 0x45, 0x53, 0x10, 0x0f, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, - 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x10, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x55, 0x46, 0x46, 0x45, - 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, - 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x11, 0x12, 0x2c, 0x0a, 0x28, 0x42, 0x55, 0x46, 0x46, 0x45, + 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x07, 0x12, 0x2d, 0x0a, 0x29, 0x42, + 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x08, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x55, + 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, + 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, + 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, - 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x53, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, + 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, + 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0b, 0x12, 0x32, 0x0a, 0x2e, 0x42, + 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, + 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0c, 0x12, + 0x30, 0x0a, 0x2c, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, - 0x13, 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, - 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x14, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, - 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x15, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, - 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x16, 0x2a, 0x94, - 0x01, 0x0a, 0x17, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x55, + 0x0d, 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, + 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0e, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, + 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, + 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, + 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0f, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x55, 0x46, + 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, + 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, + 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x10, 0x12, 0x2e, 0x0a, 0x2a, 0x42, + 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, + 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x11, 0x12, 0x2c, 0x0a, 0x28, 0x42, + 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x55, 0x46, + 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, + 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, + 0x54, 0x45, 0x53, 0x10, 0x13, 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, + 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x52, + 0x4f, 0x4f, 0x4d, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, + 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x14, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x55, + 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x58, + 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, + 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x15, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x55, + 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, + 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, + 0x10, 0x16, 0x2a, 0x94, 0x01, 0x0a, 0x17, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, + 0x6c, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, + 0x0a, 0x26, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x48, + 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, - 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, 0x26, 0x0a, - 0x22, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x48, 0x52, - 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, - 0x4d, 0x49, 0x43, 0x10, 0x02, 0x2a, 0x88, 0x01, 0x0a, 0x0e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x55, 0x46, 0x46, - 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x55, - 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, - 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x55, 0x46, 0x46, - 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x03, - 0x2a, 0xa0, 0x01, 0x0a, 0x1a, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x2d, 0x0a, 0x29, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, - 0x45, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, - 0x0a, 0x24, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, + 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, + 0x01, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x55, 0x46, 0x46, - 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, - 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, - 0x43, 0x10, 0x02, 0x2a, 0x80, 0x01, 0x0a, 0x0f, 0x42, 0x75, 0x6c, 0x6b, 0x4f, 0x70, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x55, 0x4c, 0x4b, 0x5f, - 0x4f, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x42, + 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x02, 0x2a, 0x88, 0x01, 0x0a, 0x0e, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, + 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, + 0x0a, 0x18, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, + 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x55, 0x46, + 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, + 0x54, 0x48, 0x10, 0x03, 0x2a, 0xa0, 0x01, 0x0a, 0x1a, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, + 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, + 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, + 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x54, + 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x59, + 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x02, 0x2a, 0x80, 0x01, 0x0a, 0x0f, 0x42, 0x75, 0x6c, 0x6b, + 0x4f, 0x70, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x4f, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x5f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, - 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x4f, 0x50, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0xfb, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x41, 0x70, 0x69, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x43, - 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x02, 0x12, 0x12, - 0x0a, 0x0e, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x45, 0x54, - 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x47, 0x45, 0x54, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x06, 0x12, 0x17, - 0x0a, 0x13, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x55, 0x4c, - 0x4b, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x08, - 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4d, - 0x41, 0x58, 0x10, 0x09, 0x2a, 0x81, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x42, 0x59, 0x54, - 0x45, 0x53, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, - 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x45, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x55, 0x4e, 0x54, - 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x01, 0x2a, - 0x6c, 0x0a, 0x16, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, - 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x29, 0x0a, 0x25, 0x44, 0x45, 0x42, - 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, - 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, - 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, - 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x2a, 0xf0, 0x01, - 0x0a, 0x10, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, - 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x53, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, - 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x10, - 0x02, 0x12, 0x2d, 0x0a, 0x29, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, - 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x10, 0x03, - 0x12, 0x2e, 0x0a, 0x2a, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, - 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x55, - 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x10, 0x04, - 0x2a, 0xb8, 0x02, 0x0a, 0x0d, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x52, 0x45, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, - 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x43, 0x50, 0x46, 0x4c, 0x41, 0x47, - 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x42, 0x52, 0x45, - 0x41, 0x43, 0x48, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, - 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, - 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x07, 0x2a, 0x80, 0x02, 0x0a, 0x0b, - 0x45, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x45, - 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x43, - 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, - 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x45, - 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x59, 0x45, 0x4c, - 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, - 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, - 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, - 0x45, 0x45, 0x4e, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, - 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, - 0x45, 0x45, 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x43, 0x4e, - 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, - 0x57, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x43, 0x4e, 0x5f, 0x4d, - 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x08, 0x2a, 0x78, - 0x0a, 0x17, 0x45, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x52, 0x53, - 0x50, 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x45, 0x52, 0x53, 0x50, 0x41, 0x4e, 0x5f, 0x45, - 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4c, 0x33, 0x5f, 0x47, 0x52, 0x45, 0x5f, - 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x01, 0x2a, 0x65, 0x0a, 0x0c, 0x46, 0x64, 0x62, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x44, 0x42, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, - 0x49, 0x43, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x02, 0x2a, - 0x7b, 0x0a, 0x08, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x46, - 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, - 0x0e, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x47, 0x45, 0x44, 0x10, - 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4d, - 0x4f, 0x56, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x9a, 0x01, 0x0a, - 0x11, 0x46, 0x64, 0x62, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x46, 0x44, 0x42, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x5f, - 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x44, - 0x42, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x46, - 0x44, 0x42, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x03, 0x2a, 0xee, 0x01, 0x0a, 0x0d, 0x48, 0x61, - 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1e, 0x0a, 0x1a, 0x48, - 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x48, - 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x43, 0x52, - 0x43, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, - 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x58, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x48, - 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x52, 0x41, - 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, - 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x33, 0x32, 0x4c, - 0x4f, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, - 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x33, 0x32, 0x48, 0x49, 0x10, 0x05, - 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, - 0x48, 0x4d, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x43, 0x43, 0x49, 0x54, 0x54, 0x10, 0x06, 0x12, 0x1a, - 0x0a, 0x16, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, - 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x58, 0x4f, 0x52, 0x10, 0x07, 0x2a, 0xef, 0x02, 0x0a, 0x1b, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x2b, 0x48, 0x4f, - 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x48, - 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, - 0x42, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, - 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x10, 0x02, 0x12, 0x38, 0x0a, 0x34, 0x48, - 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, - 0x45, 0x54, 0x44, 0x45, 0x56, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x10, 0x03, 0x12, 0x37, 0x0a, 0x33, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, - 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x5f, - 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x04, 0x12, 0x2d, - 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x24, 0x0a, 0x20, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x4f, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x5f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x4f, 0x50, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x47, 0x4e, 0x4f, + 0x52, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0xfb, 0x01, 0x0a, 0x09, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x70, 0x69, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x4d, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, + 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x53, 0x45, 0x54, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, + 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x43, 0x52, + 0x45, 0x41, 0x54, 0x45, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x43, + 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x5f, 0x47, + 0x45, 0x54, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x09, 0x2a, 0x81, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x55, 0x4e, + 0x54, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, + 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, + 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4f, 0x55, 0x4e, + 0x54, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, + 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x45, 0x0a, 0x0b, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x43, + 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, + 0x52, 0x10, 0x01, 0x2a, 0x6c, 0x0a, 0x16, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x29, 0x0a, + 0x25, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x42, + 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x45, 0x42, 0x55, + 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x54, 0x49, 0x43, 0x10, + 0x01, 0x2a, 0xf0, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x45, + 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x45, 0x42, 0x55, 0x47, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, + 0x4f, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x2d, 0x0a, 0x29, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, + 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x53, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, + 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x53, 0x10, 0x04, 0x2a, 0xb8, 0x02, 0x0a, 0x0d, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x54, 0x45, 0x4c, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x54, 0x45, 0x4c, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, + 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x53, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x43, 0x50, + 0x46, 0x4c, 0x41, 0x47, 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, + 0x5f, 0x42, 0x52, 0x45, 0x41, 0x43, 0x48, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x44, 0x54, 0x45, + 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x07, 0x2a, + 0x80, 0x02, 0x0a, 0x0b, 0x45, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x1d, 0x0a, 0x19, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, + 0x0a, 0x12, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, + 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x02, 0x12, + 0x18, 0x0a, 0x14, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x43, 0x4e, + 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x04, + 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x05, + 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x06, 0x12, 0x1c, 0x0a, + 0x18, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x59, + 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x45, + 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x4c, 0x4c, + 0x10, 0x08, 0x2a, 0x78, 0x0a, 0x17, 0x45, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, + 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, + 0x25, 0x45, 0x52, 0x53, 0x50, 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x45, 0x52, 0x53, 0x50, + 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4c, 0x33, 0x5f, + 0x47, 0x52, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x01, 0x2a, 0x65, 0x0a, 0x0c, + 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, + 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, + 0x43, 0x10, 0x02, 0x2a, 0x7b, 0x0a, 0x08, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x19, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x44, + 0x42, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45, 0x44, 0x10, + 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, + 0x47, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x44, 0x42, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x45, 0x44, 0x10, 0x04, + 0x2a, 0x9a, 0x01, 0x0a, 0x11, 0x46, 0x64, 0x62, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x46, 0x44, 0x42, 0x5f, 0x46, 0x4c, + 0x55, 0x53, 0x48, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, + 0x46, 0x44, 0x42, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x01, 0x12, 0x1f, + 0x0a, 0x1b, 0x46, 0x44, 0x42, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x02, 0x12, + 0x1c, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x03, 0x2a, 0xee, 0x01, + 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, + 0x1e, 0x0a, 0x1a, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, + 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x16, 0x0a, 0x12, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, + 0x4d, 0x5f, 0x43, 0x52, 0x43, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x41, 0x53, 0x48, 0x5f, + 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x58, 0x4f, 0x52, 0x10, 0x02, 0x12, + 0x19, 0x0a, 0x15, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, + 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x41, + 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x43, 0x52, 0x43, + 0x5f, 0x33, 0x32, 0x4c, 0x4f, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x41, 0x53, 0x48, 0x5f, + 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x33, 0x32, + 0x48, 0x49, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, + 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x43, 0x43, 0x49, 0x54, 0x54, + 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, + 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x58, 0x4f, 0x52, 0x10, 0x07, 0x2a, 0xef, + 0x02, 0x0a, 0x1b, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, + 0x0a, 0x2b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x5f, 0x4c, 0x33, 0x10, 0x05, 0x12, 0x2d, 0x0a, - 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x54, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x06, 0x2a, 0xef, 0x01, 0x0a, - 0x14, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x43, 0x42, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x10, 0x02, 0x12, + 0x38, 0x0a, 0x34, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, + 0x41, 0x4c, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x03, 0x12, 0x37, 0x0a, 0x33, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x54, + 0x44, 0x45, 0x56, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x10, 0x04, 0x12, 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x5f, 0x4c, 0x33, 0x10, + 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x54, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x06, + 0x2a, 0xef, 0x01, 0x0a, 0x14, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4c, 0x41, 0x47, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, - 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, - 0x12, 0x1f, 0x0a, 0x1b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x47, 0x10, - 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, - 0x4e, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, - 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, 0x54, - 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x44, 0x43, 0x41, 0x52, 0x44, 0x10, 0x05, 0x2a, 0x87, - 0x12, 0x0a, 0x0e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, - 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x50, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, - 0x43, 0x50, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, - 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x41, 0x50, 0x4f, 0x4c, 0x10, 0x04, - 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4c, 0x44, 0x50, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x48, + 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, + 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x44, 0x43, 0x41, 0x52, 0x44, + 0x10, 0x05, 0x2a, 0x87, 0x12, 0x0a, 0x0e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, + 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, + 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x50, 0x10, 0x02, 0x12, 0x19, 0x0a, + 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4c, 0x41, 0x43, 0x50, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x4f, 0x53, 0x54, + 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x41, 0x50, + 0x4f, 0x4c, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, + 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4c, 0x44, 0x50, 0x10, 0x05, 0x12, + 0x1a, 0x0a, 0x16, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x50, 0x56, 0x52, 0x53, 0x54, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x50, 0x56, 0x52, 0x53, 0x54, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, + 0x07, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x47, 0x4d, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x07, 0x12, 0x24, 0x0a, - 0x20, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x56, 0x31, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x09, 0x12, 0x28, 0x0a, - 0x24, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x32, 0x5f, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x0a, 0x12, 0x28, 0x0a, 0x24, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x47, 0x4d, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x33, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, - 0x0b, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, - 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x44, 0x4c, 0x44, 0x10, 0x0d, 0x12, - 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x43, 0x44, 0x50, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x54, - 0x50, 0x10, 0x0f, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x50, 0x10, 0x10, 0x12, 0x19, 0x0a, - 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x41, 0x47, 0x50, 0x10, 0x11, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, - 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x54, 0x50, - 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x10, 0x13, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x48, 0x43, 0x50, 0x5f, 0x4c, - 0x32, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x48, 0x43, 0x50, 0x56, 0x36, 0x5f, 0x4c, - 0x32, 0x10, 0x15, 0x12, 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x43, - 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, - 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x50, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, - 0x53, 0x54, 0x10, 0x17, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, - 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x50, 0x5f, 0x52, 0x45, 0x53, - 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x18, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x48, 0x43, 0x50, - 0x10, 0x19, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x10, 0x1a, 0x12, 0x18, 0x0a, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x31, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, + 0x09, 0x12, 0x28, 0x0a, 0x24, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x56, 0x32, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x0a, 0x12, 0x28, 0x0a, 0x24, 0x48, + 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x33, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x0b, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, + 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, + 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x44, 0x4c, + 0x44, 0x10, 0x0d, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, + 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x44, 0x50, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x49, 0x4d, 0x10, 0x1b, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x52, 0x52, 0x50, - 0x10, 0x1c, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x48, 0x43, 0x50, 0x56, 0x36, 0x10, 0x1d, 0x12, - 0x1b, 0x0a, 0x17, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x56, 0x36, 0x10, 0x1e, 0x12, 0x1b, 0x0a, 0x17, - 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x56, 0x52, 0x52, 0x50, 0x56, 0x36, 0x10, 0x1f, 0x12, 0x2c, 0x0a, 0x28, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, - 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x43, - 0x4f, 0x56, 0x45, 0x52, 0x59, 0x10, 0x20, 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, - 0x5f, 0x4d, 0x4c, 0x44, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x32, 0x10, 0x21, 0x12, 0x27, 0x0a, 0x23, + 0x45, 0x5f, 0x56, 0x54, 0x50, 0x10, 0x0f, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x50, 0x10, + 0x10, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x47, 0x50, 0x10, 0x11, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x4c, 0x44, 0x5f, 0x56, 0x31, 0x5f, 0x52, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x10, 0x22, 0x12, 0x25, 0x0a, 0x21, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, - 0x4c, 0x44, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x23, 0x12, 0x22, 0x0a, 0x1e, - 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x4c, 0x44, 0x5f, 0x56, 0x32, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x24, - 0x12, 0x29, 0x0a, 0x25, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, - 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x25, 0x12, 0x1e, 0x0a, 0x1a, 0x48, - 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x26, 0x12, 0x1e, 0x0a, 0x1a, 0x48, + 0x5f, 0x50, 0x54, 0x50, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, + 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x54, + 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x13, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x48, + 0x43, 0x50, 0x5f, 0x4c, 0x32, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x48, 0x43, 0x50, + 0x56, 0x36, 0x5f, 0x4c, 0x32, 0x10, 0x15, 0x12, 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, + 0x42, 0x41, 0x53, 0x45, 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, + 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x50, 0x5f, 0x52, + 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x17, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x4f, 0x53, 0x54, + 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x50, + 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x18, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x44, 0x4e, 0x41, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x27, 0x12, 0x20, 0x0a, 0x1c, 0x48, + 0x44, 0x48, 0x43, 0x50, 0x10, 0x19, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, + 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x10, + 0x1a, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x4d, 0x10, 0x1b, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4e, 0x41, 0x54, 0x5f, 0x48, 0x41, 0x49, 0x52, 0x50, 0x49, 0x4e, 0x10, 0x28, 0x12, 0x2f, 0x0a, - 0x2b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, + 0x56, 0x52, 0x52, 0x50, 0x10, 0x1c, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, + 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x48, 0x43, 0x50, 0x56, + 0x36, 0x10, 0x1d, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, + 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x53, 0x50, 0x46, 0x56, 0x36, 0x10, 0x1e, + 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x52, 0x52, 0x50, 0x56, 0x36, 0x10, 0x1f, 0x12, 0x2c, 0x0a, + 0x28, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, - 0x53, 0x4f, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x29, 0x12, 0x30, - 0x0a, 0x2c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, - 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x2a, - 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x53, 0x49, 0x53, 0x10, 0x2b, 0x12, 0x2d, 0x0a, 0x29, 0x48, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x10, 0x20, 0x12, 0x23, 0x0a, 0x1f, 0x48, + 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x4c, 0x44, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x32, 0x10, 0x21, + 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x4c, 0x44, 0x5f, 0x56, 0x31, + 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x22, 0x12, 0x25, 0x0a, 0x21, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, + 0x56, 0x36, 0x5f, 0x4d, 0x4c, 0x44, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x23, + 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4c, 0x44, 0x5f, 0x56, 0x32, 0x5f, 0x52, 0x45, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x24, 0x12, 0x29, 0x0a, 0x25, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, + 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x5f, 0x4c, 0x33, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x25, 0x12, + 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x26, 0x12, + 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4e, 0x41, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x27, 0x12, + 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x48, 0x41, 0x49, 0x52, 0x50, 0x49, 0x4e, 0x10, + 0x28, 0x12, 0x2f, 0x0a, 0x2b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, + 0x42, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x29, 0x12, 0x30, 0x0a, 0x2c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, + 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x49, 0x47, + 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x4d, 0x45, + 0x4e, 0x54, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, + 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x53, 0x49, 0x53, 0x10, 0x2b, 0x12, + 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, + 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x2c, 0x12, 0x1a, + 0x0a, 0x16, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x49, 0x50, 0x32, 0x4d, 0x45, 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, + 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x53, 0x48, 0x10, 0x2e, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, + 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4e, 0x4d, 0x50, 0x10, 0x2f, 0x12, + 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x42, 0x47, 0x50, 0x10, 0x30, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x47, + 0x50, 0x56, 0x36, 0x10, 0x31, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, + 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x46, 0x44, 0x10, 0x32, 0x12, + 0x1a, 0x0a, 0x16, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x42, 0x46, 0x44, 0x56, 0x36, 0x10, 0x33, 0x12, 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, - 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x2c, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x4f, - 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, - 0x50, 0x32, 0x4d, 0x45, 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, - 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x53, 0x48, 0x10, 0x2e, - 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4e, 0x4d, 0x50, 0x10, 0x2f, 0x12, 0x18, 0x0a, 0x14, 0x48, + 0x42, 0x46, 0x44, 0x5f, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x10, 0x34, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x42, 0x47, 0x50, 0x10, 0x30, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x47, 0x50, 0x56, 0x36, 0x10, - 0x31, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x46, 0x44, 0x10, 0x32, 0x12, 0x1a, 0x0a, 0x16, 0x48, + 0x42, 0x46, 0x44, 0x56, 0x36, 0x5f, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x10, 0x35, 0x12, 0x18, 0x0a, + 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4c, 0x44, 0x50, 0x10, 0x36, 0x12, 0x2f, 0x0a, 0x2b, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x41, + 0x4c, 0x5f, 0x49, 0x50, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x37, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x4f, 0x53, 0x54, + 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x33, 0x5f, + 0x4d, 0x54, 0x55, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x38, 0x12, 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x42, 0x46, 0x44, 0x56, 0x36, 0x10, 0x33, 0x12, 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x46, 0x44, 0x5f, - 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x10, 0x34, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x46, 0x44, 0x56, - 0x36, 0x5f, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x10, 0x35, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x44, - 0x50, 0x10, 0x36, 0x12, 0x2f, 0x0a, 0x2b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x49, 0x50, - 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, - 0x53, 0x45, 0x10, 0x37, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, - 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x33, 0x5f, 0x4d, 0x54, 0x55, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x38, 0x12, 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x54, 0x4c, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x39, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x49, 0x43, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x3a, 0x12, 0x33, 0x0a, - 0x2f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, - 0x52, 0x44, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, - 0x10, 0x3b, 0x12, 0x2a, 0x0a, 0x26, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, + 0x54, 0x54, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x39, 0x12, 0x24, 0x0a, 0x20, 0x48, + 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x10, + 0x3a, 0x12, 0x33, 0x0a, 0x2f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, + 0x46, 0x46, 0x45, 0x52, 0x10, 0x3b, 0x12, 0x2a, 0x0a, 0x26, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, + 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, + 0x49, 0x4e, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, + 0x10, 0x3c, 0x12, 0x2c, 0x0a, 0x28, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, - 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x10, 0x3c, 0x12, 0x2c, - 0x0a, 0x28, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, - 0x41, 0x52, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x3d, 0x12, 0x23, 0x0a, 0x1f, - 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, - 0x3e, 0x12, 0x2c, 0x0a, 0x28, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, - 0x52, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x3f, 0x12, - 0x2b, 0x0a, 0x27, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4c, - 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x40, 0x12, 0x30, 0x0a, 0x2c, - 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x41, 0x12, 0x18, - 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x42, 0x2a, 0x9c, 0x01, 0x0a, 0x0c, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x54, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x54, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, - 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x10, 0x01, 0x12, 0x22, 0x0a, + 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x3d, + 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x3e, 0x12, 0x2c, 0x0a, 0x28, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, + 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4c, 0x41, 0x42, 0x45, + 0x4c, 0x10, 0x3f, 0x12, 0x2b, 0x0a, 0x27, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, + 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x40, + 0x12, 0x30, 0x0a, 0x2c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x45, 0x58, 0x43, 0x45, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, + 0x10, 0x41, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, + 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x42, 0x2a, 0x9c, 0x01, 0x0a, + 0x0c, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, - 0x02, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x58, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, - 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x70, 0x0a, 0x0a, 0x48, 0x6f, 0x73, 0x74, 0x69, - 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x4f, - 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x10, 0x02, 0x12, 0x19, - 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, - 0x4e, 0x45, 0x54, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x03, 0x2a, 0xcb, 0x03, 0x0a, 0x19, 0x48, 0x6f, - 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, - 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, - 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, - 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, - 0x28, 0x0a, 0x24, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, - 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x48, 0x4f, 0x53, + 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x10, + 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x58, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x4c, 0x4f, 0x4f, + 0x4b, 0x55, 0x50, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, + 0x54, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x70, 0x0a, 0x0a, 0x48, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x10, 0x01, 0x12, 0x12, + 0x0a, 0x0e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, + 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x54, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x03, 0x2a, 0xcb, 0x03, + 0x0a, 0x19, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x48, + 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, + 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, + 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, + 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x2a, 0x0a, + 0x26, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, + 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, - 0x42, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x10, 0x04, 0x12, 0x25, - 0x0a, 0x21, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, - 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x43, 0x4c, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x10, 0x06, 0x12, 0x2d, 0x0a, 0x29, - 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, - 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, - 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x33, 0x0a, 0x2f, 0x48, - 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, - 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, - 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x08, - 0x12, 0x25, 0x0a, 0x21, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, + 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, + 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x10, 0x06, + 0x12, 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x09, 0x2a, 0x83, 0x01, 0x0a, 0x0d, 0x48, 0x6f, 0x73, 0x74, - 0x69, 0x66, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x12, 0x1f, 0x0a, 0x1b, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x4f, - 0x53, 0x54, 0x49, 0x46, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x53, 0x54, - 0x52, 0x49, 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x4b, 0x45, 0x45, 0x50, 0x10, 0x02, 0x12, - 0x1c, 0x0a, 0x18, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, - 0x41, 0x47, 0x5f, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x2a, 0xa0, 0x10, - 0x0a, 0x0c, 0x49, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, - 0x0a, 0x1a, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, - 0x0a, 0x14, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x32, 0x5f, 0x41, 0x4e, - 0x59, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x4d, 0x41, 0x43, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, - 0x43, 0x41, 0x53, 0x54, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x4d, 0x41, 0x43, 0x5f, 0x45, 0x51, - 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x44, 0x4d, 0x41, 0x43, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x4d, - 0x41, 0x43, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x10, 0x05, 0x12, 0x27, 0x0a, - 0x23, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x4c, 0x4c, - 0x4f, 0x57, 0x45, 0x44, 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, - 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x07, 0x12, 0x25, - 0x0a, 0x21, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x54, 0x50, 0x5f, 0x46, 0x49, 0x4c, - 0x54, 0x45, 0x52, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x55, 0x43, 0x5f, 0x44, - 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x09, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4d, - 0x43, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x0a, 0x12, 0x25, 0x0a, 0x21, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x32, - 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, - 0x10, 0x0b, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x4c, 0x32, 0x5f, - 0x4d, 0x54, 0x55, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x0d, - 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x4c, 0x33, 0x5f, 0x4d, 0x54, - 0x55, 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x0f, 0x12, 0x25, 0x0a, 0x21, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x33, - 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, - 0x10, 0x10, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x10, 0x11, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x4c, 0x33, 0x5f, 0x48, 0x45, 0x41, 0x44, - 0x45, 0x52, 0x10, 0x12, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x13, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x5f, 0x44, 0x49, - 0x50, 0x5f, 0x4d, 0x43, 0x5f, 0x44, 0x4d, 0x41, 0x43, 0x10, 0x14, 0x12, 0x1f, 0x0a, 0x1b, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, - 0x50, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x15, 0x12, 0x1f, 0x0a, 0x1b, + 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, + 0x33, 0x0a, 0x2f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, + 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, + 0x53, 0x45, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, + 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x09, 0x2a, 0x83, 0x01, 0x0a, 0x0d, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x12, 0x1f, 0x0a, + 0x1b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, + 0x0a, 0x15, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, + 0x47, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x4b, 0x45, 0x45, + 0x50, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x41, 0x4c, 0x10, + 0x03, 0x2a, 0xa0, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, + 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, + 0x32, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, + 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x4d, 0x41, 0x43, 0x5f, 0x4d, + 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x4d, 0x41, + 0x43, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x44, 0x4d, 0x41, 0x43, 0x10, 0x04, 0x12, + 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x44, 0x4d, 0x41, 0x43, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x10, + 0x05, 0x12, 0x27, 0x0a, 0x23, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, + 0x52, 0x45, 0x53, 0x53, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, + 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x54, 0x50, + 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x44, 0x42, 0x5f, + 0x55, 0x43, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x09, 0x12, 0x21, 0x0a, 0x1d, + 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, + 0x44, 0x42, 0x5f, 0x4d, 0x43, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x0a, 0x12, + 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x4c, 0x32, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x46, 0x49, + 0x4c, 0x54, 0x45, 0x52, 0x10, 0x0b, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x53, + 0x5f, 0x4c, 0x32, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x41, + 0x4e, 0x59, 0x10, 0x0d, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x4c, + 0x33, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x5f, 0x44, 0x52, + 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x0f, 0x12, + 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x46, 0x49, + 0x4c, 0x54, 0x45, 0x52, 0x10, 0x10, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x11, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x5f, 0x44, 0x52, + 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x4c, 0x33, 0x5f, + 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x12, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x5f, 0x48, 0x45, + 0x41, 0x44, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x13, 0x12, 0x21, 0x0a, 0x1d, + 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, + 0x43, 0x5f, 0x44, 0x49, 0x50, 0x5f, 0x4d, 0x43, 0x5f, 0x44, 0x4d, 0x41, 0x43, 0x10, 0x14, 0x12, + 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x44, 0x49, 0x50, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x15, + 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, + 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, + 0x16, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x4d, 0x43, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, - 0x49, 0x50, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x16, 0x12, 0x19, 0x0a, - 0x15, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x53, 0x49, 0x50, 0x5f, 0x4d, 0x43, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x43, - 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x45, 0x10, 0x18, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, - 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4d, - 0x43, 0x5f, 0x44, 0x4d, 0x41, 0x43, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, - 0x1a, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x44, - 0x49, 0x50, 0x10, 0x1b, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x42, 0x43, 0x10, 0x1c, 0x12, - 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x44, 0x49, 0x50, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x1d, 0x12, 0x21, 0x0a, - 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x44, 0x49, 0x50, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x1e, - 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4c, 0x4f, 0x43, 0x41, - 0x4c, 0x10, 0x1f, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x43, 0x5f, 0x53, 0x43, - 0x4f, 0x50, 0x45, 0x30, 0x10, 0x20, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x43, - 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x31, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x52, 0x49, 0x46, - 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x52, - 0x49, 0x46, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x23, 0x12, 0x1c, 0x0a, - 0x18, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x4c, 0x50, 0x4d, 0x34, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x24, 0x12, 0x1c, 0x0a, 0x18, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x50, - 0x4d, 0x36, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x25, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x41, 0x43, - 0x4b, 0x48, 0x4f, 0x4c, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10, 0x26, 0x12, 0x20, 0x0a, + 0x49, 0x50, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x45, 0x10, 0x18, 0x12, 0x22, 0x0a, 0x1e, + 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, + 0x49, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x19, + 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, + 0x4f, 0x4e, 0x5f, 0x4d, 0x43, 0x5f, 0x44, 0x4d, 0x41, 0x43, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, + 0x54, 0x43, 0x48, 0x10, 0x1a, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x45, 0x51, 0x55, 0x41, + 0x4c, 0x53, 0x5f, 0x44, 0x49, 0x50, 0x10, 0x1b, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x42, + 0x43, 0x10, 0x1c, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x50, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, + 0x1d, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x50, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4c, 0x4f, 0x43, + 0x41, 0x4c, 0x10, 0x1e, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x50, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, + 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, + 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, + 0x43, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x30, 0x10, 0x20, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x56, + 0x36, 0x5f, 0x4d, 0x43, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x31, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x48, 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x52, 0x50, 0x10, 0x27, 0x12, - 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x58, - 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x28, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x45, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x29, 0x12, - 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x2a, 0x12, - 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x2b, 0x12, 0x23, 0x0a, 0x1f, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, - 0x4c, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x2c, - 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4c, - 0x41, 0x47, 0x10, 0x2d, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, + 0x49, 0x52, 0x49, 0x46, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x22, 0x12, + 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x45, 0x52, 0x49, 0x46, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, + 0x23, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x50, 0x4d, 0x34, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x24, 0x12, + 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x4c, 0x50, 0x4d, 0x36, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x25, 0x12, 0x22, 0x0a, + 0x1e, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x48, 0x4f, 0x4c, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10, + 0x26, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x48, 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x52, + 0x50, 0x10, 0x27, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, + 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x28, 0x12, 0x26, 0x0a, 0x22, 0x49, + 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x33, + 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x29, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x10, 0x2a, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x2b, 0x12, + 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x2c, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, - 0x53, 0x53, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x2e, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, - 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x52, 0x49, 0x46, 0x10, 0x2f, 0x12, 0x25, 0x0a, - 0x21, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x10, 0x30, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, - 0x53, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x31, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, + 0x53, 0x53, 0x5f, 0x4c, 0x41, 0x47, 0x10, 0x2d, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, + 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x2e, 0x12, 0x22, 0x0a, + 0x1e, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, + 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x52, 0x49, 0x46, 0x10, + 0x2f, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x30, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x41, 0x47, 0x10, 0x32, 0x12, 0x22, 0x0a, 0x1e, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x33, 0x12, - 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x52, 0x49, 0x46, - 0x10, 0x34, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x35, 0x12, 0x2d, 0x0a, 0x29, 0x49, 0x4e, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x41, - 0x4e, 0x44, 0x5f, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x48, 0x4f, 0x4c, 0x45, 0x5f, 0x44, 0x49, 0x53, - 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x36, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4d, - 0x49, 0x53, 0x53, 0x10, 0x37, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x4c, 0x4f, 0x43, - 0x41, 0x4c, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x38, 0x12, 0x16, 0x0a, - 0x12, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x45, 0x4e, 0x44, 0x10, 0x39, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, - 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x3a, 0x12, 0x23, 0x0a, 0x1f, 0x49, - 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x55, - 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x3b, - 0x2a, 0xd2, 0x04, 0x0a, 0x18, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x12, 0x2b, 0x0a, - 0x27, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, - 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x49, 0x4e, + 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x31, 0x12, 0x21, 0x0a, 0x1d, + 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, + 0x43, 0x4c, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x41, 0x47, 0x10, 0x32, 0x12, + 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x56, 0x4c, 0x41, + 0x4e, 0x10, 0x33, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x52, 0x49, 0x46, 0x10, 0x34, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x35, 0x12, 0x2d, 0x0a, 0x29, + 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, + 0x44, 0x42, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x48, 0x4f, 0x4c, 0x45, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x36, 0x12, 0x1c, 0x0a, 0x18, 0x49, + 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4d, 0x50, + 0x4c, 0x53, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x37, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x52, 0x56, 0x36, + 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, + 0x38, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x39, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, + 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x3a, 0x12, + 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, + 0x4e, 0x44, 0x10, 0x3b, 0x2a, 0xd2, 0x04, 0x0a, 0x18, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x12, 0x2b, 0x0a, 0x27, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, + 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, + 0x0a, 0x23, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, + 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x34, + 0x0a, 0x30, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, + 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, + 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, + 0x45, 0x53, 0x10, 0x03, 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, + 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, + 0x54, 0x45, 0x53, 0x10, 0x04, 0x12, 0x3b, 0x0a, 0x37, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43, 0x55, 0x52, 0x52, + 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, + 0x10, 0x05, 0x12, 0x36, 0x0a, 0x32, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, + 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x3e, 0x0a, 0x3a, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x53, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, - 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x34, 0x0a, 0x30, 0x49, 0x4e, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x52, + 0x4f, 0x4f, 0x4d, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, + 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x07, 0x12, 0x39, 0x0a, 0x35, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, - 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x03, - 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, - 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, - 0x04, 0x12, 0x3b, 0x0a, 0x37, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, - 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, 0x36, - 0x0a, 0x32, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, - 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, - 0x41, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x3e, 0x0a, 0x3a, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x52, + 0x4f, 0x4f, 0x4d, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, + 0x54, 0x45, 0x53, 0x10, 0x08, 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x53, 0x10, 0x09, 0x12, 0x31, 0x0a, 0x2d, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, - 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x07, 0x12, 0x39, 0x0a, 0x35, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, - 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, - 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, - 0x08, 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, - 0x10, 0x09, 0x12, 0x31, 0x0a, 0x2d, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, - 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, - 0x41, 0x53, 0x45, 0x10, 0x0a, 0x2a, 0x89, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, + 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0a, 0x2a, 0x89, 0x01, 0x0a, 0x14, 0x49, 0x6e, + 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, + 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x50, 0x5f, + 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, + 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, + 0x49, 0x50, 0x45, 0x10, 0x02, 0x2a, 0x89, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x4f, - 0x50, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x50, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x53, 0x45, - 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x51, 0x4f, 0x53, 0x5f, + 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x4f, - 0x50, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x10, - 0x02, 0x2a, 0x89, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x50, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x49, 0x4e, - 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x54, 0x54, - 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x55, 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, - 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x54, 0x54, - 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x10, 0x02, 0x2a, 0x77, 0x0a, - 0x11, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x73, 0x63, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x50, 0x53, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x53, 0x45, - 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x53, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x45, 0x4c, 0x53, 0x50, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x53, 0x45, 0x47, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x53, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4c, 0x4c, 0x53, 0x50, 0x10, 0x02, 0x2a, 0x60, 0x0a, 0x0c, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, - 0x52, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, - 0x52, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, 0x12, - 0x17, 0x0a, 0x13, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, - 0x59, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x2a, 0x60, 0x0a, 0x0d, 0x49, 0x70, 0x6d, 0x63, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x4d, - 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x50, - 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x47, - 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x47, 0x10, 0x02, 0x2a, 0xa5, 0x01, 0x0a, 0x0b, 0x49, - 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x50, - 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, - 0x47, 0x43, 0x4d, 0x31, 0x36, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, - 0x43, 0x4d, 0x31, 0x36, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, - 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x4d, - 0x41, 0x43, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, - 0x50, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x4d, 0x41, 0x43, - 0x10, 0x04, 0x2a, 0x6a, 0x0a, 0x0e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, - 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x44, - 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x2a, 0x8a, - 0x02, 0x0a, 0x0d, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x54, 0x58, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x54, 0x58, 0x5f, 0x4e, 0x4f, - 0x4e, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x12, 0x21, - 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x52, 0x58, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, - 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x58, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x58, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x49, - 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x06, 0x2a, 0xe7, 0x01, 0x0a, 0x17, - 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x27, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x53, 0x41, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x33, 0x0a, 0x2f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, - 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x42, 0x45, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x41, - 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x01, 0x12, 0x34, 0x0a, 0x30, 0x49, 0x50, 0x53, - 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x45, 0x4c, 0x4f, 0x57, 0x5f, 0x48, - 0x49, 0x47, 0x48, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x02, 0x12, - 0x34, 0x0a, 0x30, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x4f, 0x43, 0x54, 0x45, - 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, - 0x42, 0x4f, 0x56, 0x45, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, - 0x41, 0x52, 0x4b, 0x10, 0x03, 0x2a, 0x94, 0x03, 0x0a, 0x0b, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, - 0x61, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, - 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, - 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x50, 0x53, 0x45, + 0x50, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x10, + 0x02, 0x2a, 0x77, 0x0a, 0x11, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, + 0x73, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x53, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x53, 0x43, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4c, 0x53, 0x50, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x49, + 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x50, 0x53, 0x43, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4c, 0x53, 0x50, 0x10, 0x02, 0x2a, 0x60, 0x0a, 0x0c, 0x49, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x50, + 0x5f, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x50, + 0x5f, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x56, + 0x34, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x46, + 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x2a, 0x60, 0x0a, 0x0d, + 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, + 0x1b, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, + 0x0a, 0x12, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x47, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x47, 0x10, 0x02, 0x2a, 0xa5, + 0x01, 0x0a, 0x0b, 0x49, 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x12, 0x1c, + 0x0a, 0x18, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x45, 0x53, + 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x31, 0x36, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x49, + 0x50, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x45, 0x53, 0x32, + 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x31, 0x36, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x50, + 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x45, 0x53, 0x31, 0x32, + 0x38, 0x5f, 0x47, 0x4d, 0x41, 0x43, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, + 0x47, 0x4d, 0x41, 0x43, 0x10, 0x04, 0x2a, 0x6a, 0x0a, 0x0e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x50, 0x53, + 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x44, + 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x02, 0x2a, 0x8a, 0x02, 0x0a, 0x0d, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x54, 0x58, 0x5f, 0x49, + 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x49, + 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x54, + 0x58, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x58, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, + 0x4b, 0x54, 0x53, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x58, 0x5f, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x58, 0x5f, 0x4e, + 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x06, 0x2a, + 0xe7, 0x01, 0x0a, 0x17, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x4f, 0x63, 0x74, 0x65, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x27, 0x49, + 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, + 0x55, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x33, 0x0a, 0x2f, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x45, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x4f, + 0x57, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x01, 0x12, 0x34, 0x0a, + 0x30, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x45, 0x4c, + 0x4f, 0x57, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, + 0x4b, 0x10, 0x02, 0x12, 0x34, 0x0a, 0x30, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, + 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x41, 0x42, 0x4f, 0x56, 0x45, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x57, 0x41, + 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x03, 0x2a, 0x94, 0x03, 0x0a, 0x0b, 0x49, 0x70, + 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, 0x53, + 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, - 0x54, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x50, - 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x4f, 0x4f, 0x44, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x48, 0x45, 0x41, - 0x44, 0x45, 0x52, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, 0x04, 0x12, 0x22, 0x0a, - 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, - 0x45, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, - 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, - 0x06, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, 0x08, 0x12, 0x27, 0x0a, - 0x23, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, - 0x55, 0x4d, 0x4d, 0x59, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x5f, 0x49, 0x4e, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, - 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0a, 0x2a, 0x7f, 0x0a, 0x12, - 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x53, 0x4f, 0x4c, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x53, 0x4f, 0x4c, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0x60, 0x0a, - 0x0d, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, - 0x0a, 0x1b, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x16, 0x0a, 0x12, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x47, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x32, 0x4d, 0x43, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x47, 0x10, 0x02, 0x2a, - 0xa5, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, - 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, - 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, - 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x02, - 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4e, 0x4f, - 0x54, 0x49, 0x43, 0x45, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, - 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, - 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, - 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x43, 0x52, 0x49, - 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x06, 0x2a, 0xd4, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x23, 0x0a, - 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, - 0x55, 0x49, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, - 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, 0x45, - 0x53, 0x5f, 0x31, 0x32, 0x38, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x47, - 0x43, 0x4d, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, - 0x49, 0x54, 0x45, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x58, 0x50, 0x4e, 0x5f, - 0x31, 0x32, 0x38, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, - 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x47, 0x43, 0x4d, - 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x58, 0x50, 0x4e, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x04, 0x2a, 0x6e, - 0x0a, 0x0f, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, - 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, - 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x2a, 0xc6, - 0x06, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, - 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, - 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, - 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x5f, 0x55, - 0x4e, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x26, 0x0a, - 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, - 0x54, 0x45, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x2c, 0x0a, - 0x28, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x2a, 0x0a, 0x26, 0x4d, + 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1b, + 0x0a, 0x17, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x47, 0x4f, 0x4f, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x49, + 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x42, 0x41, 0x44, + 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, + 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x49, 0x4e, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, + 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x49, 0x4e, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, + 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4c, + 0x45, 0x52, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x41, 0x55, + 0x54, 0x48, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, + 0x08, 0x12, 0x27, 0x0a, 0x23, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x44, 0x55, 0x4d, 0x4d, 0x59, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, + 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x54, 0x48, 0x45, + 0x52, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0a, + 0x2a, 0x7f, 0x0a, 0x12, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x49, + 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, + 0x02, 0x2a, 0x60, 0x0a, 0x0d, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x47, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, + 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, + 0x47, 0x10, 0x02, 0x2a, 0xa5, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, + 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x01, + 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, + 0x46, 0x4f, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, + 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x04, 0x12, 0x13, + 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x06, 0x2a, 0xd4, 0x01, 0x0a, 0x11, + 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, + 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, + 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x47, 0x43, + 0x4d, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4d, + 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, + 0x54, 0x45, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x02, + 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, + 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, 0x45, 0x53, 0x5f, + 0x58, 0x50, 0x4e, 0x5f, 0x31, 0x32, 0x38, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x41, 0x43, + 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, + 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x58, 0x50, 0x4e, 0x5f, 0x32, 0x35, 0x36, + 0x10, 0x04, 0x2a, 0x6e, 0x0a, 0x0f, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, + 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, + 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x02, 0x2a, 0xc6, 0x06, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, + 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x54, 0x48, 0x45, + 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, + 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, + 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, + 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x10, + 0x04, 0x12, 0x2c, 0x0a, 0x28, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, + 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, - 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4d, 0x55, - 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x42, 0x52, - 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, + 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, + 0x4e, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x2e, 0x0a, + 0x2a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x30, 0x0a, + 0x2c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, + 0x2e, 0x0a, 0x2a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x0a, 0x12, + 0x21, 0x0a, 0x1d, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x10, 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, + 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x54, 0x41, + 0x47, 0x47, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x2b, 0x0a, 0x27, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x41, + 0x47, 0x47, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x0d, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, + 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x0e, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x4d, + 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x0f, + 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x42, 0x41, 0x44, + 0x5f, 0x54, 0x41, 0x47, 0x10, 0x10, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x53, 0x43, 0x49, 0x10, 0x11, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0b, 0x12, 0x22, - 0x0a, 0x1e, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, - 0x10, 0x0c, 0x12, 0x2b, 0x0a, 0x27, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, - 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, - 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0d, 0x12, - 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x54, 0x4f, 0x4f, - 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x0e, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x0f, 0x12, 0x24, 0x0a, 0x20, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x54, 0x41, 0x47, - 0x10, 0x10, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, - 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x4e, - 0x4f, 0x5f, 0x53, 0x43, 0x49, 0x10, 0x11, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x43, 0x49, 0x10, - 0x12, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x4f, 0x56, - 0x45, 0x52, 0x52, 0x55, 0x4e, 0x10, 0x13, 0x2a, 0xa0, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, - 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, - 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x2a, 0xe9, 0x03, 0x0a, 0x0c, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, - 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x4d, - 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x43, - 0x54, 0x45, 0x54, 0x53, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x10, 0x01, - 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, - 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, - 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, - 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, - 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x45, - 0x44, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, - 0x43, 0x48, 0x45, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x06, 0x12, 0x1f, 0x0a, - 0x1b, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x07, 0x12, 0x22, - 0x0a, 0x1e, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x41, 0x43, 0x53, - 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x41, 0x10, - 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x55, 0x53, - 0x45, 0x44, 0x5f, 0x53, 0x41, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, + 0x53, 0x43, 0x49, 0x10, 0x12, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, + 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x55, 0x4e, 0x10, 0x13, 0x2a, 0xa0, 0x01, 0x0a, 0x0e, + 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x12, 0x20, + 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x4d, + 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1e, + 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x2a, 0xe9, + 0x03, 0x0a, 0x0c, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x12, + 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, + 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, + 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, + 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x10, 0x03, + 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54, + 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x0c, 0x2a, 0x50, 0x0a, 0x0c, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x53, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, - 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, - 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x41, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, - 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x01, 0x2a, 0x77, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x45, 0x54, - 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, - 0x20, 0x0a, 0x1c, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, - 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, - 0x03, 0x2a, 0xac, 0x01, 0x0a, 0x1b, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x4e, 0x54, 0x10, - 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, - 0x2a, 0xbf, 0x01, 0x0a, 0x11, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4d, - 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x49, - 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x49, + 0x53, 0x5f, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x05, 0x12, 0x22, 0x0a, + 0x1e, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, + 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x4c, 0x41, 0x54, 0x45, + 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, + 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, + 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x41, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, + 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, + 0x55, 0x4e, 0x55, 0x53, 0x45, 0x44, 0x5f, 0x53, 0x41, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4d, + 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x0c, 0x2a, 0x50, 0x0a, 0x0c, 0x4d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, + 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, + 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x41, 0x5f, + 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x01, 0x2a, 0x77, 0x0a, 0x09, + 0x4d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x54, + 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, + 0x53, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, + 0x41, 0x53, 0x45, 0x10, 0x03, 0x2a, 0xac, 0x01, 0x0a, 0x1b, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x50, 0x45, 0x4e, 0x44, + 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x4c, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, 0x11, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x45, 0x4e, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, - 0x45, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x4c, 0x4f, 0x57, - 0x10, 0x04, 0x2a, 0xfa, 0x03, 0x0a, 0x20, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x31, 0x4d, 0x59, 0x5f, 0x53, 0x49, - 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, - 0x0a, 0x2a, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, - 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, - 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x2d, - 0x0a, 0x29, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, - 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, - 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x50, 0x53, 0x50, 0x10, 0x02, 0x12, 0x2d, 0x0a, - 0x29, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, - 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, - 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x03, 0x12, 0x2d, 0x0a, 0x29, - 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, - 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, - 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x04, 0x12, 0x35, 0x0a, 0x31, 0x4d, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1d, 0x0a, 0x19, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1e, + 0x0a, 0x1a, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x02, 0x12, 0x27, + 0x0a, 0x23, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x5f, 0x52, + 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x4d, 0x49, 0x52, 0x52, 0x4f, + 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x2a, 0xfa, 0x03, 0x0a, 0x20, 0x4d, 0x79, 0x53, 0x69, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x31, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, - 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x55, 0x53, 0x50, - 0x10, 0x05, 0x12, 0x35, 0x0a, 0x31, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, + 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, + 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, + 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, - 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x55, 0x53, 0x44, 0x5f, - 0x41, 0x4e, 0x44, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x06, 0x12, 0x35, 0x0a, 0x31, 0x4d, 0x59, 0x5f, - 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, - 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, - 0x4f, 0x52, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x07, - 0x12, 0x3d, 0x0a, 0x39, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x50, 0x53, 0x50, 0x10, + 0x02, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, + 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x03, + 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, - 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x41, 0x4e, - 0x44, 0x5f, 0x55, 0x53, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x08, 0x2a, - 0x81, 0x06, 0x0a, 0x1a, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x2e, - 0x0a, 0x2a, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, - 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, - 0x0a, 0x20, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, - 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, - 0x5f, 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, + 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x55, 0x53, 0x44, 0x10, 0x04, 0x12, + 0x35, 0x0a, 0x31, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, + 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x41, 0x4e, 0x44, + 0x5f, 0x55, 0x53, 0x50, 0x10, 0x05, 0x12, 0x35, 0x0a, 0x31, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, + 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, + 0x55, 0x53, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x55, 0x53, 0x50, 0x10, 0x06, 0x12, 0x35, 0x0a, + 0x31, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, + 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, + 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x50, 0x53, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x55, + 0x53, 0x44, 0x10, 0x07, 0x12, 0x3d, 0x0a, 0x39, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, - 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x58, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x59, - 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, - 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x54, 0x10, 0x03, - 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, - 0x4f, 0x52, 0x5f, 0x44, 0x58, 0x36, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x59, 0x5f, 0x53, - 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, - 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x44, 0x58, 0x34, 0x10, 0x05, - 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, - 0x4f, 0x52, 0x5f, 0x44, 0x54, 0x36, 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x59, 0x5f, 0x53, + 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x5f, 0x50, 0x53, + 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x55, 0x53, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x55, 0x53, + 0x44, 0x10, 0x08, 0x2a, 0x81, 0x06, 0x0a, 0x1a, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, + 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, + 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, - 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x44, 0x54, 0x34, 0x10, 0x07, - 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, - 0x4f, 0x52, 0x5f, 0x44, 0x54, 0x34, 0x36, 0x10, 0x08, 0x12, 0x2c, 0x0a, 0x28, 0x4d, 0x59, 0x5f, - 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, - 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x42, 0x36, 0x5f, 0x45, - 0x4e, 0x43, 0x41, 0x50, 0x53, 0x10, 0x09, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x59, 0x5f, 0x53, 0x49, - 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x42, 0x36, 0x5f, 0x45, 0x4e, 0x43, - 0x41, 0x50, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x2c, 0x0a, 0x28, 0x4d, 0x59, 0x5f, - 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, - 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x42, 0x36, 0x5f, 0x49, - 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x0b, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x59, 0x5f, 0x53, 0x49, - 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x42, 0x36, 0x5f, 0x49, 0x4e, 0x53, - 0x45, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x59, 0x5f, - 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, - 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x10, 0x0d, - 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, - 0x4f, 0x52, 0x5f, 0x55, 0x41, 0x10, 0x0e, 0x12, 0x35, 0x0a, 0x31, 0x4d, 0x59, 0x5f, 0x53, 0x49, - 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x0f, 0x12, 0x33, - 0x0a, 0x2f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, + 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x58, 0x10, 0x02, 0x12, 0x24, + 0x0a, 0x20, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, - 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, - 0x44, 0x10, 0x10, 0x2a, 0xa9, 0x01, 0x0a, 0x07, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x18, 0x0a, 0x14, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x41, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, - 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, - 0x4e, 0x41, 0x54, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x41, - 0x54, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, - 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0x05, 0x2a, - 0xdf, 0x09, 0x0a, 0x0f, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, - 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, - 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, - 0x49, 0x50, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, - 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, - 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, - 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, - 0x43, 0x5f, 0x49, 0x50, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, - 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, - 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x41, - 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x41, - 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x41, + 0x5f, 0x54, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, + 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x44, 0x58, 0x36, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, + 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, + 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x44, + 0x58, 0x34, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, + 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x44, 0x54, 0x36, 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, + 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, + 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x44, + 0x54, 0x34, 0x10, 0x07, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, + 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x44, 0x54, 0x34, 0x36, 0x10, 0x08, 0x12, 0x2c, 0x0a, + 0x28, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, + 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, + 0x42, 0x36, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x10, 0x09, 0x12, 0x30, 0x0a, 0x2c, 0x4d, + 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x42, 0x36, + 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x2c, 0x0a, + 0x28, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, + 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, + 0x42, 0x36, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x0b, 0x12, 0x30, 0x0a, 0x2c, 0x4d, + 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x42, 0x36, + 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x25, 0x0a, + 0x21, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, + 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, + 0x55, 0x4e, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, + 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x55, 0x41, 0x10, 0x0e, 0x12, 0x35, 0x0a, 0x31, 0x4d, + 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, + 0x10, 0x0f, 0x12, 0x33, 0x0a, 0x2f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, + 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x10, 0x2a, 0xa9, 0x01, 0x0a, 0x07, 0x4e, 0x61, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, + 0x0d, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, + 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4f, 0x55, + 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x41, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x41, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x04, + 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x53, + 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x50, 0x4f, 0x4f, + 0x4c, 0x10, 0x05, 0x2a, 0xdf, 0x09, 0x0a, 0x0f, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, + 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x49, 0x56, + 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x41, + 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x41, 0x54, 0x49, + 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, + 0x54, 0x5f, 0x49, 0x50, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, + 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, + 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, + 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x04, 0x12, 0x1e, + 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x05, 0x12, 0x1e, + 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x06, 0x12, 0x1e, + 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x07, 0x12, 0x1e, + 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x08, 0x12, 0x24, + 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, + 0x56, 0x34, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, + 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, + 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x09, + 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x0b, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, - 0x49, 0x50, 0x56, 0x34, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, - 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, - 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x0b, 0x12, 0x24, 0x0a, 0x20, + 0x49, 0x50, 0x56, 0x36, 0x10, 0x0c, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, + 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, + 0x5f, 0x49, 0x44, 0x10, 0x0d, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, + 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x0e, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x41, 0x54, 0x49, + 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x54, + 0x48, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0f, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, + 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, + 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x10, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, - 0x10, 0x0c, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, - 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, - 0x0d, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, - 0x4f, 0x4c, 0x10, 0x0e, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, - 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x54, - 0x59, 0x50, 0x45, 0x10, 0x0f, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, - 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, - 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x10, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x49, - 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, - 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x4e, - 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x12, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x41, - 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x13, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x41, 0x54, - 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, - 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x14, 0x12, 0x27, 0x0a, 0x23, 0x4e, 0x41, 0x54, 0x49, - 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, - 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, - 0x15, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x45, 0x54, 0x48, - 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x10, 0x16, 0x12, 0x27, 0x0a, 0x23, 0x4e, 0x41, 0x54, 0x49, - 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, - 0x4e, 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, - 0x17, 0x12, 0x27, 0x0a, 0x23, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x18, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x41, - 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x19, 0x12, - 0x23, 0x0a, 0x1f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, - 0x41, 0x43, 0x10, 0x1a, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, - 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, - 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x1b, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, - 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x30, 0x10, 0x1c, 0x12, 0x22, + 0x44, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x11, 0x12, + 0x1d, 0x0a, 0x19, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x12, 0x12, 0x1d, + 0x0a, 0x19, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x13, 0x12, 0x1d, 0x0a, + 0x19, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x14, 0x12, 0x27, 0x0a, 0x23, + 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, + 0x43, 0x4f, 0x4c, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, + 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, + 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x10, 0x16, 0x12, 0x27, 0x0a, 0x23, + 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x17, 0x12, 0x27, 0x0a, 0x23, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, + 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, + 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x18, 0x12, 0x23, + 0x0a, 0x1f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, + 0x43, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, + 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x44, + 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x1a, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x49, + 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, + 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x1b, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x31, - 0x10, 0x1d, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, + 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x30, + 0x10, 0x1c, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, - 0x45, 0x4c, 0x5f, 0x32, 0x10, 0x1e, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, + 0x45, 0x4c, 0x5f, 0x31, 0x10, 0x1d, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, - 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x33, 0x10, 0x1f, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, + 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x32, 0x10, 0x1e, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x34, 0x10, 0x20, 0x12, 0x25, - 0x0a, 0x21, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x41, - 0x42, 0x45, 0x4c, 0x10, 0x21, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, - 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, - 0x22, 0x2a, 0x75, 0x0a, 0x13, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x4e, 0x45, 0x58, 0x54, - 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x35, 0x0a, 0x31, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4f, 0x52, - 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x54, 0x4f, - 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x01, 0x2a, 0xbf, 0x01, 0x0a, 0x20, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x35, 0x0a, - 0x31, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, - 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x31, 0x0a, 0x2d, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x43, 0x4f, - 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x50, 0x52, - 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x31, 0x0a, 0x2d, 0x4e, 0x45, 0x58, 0x54, 0x5f, - 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, - 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, - 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x42, 0x59, 0x10, 0x02, 0x2a, 0xb7, 0x01, 0x0a, 0x1e, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x0a, - 0x2f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, - 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x33, 0x10, 0x1f, 0x12, 0x22, + 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x34, + 0x10, 0x20, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, + 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x46, 0x4c, 0x4f, + 0x57, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x21, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x41, 0x54, + 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x22, 0x2a, 0x75, 0x0a, 0x13, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, + 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, + 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x35, 0x0a, 0x31, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, + 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, + 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x01, 0x2a, 0xbf, 0x01, 0x0a, + 0x20, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x65, 0x12, 0x35, 0x0a, 0x31, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, + 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x31, 0x0a, 0x2d, 0x4e, 0x45, 0x58, 0x54, + 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, + 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, + 0x45, 0x5f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x31, 0x0a, 0x2d, 0x4e, + 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, + 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, + 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x42, 0x59, 0x10, 0x02, 0x2a, 0xb7, + 0x01, 0x0a, 0x1e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x65, 0x12, 0x33, 0x0a, 0x2f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x42, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, + 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, + 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, + 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, + 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x49, 0x4e, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0xa5, 0x02, 0x0a, 0x10, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, + 0x1f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x42, 0x53, 0x45, - 0x52, 0x56, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, - 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x42, 0x53, 0x45, - 0x52, 0x56, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, - 0x56, 0x45, 0x10, 0x02, 0x2a, 0xa5, 0x02, 0x0a, 0x10, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x45, 0x58, - 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, - 0x0a, 0x2a, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x55, 0x4e, - 0x4f, 0x52, 0x44, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x10, 0x01, 0x12, 0x1c, - 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x2c, 0x0a, 0x28, - 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x4f, 0x52, 0x44, 0x45, - 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x4e, 0x45, - 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x5f, 0x45, 0x43, 0x4d, - 0x50, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x45, 0x58, 0x54, 0x5f, - 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, - 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x44, 0x10, 0x06, 0x2a, 0x9a, 0x01, 0x0a, - 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, - 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, - 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x10, - 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x45, 0x58, - 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, - 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x45, 0x58, - 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, - 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x2a, 0xf2, 0x17, 0x0a, 0x0a, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, - 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4c, 0x41, 0x47, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, - 0x55, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x05, - 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x06, - 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, - 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x08, 0x12, 0x19, 0x0a, - 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x55, 0x4e, - 0x54, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x0b, - 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, - 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x10, - 0x0e, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, - 0x0f, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x10, 0x12, - 0x13, 0x0a, 0x0f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x54, 0x50, 0x10, 0x11, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x12, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x10, 0x13, - 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x57, 0x52, 0x45, 0x44, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x15, 0x12, - 0x15, 0x0a, 0x11, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x10, 0x16, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x10, - 0x17, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x10, 0x18, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0x19, 0x12, - 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, - 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x1a, 0x12, - 0x26, 0x0a, 0x22, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, - 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x1b, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, - 0x52, 0x10, 0x1c, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x44, 0x46, 0x10, 0x1e, 0x12, 0x19, - 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x44, - 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x1f, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x10, 0x20, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x21, 0x12, - 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x22, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x10, 0x23, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x24, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x25, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x10, 0x26, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x27, 0x12, 0x1b, 0x0a, 0x17, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x28, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x29, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, - 0x50, 0x10, 0x2a, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x2b, 0x12, 0x27, 0x0a, 0x23, 0x4f, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, + 0x43, 0x5f, 0x55, 0x4e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4d, 0x50, + 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x10, 0x02, + 0x12, 0x2c, 0x0a, 0x28, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, + 0x4f, 0x52, 0x44, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x10, 0x03, 0x12, 0x27, + 0x0a, 0x23, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, + 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x45, 0x58, 0x54, 0x5f, + 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x23, 0x0a, 0x1f, 0x4e, + 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x44, 0x10, 0x06, + 0x2a, 0x9a, 0x01, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x14, 0x0a, 0x10, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x49, 0x50, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, + 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x10, 0x02, 0x12, 0x1e, 0x0a, + 0x1a, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0x03, 0x12, 0x1e, 0x0a, + 0x1a, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x2a, 0xf2, 0x17, + 0x0a, 0x0a, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x47, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, + 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, + 0x4f, 0x50, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x46, 0x41, 0x43, 0x45, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, + 0x08, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, + 0x47, 0x45, 0x10, 0x0b, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x16, 0x0a, + 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x10, 0x0e, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x10, 0x0f, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x54, 0x50, 0x10, 0x11, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, + 0x52, 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x12, 0x12, 0x17, 0x0a, 0x13, 0x4f, + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, + 0x45, 0x52, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, + 0x50, 0x10, 0x15, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x16, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, + 0x4c, 0x45, 0x52, 0x10, 0x17, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x10, 0x18, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, + 0x4c, 0x10, 0x19, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, + 0x45, 0x10, 0x1a, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, + 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x1b, 0x12, 0x1a, 0x0a, 0x16, 0x4f, + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x4d, + 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x1c, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x1d, 0x12, 0x13, 0x0a, + 0x0f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x44, 0x46, + 0x10, 0x1e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x44, 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x1f, 0x12, 0x19, 0x0a, + 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x44, 0x46, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x20, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x10, 0x21, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x22, 0x12, 0x1b, 0x0a, 0x17, 0x4f, + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x10, 0x23, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x24, 0x12, 0x1e, 0x0a, 0x1a, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x49, 0x47, + 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x25, 0x12, 0x1b, 0x0a, 0x17, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, + 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x26, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x27, 0x12, + 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x28, 0x12, 0x1d, 0x0a, 0x19, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, + 0x49, 0x46, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x29, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, - 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x10, 0x2c, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x10, 0x2d, 0x12, - 0x25, 0x0a, 0x21, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, - 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, - 0x4d, 0x42, 0x45, 0x52, 0x10, 0x2e, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x2f, - 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x30, 0x12, 0x20, 0x0a, 0x1c, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x31, 0x12, 0x1a, 0x0a, - 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x32, 0x4d, - 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x32, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x33, 0x12, 0x1a, 0x0a, 0x16, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x4d, 0x43, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x34, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x35, 0x12, 0x1a, 0x0a, 0x16, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x36, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x10, 0x37, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x10, 0x38, 0x12, 0x28, 0x0a, 0x24, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, - 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x10, 0x39, 0x12, 0x16, - 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x52, - 0x49, 0x44, 0x47, 0x45, 0x10, 0x3a, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x10, 0x3b, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x10, 0x3c, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x10, 0x3d, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, - 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x3e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, - 0x4c, 0x10, 0x3f, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x40, - 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x44, 0x54, 0x45, 0x4c, 0x10, 0x41, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x42, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, - 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x43, 0x12, 0x23, 0x0a, 0x1f, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, - 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x44, + 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x2a, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x2b, 0x12, + 0x27, 0x0a, 0x23, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x2c, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x46, 0x4c, 0x55, 0x53, + 0x48, 0x10, 0x2d, 0x12, 0x25, 0x0a, 0x21, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x2e, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x2f, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x30, 0x12, + 0x20, 0x0a, 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, + 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, + 0x31, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x32, 0x12, 0x21, 0x0a, + 0x1d, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x32, 0x4d, + 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x33, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x45, 0x12, 0x1b, 0x0a, 0x17, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x46, 0x44, 0x5f, - 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x47, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, - 0x10, 0x48, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x10, - 0x49, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x4a, 0x12, 0x23, 0x0a, - 0x1f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, - 0x10, 0x4b, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x4c, - 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x4d, 0x12, - 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, - 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x10, 0x4e, 0x12, 0x1d, - 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, - 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x4f, 0x12, 0x20, 0x0a, - 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x50, 0x12, - 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, - 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x51, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, - 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x52, 0x12, 0x19, 0x0a, 0x15, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x53, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x10, 0x54, - 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x55, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, - 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x56, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x57, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, - 0x44, 0x45, 0x53, 0x10, 0x58, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x10, 0x59, 0x12, 0x1b, 0x0a, - 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x5a, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, - 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x5b, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, - 0x10, 0x5c, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x10, 0x5d, 0x12, 0x1b, 0x0a, - 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, - 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x5e, 0x12, 0x27, 0x0a, 0x23, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, - 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x10, 0x5f, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, - 0x10, 0x60, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x61, - 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x62, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x63, 0x12, 0x15, 0x0a, 0x11, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x10, 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x65, 0x12, - 0x18, 0x0a, 0x14, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, - 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x10, 0x66, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x67, 0x2a, 0xeb, - 0x02, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, - 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x4c, 0x32, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x55, 0x54, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, 0x45, - 0x53, 0x53, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x03, + 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x34, 0x12, 0x21, 0x0a, 0x1d, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x4d, 0x43, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x35, 0x12, + 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, + 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x36, 0x12, 0x1a, 0x0a, 0x16, 0x4f, + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x37, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x38, 0x12, 0x28, 0x0a, 0x24, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, + 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, + 0x10, 0x39, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x10, 0x3a, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x3b, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, + 0x50, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3c, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x10, 0x3d, 0x12, 0x1c, + 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, + 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x3e, 0x12, 0x19, 0x0a, 0x15, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0x3f, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x10, 0x40, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x10, 0x41, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, + 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x42, 0x12, 0x20, 0x0a, + 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, + 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x43, 0x12, + 0x23, 0x0a, 0x1f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x10, 0x44, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x45, + 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x1f, 0x0a, + 0x1b, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x53, 0x4f, + 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x47, 0x12, 0x26, + 0x0a, 0x22, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x53, + 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, + 0x4d, 0x42, 0x45, 0x52, 0x10, 0x48, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, + 0x55, 0x4e, 0x43, 0x10, 0x49, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, + 0x4a, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, + 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x4b, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x4c, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, + 0x54, 0x10, 0x4d, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, + 0x10, 0x4e, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, + 0x4f, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x50, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x51, 0x12, 0x20, + 0x0a, 0x1c, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x41, + 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x52, + 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x53, 0x12, 0x17, 0x0a, 0x13, 0x4f, + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x49, + 0x4e, 0x54, 0x10, 0x54, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x55, 0x12, 0x1d, 0x0a, + 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x42, + 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x56, 0x12, 0x1e, 0x0a, 0x1a, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x57, 0x12, 0x1b, 0x0a, 0x17, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x10, 0x58, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x10, + 0x59, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x5a, 0x12, 0x1b, + 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, + 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x5b, 0x12, 0x19, 0x0a, 0x15, 0x4f, + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x43, 0x5f, 0x53, 0x43, 0x10, 0x5c, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x10, + 0x5d, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x5e, 0x12, 0x27, + 0x0a, 0x23, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, + 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, + 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x5f, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, + 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x60, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x10, 0x61, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x62, 0x12, 0x22, 0x0a, 0x1e, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x58, 0x54, + 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x63, + 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x10, 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x10, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x10, 0x66, 0x12, 0x13, 0x0a, + 0x0f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x58, + 0x10, 0x67, 0x2a, 0xeb, 0x02, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, + 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x32, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x4c, 0x33, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x44, - 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x12, 0x2f, 0x0a, 0x2b, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, - 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x07, 0x12, - 0x25, 0x0a, 0x21, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, - 0x42, 0x41, 0x53, 0x45, 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x09, 0x2a, 0x67, 0x0a, 0x0d, - 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, - 0x1b, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, - 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4f, - 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, - 0x49, 0x50, 0x45, 0x10, 0x02, 0x2a, 0x67, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, - 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, - 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x53, 0x45, - 0x47, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x46, 0x4f, - 0x52, 0x4d, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, - 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x10, 0x02, 0x2a, 0x55, - 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, - 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x55, 0x54, - 0x53, 0x45, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x10, 0x01, 0x12, - 0x14, 0x0a, 0x10, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x57, 0x41, 0x50, 0x10, 0x02, 0x2a, 0xf9, 0x01, 0x0a, 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x19, 0x0a, - 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, - 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x10, 0x03, - 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x04, 0x12, - 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x54, 0x52, 0x41, 0x50, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x06, 0x12, 0x16, - 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x44, 0x45, 0x4e, 0x59, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x10, - 0x08, 0x2a, 0x72, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, - 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x47, - 0x52, 0x45, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, - 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, - 0x52, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x7e, 0x0a, 0x0a, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, - 0x6c, 0x61, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, - 0x41, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x55, 0x4e, 0x54, 0x41, 0x47, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x4f, 0x55, - 0x54, 0x45, 0x52, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, - 0x54, 0x41, 0x47, 0x10, 0x03, 0x2a, 0xa6, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, - 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x20, - 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x43, 0x4f, - 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x44, - 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x43, 0x4f, - 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x41, 0x57, 0x41, 0x52, 0x45, - 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x43, 0x4f, - 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, - 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x2a, 0xa1, - 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, - 0x0a, 0x18, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, - 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x52, 0x5f, - 0x54, 0x43, 0x4d, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x52, 0x5f, 0x54, 0x43, 0x4d, 0x10, 0x02, 0x12, 0x1e, - 0x0a, 0x1a, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, - 0x54, 0x4f, 0x52, 0x4d, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x03, 0x12, 0x22, - 0x0a, 0x1e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, + 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, + 0x45, 0x52, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x04, + 0x12, 0x27, 0x0a, 0x23, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, + 0x4e, 0x4b, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x12, 0x2f, 0x0a, 0x2b, 0x4f, 0x55, 0x54, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x55, 0x4e, + 0x4e, 0x45, 0x4c, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x55, + 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, + 0x44, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, + 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x4f, 0x55, + 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x09, + 0x2a, 0x67, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x01, 0x12, + 0x18, 0x0a, 0x14, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x10, 0x02, 0x2a, 0x67, 0x0a, 0x0d, 0x4f, 0x75, 0x74, + 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, + 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4f, + 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, + 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x55, 0x54, 0x53, + 0x45, 0x47, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, + 0x10, 0x02, 0x2a, 0x55, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, + 0x10, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x53, + 0x48, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x57, 0x41, 0x50, 0x10, 0x02, 0x2a, 0xf9, 0x01, 0x0a, 0x0c, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, + 0x01, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, + 0x50, 0x59, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, + 0x4c, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x47, + 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x49, 0x54, 0x10, 0x08, 0x2a, 0x72, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4c, + 0x4f, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, + 0x57, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, + 0x4c, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x7e, 0x0a, 0x0a, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, + 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x02, 0x12, 0x1a, 0x0a, + 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x44, 0x4f, 0x55, + 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x03, 0x2a, 0xa6, 0x01, 0x0a, 0x12, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, + 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, + 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x42, + 0x4c, 0x49, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, + 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x41, + 0x57, 0x41, 0x52, 0x45, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, + 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, - 0x10, 0x04, 0x2a, 0xbe, 0x02, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, - 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x4c, 0x49, 0x43, - 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x4c, 0x49, 0x43, - 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x42, 0x59, - 0x54, 0x45, 0x53, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x53, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, - 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x42, 0x59, - 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x53, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x08, 0x12, - 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, - 0x45, 0x10, 0x09, 0x2a, 0xd9, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x6f, - 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, - 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x43, - 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, - 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, - 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x55, - 0x54, 0x4f, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, + 0x10, 0x03, 0x2a, 0xa1, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x53, 0x52, 0x5f, 0x54, 0x43, 0x4d, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x4c, + 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x52, 0x5f, 0x54, 0x43, 0x4d, + 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x4d, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, + 0x42, 0x41, 0x53, 0x45, 0x10, 0x04, 0x2a, 0xbe, 0x02, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, + 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x1b, + 0x0a, 0x17, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, + 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, + 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x50, + 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, + 0x4e, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x4c, + 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, + 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, + 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, + 0x57, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x4c, + 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x4c, 0x49, 0x43, + 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, + 0x53, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, + 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x09, 0x2a, 0xd9, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, + 0x45, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x43, 0x4f, + 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x53, 0x4c, 0x41, 0x56, 0x45, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x41, 0x53, 0x54, 0x45, 0x52, 0x10, 0x04, 0x2a, - 0xcc, 0x01, 0x0a, 0x14, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, - 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x5f, 0x4c, - 0x41, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x52, + 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x4c, 0x41, 0x56, 0x45, 0x10, 0x03, 0x12, 0x24, 0x0a, + 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x43, + 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x41, 0x53, 0x54, 0x45, + 0x52, 0x10, 0x04, 0x2a, 0xcc, 0x01, 0x0a, 0x14, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x72, 0x65, 0x61, + 0x6b, 0x6f, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x32, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, + 0x5f, 0x31, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x34, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x1f, 0x0a, - 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x04, 0x2a, 0xc9, - 0x01, 0x0a, 0x19, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x28, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, - 0x4c, 0x45, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x02, 0x12, 0x2a, - 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, - 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, - 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x03, 0x2a, 0xd6, 0x01, 0x0a, 0x0d, 0x50, - 0x6f, 0x72, 0x74, 0x44, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x1f, 0x0a, 0x1b, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x32, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x22, 0x0a, + 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x34, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, + 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, + 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x58, + 0x10, 0x04, 0x2a, 0xc9, 0x01, 0x0a, 0x19, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x4f, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, + 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, + 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, + 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, + 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, + 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x03, 0x2a, 0xd6, + 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x72, 0x74, 0x44, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, + 0x44, 0x49, 0x41, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, + 0x45, 0x44, 0x49, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x43, + 0x4f, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, - 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, - 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x43, 0x4f, 0x50, 0x50, 0x45, - 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x46, 0x49, 0x42, 0x45, - 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x43, 0x4f, 0x50, 0x50, - 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x23, - 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, - 0x41, 0x5f, 0x46, 0x49, 0x42, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, - 0x44, 0x10, 0x05, 0x2a, 0x85, 0x03, 0x0a, 0x0d, 0x50, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, - 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, - 0x4e, 0x49, 0x54, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, - 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x49, 0x5a, - 0x45, 0x10, 0x02, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, + 0x46, 0x49, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, + 0x43, 0x4f, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, + 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x46, 0x49, 0x42, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, + 0x45, 0x52, 0x52, 0x45, 0x44, 0x10, 0x05, 0x2a, 0x85, 0x03, 0x0a, 0x0d, 0x50, 0x6f, 0x72, 0x74, + 0x45, 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, - 0x5f, 0x4d, 0x49, 0x53, 0x41, 0x4c, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52, - 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, - 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, - 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x58, 0x5f, 0x52, 0x45, 0x41, - 0x43, 0x48, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, - 0x52, 0x43, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x07, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4d, - 0x4f, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x09, 0x2a, 0xef, 0x01, 0x0a, 0x13, - 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, - 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, - 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x53, 0x35, 0x32, 0x38, 0x10, 0x02, 0x12, 0x20, - 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x53, 0x35, 0x34, 0x34, 0x10, 0x03, - 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x53, 0x35, 0x34, 0x34, - 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1d, - 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x46, 0x43, 0x10, 0x05, 0x2a, 0x70, 0x0a, - 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x19, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, - 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x53, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x43, 0x10, 0x03, 0x2a, - 0xd1, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, + 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, + 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x41, 0x4c, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, + 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, + 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x58, + 0x5f, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x06, 0x12, + 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x07, 0x12, 0x27, 0x0a, + 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, + 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x09, 0x2a, + 0xef, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, + 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, + 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x53, 0x35, 0x32, 0x38, + 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x53, 0x35, + 0x34, 0x34, 0x10, 0x03, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, + 0x53, 0x35, 0x34, 0x34, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x46, 0x43, 0x10, + 0x05, 0x2a, 0x70, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, - 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, - 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x58, - 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x53, 0x10, 0x02, 0x12, 0x14, 0x0a, + 0x10, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, + 0x43, 0x10, 0x03, 0x2a, 0xd1, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x49, + 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x52, 0x58, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x50, + 0x45, 0x5f, 0x54, 0x58, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, - 0x45, 0x10, 0x04, 0x2a, 0x9f, 0x05, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x58, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x12, + 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x5f, 0x45, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x2a, 0x9f, 0x05, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, + 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, + 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, + 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x32, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, - 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, + 0x5f, 0x43, 0x52, 0x34, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, + 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, 0x32, 0x10, 0x06, 0x12, + 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, 0x34, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x52, 0x10, 0x08, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x52, 0x32, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, - 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x34, - 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, - 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, 0x10, 0x05, 0x12, 0x1b, - 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, 0x32, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x52, 0x34, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4c, 0x52, 0x10, 0x08, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x52, 0x34, 0x10, - 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, - 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x52, 0x10, 0x0a, 0x12, 0x1b, 0x0a, - 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x52, 0x34, 0x10, 0x0b, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x43, 0x41, 0x55, 0x49, 0x10, 0x0c, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x47, 0x4d, 0x49, 0x49, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, - 0x49, 0x10, 0x0e, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, - 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x4c, 0x41, 0x55, 0x49, - 0x10, 0x0f, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, - 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x52, 0x32, 0x10, 0x10, 0x12, - 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x55, 0x49, 0x34, 0x10, 0x11, 0x12, 0x1c, + 0x4c, 0x52, 0x34, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, + 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x52, 0x10, + 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, + 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x52, 0x34, 0x10, 0x0b, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x41, 0x55, 0x49, 0x10, 0x12, 0x12, 0x1b, 0x0a, 0x17, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x55, 0x49, 0x10, 0x0c, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x58, 0x46, 0x49, 0x10, 0x13, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x58, 0x47, 0x4d, 0x49, 0x49, 0x10, 0x14, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4d, 0x41, 0x58, 0x10, 0x15, 0x2a, 0xb7, 0x01, 0x0a, 0x18, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, - 0x4e, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, - 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, - 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, - 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, - 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x03, 0x2a, - 0xa5, 0x02, 0x0a, 0x1d, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, - 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, - 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, - 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x10, 0x01, 0x12, 0x36, 0x0a, 0x32, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, - 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, - 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x39, 0x0a, 0x35, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, - 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x53, 0x4e, 0x52, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x52, 0x45, - 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, - 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x49, 0x4d, - 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x04, 0x2a, 0xa0, 0x01, 0x0a, 0x18, 0x50, 0x6f, 0x72, 0x74, - 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x78, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, - 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, - 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, - 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, - 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xae, 0x01, 0x0a, 0x10, 0x50, - 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, + 0x59, 0x50, 0x45, 0x5f, 0x47, 0x4d, 0x49, 0x49, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x46, 0x49, 0x10, 0x0e, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, + 0x4c, 0x41, 0x55, 0x49, 0x10, 0x0f, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x52, + 0x32, 0x10, 0x10, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, + 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x55, 0x49, 0x34, + 0x10, 0x11, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x41, 0x55, 0x49, 0x10, 0x12, + 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, + 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x46, 0x49, 0x10, 0x13, 0x12, 0x1d, 0x0a, + 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x47, 0x4d, 0x49, 0x49, 0x10, 0x14, 0x12, 0x1b, 0x0a, 0x17, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x15, 0x2a, 0xb7, 0x01, 0x0a, 0x18, 0x50, 0x6f, + 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, - 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, + 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, + 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, + 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x10, 0x02, 0x12, 0x23, + 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, + 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x41, + 0x43, 0x10, 0x03, 0x2a, 0xa5, 0x02, 0x0a, 0x1d, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, + 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x55, 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x36, 0x0a, 0x32, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x52, + 0x41, 0x4d, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, + 0x12, 0x39, 0x0a, 0x35, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, + 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x4e, 0x52, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, + 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, + 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x04, 0x2a, 0xa0, 0x01, 0x0a, 0x18, + 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x52, + 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, + 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x58, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x4e, + 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xae, + 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, + 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, + 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, + 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, - 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, + 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, - 0x48, 0x59, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x04, 0x2a, 0xa4, 0x01, 0x0a, 0x12, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, - 0x49, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, - 0x49, 0x47, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x23, 0x0a, - 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x53, 0x4f, 0x56, 0x45, 0x52, - 0x10, 0x03, 0x2a, 0x84, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, - 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x49, 0x47, - 0x48, 0x54, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, - 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, - 0x4f, 0x53, 0x53, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x02, 0x2a, 0xc4, 0x01, 0x0a, 0x0d, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1b, 0x0a, - 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, - 0x42, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, - 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x50, 0x50, 0x45, 0x52, 0x10, - 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x50, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x05, - 0x2a, 0x91, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x55, - 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, - 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x42, 0x41, - 0x53, 0x45, 0x5f, 0x58, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, - 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x30, 0x30, 0x46, 0x58, - 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x47, 0x4d, 0x49, 0x49, 0x5f, 0x53, 0x4c, 0x41, - 0x56, 0x45, 0x10, 0x03, 0x2a, 0xc4, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, - 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x50, + 0x44, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x04, 0x2a, + 0xa4, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, + 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, + 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x01, 0x12, 0x22, 0x0a, + 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x49, 0x47, 0x48, 0x54, 0x10, + 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x53, + 0x4f, 0x56, 0x45, 0x52, 0x10, 0x03, 0x2a, 0x84, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, + 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, + 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x44, 0x49, + 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, + 0x52, 0x41, 0x49, 0x47, 0x48, 0x54, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x53, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x02, 0x2a, 0xc4, 0x01, + 0x0a, 0x0d, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, + 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x19, + 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x46, 0x49, 0x42, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x50, + 0x50, 0x45, 0x52, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, + 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x50, 0x4c, 0x41, + 0x4e, 0x45, 0x10, 0x05, 0x2a, 0x91, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, 0x30, + 0x30, 0x30, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x58, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x31, + 0x30, 0x30, 0x46, 0x58, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, + 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x47, 0x4d, 0x49, 0x49, + 0x5f, 0x53, 0x4c, 0x41, 0x56, 0x45, 0x10, 0x03, 0x2a, 0xc4, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x72, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, - 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x2a, 0xf1, 0x07, 0x0a, 0x0c, - 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x1a, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, - 0x46, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, - 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, - 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, - 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, - 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, - 0x45, 0x53, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, - 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, - 0x06, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x07, 0x12, 0x27, 0x0a, 0x23, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, + 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x55, 0x50, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x50, 0x45, + 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, + 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x20, 0x0a, + 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x2a, + 0xf1, 0x07, 0x0a, 0x0c, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x2d, + 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x2b, 0x0a, + 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, + 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, + 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, + 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x53, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, - 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x09, 0x12, 0x30, 0x0a, 0x2c, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, - 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, - 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0a, 0x12, 0x2e, - 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, - 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0b, 0x12, 0x31, - 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, - 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, - 0x0c, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, - 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, - 0x10, 0x0d, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, + 0x45, 0x54, 0x53, 0x10, 0x06, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, + 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x07, + 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x09, + 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, - 0x10, 0x0e, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, - 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0f, - 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, - 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x10, 0x12, 0x28, 0x0a, 0x24, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, + 0x10, 0x0a, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, + 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, + 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, + 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x53, 0x10, 0x0c, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, + 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x11, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, - 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, - 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x12, 0x12, - 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, - 0x53, 0x10, 0x13, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43, 0x55, 0x52, + 0x59, 0x54, 0x45, 0x53, 0x10, 0x0d, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, + 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, + 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0e, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, + 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, + 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, + 0x45, 0x53, 0x10, 0x0f, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, + 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, + 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x10, + 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, + 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x11, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, - 0x53, 0x10, 0x14, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x41, 0x54, - 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x15, 0x12, 0x1f, - 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x16, 0x2a, - 0xb3, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, - 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, - 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, - 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, - 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x58, - 0x5f, 0x52, 0x58, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, - 0x42, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x52, 0x58, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, - 0x42, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x54, 0x58, 0x10, 0x04, 0x2a, 0xc4, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, - 0x62, 0x73, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x53, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, - 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, + 0x53, 0x10, 0x12, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, + 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x13, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, + 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, + 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x14, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, + 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, + 0x10, 0x15, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x16, 0x2a, 0xb3, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, + 0x52, 0x42, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x44, 0x49, 0x53, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, + 0x52, 0x42, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x54, 0x58, 0x5f, 0x52, 0x58, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x58, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x58, 0x10, 0x04, 0x2a, 0xc4, 0x01, 0x0a, 0x10, 0x50, 0x6f, + 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, + 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, + 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, + 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x04, 0x2a, 0xaa, 0x01, 0x0a, - 0x1b, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2f, 0x0a, 0x2b, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x4c, - 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2c, 0x0a, - 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x46, - 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x4c, 0x4f, - 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, - 0x45, 0x50, 0x41, 0x52, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x93, 0x01, 0x0a, 0x0b, 0x50, 0x6f, - 0x72, 0x74, 0x50, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, - 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x57, 0x4f, 0x5f, 0x53, - 0x54, 0x45, 0x50, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x03, 0x2a, - 0xfa, 0x40, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x15, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, - 0x53, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, - 0x52, 0x44, 0x53, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, - 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, - 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x50, 0x52, 0x4f, - 0x54, 0x4f, 0x53, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, - 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, - 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x08, 0x12, 0x21, 0x0a, - 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, - 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x09, - 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, - 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x0a, 0x12, 0x1f, 0x0a, - 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, - 0x54, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0b, 0x12, 0x23, + 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, + 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x04, + 0x2a, 0xaa, 0x01, 0x0a, 0x1b, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, + 0x59, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, + 0x54, 0x59, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, + 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, + 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x53, 0x45, 0x50, 0x41, 0x52, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x93, 0x01, + 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, + 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, + 0x4e, 0x45, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x54, 0x50, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x45, + 0x50, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x24, 0x0a, + 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, + 0x57, 0x4f, 0x5f, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, + 0x50, 0x10, 0x03, 0x2a, 0xfa, 0x40, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, + 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, + 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x53, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x53, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x42, 0x52, 0x4f, + 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x07, 0x12, 0x22, 0x0a, + 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, + 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, + 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, + 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, + 0x44, 0x53, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, + 0x0a, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, + 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0c, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x41, 0x52, 0x44, 0x53, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x53, 0x10, 0x0e, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x51, 0x4c, 0x45, 0x4e, 0x10, 0x0f, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x4f, - 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x10, 0x0c, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, - 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0x0e, 0x12, - 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, - 0x4f, 0x55, 0x54, 0x5f, 0x51, 0x4c, 0x45, 0x4e, 0x10, 0x0f, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x42, - 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x10, 0x12, - 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, - 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0x11, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x12, 0x12, 0x28, 0x0a, 0x24, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x10, 0x13, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x42, - 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x14, 0x12, - 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, - 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x52, 0x53, 0x49, - 0x5a, 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x15, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x53, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x16, 0x12, 0x28, - 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, - 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x36, 0x34, 0x5f, - 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x17, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, + 0x55, 0x54, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x10, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, + 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x11, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x32, 0x37, - 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x18, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, + 0x53, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x12, 0x12, + 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, + 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, + 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x13, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x32, - 0x35, 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x19, 0x12, 0x30, 0x0a, 0x2c, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x54, 0x4f, - 0x5f, 0x35, 0x31, 0x31, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x1a, 0x12, 0x31, 0x0a, - 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x35, 0x31, 0x32, 0x5f, - 0x54, 0x4f, 0x5f, 0x31, 0x30, 0x32, 0x33, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x1b, - 0x12, 0x32, 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, - 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x31, - 0x30, 0x32, 0x34, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x35, 0x31, 0x38, 0x5f, 0x4f, 0x43, 0x54, 0x45, - 0x54, 0x53, 0x10, 0x1c, 0x12, 0x32, 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x53, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x14, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x44, + 0x45, 0x52, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x15, 0x12, 0x23, 0x0a, + 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x53, + 0x10, 0x16, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x36, 0x34, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x17, 0x12, 0x2f, 0x0a, 0x2b, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x5f, 0x54, 0x4f, + 0x5f, 0x31, 0x32, 0x37, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x18, 0x12, 0x30, 0x0a, + 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, + 0x54, 0x4f, 0x5f, 0x32, 0x35, 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x19, 0x12, + 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, + 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x32, 0x35, + 0x36, 0x5f, 0x54, 0x4f, 0x5f, 0x35, 0x31, 0x31, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, + 0x1a, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, + 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, + 0x35, 0x31, 0x32, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x30, 0x32, 0x33, 0x5f, 0x4f, 0x43, 0x54, 0x45, + 0x54, 0x53, 0x10, 0x1b, 0x12, 0x32, 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x5f, 0x31, 0x35, 0x31, 0x39, 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x30, 0x34, 0x37, 0x5f, - 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x1d, 0x12, 0x32, 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, + 0x54, 0x53, 0x5f, 0x31, 0x30, 0x32, 0x34, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x35, 0x31, 0x38, 0x5f, + 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x1c, 0x12, 0x32, 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x34, - 0x30, 0x39, 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x1e, 0x12, 0x32, 0x0a, 0x2e, + 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x31, 0x35, 0x31, 0x39, 0x5f, 0x54, 0x4f, 0x5f, 0x32, + 0x30, 0x34, 0x37, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x1d, 0x12, 0x32, 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, - 0x54, 0x4f, 0x5f, 0x39, 0x32, 0x31, 0x36, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x1f, - 0x12, 0x33, 0x0a, 0x2f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, - 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x39, - 0x32, 0x31, 0x37, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x36, 0x33, 0x38, 0x33, 0x5f, 0x4f, 0x43, 0x54, - 0x45, 0x54, 0x53, 0x10, 0x20, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4f, - 0x56, 0x45, 0x52, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x21, 0x12, 0x24, - 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, - 0x52, 0x5f, 0x52, 0x58, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0x22, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x53, - 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x23, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x53, 0x5f, 0x4a, 0x41, 0x42, 0x42, 0x45, 0x52, 0x53, 0x10, 0x24, 0x12, 0x20, 0x0a, - 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x25, 0x12, - 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, - 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x26, 0x12, - 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, - 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, - 0x4f, 0x4e, 0x53, 0x10, 0x27, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x43, - 0x52, 0x43, 0x5f, 0x41, 0x4c, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, - 0x28, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, - 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x4e, 0x4f, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0x29, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, + 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, + 0x54, 0x4f, 0x5f, 0x34, 0x30, 0x39, 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x1e, + 0x12, 0x32, 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, + 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x34, + 0x30, 0x39, 0x36, 0x5f, 0x54, 0x4f, 0x5f, 0x39, 0x32, 0x31, 0x36, 0x5f, 0x4f, 0x43, 0x54, 0x45, + 0x54, 0x53, 0x10, 0x1f, 0x12, 0x33, 0x0a, 0x2f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x5f, 0x39, 0x32, 0x31, 0x37, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x36, 0x33, 0x38, 0x33, + 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x20, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, - 0x2a, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, - 0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x53, 0x10, 0x2b, 0x12, - 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, - 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x2c, 0x12, 0x1e, 0x0a, 0x1a, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x55, - 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x2d, 0x12, 0x22, 0x0a, 0x1e, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x4e, - 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x2e, 0x12, - 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, - 0x49, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x2f, 0x12, 0x1b, 0x0a, - 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4f, 0x55, - 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x30, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x55, - 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x31, 0x12, 0x23, 0x0a, 0x1f, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4f, 0x55, 0x54, 0x5f, - 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x32, - 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, - 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x33, 0x12, - 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, - 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x53, 0x10, 0x34, 0x12, - 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, - 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x35, 0x12, 0x20, 0x0a, - 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, - 0x49, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x36, 0x12, - 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, - 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x10, 0x37, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x38, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x49, 0x53, - 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x39, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, - 0x54, 0x45, 0x54, 0x53, 0x10, 0x3a, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x55, 0x43, 0x41, - 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x3b, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4f, 0x55, 0x54, 0x5f, - 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x3c, - 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, - 0x56, 0x36, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x10, 0x3d, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, - 0x44, 0x53, 0x10, 0x3e, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x3f, 0x12, 0x26, - 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, - 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x40, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, - 0x41, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, - 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, - 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x42, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, + 0x54, 0x53, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x10, 0x21, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x52, 0x58, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x5a, + 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x22, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x4f, + 0x56, 0x45, 0x52, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x23, 0x12, 0x21, + 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, + 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4a, 0x41, 0x42, 0x42, 0x45, 0x52, 0x53, 0x10, + 0x24, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, + 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, + 0x53, 0x10, 0x25, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x26, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4c, + 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x27, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x53, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x41, 0x4c, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x53, 0x10, 0x28, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x54, + 0x58, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0x29, 0x12, 0x26, 0x0a, + 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x53, 0x10, 0x2a, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, + 0x53, 0x10, 0x2b, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x2c, 0x12, + 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, + 0x49, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x2d, 0x12, + 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, + 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x2e, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, + 0x2f, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, + 0x50, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x30, 0x12, 0x1f, + 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4f, + 0x55, 0x54, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x31, 0x12, + 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, + 0x4f, 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x10, 0x32, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, + 0x53, 0x10, 0x33, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, + 0x53, 0x10, 0x34, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, + 0x35, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, + 0x50, 0x56, 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x36, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, + 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x37, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x49, 0x4e, 0x5f, 0x4d, + 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x38, 0x12, 0x1e, 0x0a, 0x1a, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x49, 0x4e, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x39, 0x12, 0x1d, 0x0a, 0x19, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4f, 0x55, + 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x3a, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4f, 0x55, 0x54, + 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x3b, 0x12, 0x25, 0x0a, + 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, + 0x4f, 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x10, 0x3c, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x3d, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x3e, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, - 0x10, 0x43, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, - 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x44, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, - 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x45, 0x12, 0x20, 0x0a, 0x1c, + 0x10, 0x3f, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, + 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x40, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, + 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x53, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x42, 0x12, 0x26, + 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, + 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x53, 0x10, 0x43, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x44, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x46, 0x12, 0x20, - 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x43, 0x4e, 0x5f, - 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x47, - 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, - 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x36, 0x34, 0x5f, 0x4f, - 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x48, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x5f, 0x36, 0x35, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x32, 0x37, 0x5f, 0x4f, 0x43, 0x54, - 0x45, 0x54, 0x53, 0x10, 0x49, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, - 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x35, 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, - 0x54, 0x53, 0x10, 0x4a, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, - 0x32, 0x35, 0x36, 0x5f, 0x54, 0x4f, 0x5f, 0x35, 0x31, 0x31, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, - 0x53, 0x10, 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x35, - 0x31, 0x32, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x30, 0x32, 0x33, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, - 0x53, 0x10, 0x4c, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x31, - 0x30, 0x32, 0x34, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x35, 0x31, 0x38, 0x5f, 0x4f, 0x43, 0x54, 0x45, - 0x54, 0x53, 0x10, 0x4d, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x45, + 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, + 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, + 0x10, 0x46, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x53, 0x10, 0x47, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, - 0x31, 0x35, 0x31, 0x39, 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x30, 0x34, 0x37, 0x5f, 0x4f, 0x43, 0x54, - 0x45, 0x54, 0x53, 0x10, 0x4e, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, - 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x34, 0x30, 0x39, 0x35, 0x5f, 0x4f, 0x43, - 0x54, 0x45, 0x54, 0x53, 0x10, 0x4f, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x54, 0x4f, 0x5f, 0x39, 0x32, 0x31, 0x36, 0x5f, 0x4f, - 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x50, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x36, 0x34, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x48, 0x12, 0x2c, 0x0a, 0x28, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, + 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x32, 0x37, + 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x49, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, + 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x35, 0x35, 0x5f, + 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x4a, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, + 0x4b, 0x54, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x54, 0x4f, 0x5f, 0x35, 0x31, 0x31, 0x5f, 0x4f, + 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x5f, 0x39, 0x32, 0x31, 0x37, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x36, 0x33, 0x38, 0x33, - 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x51, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x36, 0x34, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, - 0x52, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, - 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x36, 0x35, - 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x32, 0x37, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x53, - 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, - 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x31, 0x32, 0x38, - 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x35, 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x54, - 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, - 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x32, 0x35, 0x36, - 0x5f, 0x54, 0x4f, 0x5f, 0x35, 0x31, 0x31, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x55, - 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, - 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x35, 0x31, 0x32, - 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x30, 0x32, 0x33, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, - 0x56, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, - 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x31, 0x30, - 0x32, 0x34, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x35, 0x31, 0x38, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, - 0x53, 0x10, 0x57, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, - 0x31, 0x35, 0x31, 0x39, 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x30, 0x34, 0x37, 0x5f, 0x4f, 0x43, 0x54, - 0x45, 0x54, 0x53, 0x10, 0x58, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x54, 0x53, 0x5f, 0x35, 0x31, 0x32, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x30, 0x32, 0x33, 0x5f, 0x4f, + 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x4c, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x5f, 0x31, 0x30, 0x32, 0x34, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x35, 0x31, 0x38, 0x5f, + 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x4d, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x50, + 0x4b, 0x54, 0x53, 0x5f, 0x31, 0x35, 0x31, 0x39, 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x30, 0x34, 0x37, + 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x4e, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, + 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x34, 0x30, 0x39, + 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x4f, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x54, 0x4f, 0x5f, 0x39, 0x32, + 0x31, 0x36, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x50, 0x12, 0x30, 0x0a, 0x2c, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, + 0x4e, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x39, 0x32, 0x31, 0x37, 0x5f, 0x54, 0x4f, 0x5f, 0x31, + 0x36, 0x33, 0x38, 0x33, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x51, 0x12, 0x26, 0x0a, + 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, + 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x36, 0x34, 0x5f, 0x4f, 0x43, 0x54, + 0x45, 0x54, 0x53, 0x10, 0x52, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x34, 0x30, 0x39, 0x35, 0x5f, 0x4f, - 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x59, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x5f, 0x36, 0x35, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x32, 0x37, 0x5f, 0x4f, 0x43, 0x54, 0x45, + 0x54, 0x53, 0x10, 0x53, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x35, 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, + 0x54, 0x53, 0x10, 0x54, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x54, 0x4f, 0x5f, 0x35, 0x31, 0x31, 0x5f, 0x4f, 0x43, 0x54, 0x45, + 0x54, 0x53, 0x10, 0x55, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x5f, 0x35, 0x31, 0x32, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x30, 0x32, 0x33, 0x5f, 0x4f, 0x43, 0x54, + 0x45, 0x54, 0x53, 0x10, 0x56, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x5f, 0x31, 0x30, 0x32, 0x34, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x35, 0x31, 0x38, 0x5f, 0x4f, + 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x57, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x54, 0x4f, 0x5f, 0x39, 0x32, 0x31, 0x36, - 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x5a, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, + 0x4b, 0x54, 0x53, 0x5f, 0x31, 0x35, 0x31, 0x39, 0x5f, 0x54, 0x4f, 0x5f, 0x32, 0x30, 0x34, 0x37, + 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x58, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x39, 0x32, 0x31, 0x37, 0x5f, 0x54, 0x4f, 0x5f, 0x31, 0x36, - 0x33, 0x38, 0x33, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x5b, 0x12, 0x25, 0x0a, 0x21, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x55, 0x52, - 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, - 0x53, 0x10, 0x5c, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, - 0x54, 0x45, 0x53, 0x10, 0x5d, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43, 0x55, 0x52, - 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, - 0x53, 0x10, 0x5e, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, - 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x5f, 0x12, 0x26, 0x0a, 0x22, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x55, - 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, - 0x45, 0x53, 0x10, 0x60, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, - 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x61, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, - 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x62, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x57, - 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x63, - 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x64, 0x12, - 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x65, 0x12, - 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x55, - 0x53, 0x45, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, - 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x67, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x52, 0x58, 0x5f, - 0x50, 0x4b, 0x54, 0x53, 0x10, 0x68, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x10, 0x69, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x6a, - 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, - 0x43, 0x5f, 0x31, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x6b, 0x12, 0x1b, 0x0a, - 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, - 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x6c, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, 0x5f, 0x54, 0x58, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x6d, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, - 0x6f, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, - 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x70, 0x12, 0x1b, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x54, 0x4f, 0x5f, 0x34, 0x30, + 0x39, 0x35, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x59, 0x12, 0x30, 0x0a, 0x2c, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4f, + 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x54, 0x4f, 0x5f, + 0x39, 0x32, 0x31, 0x36, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x5a, 0x12, 0x31, 0x0a, + 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, + 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x5f, 0x39, 0x32, 0x31, 0x37, 0x5f, 0x54, + 0x4f, 0x5f, 0x31, 0x36, 0x33, 0x38, 0x33, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x5b, + 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, + 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, + 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x5c, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, + 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x5d, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, + 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, + 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x5e, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x57, + 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x5f, + 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, + 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, + 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x60, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, + 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x61, 0x12, 0x2d, 0x0a, 0x29, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x48, 0x41, + 0x52, 0x45, 0x44, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, + 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x62, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, + 0x45, 0x44, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, + 0x45, 0x53, 0x10, 0x63, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x64, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x66, + 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x41, + 0x55, 0x53, 0x45, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x67, 0x12, 0x1b, 0x0a, + 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, + 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x68, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x54, 0x58, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x69, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x10, 0x6a, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, + 0x6b, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, + 0x46, 0x43, 0x5f, 0x32, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x6c, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, - 0x34, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x71, 0x12, 0x1b, 0x0a, 0x17, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, 0x5f, 0x52, - 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x72, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, 0x5f, 0x54, 0x58, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x10, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, - 0x10, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x75, 0x12, + 0x32, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x6d, 0x12, 0x1b, 0x0a, 0x17, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x52, + 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x54, 0x58, 0x5f, 0x50, + 0x4b, 0x54, 0x53, 0x10, 0x6f, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x10, 0x70, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x71, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, - 0x5f, 0x37, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x76, 0x12, 0x1b, 0x0a, 0x17, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, - 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x77, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x52, 0x58, 0x5f, - 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x78, + 0x5f, 0x35, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x72, 0x12, 0x1b, 0x0a, 0x17, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, 0x5f, + 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x52, 0x58, 0x5f, + 0x50, 0x4b, 0x54, 0x53, 0x10, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x75, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x76, + 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, + 0x43, 0x5f, 0x37, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x77, 0x12, 0x25, 0x0a, + 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, + 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x78, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, + 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x79, 0x12, 0x25, 0x0a, 0x21, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x52, + 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x7a, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, + 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x7b, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, 0x5f, 0x52, 0x58, 0x5f, + 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x7c, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, - 0x43, 0x5f, 0x30, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x79, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, - 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x7a, 0x12, 0x25, + 0x43, 0x5f, 0x32, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x7d, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, + 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x7e, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, - 0x31, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x7b, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, - 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x7c, 0x12, 0x25, 0x0a, 0x21, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, 0x5f, - 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x10, 0x7d, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, - 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x7e, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x54, 0x58, - 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x7f, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, - 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x80, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x54, 0x58, 0x5f, - 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x81, - 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, - 0x46, 0x43, 0x5f, 0x35, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x82, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, 0x5f, 0x54, 0x58, 0x5f, - 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x83, - 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, - 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x84, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x54, 0x58, 0x5f, - 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x85, - 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, - 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x86, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x54, 0x58, 0x5f, - 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x87, - 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, - 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x88, 0x01, 0x12, 0x29, 0x0a, 0x24, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, 0x5f, - 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x89, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, + 0x33, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x7f, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, + 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x80, 0x01, 0x12, 0x26, 0x0a, + 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, + 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x81, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, + 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x82, 0x01, 0x12, 0x26, 0x0a, + 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, + 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x83, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, + 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x84, 0x01, 0x12, 0x26, 0x0a, + 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, + 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x85, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, + 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x86, 0x01, 0x12, 0x26, 0x0a, + 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, + 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x87, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, + 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x88, 0x01, + 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, + 0x43, 0x5f, 0x30, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x89, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x52, + 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x55, 0x53, 0x10, 0x8a, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, + 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x8b, + 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, + 0x46, 0x43, 0x5f, 0x32, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, + 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x8c, 0x01, 0x12, 0x29, 0x0a, 0x24, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, 0x5f, + 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x8d, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, - 0x8a, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, - 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x8b, 0x01, 0x12, 0x29, 0x0a, - 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, + 0x8e, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, + 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x8f, 0x01, 0x12, 0x29, 0x0a, + 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x8c, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, 0x5f, 0x54, 0x58, 0x5f, 0x50, + 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x90, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, - 0x10, 0x8d, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, - 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x8e, 0x01, 0x12, 0x29, + 0x10, 0x91, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, + 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x92, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, - 0x33, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x8f, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x52, 0x58, 0x5f, + 0x35, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x93, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, - 0x53, 0x10, 0x90, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, - 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x91, 0x01, 0x12, + 0x53, 0x10, 0x94, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, + 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x95, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, - 0x5f, 0x35, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x92, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, 0x5f, 0x54, 0x58, + 0x5f, 0x37, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x96, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x55, 0x53, 0x10, 0x93, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, - 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x94, 0x01, - 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, - 0x43, 0x5f, 0x36, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x95, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x52, - 0x58, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x53, 0x10, 0x96, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x41, 0x55, - 0x53, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x10, 0x97, - 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, - 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x10, 0x98, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, - 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x99, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x32, 0x5f, 0x4f, - 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x9a, 0x01, - 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, - 0x43, 0x5f, 0x33, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0x9b, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, - 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x9c, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x35, 0x5f, 0x4f, 0x4e, - 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x9d, 0x01, 0x12, + 0x55, 0x53, 0x10, 0x97, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x30, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, + 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x98, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x31, 0x5f, 0x4f, 0x4e, + 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x99, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, - 0x5f, 0x36, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x10, 0x9e, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, - 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x9f, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x4f, 0x52, + 0x5f, 0x32, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x9a, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x33, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, + 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x9b, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x34, 0x5f, 0x4f, 0x4e, 0x32, + 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x9c, 0x01, 0x12, 0x23, + 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, + 0x35, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x10, 0x9d, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x36, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x58, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x9e, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x37, 0x5f, 0x4f, 0x4e, 0x32, 0x4f, + 0x46, 0x46, 0x5f, 0x52, 0x58, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x9f, 0x01, 0x12, 0x2a, 0x0a, + 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x41, 0x4c, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0xa0, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x53, 0x5f, 0x41, 0x4c, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x53, 0x10, 0xa0, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x46, 0x43, - 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0xa1, 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x53, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x49, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x53, 0x10, 0xa2, 0x01, 0x12, 0x33, - 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x5f, - 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x53, - 0x10, 0xa3, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x53, 0x51, 0x45, 0x5f, - 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0xa4, 0x01, 0x12, 0x30, - 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x5f, - 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0xa5, 0x01, - 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, - 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, - 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0xa6, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x5f, 0x43, 0x4f, - 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0xa7, 0x01, 0x12, 0x36, 0x0a, 0x31, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x4d, 0x41, 0x43, - 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, - 0x10, 0xa8, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x43, 0x41, 0x52, 0x52, - 0x49, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, - 0x10, 0xa9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x46, 0x52, 0x41, 0x4d, - 0x45, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x53, 0x10, 0xaa, 0x01, 0x12, 0x35, - 0x0a, 0x30, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, - 0x4d, 0x41, 0x43, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x53, 0x10, 0xab, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x53, 0x59, - 0x4d, 0x42, 0x4f, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0xac, 0x01, 0x12, 0x2e, - 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, - 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x50, 0x43, 0x4f, 0x44, 0x45, 0x53, 0x10, 0xad, 0x01, 0x12, 0x21, - 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x45, 0x45, 0x5f, - 0x54, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0xae, - 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, - 0x45, 0x45, 0x5f, 0x52, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, - 0x54, 0x10, 0xaf, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x54, 0x58, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x10, 0xb0, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x52, 0x58, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x10, 0xb1, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x10, 0xb2, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x43, 0x4f, 0x52, - 0x52, 0x45, 0x43, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x53, 0x10, - 0xb3, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x4f, - 0x52, 0x52, 0x45, 0x43, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x53, - 0x10, 0xb4, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x53, 0x59, 0x4d, 0x42, 0x4f, - 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0xb5, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x46, - 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x53, - 0x10, 0xb6, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x53, 0x10, 0xb7, 0x01, 0x12, 0x28, 0x0a, 0x23, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, - 0x41, 0x53, 0x45, 0x10, 0xb8, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, - 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x30, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xb9, 0x01, - 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, - 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x31, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, - 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xba, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, + 0x53, 0x5f, 0x46, 0x43, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0xa1, 0x01, 0x12, + 0x31, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, + 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x43, + 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x53, 0x10, + 0xa2, 0x01, 0x12, 0x33, 0x0a, 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, + 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x52, + 0x41, 0x4d, 0x45, 0x53, 0x10, 0xa3, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, + 0x53, 0x51, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, + 0xa4, 0x01, 0x12, 0x30, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x52, + 0x52, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x53, 0x10, 0xa5, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4c, 0x41, 0x54, + 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0xa6, 0x01, 0x12, + 0x2e, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, + 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x53, 0x53, 0x49, 0x56, + 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0xa7, 0x01, 0x12, + 0x36, 0x0a, 0x31, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, + 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, + 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x53, 0x10, 0xa8, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, + 0x43, 0x41, 0x52, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x53, 0x10, 0xa9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, + 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x53, 0x10, + 0xaa, 0x01, 0x12, 0x35, 0x0a, 0x30, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x4e, 0x41, 0x4c, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0xab, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x53, 0x5f, 0x53, 0x59, 0x4d, 0x42, 0x4f, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, + 0xac, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x44, 0x4f, 0x54, 0x33, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x4e, 0x5f, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x50, 0x43, 0x4f, 0x44, 0x45, 0x53, 0x10, + 0xad, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x45, 0x45, 0x45, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x10, 0xae, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x52, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0xaf, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x54, 0x58, 0x5f, 0x44, 0x55, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xb0, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x52, 0x58, 0x5f, 0x44, 0x55, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xb1, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0xb2, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x46, 0x45, 0x43, + 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x53, 0x10, 0xb3, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x52, + 0x41, 0x4d, 0x45, 0x53, 0x10, 0xb4, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x49, 0x4e, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x53, + 0x59, 0x4d, 0x42, 0x4f, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0xb5, 0x01, 0x12, + 0x26, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, + 0x49, 0x4e, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x53, 0x10, 0xb6, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x46, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x41, 0x42, 0x52, + 0x49, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x53, 0x10, 0xb7, 0x01, + 0x12, 0x28, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, + 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0xb8, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x53, 0x5f, 0x32, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x10, 0xbb, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x4e, 0x53, 0x5f, 0x30, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0xb9, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x33, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xbc, 0x01, 0x12, 0x38, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x31, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xba, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x34, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xbd, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x32, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xbb, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, - 0x5f, 0x35, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, - 0xbe, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x5f, 0x33, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, + 0xbc, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xbf, 0x01, 0x12, 0x38, 0x0a, 0x33, + 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x34, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xbd, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x37, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x10, 0xc0, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xc1, 0x01, 0x12, - 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, - 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0xc2, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, + 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x35, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, + 0x4b, 0x54, 0x53, 0x10, 0xbe, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, + 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x36, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xbf, 0x01, + 0x12, 0x38, 0x0a, 0x33, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, + 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x37, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, + 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc0, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, + 0x10, 0xc1, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0xc2, 0x01, 0x12, 0x39, + 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x30, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, + 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc3, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, + 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x53, 0x5f, 0x31, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0xc4, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x32, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc5, 0x01, 0x12, + 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, + 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x33, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, + 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc6, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x53, 0x5f, 0x30, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0xc3, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, + 0x4f, 0x4e, 0x53, 0x5f, 0x34, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x10, 0xc7, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, - 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x31, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc4, 0x01, + 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x35, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc8, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x32, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc5, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, + 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc9, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x33, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, - 0x4b, 0x54, 0x53, 0x10, 0xc6, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, - 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, - 0x34, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc7, - 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, - 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x35, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc8, 0x01, 0x12, 0x39, 0x0a, 0x34, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, - 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, - 0x50, 0x4b, 0x54, 0x53, 0x10, 0xc9, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, - 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, - 0x5f, 0x37, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, - 0xca, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x01, 0x2a, 0x7c, 0x0a, 0x08, - 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x50, 0x55, 0x10, 0x02, 0x12, 0x14, 0x0a, - 0x10, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, - 0x43, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x10, 0x04, 0x2a, 0x81, 0x05, 0x0a, 0x0a, 0x51, - 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x4f, 0x53, - 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x4f, 0x53, 0x5f, 0x4d, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x54, 0x31, 0x50, 0x5f, 0x54, 0x4f, - 0x5f, 0x54, 0x43, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x54, 0x31, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, - 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, - 0x43, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, - 0x52, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, - 0x05, 0x12, 0x25, 0x0a, 0x21, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, - 0x4f, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, 0x51, 0x4f, 0x53, 0x5f, - 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, - 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x4f, 0x54, 0x31, 0x50, 0x10, 0x07, - 0x12, 0x25, 0x0a, 0x21, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x08, 0x12, 0x2f, 0x0a, 0x2b, 0x51, 0x4f, 0x53, 0x5f, 0x4d, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x50, 0x52, 0x49, 0x4f, - 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x09, 0x12, 0x26, 0x0a, 0x22, 0x51, 0x4f, 0x53, 0x5f, - 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x4f, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x0a, - 0x12, 0x1f, 0x0a, 0x1b, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x10, - 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, - 0x4c, 0x4f, 0x52, 0x10, 0x0c, 0x12, 0x29, 0x0a, 0x25, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, + 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x37, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, + 0x4b, 0x54, 0x53, 0x10, 0xca, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x01, + 0x2a, 0x7c, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x11, + 0x0a, 0x0d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x50, 0x55, 0x10, + 0x02, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, + 0x41, 0x42, 0x52, 0x49, 0x43, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x10, 0x04, 0x2a, 0x81, + 0x05, 0x0a, 0x0a, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, + 0x18, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x51, + 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x54, 0x31, + 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x51, 0x4f, 0x53, + 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x54, 0x31, 0x50, 0x5f, + 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x4f, + 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, + 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x51, 0x4f, 0x53, 0x5f, 0x4d, + 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, + 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x4f, 0x53, 0x5f, 0x4d, + 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, 0x5f, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, - 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x10, 0x0d, - 0x12, 0x29, 0x0a, 0x25, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, - 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x0e, 0x12, 0x2d, 0x0a, 0x29, 0x51, - 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, - 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, - 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x0f, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x4f, - 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, - 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x10, 0x2a, 0xa3, - 0x01, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, - 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x29, - 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x51, + 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, + 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x4f, 0x54, + 0x31, 0x50, 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, + 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x08, 0x12, 0x2f, 0x0a, 0x2b, 0x51, + 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, + 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x49, 0x4f, + 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x09, 0x12, 0x26, 0x0a, 0x22, + 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x46, 0x43, + 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x4f, 0x5f, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x10, 0x0a, 0x12, 0x1f, 0x0a, 0x1b, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, + 0x5f, 0x54, 0x43, 0x10, 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, + 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x0c, 0x12, 0x29, 0x0a, 0x25, 0x51, 0x4f, 0x53, + 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, + 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, + 0x58, 0x50, 0x10, 0x0d, 0x12, 0x29, 0x0a, 0x25, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, + 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x0e, 0x12, + 0x2d, 0x0a, 0x29, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, + 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x0f, 0x12, 0x22, + 0x0a, 0x1e, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, + 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, + 0x10, 0x10, 0x2a, 0xa3, 0x01, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, + 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x2d, 0x0a, 0x29, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x45, + 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x2a, 0x0a, 0x26, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x45, 0x41, + 0x44, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x54, - 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x51, 0x55, 0x45, 0x55, 0x45, - 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, - 0x45, 0x44, 0x10, 0x02, 0x2a, 0xb6, 0x0b, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, - 0x0a, 0x12, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, - 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, - 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, - 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, - 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x55, - 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x55, 0x45, 0x55, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x42, 0x59, 0x54, - 0x45, 0x53, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, - 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x55, - 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x08, 0x12, 0x1d, - 0x0a, 0x19, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, - 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x09, 0x12, 0x1b, 0x0a, - 0x17, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, - 0x4f, 0x57, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0a, 0x12, 0x25, 0x0a, 0x21, 0x51, 0x55, - 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, + 0x4b, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x43, + 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xb6, 0x0b, 0x0a, 0x09, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x02, + 0x12, 0x1e, 0x0a, 0x1a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x03, + 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x04, 0x12, 0x1c, + 0x0a, 0x18, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, + 0x45, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, + 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, + 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x51, 0x55, 0x45, 0x55, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x07, 0x12, 0x22, + 0x0a, 0x1e, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, + 0x45, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, + 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, + 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0a, 0x12, 0x25, + 0x0a, 0x21, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, + 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x53, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, + 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0d, 0x12, 0x18, 0x0a, 0x14, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0e, + 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, + 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x53, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, + 0x59, 0x54, 0x45, 0x53, 0x10, 0x10, 0x12, 0x29, 0x0a, 0x25, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, - 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, - 0x10, 0x0d, 0x12, 0x18, 0x0a, 0x14, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, - 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0f, - 0x12, 0x20, 0x0a, 0x1c, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, - 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, - 0x10, 0x10, 0x12, 0x29, 0x0a, 0x25, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x11, 0x12, 0x27, 0x0a, - 0x23, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, - 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x11, 0x12, 0x27, 0x0a, 0x23, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, + 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, + 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x53, 0x10, 0x13, 0x12, 0x28, 0x0a, 0x24, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, - 0x10, 0x13, 0x12, 0x28, 0x0a, 0x24, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x14, 0x12, 0x27, 0x0a, 0x23, - 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x14, + 0x12, 0x27, 0x0a, 0x23, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, + 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x16, + 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x53, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x16, 0x12, 0x23, 0x0a, 0x1f, - 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, - 0x17, 0x12, 0x21, 0x0a, 0x1d, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, - 0x45, 0x53, 0x10, 0x18, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, - 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x19, 0x12, 0x1e, 0x0a, 0x1a, 0x51, 0x55, 0x45, - 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, - 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x1a, 0x12, 0x2a, 0x0a, 0x26, 0x51, 0x55, 0x45, - 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43, - 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, - 0x54, 0x45, 0x53, 0x10, 0x1b, 0x12, 0x25, 0x0a, 0x21, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, - 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x1c, 0x12, 0x2c, 0x0a, 0x28, - 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, - 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, - 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x1d, 0x12, 0x2a, 0x0a, 0x26, 0x51, 0x55, - 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, + 0x45, 0x54, 0x53, 0x10, 0x17, 0x12, 0x21, 0x0a, 0x1d, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x18, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, 0x45, 0x55, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, + 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x19, 0x12, 0x1e, 0x0a, + 0x1a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, + 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x1a, 0x12, 0x2a, 0x0a, + 0x26, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, + 0x45, 0x44, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, + 0x59, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x1b, 0x12, 0x25, 0x0a, 0x21, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x57, + 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x1c, + 0x12, 0x2c, 0x0a, 0x28, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, + 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, + 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x1d, 0x12, 0x2a, + 0x0a, 0x26, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x52, 0x45, + 0x45, 0x4e, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, + 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, + 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x1f, 0x12, 0x2b, 0x0a, 0x27, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, - 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x53, 0x10, 0x1f, 0x12, 0x2b, 0x0a, 0x27, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, - 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, - 0x10, 0x20, 0x12, 0x2a, 0x0a, 0x26, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x59, 0x54, 0x45, 0x53, 0x10, 0x20, 0x12, 0x2a, 0x0a, 0x26, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, + 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, + 0x10, 0x21, 0x12, 0x28, 0x0a, 0x24, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, - 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x21, 0x12, 0x28, - 0x0a, 0x24, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x44, - 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, - 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x22, 0x12, 0x26, 0x0a, 0x22, 0x51, 0x55, 0x45, 0x55, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, - 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x23, - 0x12, 0x24, 0x0a, 0x20, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, - 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, - 0x59, 0x54, 0x45, 0x53, 0x10, 0x24, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, - 0x4e, 0x43, 0x59, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x25, 0x12, 0x1e, 0x0a, 0x1a, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, - 0x41, 0x52, 0x4b, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x26, 0x12, 0x20, 0x0a, 0x1c, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x27, 0x2a, 0xe3, 0x01, - 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x51, 0x55, 0x45, 0x55, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, - 0x54, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x03, 0x12, 0x1a, 0x0a, - 0x16, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x43, - 0x41, 0x53, 0x54, 0x5f, 0x56, 0x4f, 0x51, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x55, 0x45, - 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, - 0x54, 0x5f, 0x56, 0x4f, 0x51, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x51, 0x55, 0x45, 0x55, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x54, 0x58, 0x10, - 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, - 0x45, 0x10, 0x07, 0x2a, 0x84, 0x03, 0x0a, 0x13, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, 0x25, 0x0a, 0x21, 0x52, + 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x22, 0x12, 0x26, 0x0a, 0x22, + 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, + 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x53, 0x10, 0x23, 0x12, 0x24, 0x0a, 0x20, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, + 0x45, 0x44, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x24, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x5f, 0x4f, 0x43, + 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x25, 0x12, + 0x1e, 0x0a, 0x1a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x57, 0x41, + 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x26, 0x12, + 0x20, 0x0a, 0x1c, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, + 0x27, 0x2a, 0xe3, 0x01, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1a, 0x0a, 0x16, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x51, + 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, + 0x16, 0x0a, 0x12, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x51, 0x55, 0x45, 0x55, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, + 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x56, 0x4f, 0x51, 0x10, 0x04, 0x12, 0x1c, 0x0a, + 0x18, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, + 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x56, 0x4f, 0x51, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x51, + 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, + 0x5f, 0x54, 0x58, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, + 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x07, 0x2a, 0x84, 0x03, 0x0a, 0x13, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, + 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, + 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, + 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, - 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x4f, 0x55, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, + 0x02, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, + 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, + 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x24, 0x0a, - 0x20, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, - 0x53, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, - 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x4f, - 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4f, 0x43, 0x54, - 0x45, 0x54, 0x53, 0x10, 0x05, 0x12, 0x2a, 0x0a, 0x26, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, - 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, - 0x06, 0x12, 0x2a, 0x0a, 0x26, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, + 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x12, 0x29, + 0x0a, 0x25, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, + 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x05, 0x12, 0x2a, 0x0a, 0x26, 0x52, 0x4f, 0x55, + 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x53, 0x10, 0x06, 0x12, 0x2a, 0x0a, 0x26, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, + 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, + 0x07, 0x12, 0x2b, 0x0a, 0x27, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x07, 0x12, 0x2b, 0x0a, - 0x27, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x08, 0x2a, 0xb2, 0x02, 0x0a, 0x13, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x4f, 0x55, - 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x4f, 0x55, - 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x4f, 0x55, - 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x25, 0x0a, - 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x52, 0x4f, 0x55, 0x54, - 0x45, 0x52, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, - 0x42, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x4f, 0x55, 0x54, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x08, 0x2a, 0xb2, + 0x02, 0x0a, 0x13, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, + 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, + 0x1a, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x1e, 0x0a, + 0x1a, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x22, 0x0a, + 0x1e, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, + 0x03, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, + 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, + 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x10, 0x06, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x4f, - 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x51, 0x49, 0x4e, 0x51, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x07, 0x2a, - 0x74, 0x0a, 0x10, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x43, 0x4c, - 0x55, 0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x41, 0x4d, 0x50, 0x4c, - 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x48, 0x41, - 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x7c, 0x0a, 0x10, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x41, 0x4d, - 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, - 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, 0x01, 0x12, 0x24, 0x0a, - 0x20, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x10, 0x02, 0x2a, 0x80, 0x01, 0x0a, 0x0e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, - 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, - 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x43, 0x48, 0x45, 0x44, - 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x43, - 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, - 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x52, 0x52, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, - 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x44, 0x57, 0x52, 0x52, 0x10, 0x03, 0x2a, 0xdd, 0x01, 0x0a, 0x0f, 0x53, 0x72, 0x76, 0x36, 0x53, - 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x52, - 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, - 0x18, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x53, - 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1c, 0x0a, - 0x18, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x53, - 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x27, 0x0a, - 0x23, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, - 0x42, 0x41, 0x53, 0x45, 0x10, 0x05, 0x2a, 0x5b, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, - 0x41, 0x44, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4c, 0x45, 0x41, - 0x52, 0x10, 0x02, 0x2a, 0x87, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, - 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, - 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x2a, 0x9c, 0x01, - 0x0a, 0x18, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x4f, - 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x45, 0x5f, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, + 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x10, 0x06, 0x12, 0x23, + 0x0a, 0x1f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, + 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x49, 0x4e, 0x51, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x10, 0x07, 0x2a, 0x74, 0x0a, 0x10, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x41, 0x4d, 0x50, 0x4c, + 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x41, + 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x53, + 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x7c, 0x0a, 0x10, 0x53, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, + 0x1d, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, + 0x01, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, + 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x80, 0x01, 0x0a, 0x0e, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x43, + 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, + 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x54, 0x52, 0x49, 0x43, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x43, 0x48, 0x45, 0x44, + 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x52, 0x52, 0x10, 0x02, + 0x12, 0x18, 0x0a, 0x14, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x44, 0x57, 0x52, 0x52, 0x10, 0x03, 0x2a, 0xdd, 0x01, 0x0a, 0x0f, 0x53, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, + 0x0a, 0x1d, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, + 0x20, 0x0a, 0x1c, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x10, 0x03, 0x12, + 0x20, 0x0a, 0x1c, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x10, + 0x04, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, + 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x05, 0x2a, 0x5b, 0x0a, 0x09, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x41, 0x54, 0x53, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x41, 0x54, + 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, + 0x43, 0x4c, 0x45, 0x41, 0x52, 0x10, 0x02, 0x2a, 0x87, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x70, 0x50, + 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x54, 0x50, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x50, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, + 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, + 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x49, 0x4e, 0x47, 0x10, + 0x03, 0x2a, 0x9c, 0x01, 0x0a, 0x18, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, 0x6c, + 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2b, + 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, + 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x43, + 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x48, 0x49, + 0x54, 0x4c, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x48, 0x49, 0x54, 0x4c, 0x45, 0x53, - 0x53, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x41, - 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x48, 0x49, 0x54, 0x4c, 0x45, 0x53, 0x53, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, - 0x18, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, - 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, - 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, - 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x4e, 0x54, 0x45, - 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, - 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x45, 0x50, 0x52, 0x4f, 0x4d, 0x10, 0x03, 0x2a, 0xb0, - 0x01, 0x0a, 0x16, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, - 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, - 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, - 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, + 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x48, 0x49, 0x54, 0x4c, 0x45, 0x53, 0x53, 0x10, 0x02, + 0x2a, 0xbf, 0x01, 0x0a, 0x18, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, + 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2b, 0x0a, + 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, + 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, + 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, + 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, + 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, + 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x45, 0x50, 0x52, 0x4f, 0x4d, + 0x10, 0x03, 0x2a, 0xb0, 0x01, 0x0a, 0x16, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x69, 0x72, + 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, + 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, + 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x10, 0x02, 0x12, 0x22, 0x0a, - 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, - 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, - 0x03, 0x2a, 0xb3, 0x01, 0x0a, 0x17, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x75, 0x73, 0x12, 0x2a, 0x0a, - 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, - 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x43, - 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x53, 0x5f, 0x4d, 0x44, 0x49, 0x4f, 0x10, 0x01, 0x12, 0x22, - 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, - 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x53, 0x5f, 0x49, 0x32, 0x43, - 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x10, + 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x52, 0x4d, + 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, + 0x55, 0x54, 0x4f, 0x10, 0x03, 0x2a, 0xb3, 0x01, 0x0a, 0x17, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x75, + 0x73, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, 0x44, + 0x57, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x53, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, + 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, + 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x53, 0x5f, 0x4d, 0x44, 0x49, 0x4f, + 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x53, - 0x5f, 0x43, 0x50, 0x4c, 0x44, 0x10, 0x03, 0x2a, 0xfe, 0x01, 0x0a, 0x1d, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x43, - 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x49, - 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, - 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, - 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x58, 0x47, 0x10, 0x02, 0x12, - 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, + 0x5f, 0x49, 0x32, 0x43, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, + 0x5f, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x50, 0x4c, 0x44, 0x10, 0x03, 0x2a, 0xfe, 0x01, 0x0a, 0x1d, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6e, 0x6f, 0x6f, 0x70, + 0x69, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, + 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, + 0x4f, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, - 0x49, 0x54, 0x59, 0x5f, 0x53, 0x47, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x49, 0x4e, - 0x47, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x58, 0x47, 0x5f, - 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x47, 0x10, 0x04, 0x2a, 0xad, 0x01, 0x0a, 0x10, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, - 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, - 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x94, 0x01, 0x0a, 0x11, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, - 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x45, - 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, - 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x45, 0x53, 0x54, - 0x41, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x4e, 0x45, 0x44, - 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x45, 0x53, - 0x54, 0x41, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x03, 0x2a, - 0xf4, 0x0a, 0x0a, 0x0a, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1b, - 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, - 0x42, 0x41, 0x53, 0x45, 0x10, 0x01, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, + 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x58, + 0x47, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x43, + 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x50, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x47, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, + 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x58, 0x47, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x47, 0x10, 0x04, 0x2a, 0xad, 0x01, 0x0a, + 0x10, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, + 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x1d, 0x0a, + 0x19, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x94, 0x01, 0x0a, + 0x11, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x45, 0x53, + 0x54, 0x41, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x41, + 0x4e, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, + 0x59, 0x10, 0x03, 0x2a, 0xf4, 0x0a, 0x0a, 0x0a, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, + 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, + 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x01, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, + 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x30, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, + 0x4b, 0x54, 0x53, 0x10, 0x02, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, + 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, + 0x31, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, + 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, + 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x32, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x04, 0x12, 0x39, 0x0a, 0x35, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, + 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x33, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, + 0x50, 0x4b, 0x54, 0x53, 0x10, 0x05, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, - 0x5f, 0x30, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, - 0x02, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x34, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, + 0x06, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x31, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x12, 0x39, 0x0a, 0x35, + 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x35, 0x5f, 0x44, 0x52, + 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x07, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x32, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x04, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, + 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x08, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x53, 0x5f, 0x33, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, - 0x10, 0x05, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x34, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x06, 0x12, 0x39, 0x0a, - 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, - 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x35, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, - 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x07, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x53, 0x5f, 0x36, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, - 0x53, 0x10, 0x08, 0x12, 0x39, 0x0a, 0x35, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x37, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x09, 0x12, 0x28, - 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, - 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x0a, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, - 0x53, 0x45, 0x10, 0x0b, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, + 0x53, 0x5f, 0x37, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x10, 0x09, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x0a, 0x12, 0x2a, 0x0a, 0x26, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0b, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, + 0x4f, 0x4e, 0x53, 0x5f, 0x30, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x10, 0x0c, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, - 0x30, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0c, + 0x31, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0d, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x31, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0d, 0x12, 0x3a, 0x0a, 0x36, + 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x32, 0x5f, 0x44, 0x52, + 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0e, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x32, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, - 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0e, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x33, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, + 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0f, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x53, 0x5f, 0x33, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0x0f, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, + 0x4f, 0x4e, 0x53, 0x5f, 0x34, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, + 0x54, 0x53, 0x10, 0x10, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, - 0x34, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x10, + 0x35, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x11, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x35, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x11, 0x12, 0x3a, 0x0a, 0x36, + 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x5f, 0x44, 0x52, + 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x12, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, - 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x12, 0x12, 0x3a, 0x0a, 0x36, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, - 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x53, 0x5f, 0x37, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x4b, - 0x54, 0x53, 0x10, 0x13, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x14, 0x12, - 0x2d, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x46, - 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x15, 0x12, 0x18, - 0x0a, 0x14, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x45, 0x43, - 0x43, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x16, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x49, - 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x17, 0x12, 0x2e, 0x0a, 0x2a, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x45, - 0x53, 0x54, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x18, 0x12, 0x1b, 0x0a, 0x17, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, - 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x19, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, - 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x1a, 0x2a, 0x90, 0x01, 0x0a, 0x13, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, - 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, - 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, - 0x55, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, - 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x02, 0x2a, 0x80, 0x01, 0x0a, 0x0a, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x50, 0x55, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x10, 0x02, 0x12, - 0x13, 0x0a, 0x0f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, - 0x4f, 0x51, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x10, 0x04, 0x2a, 0x6b, 0x0a, 0x0e, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x1c, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, - 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x89, 0x02, 0x0a, 0x10, 0x54, 0x61, - 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, - 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, - 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, - 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, - 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, - 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x47, 0x10, 0x03, 0x12, 0x1c, 0x0a, - 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, - 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, - 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x50, 0x47, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, - 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x42, 0x53, 0x50, 0x10, 0x07, 0x2a, 0xc1, 0x02, 0x0a, 0x15, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x12, - 0x28, 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, - 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x53, 0x5f, 0x37, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, + 0x44, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x13, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, + 0x44, 0x10, 0x14, 0x12, 0x2d, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, + 0x10, 0x15, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x5f, 0x45, 0x43, 0x43, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x16, 0x12, 0x21, 0x0a, 0x1d, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x43, + 0x48, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x17, 0x12, + 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x48, + 0x49, 0x47, 0x48, 0x45, 0x53, 0x54, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x43, 0x4f, 0x4e, + 0x47, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x18, 0x12, + 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x47, + 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x19, 0x12, 0x2c, 0x0a, 0x28, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x46, 0x41, 0x42, 0x52, + 0x49, 0x43, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x1a, 0x2a, 0x90, 0x01, 0x0a, 0x13, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x43, 0x55, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x01, + 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x02, 0x2a, 0x80, 0x01, + 0x0a, 0x0a, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x50, 0x55, 0x10, 0x01, 0x12, 0x13, + 0x0a, 0x0f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, + 0x59, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x56, 0x4f, 0x51, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x10, 0x04, + 0x2a, 0x6b, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, + 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x89, 0x02, + 0x0a, 0x10, 0x54, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x42, + 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, + 0x55, 0x45, 0x55, 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, + 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, + 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x47, 0x10, + 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, + 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x04, 0x12, + 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x05, 0x12, + 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x47, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, + 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x42, 0x53, 0x50, 0x10, 0x07, 0x2a, 0xc1, 0x02, 0x0a, 0x15, 0x54, 0x61, + 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x55, + 0x6e, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, + 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, + 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4e, 0x41, 0x4e, 0x4f, 0x53, 0x45, + 0x43, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, + 0x55, 0x53, 0x45, 0x43, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, + 0x49, 0x54, 0x5f, 0x4d, 0x53, 0x45, 0x43, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, - 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4e, 0x41, 0x4e, 0x4f, 0x53, 0x45, 0x43, 0x10, 0x01, 0x12, - 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, - 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x43, - 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4d, - 0x53, 0x45, 0x43, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, - 0x54, 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x54, - 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, - 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, - 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, - 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x53, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, - 0x54, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x53, 0x10, 0x07, 0x2a, 0xfb, 0x02, 0x0a, 0x0c, 0x54, 0x61, - 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, - 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, - 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, - 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, - 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, - 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, - 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x43, 0x50, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x03, 0x12, 0x22, 0x0a, - 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, - 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x55, 0x54, 0x49, 0x4c, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x1d, + 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x12, + 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, + 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x42, 0x59, 0x54, 0x45, + 0x53, 0x10, 0x05, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, + 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x53, 0x10, 0x07, 0x2a, 0xfb, 0x02, + 0x0a, 0x0c, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x49, 0x50, 0x47, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x10, 0x08, 0x12, 0x20, 0x0a, - 0x1c, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x49, 0x50, 0x47, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x09, 0x12, - 0x16, 0x0a, 0x12, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x42, 0x53, 0x50, 0x10, 0x0a, 0x2a, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x61, 0x6d, 0x49, - 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, - 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, - 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, - 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, - 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x50, 0x42, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, - 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4c, 0x33, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x03, 0x12, - 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, - 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x04, 0x2a, - 0xe6, 0x01, 0x0a, 0x0a, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4f, 0x41, - 0x4d, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x49, 0x46, 0x41, 0x31, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, - 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x46, 0x41, 0x32, 0x10, - 0x03, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x34, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x31, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, - 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x34, 0x5f, - 0x49, 0x4e, 0x54, 0x5f, 0x32, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x49, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x45, - 0x58, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x49, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x46, 0x41, 0x31, 0x5f, 0x54, 0x41, 0x49, - 0x4c, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x07, 0x2a, 0x63, 0x0a, 0x0d, 0x54, 0x61, 0x6d, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, - 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x4c, - 0x4c, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x10, 0x02, 0x2a, 0x94, 0x02, - 0x0a, 0x0d, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, + 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, + 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, + 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x43, 0x50, 0x46, 0x4c, 0x41, 0x47, 0x10, + 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, + 0x4f, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x54, 0x41, + 0x49, 0x4c, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x41, 0x4d, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x54, 0x49, 0x4c, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x07, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x47, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x10, + 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x47, 0x5f, 0x58, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x4f, 0x4f, + 0x4d, 0x10, 0x09, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x53, 0x50, 0x10, 0x0a, 0x2a, 0xc5, 0x01, 0x0a, 0x12, + 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, + 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, + 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1c, + 0x0a, 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, + 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x42, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, + 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x33, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, + 0x4c, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, + 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x53, 0x43, + 0x50, 0x10, 0x04, 0x2a, 0xe6, 0x01, 0x0a, 0x0a, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x54, - 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, - 0x50, 0x46, 0x49, 0x58, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x10, - 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x10, 0x04, 0x12, 0x18, 0x0a, - 0x14, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x34, 0x5f, 0x45, 0x58, - 0x54, 0x4e, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, - 0x4d, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x45, 0x4e, 0x44, 0x4f, 0x52, 0x5f, 0x45, 0x58, - 0x54, 0x4e, 0x10, 0x08, 0x2a, 0xaa, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, - 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, - 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x45, 0x43, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, + 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x49, 0x4f, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x4d, 0x5f, 0x49, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x46, 0x41, 0x31, 0x10, 0x02, 0x12, 0x15, + 0x0a, 0x11, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, + 0x46, 0x41, 0x32, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x34, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x31, 0x10, 0x04, + 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x50, 0x34, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x32, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x54, + 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, + 0x43, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x54, + 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x46, 0x41, 0x31, + 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x07, 0x2a, 0x63, 0x0a, 0x0d, + 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, + 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, + 0x0a, 0x13, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x41, 0x4d, 0x5f, 0x52, + 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x55, 0x4c, 0x4b, 0x10, + 0x02, 0x2a, 0x94, 0x02, 0x0a, 0x0d, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, + 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x49, 0x50, 0x46, 0x49, 0x58, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, + 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x10, + 0x04, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, + 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x34, 0x5f, 0x45, 0x58, 0x54, 0x4e, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, + 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x49, 0x53, 0x54, + 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, + 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x45, 0x4e, 0x44, 0x4f, + 0x52, 0x5f, 0x45, 0x58, 0x54, 0x4e, 0x10, 0x08, 0x2a, 0xaa, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x6d, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x22, 0x0a, + 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, + 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x45, 0x43, 0x10, 0x01, 0x12, 0x1d, 0x0a, + 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, + 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, + 0x49, 0x54, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, - 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, - 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x48, - 0x4f, 0x55, 0x52, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x44, 0x41, 0x59, 0x10, - 0x04, 0x2a, 0x93, 0x02, 0x0a, 0x12, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, - 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x41, 0x4d, 0x5f, - 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, - 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, - 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, - 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x4f, 0x5f, - 0x4d, 0x45, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, - 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x41, 0x4c, 0x47, 0x45, 0x42, 0x52, 0x41, 0x49, 0x43, 0x5f, 0x4d, 0x45, 0x41, 0x4e, 0x10, - 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, - 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x56, 0x45, 0x52, - 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, + 0x44, 0x41, 0x59, 0x10, 0x04, 0x2a, 0x93, 0x02, 0x0a, 0x12, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, + 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x22, + 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, + 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, + 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, - 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x06, 0x2a, 0xc8, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x6d, 0x54, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, - 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, - 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x54, - 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, + 0x47, 0x45, 0x4f, 0x5f, 0x4d, 0x45, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, + 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x47, 0x45, 0x42, 0x52, 0x41, 0x49, 0x43, 0x5f, 0x4d, + 0x45, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, + 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x41, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, + 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, + 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x06, 0x2a, 0xc8, 0x01, 0x0a, 0x10, + 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, + 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, + 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x10, 0x01, 0x12, + 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x1d, + 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x10, 0x03, 0x12, 0x1b, 0x0a, + 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, - 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, - 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, - 0x10, 0x05, 0x2a, 0xa3, 0x01, 0x0a, 0x14, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x54, + 0x5f, 0x49, 0x4e, 0x54, 0x10, 0x05, 0x2a, 0xa3, 0x01, 0x0a, 0x14, 0x54, 0x61, 0x6d, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x27, 0x0a, 0x23, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, + 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x53, 0x4c, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, - 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x53, 0x53, 0x4c, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x54, 0x4c, 0x53, 0x10, 0x03, 0x2a, 0xc7, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, - 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1a, + 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x4c, 0x53, 0x10, 0x03, 0x2a, 0xc7, 0x01, 0x0a, + 0x10, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, + 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x44, 0x50, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x44, 0x50, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x50, - 0x43, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x05, 0x2a, 0x76, 0x0a, 0x07, 0x54, 0x6c, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, - 0x14, 0x54, 0x4c, 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x4c, 0x56, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x13, 0x0a, - 0x0f, 0x54, 0x4c, 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, - 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, - 0x50, 0x41, 0x51, 0x55, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x4c, 0x56, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4d, 0x41, 0x43, 0x10, 0x04, 0x2a, 0xb2, 0x01, 0x0a, 0x12, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x43, 0x41, - 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, - 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, + 0x5f, 0x47, 0x52, 0x50, 0x43, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x2a, 0x76, 0x0a, 0x07, 0x54, 0x6c, 0x76, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x4c, 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, + 0x4c, 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, + 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x47, + 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x56, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x41, 0x51, 0x55, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x54, + 0x4c, 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4d, 0x41, 0x43, 0x10, 0x04, 0x2a, 0xb2, + 0x01, 0x0a, 0x12, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, + 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, - 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x55, 0x4e, 0x4e, 0x45, - 0x4c, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x03, 0x2a, - 0x77, 0x0a, 0x0e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x53, 0x43, 0x50, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x53, - 0x43, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x55, 0x4e, 0x4e, 0x45, - 0x4c, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x02, 0x2a, 0x87, 0x01, 0x0a, 0x12, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x5f, - 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, - 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x55, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, + 0x12, 0x29, 0x0a, 0x25, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, + 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x5f, 0x46, + 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, + 0x44, 0x10, 0x03, 0x2a, 0x77, 0x0a, 0x0e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, + 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x44, 0x53, 0x43, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, + 0x4c, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x46, + 0x4f, 0x52, 0x4d, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x50, 0x49, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x02, 0x2a, 0x87, 0x01, 0x0a, + 0x12, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x45, 0x4e, + 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, - 0x10, 0x02, 0x2a, 0xa8, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, - 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, - 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x45, 0x43, 0x4e, 0x5f, 0x54, 0x4f, - 0x5f, 0x55, 0x45, 0x43, 0x4e, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, - 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x45, 0x43, 0x4e, 0x5f, - 0x4f, 0x45, 0x43, 0x4e, 0x5f, 0x54, 0x4f, 0x5f, 0x4f, 0x45, 0x43, 0x4e, 0x10, 0x02, 0x12, 0x22, - 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x56, 0x4e, 0x49, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, - 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x4f, - 0x5f, 0x56, 0x4e, 0x49, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, + 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x26, + 0x0a, 0x22, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x5f, 0x45, + 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, + 0x49, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xa8, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x55, 0x4e, 0x4e, + 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x55, 0x4e, + 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x45, 0x43, + 0x4e, 0x5f, 0x54, 0x4f, 0x5f, 0x55, 0x45, 0x43, 0x4e, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x45, 0x43, 0x4e, 0x5f, 0x4f, 0x45, 0x43, 0x4e, 0x5f, 0x54, 0x4f, 0x5f, 0x4f, 0x45, 0x43, 0x4e, + 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4e, 0x49, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, + 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, + 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x4e, 0x49, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x55, + 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4e, + 0x49, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x46, 0x10, 0x05, + 0x12, 0x24, 0x0a, 0x20, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x46, 0x5f, 0x54, 0x4f, + 0x5f, 0x56, 0x4e, 0x49, 0x10, 0x06, 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4e, 0x49, 0x5f, 0x54, 0x4f, - 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x46, 0x10, 0x05, 0x12, 0x24, 0x0a, 0x20, + 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, + 0x49, 0x44, 0x10, 0x07, 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, + 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, + 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x4e, 0x49, + 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x53, 0x49, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x09, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x55, 0x4e, 0x4e, 0x45, + 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x49, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x53, 0x49, 0x44, 0x10, 0x0a, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x46, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x4e, 0x49, - 0x10, 0x06, 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4e, 0x49, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x49, 0x52, - 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x07, - 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, - 0x45, 0x52, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x4e, 0x49, 0x10, 0x08, 0x12, 0x23, - 0x0a, 0x1f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x56, 0x53, 0x49, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, - 0x44, 0x10, 0x09, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x54, - 0x4f, 0x5f, 0x56, 0x53, 0x49, 0x44, 0x10, 0x0a, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, - 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x53, 0x49, 0x44, - 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x46, 0x10, 0x0b, 0x12, - 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x46, 0x5f, 0x54, 0x4f, 0x5f, - 0x56, 0x53, 0x49, 0x44, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, - 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0d, 0x2a, 0x67, 0x0a, - 0x0e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x20, 0x0a, 0x1c, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x50, 0x45, 0x45, 0x52, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x32, 0x50, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x54, - 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x50, 0x32, 0x4d, 0x50, 0x10, 0x02, 0x2a, 0x99, 0x01, 0x0a, 0x0a, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x1a, 0x0a, - 0x16, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x55, 0x4e, - 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, - 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, - 0x10, 0x04, 0x2a, 0xe4, 0x01, 0x0a, 0x18, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, - 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2c, 0x0a, 0x28, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, - 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, - 0x20, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, 0x42, - 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x32, - 0x50, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, + 0x56, 0x53, 0x49, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, + 0x46, 0x10, 0x0b, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, + 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x46, + 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x53, 0x49, 0x44, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, + 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, + 0x0d, 0x2a, 0x67, 0x0a, 0x0e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x50, 0x45, + 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x50, 0x45, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x32, 0x50, 0x10, 0x01, 0x12, + 0x19, 0x0a, 0x15, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x32, 0x4d, 0x50, 0x10, 0x02, 0x2a, 0x99, 0x01, 0x0a, 0x0a, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x55, 0x4e, + 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, + 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1a, 0x0a, + 0x16, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, + 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x55, 0x4e, + 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x53, 0x10, 0x04, 0x2a, 0xe4, 0x01, 0x0a, 0x18, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x50, 0x32, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, - 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x32, 0x50, 0x10, - 0x03, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4d, 0x50, 0x32, 0x4d, 0x50, 0x10, 0x04, 0x2a, 0x73, 0x0a, 0x0d, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x55, - 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x54, - 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, - 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x1e, - 0x0a, 0x1a, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x02, 0x2a, 0x92, - 0x02, 0x0a, 0x0a, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, - 0x17, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x55, - 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x49, 0x4e, 0x49, 0x50, - 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x49, 0x50, 0x49, 0x4e, 0x49, 0x50, 0x5f, 0x47, 0x52, 0x45, 0x10, 0x02, 0x12, 0x15, - 0x0a, 0x11, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x58, - 0x4c, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x54, - 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x10, - 0x05, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4e, 0x56, 0x47, 0x52, 0x45, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x55, 0x4e, 0x4e, - 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x49, 0x4e, 0x49, 0x50, 0x5f, 0x45, - 0x53, 0x50, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x49, 0x4e, 0x49, 0x50, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x45, - 0x53, 0x50, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x45, 0x53, - 0x50, 0x10, 0x09, 0x2a, 0x9f, 0x01, 0x0a, 0x17, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x2b, 0x0a, 0x27, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, - 0x55, 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, - 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, 0x50, - 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, - 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x55, - 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x50, 0x48, 0x45, 0x4d, 0x45, - 0x52, 0x41, 0x4c, 0x10, 0x02, 0x2a, 0x56, 0x0a, 0x07, 0x55, 0x64, 0x66, 0x42, 0x61, 0x73, 0x65, - 0x12, 0x18, 0x0a, 0x14, 0x55, 0x44, 0x46, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x44, - 0x46, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x32, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x55, - 0x44, 0x46, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x33, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, - 0x55, 0x44, 0x46, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x34, 0x10, 0x03, 0x2a, 0x95, 0x01, - 0x0a, 0x0c, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x1a, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, - 0x0a, 0x14, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x44, 0x46, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, - 0x49, 0x43, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x03, 0x12, 0x16, 0x0a, - 0x12, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x45, 0x4e, 0x44, 0x10, 0x04, 0x2a, 0xd0, 0x01, 0x0a, 0x14, 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, - 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, - 0x0a, 0x23, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x4c, 0x41, 0x4e, - 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x4c, - 0x41, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, - 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, - 0x4d, 0x42, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xdb, 0x01, 0x0a, 0x16, 0x56, 0x6c, 0x61, - 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, - 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x50, 0x32, 0x50, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, + 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x32, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x25, + 0x0a, 0x21, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, + 0x50, 0x32, 0x50, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x32, 0x4d, 0x50, 0x10, 0x04, 0x2a, 0x73, 0x0a, + 0x0d, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, + 0x0a, 0x1b, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x25, 0x0a, 0x21, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, - 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, - 0x43, 0x5f, 0x44, 0x41, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, - 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x47, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x4c, 0x41, - 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, - 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x47, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, - 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x47, 0x5f, 0x41, 0x4e, - 0x44, 0x5f, 0x53, 0x47, 0x10, 0x04, 0x2a, 0xae, 0x03, 0x0a, 0x08, 0x56, 0x6c, 0x61, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, - 0x0a, 0x13, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, - 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, - 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, - 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x03, 0x12, 0x1f, - 0x0a, 0x1b, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4e, - 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x04, 0x12, - 0x19, 0x0a, 0x15, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, - 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x56, 0x4c, - 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x53, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, - 0x4f, 0x53, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x08, 0x12, 0x19, - 0x0a, 0x15, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x09, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x4c, 0x41, - 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, - 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, - 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x4c, 0x41, - 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, - 0x52, 0x44, 0x53, 0x10, 0x0c, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0x0d, 0x12, - 0x16, 0x0a, 0x12, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, - 0x5f, 0x51, 0x4c, 0x45, 0x4e, 0x10, 0x0e, 0x2a, 0x99, 0x01, 0x0a, 0x0f, 0x56, 0x6c, 0x61, 0x6e, - 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x56, - 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, - 0x0a, 0x1a, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1c, - 0x0a, 0x18, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, - 0x44, 0x10, 0x03, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x21, 0x0a, 0x1d, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, + 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x54, 0x4c, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, + 0x10, 0x02, 0x2a, 0x92, 0x02, 0x0a, 0x0a, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, + 0x0a, 0x12, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, + 0x49, 0x4e, 0x49, 0x50, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x49, 0x4e, 0x49, 0x50, 0x5f, 0x47, 0x52, 0x45, + 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x55, 0x4e, + 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x10, 0x04, 0x12, + 0x14, 0x0a, 0x10, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x52, 0x56, 0x36, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x56, 0x47, 0x52, 0x45, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x49, 0x4e, + 0x49, 0x50, 0x5f, 0x45, 0x53, 0x50, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x55, 0x4e, 0x4e, + 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x49, 0x4e, 0x49, 0x50, 0x5f, 0x55, + 0x44, 0x50, 0x5f, 0x45, 0x53, 0x50, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x55, 0x4e, 0x4e, + 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, + 0x50, 0x5f, 0x45, 0x53, 0x50, 0x10, 0x09, 0x2a, 0x9f, 0x01, 0x0a, 0x17, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x58, + 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, + 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x29, + 0x0a, 0x25, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, + 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x50, + 0x48, 0x45, 0x4d, 0x45, 0x52, 0x41, 0x4c, 0x10, 0x02, 0x2a, 0x56, 0x0a, 0x07, 0x55, 0x64, 0x66, + 0x42, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x44, 0x46, 0x5f, 0x42, 0x41, 0x53, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, + 0x0a, 0x0b, 0x55, 0x44, 0x46, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x32, 0x10, 0x01, 0x12, + 0x0f, 0x0a, 0x0b, 0x55, 0x44, 0x46, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x33, 0x10, 0x02, + 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x44, 0x46, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x34, 0x10, + 0x03, 0x2a, 0x95, 0x01, 0x0a, 0x0c, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, + 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, + 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x44, 0x46, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, + 0x03, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x2a, 0xd0, 0x01, 0x0a, 0x14, 0x56, 0x6c, + 0x61, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, + 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, + 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x26, + 0x0a, 0x22, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, + 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xdb, 0x01, 0x0a, + 0x16, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, + 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, + 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x44, 0x41, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, + 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x47, 0x10, 0x02, 0x12, 0x21, 0x0a, + 0x1d, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, + 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x47, 0x10, 0x03, + 0x12, 0x28, 0x0a, 0x24, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, + 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, + 0x47, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x47, 0x10, 0x04, 0x2a, 0xae, 0x03, 0x0a, 0x08, 0x56, + 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, + 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, + 0x53, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x05, 0x12, 0x17, + 0x0a, 0x13, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, + 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x53, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, 0x4e, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x53, + 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, + 0x4f, 0x55, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x09, 0x12, 0x1c, 0x0a, + 0x18, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x55, + 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, + 0x5f, 0x55, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x4b, 0x54, 0x53, 0x10, 0x0b, 0x12, 0x1a, 0x0a, + 0x16, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x0c, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x53, 0x10, 0x0d, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x51, 0x4c, 0x45, 0x4e, 0x10, 0x0e, 0x2a, 0x99, 0x01, 0x0a, 0x0f, + 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x21, 0x0a, 0x1d, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, + 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, + 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x02, + 0x12, 0x25, 0x0a, 0x21, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, + 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x03, 0x3a, 0x4a, 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd0, 0x86, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, @@ -38843,7 +39736,7 @@ func file_dataplane_standalone_proto_common_proto_rawDescGZIP() []byte { } var file_dataplane_standalone_proto_common_proto_enumTypes = make([]protoimpl.EnumInfo, 166) -var file_dataplane_standalone_proto_common_proto_msgTypes = make([]protoimpl.MessageInfo, 161) +var file_dataplane_standalone_proto_common_proto_msgTypes = make([]protoimpl.MessageInfo, 133) var file_dataplane_standalone_proto_common_proto_goTypes = []interface{}{ (AclActionType)(0), // 0: lemming.dataplane.sai.AclActionType (AclBindPointType)(0), // 1: lemming.dataplane.sai.AclBindPointType @@ -39014,190 +39907,163 @@ var file_dataplane_standalone_proto_common_proto_goTypes = []interface{}{ (*AclActionData)(nil), // 166: lemming.dataplane.sai.AclActionData (*ACLCapability)(nil), // 167: lemming.dataplane.sai.ACLCapability (*AclFieldData)(nil), // 168: lemming.dataplane.sai.AclFieldData - (*ACLResource)(nil), // 169: lemming.dataplane.sai.ACLResource - (*BfdSessionStateChangeNotificationData)(nil), // 170: lemming.dataplane.sai.BfdSessionStateChangeNotificationData - (*FabricPortReachability)(nil), // 171: lemming.dataplane.sai.FabricPortReachability - (*FdbEntry)(nil), // 172: lemming.dataplane.sai.FdbEntry - (*FdbEventNotificationData)(nil), // 173: lemming.dataplane.sai.FdbEventNotificationData - (*InsegEntry)(nil), // 174: lemming.dataplane.sai.InsegEntry - (*IpPrefix)(nil), // 175: lemming.dataplane.sai.IpPrefix - (*IpmcEntry)(nil), // 176: lemming.dataplane.sai.IpmcEntry - (*IpsecSaStatusNotificationData)(nil), // 177: lemming.dataplane.sai.IpsecSaStatusNotificationData - (*L2McEntry)(nil), // 178: lemming.dataplane.sai.L2mcEntry - (*UintMap)(nil), // 179: lemming.dataplane.sai.UintMap - (*McastFdbEntry)(nil), // 180: lemming.dataplane.sai.McastFdbEntry - (*MySidEntry)(nil), // 181: lemming.dataplane.sai.MySidEntry - (*NatEntryData)(nil), // 182: lemming.dataplane.sai.NatEntryData - (*NatEntry)(nil), // 183: lemming.dataplane.sai.NatEntry - (*NeighborEntry)(nil), // 184: lemming.dataplane.sai.NeighborEntry - (*PortEyeValues)(nil), // 185: lemming.dataplane.sai.PortEyeValues - (*PortOperStatusNotification)(nil), // 186: lemming.dataplane.sai.PortOperStatusNotification - (*PRBS_RXState)(nil), // 187: lemming.dataplane.sai.PRBS_RXState - (*QOSMapParams)(nil), // 188: lemming.dataplane.sai.QOSMapParams - (*QOSMap)(nil), // 189: lemming.dataplane.sai.QOSMap - (*QueueDeadlockNotificationData)(nil), // 190: lemming.dataplane.sai.QueueDeadlockNotificationData - (*RouteEntry)(nil), // 191: lemming.dataplane.sai.RouteEntry - (*SystemPortConfig)(nil), // 192: lemming.dataplane.sai.SystemPortConfig - (*HMAC)(nil), // 193: lemming.dataplane.sai.HMAC - (*TLVEntry)(nil), // 194: lemming.dataplane.sai.TLVEntry - (*Uint32Range)(nil), // 195: lemming.dataplane.sai.Uint32Range - (*AclCounterAttribute)(nil), // 196: lemming.dataplane.sai.AclCounterAttribute - (*AclEntryAttribute)(nil), // 197: lemming.dataplane.sai.AclEntryAttribute - (*AclRangeAttribute)(nil), // 198: lemming.dataplane.sai.AclRangeAttribute - (*AclBindPointTypeList)(nil), // 199: lemming.dataplane.sai.AclBindPointTypeList - (*AclActionTypeList)(nil), // 200: lemming.dataplane.sai.AclActionTypeList - (*AclRangeTypeList)(nil), // 201: lemming.dataplane.sai.AclRangeTypeList - (*Uint64List)(nil), // 202: lemming.dataplane.sai.Uint64List - (*AclTableAttribute)(nil), // 203: lemming.dataplane.sai.AclTableAttribute - (*AclTableGroupAttribute)(nil), // 204: lemming.dataplane.sai.AclTableGroupAttribute - (*AclTableGroupMemberAttribute)(nil), // 205: lemming.dataplane.sai.AclTableGroupMemberAttribute - (*BfdSessionAttribute)(nil), // 206: lemming.dataplane.sai.BfdSessionAttribute - (*BridgeAttribute)(nil), // 207: lemming.dataplane.sai.BridgeAttribute - (*BridgePortAttribute)(nil), // 208: lemming.dataplane.sai.BridgePortAttribute - (*BufferPoolAttribute)(nil), // 209: lemming.dataplane.sai.BufferPoolAttribute - (*BufferProfileAttribute)(nil), // 210: lemming.dataplane.sai.BufferProfileAttribute - (*CounterAttribute)(nil), // 211: lemming.dataplane.sai.CounterAttribute - (*InDropReasonList)(nil), // 212: lemming.dataplane.sai.InDropReasonList - (*OutDropReasonList)(nil), // 213: lemming.dataplane.sai.OutDropReasonList - (*DebugCounterAttribute)(nil), // 214: lemming.dataplane.sai.DebugCounterAttribute - (*DtelAttribute)(nil), // 215: lemming.dataplane.sai.DtelAttribute - (*DtelEventAttribute)(nil), // 216: lemming.dataplane.sai.DtelEventAttribute - (*DtelIntSessionAttribute)(nil), // 217: lemming.dataplane.sai.DtelIntSessionAttribute - (*DtelQueueReportAttribute)(nil), // 218: lemming.dataplane.sai.DtelQueueReportAttribute - (*BytesList)(nil), // 219: lemming.dataplane.sai.BytesList - (*DtelReportSessionAttribute)(nil), // 220: lemming.dataplane.sai.DtelReportSessionAttribute - (*FdbEntryAttribute)(nil), // 221: lemming.dataplane.sai.FdbEntryAttribute - (*FdbFlushAttribute)(nil), // 222: lemming.dataplane.sai.FdbFlushAttribute - (*FineGrainedHashFieldAttribute)(nil), // 223: lemming.dataplane.sai.FineGrainedHashFieldAttribute - (*NativeHashFieldList)(nil), // 224: lemming.dataplane.sai.NativeHashFieldList - (*HashAttribute)(nil), // 225: lemming.dataplane.sai.HashAttribute - (*HostifAttribute)(nil), // 226: lemming.dataplane.sai.HostifAttribute - (*HostifPacketAttribute)(nil), // 227: lemming.dataplane.sai.HostifPacketAttribute - (*HostifTableEntryAttribute)(nil), // 228: lemming.dataplane.sai.HostifTableEntryAttribute - (*HostifTrapAttribute)(nil), // 229: lemming.dataplane.sai.HostifTrapAttribute - (*HostifTrapGroupAttribute)(nil), // 230: lemming.dataplane.sai.HostifTrapGroupAttribute - (*HostifUserDefinedTrapAttribute)(nil), // 231: lemming.dataplane.sai.HostifUserDefinedTrapAttribute - (*IngressPriorityGroupAttribute)(nil), // 232: lemming.dataplane.sai.IngressPriorityGroupAttribute - (*InsegEntryAttribute)(nil), // 233: lemming.dataplane.sai.InsegEntryAttribute - (*IpmcEntryAttribute)(nil), // 234: lemming.dataplane.sai.IpmcEntryAttribute - (*IpmcGroupAttribute)(nil), // 235: lemming.dataplane.sai.IpmcGroupAttribute - (*IpmcGroupMemberAttribute)(nil), // 236: lemming.dataplane.sai.IpmcGroupMemberAttribute - (*IpsecCipherList)(nil), // 237: lemming.dataplane.sai.IpsecCipherList - (*IpsecAttribute)(nil), // 238: lemming.dataplane.sai.IpsecAttribute - (*IpsecPortAttribute)(nil), // 239: lemming.dataplane.sai.IpsecPortAttribute - (*IpsecSaAttribute)(nil), // 240: lemming.dataplane.sai.IpsecSaAttribute - (*IsolationGroupAttribute)(nil), // 241: lemming.dataplane.sai.IsolationGroupAttribute - (*IsolationGroupMemberAttribute)(nil), // 242: lemming.dataplane.sai.IsolationGroupMemberAttribute - (*L2McEntryAttribute)(nil), // 243: lemming.dataplane.sai.L2mcEntryAttribute - (*L2McGroupAttribute)(nil), // 244: lemming.dataplane.sai.L2mcGroupAttribute - (*L2McGroupMemberAttribute)(nil), // 245: lemming.dataplane.sai.L2mcGroupMemberAttribute - (*LagAttribute)(nil), // 246: lemming.dataplane.sai.LagAttribute - (*LagMemberAttribute)(nil), // 247: lemming.dataplane.sai.LagMemberAttribute - (*MacsecCipherSuiteList)(nil), // 248: lemming.dataplane.sai.MacsecCipherSuiteList - (*Uint32List)(nil), // 249: lemming.dataplane.sai.Uint32List - (*MacsecAttribute)(nil), // 250: lemming.dataplane.sai.MacsecAttribute - (*MacsecFlowAttribute)(nil), // 251: lemming.dataplane.sai.MacsecFlowAttribute - (*MacsecPortAttribute)(nil), // 252: lemming.dataplane.sai.MacsecPortAttribute - (*MacsecSaAttribute)(nil), // 253: lemming.dataplane.sai.MacsecSaAttribute - (*MacsecScAttribute)(nil), // 254: lemming.dataplane.sai.MacsecScAttribute - (*McastFdbEntryAttribute)(nil), // 255: lemming.dataplane.sai.McastFdbEntryAttribute - (*MirrorSessionAttribute)(nil), // 256: lemming.dataplane.sai.MirrorSessionAttribute - (*MyMacAttribute)(nil), // 257: lemming.dataplane.sai.MyMacAttribute - (*MySidEntryAttribute)(nil), // 258: lemming.dataplane.sai.MySidEntryAttribute - (*NatEntryAttribute)(nil), // 259: lemming.dataplane.sai.NatEntryAttribute - (*NatZoneCounterAttribute)(nil), // 260: lemming.dataplane.sai.NatZoneCounterAttribute - (*NeighborEntryAttribute)(nil), // 261: lemming.dataplane.sai.NeighborEntryAttribute - (*NextHopAttribute)(nil), // 262: lemming.dataplane.sai.NextHopAttribute - (*NextHopGroupAttribute)(nil), // 263: lemming.dataplane.sai.NextHopGroupAttribute - (*UintMapList)(nil), // 264: lemming.dataplane.sai.UintMapList - (*NextHopGroupMapAttribute)(nil), // 265: lemming.dataplane.sai.NextHopGroupMapAttribute - (*NextHopGroupMemberAttribute)(nil), // 266: lemming.dataplane.sai.NextHopGroupMemberAttribute - (*PacketActionList)(nil), // 267: lemming.dataplane.sai.PacketActionList - (*PolicerAttribute)(nil), // 268: lemming.dataplane.sai.PolicerAttribute - (*PortBreakoutModeTypeList)(nil), // 269: lemming.dataplane.sai.PortBreakoutModeTypeList - (*PortFecModeList)(nil), // 270: lemming.dataplane.sai.PortFecModeList - (*PortFecModeExtendedList)(nil), // 271: lemming.dataplane.sai.PortFecModeExtendedList - (*PortEyeValuesList)(nil), // 272: lemming.dataplane.sai.PortEyeValuesList - (*PortInterfaceTypeList)(nil), // 273: lemming.dataplane.sai.PortInterfaceTypeList - (*PortErrStatusList)(nil), // 274: lemming.dataplane.sai.PortErrStatusList - (*PortAttribute)(nil), // 275: lemming.dataplane.sai.PortAttribute - (*PortConnectorAttribute)(nil), // 276: lemming.dataplane.sai.PortConnectorAttribute - (*PortPoolAttribute)(nil), // 277: lemming.dataplane.sai.PortPoolAttribute - (*Int32List)(nil), // 278: lemming.dataplane.sai.Int32List - (*PortSerdesAttribute)(nil), // 279: lemming.dataplane.sai.PortSerdesAttribute - (*QosMapList)(nil), // 280: lemming.dataplane.sai.QosMapList - (*QosMapAttribute)(nil), // 281: lemming.dataplane.sai.QosMapAttribute - (*QueueAttribute)(nil), // 282: lemming.dataplane.sai.QueueAttribute - (*RouterInterfaceAttribute)(nil), // 283: lemming.dataplane.sai.RouterInterfaceAttribute - (*RouteEntryAttribute)(nil), // 284: lemming.dataplane.sai.RouteEntryAttribute - (*RpfGroupAttribute)(nil), // 285: lemming.dataplane.sai.RpfGroupAttribute - (*RpfGroupMemberAttribute)(nil), // 286: lemming.dataplane.sai.RpfGroupMemberAttribute - (*SamplepacketAttribute)(nil), // 287: lemming.dataplane.sai.SamplepacketAttribute - (*SchedulerAttribute)(nil), // 288: lemming.dataplane.sai.SchedulerAttribute - (*SchedulerGroupAttribute)(nil), // 289: lemming.dataplane.sai.SchedulerGroupAttribute - (*TlvEntryList)(nil), // 290: lemming.dataplane.sai.TlvEntryList - (*Srv6SidlistAttribute)(nil), // 291: lemming.dataplane.sai.Srv6SidlistAttribute - (*StpAttribute)(nil), // 292: lemming.dataplane.sai.StpAttribute - (*StpPortAttribute)(nil), // 293: lemming.dataplane.sai.StpPortAttribute - (*AclResourceList)(nil), // 294: lemming.dataplane.sai.AclResourceList - (*TlvTypeList)(nil), // 295: lemming.dataplane.sai.TlvTypeList - (*ObjectTypeList)(nil), // 296: lemming.dataplane.sai.ObjectTypeList - (*BfdSessionOffloadTypeList)(nil), // 297: lemming.dataplane.sai.BfdSessionOffloadTypeList - (*StatsModeList)(nil), // 298: lemming.dataplane.sai.StatsModeList - (*SystemPortConfigList)(nil), // 299: lemming.dataplane.sai.SystemPortConfigList - (*SwitchAttribute)(nil), // 300: lemming.dataplane.sai.SwitchAttribute - (*SwitchTunnelAttribute)(nil), // 301: lemming.dataplane.sai.SwitchTunnelAttribute - (*SystemPortAttribute)(nil), // 302: lemming.dataplane.sai.SystemPortAttribute - (*TamBindPointTypeList)(nil), // 303: lemming.dataplane.sai.TamBindPointTypeList - (*TamAttribute)(nil), // 304: lemming.dataplane.sai.TamAttribute - (*TamCollectorAttribute)(nil), // 305: lemming.dataplane.sai.TamCollectorAttribute - (*TamEventAttribute)(nil), // 306: lemming.dataplane.sai.TamEventAttribute - (*TamEventActionAttribute)(nil), // 307: lemming.dataplane.sai.TamEventActionAttribute - (*TamEventThresholdAttribute)(nil), // 308: lemming.dataplane.sai.TamEventThresholdAttribute - (*TamIntAttribute)(nil), // 309: lemming.dataplane.sai.TamIntAttribute - (*TamMathFuncAttribute)(nil), // 310: lemming.dataplane.sai.TamMathFuncAttribute - (*TamReportAttribute)(nil), // 311: lemming.dataplane.sai.TamReportAttribute - (*TamTelemetryAttribute)(nil), // 312: lemming.dataplane.sai.TamTelemetryAttribute - (*TamTelTypeAttribute)(nil), // 313: lemming.dataplane.sai.TamTelTypeAttribute - (*TamTransportAttribute)(nil), // 314: lemming.dataplane.sai.TamTransportAttribute - (*TunnelAttribute)(nil), // 315: lemming.dataplane.sai.TunnelAttribute - (*TunnelMapAttribute)(nil), // 316: lemming.dataplane.sai.TunnelMapAttribute - (*TunnelMapEntryAttribute)(nil), // 317: lemming.dataplane.sai.TunnelMapEntryAttribute - (*TunnelTermTableEntryAttribute)(nil), // 318: lemming.dataplane.sai.TunnelTermTableEntryAttribute - (*UdfAttribute)(nil), // 319: lemming.dataplane.sai.UdfAttribute - (*UdfGroupAttribute)(nil), // 320: lemming.dataplane.sai.UdfGroupAttribute - (*UdfMatchAttribute)(nil), // 321: lemming.dataplane.sai.UdfMatchAttribute - (*VirtualRouterAttribute)(nil), // 322: lemming.dataplane.sai.VirtualRouterAttribute - (*VlanAttribute)(nil), // 323: lemming.dataplane.sai.VlanAttribute - (*VlanMemberAttribute)(nil), // 324: lemming.dataplane.sai.VlanMemberAttribute - (*WredAttribute)(nil), // 325: lemming.dataplane.sai.WredAttribute - nil, // 326: lemming.dataplane.sai.UintMap.UintmapEntry - (*timestamppb.Timestamp)(nil), // 327: google.protobuf.Timestamp + (*Uint64List)(nil), // 169: lemming.dataplane.sai.Uint64List + (*ACLResource)(nil), // 170: lemming.dataplane.sai.ACLResource + (*BfdSessionStateChangeNotificationData)(nil), // 171: lemming.dataplane.sai.BfdSessionStateChangeNotificationData + (*FabricPortReachability)(nil), // 172: lemming.dataplane.sai.FabricPortReachability + (*FdbEntry)(nil), // 173: lemming.dataplane.sai.FdbEntry + (*FdbEventNotificationData)(nil), // 174: lemming.dataplane.sai.FdbEventNotificationData + (*InsegEntry)(nil), // 175: lemming.dataplane.sai.InsegEntry + (*IpPrefix)(nil), // 176: lemming.dataplane.sai.IpPrefix + (*IpmcEntry)(nil), // 177: lemming.dataplane.sai.IpmcEntry + (*IpsecSaStatusNotificationData)(nil), // 178: lemming.dataplane.sai.IpsecSaStatusNotificationData + (*L2McEntry)(nil), // 179: lemming.dataplane.sai.L2mcEntry + (*UintMap)(nil), // 180: lemming.dataplane.sai.UintMap + (*McastFdbEntry)(nil), // 181: lemming.dataplane.sai.McastFdbEntry + (*MySidEntry)(nil), // 182: lemming.dataplane.sai.MySidEntry + (*NatEntryData)(nil), // 183: lemming.dataplane.sai.NatEntryData + (*NatEntry)(nil), // 184: lemming.dataplane.sai.NatEntry + (*NeighborEntry)(nil), // 185: lemming.dataplane.sai.NeighborEntry + (*PortEyeValues)(nil), // 186: lemming.dataplane.sai.PortEyeValues + (*PortOperStatusNotification)(nil), // 187: lemming.dataplane.sai.PortOperStatusNotification + (*PRBS_RXState)(nil), // 188: lemming.dataplane.sai.PRBS_RXState + (*QOSMapParams)(nil), // 189: lemming.dataplane.sai.QOSMapParams + (*QOSMap)(nil), // 190: lemming.dataplane.sai.QOSMap + (*QueueDeadlockNotificationData)(nil), // 191: lemming.dataplane.sai.QueueDeadlockNotificationData + (*RouteEntry)(nil), // 192: lemming.dataplane.sai.RouteEntry + (*SystemPortConfig)(nil), // 193: lemming.dataplane.sai.SystemPortConfig + (*HMAC)(nil), // 194: lemming.dataplane.sai.HMAC + (*TLVEntry)(nil), // 195: lemming.dataplane.sai.TLVEntry + (*Uint32Range)(nil), // 196: lemming.dataplane.sai.Uint32Range + (*AclCounterAttribute)(nil), // 197: lemming.dataplane.sai.AclCounterAttribute + (*AclEntryAttribute)(nil), // 198: lemming.dataplane.sai.AclEntryAttribute + (*AclRangeAttribute)(nil), // 199: lemming.dataplane.sai.AclRangeAttribute + (*AclTableAttribute)(nil), // 200: lemming.dataplane.sai.AclTableAttribute + (*AclTableGroupAttribute)(nil), // 201: lemming.dataplane.sai.AclTableGroupAttribute + (*AclTableGroupMemberAttribute)(nil), // 202: lemming.dataplane.sai.AclTableGroupMemberAttribute + (*BfdSessionAttribute)(nil), // 203: lemming.dataplane.sai.BfdSessionAttribute + (*BridgeAttribute)(nil), // 204: lemming.dataplane.sai.BridgeAttribute + (*BridgePortAttribute)(nil), // 205: lemming.dataplane.sai.BridgePortAttribute + (*BufferPoolAttribute)(nil), // 206: lemming.dataplane.sai.BufferPoolAttribute + (*BufferProfileAttribute)(nil), // 207: lemming.dataplane.sai.BufferProfileAttribute + (*CounterAttribute)(nil), // 208: lemming.dataplane.sai.CounterAttribute + (*DebugCounterAttribute)(nil), // 209: lemming.dataplane.sai.DebugCounterAttribute + (*DtelAttribute)(nil), // 210: lemming.dataplane.sai.DtelAttribute + (*DtelEventAttribute)(nil), // 211: lemming.dataplane.sai.DtelEventAttribute + (*DtelIntSessionAttribute)(nil), // 212: lemming.dataplane.sai.DtelIntSessionAttribute + (*DtelQueueReportAttribute)(nil), // 213: lemming.dataplane.sai.DtelQueueReportAttribute + (*DtelReportSessionAttribute)(nil), // 214: lemming.dataplane.sai.DtelReportSessionAttribute + (*FdbEntryAttribute)(nil), // 215: lemming.dataplane.sai.FdbEntryAttribute + (*FdbFlushAttribute)(nil), // 216: lemming.dataplane.sai.FdbFlushAttribute + (*FineGrainedHashFieldAttribute)(nil), // 217: lemming.dataplane.sai.FineGrainedHashFieldAttribute + (*HashAttribute)(nil), // 218: lemming.dataplane.sai.HashAttribute + (*HostifAttribute)(nil), // 219: lemming.dataplane.sai.HostifAttribute + (*HostifPacketAttribute)(nil), // 220: lemming.dataplane.sai.HostifPacketAttribute + (*HostifTableEntryAttribute)(nil), // 221: lemming.dataplane.sai.HostifTableEntryAttribute + (*HostifTrapAttribute)(nil), // 222: lemming.dataplane.sai.HostifTrapAttribute + (*HostifTrapGroupAttribute)(nil), // 223: lemming.dataplane.sai.HostifTrapGroupAttribute + (*HostifUserDefinedTrapAttribute)(nil), // 224: lemming.dataplane.sai.HostifUserDefinedTrapAttribute + (*IngressPriorityGroupAttribute)(nil), // 225: lemming.dataplane.sai.IngressPriorityGroupAttribute + (*InsegEntryAttribute)(nil), // 226: lemming.dataplane.sai.InsegEntryAttribute + (*IpmcEntryAttribute)(nil), // 227: lemming.dataplane.sai.IpmcEntryAttribute + (*IpmcGroupAttribute)(nil), // 228: lemming.dataplane.sai.IpmcGroupAttribute + (*IpmcGroupMemberAttribute)(nil), // 229: lemming.dataplane.sai.IpmcGroupMemberAttribute + (*IpsecAttribute)(nil), // 230: lemming.dataplane.sai.IpsecAttribute + (*IpsecPortAttribute)(nil), // 231: lemming.dataplane.sai.IpsecPortAttribute + (*IpsecSaAttribute)(nil), // 232: lemming.dataplane.sai.IpsecSaAttribute + (*IsolationGroupAttribute)(nil), // 233: lemming.dataplane.sai.IsolationGroupAttribute + (*IsolationGroupMemberAttribute)(nil), // 234: lemming.dataplane.sai.IsolationGroupMemberAttribute + (*L2McEntryAttribute)(nil), // 235: lemming.dataplane.sai.L2mcEntryAttribute + (*L2McGroupAttribute)(nil), // 236: lemming.dataplane.sai.L2mcGroupAttribute + (*L2McGroupMemberAttribute)(nil), // 237: lemming.dataplane.sai.L2mcGroupMemberAttribute + (*LagAttribute)(nil), // 238: lemming.dataplane.sai.LagAttribute + (*LagMemberAttribute)(nil), // 239: lemming.dataplane.sai.LagMemberAttribute + (*MacsecAttribute)(nil), // 240: lemming.dataplane.sai.MacsecAttribute + (*MacsecFlowAttribute)(nil), // 241: lemming.dataplane.sai.MacsecFlowAttribute + (*MacsecPortAttribute)(nil), // 242: lemming.dataplane.sai.MacsecPortAttribute + (*MacsecSaAttribute)(nil), // 243: lemming.dataplane.sai.MacsecSaAttribute + (*MacsecScAttribute)(nil), // 244: lemming.dataplane.sai.MacsecScAttribute + (*McastFdbEntryAttribute)(nil), // 245: lemming.dataplane.sai.McastFdbEntryAttribute + (*MirrorSessionAttribute)(nil), // 246: lemming.dataplane.sai.MirrorSessionAttribute + (*MyMacAttribute)(nil), // 247: lemming.dataplane.sai.MyMacAttribute + (*MySidEntryAttribute)(nil), // 248: lemming.dataplane.sai.MySidEntryAttribute + (*NatEntryAttribute)(nil), // 249: lemming.dataplane.sai.NatEntryAttribute + (*NatZoneCounterAttribute)(nil), // 250: lemming.dataplane.sai.NatZoneCounterAttribute + (*NeighborEntryAttribute)(nil), // 251: lemming.dataplane.sai.NeighborEntryAttribute + (*NextHopAttribute)(nil), // 252: lemming.dataplane.sai.NextHopAttribute + (*NextHopGroupAttribute)(nil), // 253: lemming.dataplane.sai.NextHopGroupAttribute + (*NextHopGroupMapAttribute)(nil), // 254: lemming.dataplane.sai.NextHopGroupMapAttribute + (*NextHopGroupMemberAttribute)(nil), // 255: lemming.dataplane.sai.NextHopGroupMemberAttribute + (*PolicerAttribute)(nil), // 256: lemming.dataplane.sai.PolicerAttribute + (*PortAttribute)(nil), // 257: lemming.dataplane.sai.PortAttribute + (*PortConnectorAttribute)(nil), // 258: lemming.dataplane.sai.PortConnectorAttribute + (*PortPoolAttribute)(nil), // 259: lemming.dataplane.sai.PortPoolAttribute + (*PortSerdesAttribute)(nil), // 260: lemming.dataplane.sai.PortSerdesAttribute + (*QosMapAttribute)(nil), // 261: lemming.dataplane.sai.QosMapAttribute + (*QueueAttribute)(nil), // 262: lemming.dataplane.sai.QueueAttribute + (*RouterInterfaceAttribute)(nil), // 263: lemming.dataplane.sai.RouterInterfaceAttribute + (*RouteEntryAttribute)(nil), // 264: lemming.dataplane.sai.RouteEntryAttribute + (*RpfGroupAttribute)(nil), // 265: lemming.dataplane.sai.RpfGroupAttribute + (*RpfGroupMemberAttribute)(nil), // 266: lemming.dataplane.sai.RpfGroupMemberAttribute + (*SamplepacketAttribute)(nil), // 267: lemming.dataplane.sai.SamplepacketAttribute + (*SchedulerAttribute)(nil), // 268: lemming.dataplane.sai.SchedulerAttribute + (*SchedulerGroupAttribute)(nil), // 269: lemming.dataplane.sai.SchedulerGroupAttribute + (*Srv6SidlistAttribute)(nil), // 270: lemming.dataplane.sai.Srv6SidlistAttribute + (*StpAttribute)(nil), // 271: lemming.dataplane.sai.StpAttribute + (*StpPortAttribute)(nil), // 272: lemming.dataplane.sai.StpPortAttribute + (*SwitchAttribute)(nil), // 273: lemming.dataplane.sai.SwitchAttribute + (*SwitchTunnelAttribute)(nil), // 274: lemming.dataplane.sai.SwitchTunnelAttribute + (*SystemPortAttribute)(nil), // 275: lemming.dataplane.sai.SystemPortAttribute + (*TamAttribute)(nil), // 276: lemming.dataplane.sai.TamAttribute + (*TamCollectorAttribute)(nil), // 277: lemming.dataplane.sai.TamCollectorAttribute + (*TamEventAttribute)(nil), // 278: lemming.dataplane.sai.TamEventAttribute + (*TamEventActionAttribute)(nil), // 279: lemming.dataplane.sai.TamEventActionAttribute + (*TamEventThresholdAttribute)(nil), // 280: lemming.dataplane.sai.TamEventThresholdAttribute + (*TamIntAttribute)(nil), // 281: lemming.dataplane.sai.TamIntAttribute + (*TamMathFuncAttribute)(nil), // 282: lemming.dataplane.sai.TamMathFuncAttribute + (*TamReportAttribute)(nil), // 283: lemming.dataplane.sai.TamReportAttribute + (*TamTelemetryAttribute)(nil), // 284: lemming.dataplane.sai.TamTelemetryAttribute + (*TamTelTypeAttribute)(nil), // 285: lemming.dataplane.sai.TamTelTypeAttribute + (*TamTransportAttribute)(nil), // 286: lemming.dataplane.sai.TamTransportAttribute + (*TunnelAttribute)(nil), // 287: lemming.dataplane.sai.TunnelAttribute + (*TunnelMapAttribute)(nil), // 288: lemming.dataplane.sai.TunnelMapAttribute + (*TunnelMapEntryAttribute)(nil), // 289: lemming.dataplane.sai.TunnelMapEntryAttribute + (*TunnelTermTableEntryAttribute)(nil), // 290: lemming.dataplane.sai.TunnelTermTableEntryAttribute + (*UdfAttribute)(nil), // 291: lemming.dataplane.sai.UdfAttribute + (*UdfGroupAttribute)(nil), // 292: lemming.dataplane.sai.UdfGroupAttribute + (*UdfMatchAttribute)(nil), // 293: lemming.dataplane.sai.UdfMatchAttribute + (*VirtualRouterAttribute)(nil), // 294: lemming.dataplane.sai.VirtualRouterAttribute + (*VlanAttribute)(nil), // 295: lemming.dataplane.sai.VlanAttribute + (*VlanMemberAttribute)(nil), // 296: lemming.dataplane.sai.VlanMemberAttribute + (*WredAttribute)(nil), // 297: lemming.dataplane.sai.WredAttribute + nil, // 298: lemming.dataplane.sai.UintMap.UintmapEntry + (*timestamppb.Timestamp)(nil), // 299: google.protobuf.Timestamp + (*descriptorpb.FieldOptions)(nil), // 300: google.protobuf.FieldOptions } var file_dataplane_standalone_proto_common_proto_depIdxs = []int32{ - 202, // 0: lemming.dataplane.sai.AclActionData.objlist:type_name -> lemming.dataplane.sai.Uint64List - 202, // 1: lemming.dataplane.sai.AclFieldData.mask_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 2: lemming.dataplane.sai.AclFieldData.data_list:type_name -> lemming.dataplane.sai.Uint64List + 169, // 0: lemming.dataplane.sai.AclActionData.objlist:type_name -> lemming.dataplane.sai.Uint64List + 169, // 1: lemming.dataplane.sai.AclFieldData.mask_list:type_name -> lemming.dataplane.sai.Uint64List + 169, // 2: lemming.dataplane.sai.AclFieldData.data_list:type_name -> lemming.dataplane.sai.Uint64List 6, // 3: lemming.dataplane.sai.ACLResource.stage:type_name -> lemming.dataplane.sai.AclStage 1, // 4: lemming.dataplane.sai.ACLResource.bind_point:type_name -> lemming.dataplane.sai.AclBindPointType 12, // 5: lemming.dataplane.sai.BfdSessionStateChangeNotificationData.session_state:type_name -> lemming.dataplane.sai.BfdSessionState 35, // 6: lemming.dataplane.sai.FdbEventNotificationData.event_type:type_name -> lemming.dataplane.sai.FdbEvent - 172, // 7: lemming.dataplane.sai.FdbEventNotificationData.fdb_entry:type_name -> lemming.dataplane.sai.FdbEntry - 221, // 8: lemming.dataplane.sai.FdbEventNotificationData.attrs:type_name -> lemming.dataplane.sai.FdbEntryAttribute + 173, // 7: lemming.dataplane.sai.FdbEventNotificationData.fdb_entry:type_name -> lemming.dataplane.sai.FdbEntry + 215, // 8: lemming.dataplane.sai.FdbEventNotificationData.attrs:type_name -> lemming.dataplane.sai.FdbEntryAttribute 51, // 9: lemming.dataplane.sai.IpmcEntry.type:type_name -> lemming.dataplane.sai.IpmcEntryType 55, // 10: lemming.dataplane.sai.IpsecSaStatusNotificationData.ipsec_sa_octet_count_status:type_name -> lemming.dataplane.sai.IpsecSaOctetCountStatus 58, // 11: lemming.dataplane.sai.L2mcEntry.type:type_name -> lemming.dataplane.sai.L2mcEntryType - 326, // 12: lemming.dataplane.sai.UintMap.uintmap:type_name -> lemming.dataplane.sai.UintMap.UintmapEntry + 298, // 12: lemming.dataplane.sai.UintMap.uintmap:type_name -> lemming.dataplane.sai.UintMap.UintmapEntry 71, // 13: lemming.dataplane.sai.NatEntry.nat_type:type_name -> lemming.dataplane.sai.NatType - 182, // 14: lemming.dataplane.sai.NatEntry.data:type_name -> lemming.dataplane.sai.NatEntryData + 183, // 14: lemming.dataplane.sai.NatEntry.data:type_name -> lemming.dataplane.sai.NatEntryData 106, // 15: lemming.dataplane.sai.PortOperStatusNotification.port_state:type_name -> lemming.dataplane.sai.PortOperStatus 109, // 16: lemming.dataplane.sai.PRBS_RXState.rx_status:type_name -> lemming.dataplane.sai.PortPrbsRxStatus 84, // 17: lemming.dataplane.sai.QOSMapParams.color:type_name -> lemming.dataplane.sai.PacketColor - 188, // 18: lemming.dataplane.sai.QOSMap.key:type_name -> lemming.dataplane.sai.QOSMapParams - 188, // 19: lemming.dataplane.sai.QOSMap.value:type_name -> lemming.dataplane.sai.QOSMapParams + 189, // 18: lemming.dataplane.sai.QOSMap.key:type_name -> lemming.dataplane.sai.QOSMapParams + 189, // 19: lemming.dataplane.sai.QOSMap.value:type_name -> lemming.dataplane.sai.QOSMapParams 115, // 20: lemming.dataplane.sai.QueueDeadlockNotificationData.event:type_name -> lemming.dataplane.sai.QueuePfcDeadlockEventType - 175, // 21: lemming.dataplane.sai.RouteEntry.destination:type_name -> lemming.dataplane.sai.IpPrefix - 193, // 22: lemming.dataplane.sai.TLVEntry.hmac:type_name -> lemming.dataplane.sai.HMAC + 176, // 21: lemming.dataplane.sai.RouteEntry.destination:type_name -> lemming.dataplane.sai.IpPrefix + 194, // 22: lemming.dataplane.sai.TLVEntry.hmac:type_name -> lemming.dataplane.sai.HMAC 168, // 23: lemming.dataplane.sai.AclEntryAttribute.field_src_ipv6:type_name -> lemming.dataplane.sai.AclFieldData 168, // 24: lemming.dataplane.sai.AclEntryAttribute.field_src_ipv6_word3:type_name -> lemming.dataplane.sai.AclFieldData 168, // 25: lemming.dataplane.sai.AclEntryAttribute.field_src_ipv6_word2:type_name -> lemming.dataplane.sai.AclFieldData @@ -39267,797 +40133,337 @@ var file_dataplane_standalone_proto_common_proto_depIdxs = []int32{ 168, // 89: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label2_exp:type_name -> lemming.dataplane.sai.AclFieldData 168, // 90: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label2_bos:type_name -> lemming.dataplane.sai.AclFieldData 168, // 91: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label3_label:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 92: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label3_ttl:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 93: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label3_exp:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 94: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label3_bos:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 95: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label4_label:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 96: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label4_ttl:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 97: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label4_exp:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 98: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label4_bos:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 99: lemming.dataplane.sai.AclEntryAttribute.field_fdb_dst_user_meta:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 100: lemming.dataplane.sai.AclEntryAttribute.field_route_dst_user_meta:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 101: lemming.dataplane.sai.AclEntryAttribute.field_neighbor_dst_user_meta:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 102: lemming.dataplane.sai.AclEntryAttribute.field_port_user_meta:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 103: lemming.dataplane.sai.AclEntryAttribute.field_vlan_user_meta:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 104: lemming.dataplane.sai.AclEntryAttribute.field_acl_user_meta:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 105: lemming.dataplane.sai.AclEntryAttribute.field_fdb_npu_meta_dst_hit:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 106: lemming.dataplane.sai.AclEntryAttribute.field_neighbor_npu_meta_dst_hit:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 107: lemming.dataplane.sai.AclEntryAttribute.field_route_npu_meta_dst_hit:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 108: lemming.dataplane.sai.AclEntryAttribute.field_bth_opcode:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 109: lemming.dataplane.sai.AclEntryAttribute.field_aeth_syndrome:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 110: lemming.dataplane.sai.AclEntryAttribute.user_defined_field_group_min:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 111: lemming.dataplane.sai.AclEntryAttribute.user_defined_field_group_max:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 112: lemming.dataplane.sai.AclEntryAttribute.field_acl_range_type:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 113: lemming.dataplane.sai.AclEntryAttribute.field_ipv6_next_header:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 114: lemming.dataplane.sai.AclEntryAttribute.field_gre_key:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 115: lemming.dataplane.sai.AclEntryAttribute.field_tam_int_type:type_name -> lemming.dataplane.sai.AclFieldData - 166, // 116: lemming.dataplane.sai.AclEntryAttribute.action_redirect:type_name -> lemming.dataplane.sai.AclActionData - 166, // 117: lemming.dataplane.sai.AclEntryAttribute.action_endpoint_ip:type_name -> lemming.dataplane.sai.AclActionData - 166, // 118: lemming.dataplane.sai.AclEntryAttribute.action_redirect_list:type_name -> lemming.dataplane.sai.AclActionData - 166, // 119: lemming.dataplane.sai.AclEntryAttribute.action_packet_action:type_name -> lemming.dataplane.sai.AclActionData - 166, // 120: lemming.dataplane.sai.AclEntryAttribute.action_flood:type_name -> lemming.dataplane.sai.AclActionData - 166, // 121: lemming.dataplane.sai.AclEntryAttribute.action_counter:type_name -> lemming.dataplane.sai.AclActionData - 166, // 122: lemming.dataplane.sai.AclEntryAttribute.action_mirror_ingress:type_name -> lemming.dataplane.sai.AclActionData - 166, // 123: lemming.dataplane.sai.AclEntryAttribute.action_mirror_egress:type_name -> lemming.dataplane.sai.AclActionData - 166, // 124: lemming.dataplane.sai.AclEntryAttribute.action_set_policer:type_name -> lemming.dataplane.sai.AclActionData - 166, // 125: lemming.dataplane.sai.AclEntryAttribute.action_decrement_ttl:type_name -> lemming.dataplane.sai.AclActionData - 166, // 126: lemming.dataplane.sai.AclEntryAttribute.action_set_tc:type_name -> lemming.dataplane.sai.AclActionData - 166, // 127: lemming.dataplane.sai.AclEntryAttribute.action_set_packet_color:type_name -> lemming.dataplane.sai.AclActionData - 166, // 128: lemming.dataplane.sai.AclEntryAttribute.action_set_inner_vlan_id:type_name -> lemming.dataplane.sai.AclActionData - 166, // 129: lemming.dataplane.sai.AclEntryAttribute.action_set_inner_vlan_pri:type_name -> lemming.dataplane.sai.AclActionData - 166, // 130: lemming.dataplane.sai.AclEntryAttribute.action_set_outer_vlan_id:type_name -> lemming.dataplane.sai.AclActionData - 166, // 131: lemming.dataplane.sai.AclEntryAttribute.action_set_outer_vlan_pri:type_name -> lemming.dataplane.sai.AclActionData - 166, // 132: lemming.dataplane.sai.AclEntryAttribute.action_add_vlan_id:type_name -> lemming.dataplane.sai.AclActionData - 166, // 133: lemming.dataplane.sai.AclEntryAttribute.action_add_vlan_pri:type_name -> lemming.dataplane.sai.AclActionData - 166, // 134: lemming.dataplane.sai.AclEntryAttribute.action_set_src_mac:type_name -> lemming.dataplane.sai.AclActionData - 166, // 135: lemming.dataplane.sai.AclEntryAttribute.action_set_dst_mac:type_name -> lemming.dataplane.sai.AclActionData - 166, // 136: lemming.dataplane.sai.AclEntryAttribute.action_set_src_ip:type_name -> lemming.dataplane.sai.AclActionData - 166, // 137: lemming.dataplane.sai.AclEntryAttribute.action_set_dst_ip:type_name -> lemming.dataplane.sai.AclActionData - 166, // 138: lemming.dataplane.sai.AclEntryAttribute.action_set_src_ipv6:type_name -> lemming.dataplane.sai.AclActionData - 166, // 139: lemming.dataplane.sai.AclEntryAttribute.action_set_dst_ipv6:type_name -> lemming.dataplane.sai.AclActionData - 166, // 140: lemming.dataplane.sai.AclEntryAttribute.action_set_dscp:type_name -> lemming.dataplane.sai.AclActionData - 166, // 141: lemming.dataplane.sai.AclEntryAttribute.action_set_ecn:type_name -> lemming.dataplane.sai.AclActionData - 166, // 142: lemming.dataplane.sai.AclEntryAttribute.action_set_l4_src_port:type_name -> lemming.dataplane.sai.AclActionData - 166, // 143: lemming.dataplane.sai.AclEntryAttribute.action_set_l4_dst_port:type_name -> lemming.dataplane.sai.AclActionData - 166, // 144: lemming.dataplane.sai.AclEntryAttribute.action_ingress_samplepacket_enable:type_name -> lemming.dataplane.sai.AclActionData - 166, // 145: lemming.dataplane.sai.AclEntryAttribute.action_egress_samplepacket_enable:type_name -> lemming.dataplane.sai.AclActionData - 166, // 146: lemming.dataplane.sai.AclEntryAttribute.action_set_acl_meta_data:type_name -> lemming.dataplane.sai.AclActionData - 166, // 147: lemming.dataplane.sai.AclEntryAttribute.action_egress_block_port_list:type_name -> lemming.dataplane.sai.AclActionData - 166, // 148: lemming.dataplane.sai.AclEntryAttribute.action_set_user_trap_id:type_name -> lemming.dataplane.sai.AclActionData - 166, // 149: lemming.dataplane.sai.AclEntryAttribute.action_set_do_not_learn:type_name -> lemming.dataplane.sai.AclActionData - 166, // 150: lemming.dataplane.sai.AclEntryAttribute.action_acl_dtel_flow_op:type_name -> lemming.dataplane.sai.AclActionData - 166, // 151: lemming.dataplane.sai.AclEntryAttribute.action_dtel_int_session:type_name -> lemming.dataplane.sai.AclActionData - 166, // 152: lemming.dataplane.sai.AclEntryAttribute.action_dtel_drop_report_enable:type_name -> lemming.dataplane.sai.AclActionData - 166, // 153: lemming.dataplane.sai.AclEntryAttribute.action_dtel_tail_drop_report_enable:type_name -> lemming.dataplane.sai.AclActionData - 166, // 154: lemming.dataplane.sai.AclEntryAttribute.action_dtel_flow_sample_percent:type_name -> lemming.dataplane.sai.AclActionData - 166, // 155: lemming.dataplane.sai.AclEntryAttribute.action_dtel_report_all_packets:type_name -> lemming.dataplane.sai.AclActionData - 166, // 156: lemming.dataplane.sai.AclEntryAttribute.action_no_nat:type_name -> lemming.dataplane.sai.AclActionData - 166, // 157: lemming.dataplane.sai.AclEntryAttribute.action_int_insert:type_name -> lemming.dataplane.sai.AclActionData - 166, // 158: lemming.dataplane.sai.AclEntryAttribute.action_int_delete:type_name -> lemming.dataplane.sai.AclActionData - 166, // 159: lemming.dataplane.sai.AclEntryAttribute.action_int_report_flow:type_name -> lemming.dataplane.sai.AclActionData - 166, // 160: lemming.dataplane.sai.AclEntryAttribute.action_int_report_drops:type_name -> lemming.dataplane.sai.AclActionData - 166, // 161: lemming.dataplane.sai.AclEntryAttribute.action_int_report_tail_drops:type_name -> lemming.dataplane.sai.AclActionData - 166, // 162: lemming.dataplane.sai.AclEntryAttribute.action_tam_int_object:type_name -> lemming.dataplane.sai.AclActionData - 166, // 163: lemming.dataplane.sai.AclEntryAttribute.action_set_isolation_group:type_name -> lemming.dataplane.sai.AclActionData - 166, // 164: lemming.dataplane.sai.AclEntryAttribute.action_macsec_flow:type_name -> lemming.dataplane.sai.AclActionData - 166, // 165: lemming.dataplane.sai.AclEntryAttribute.action_set_lag_hash_id:type_name -> lemming.dataplane.sai.AclActionData - 166, // 166: lemming.dataplane.sai.AclEntryAttribute.action_set_ecmp_hash_id:type_name -> lemming.dataplane.sai.AclActionData - 166, // 167: lemming.dataplane.sai.AclEntryAttribute.action_set_vrf:type_name -> lemming.dataplane.sai.AclActionData - 166, // 168: lemming.dataplane.sai.AclEntryAttribute.action_set_forwarding_class:type_name -> lemming.dataplane.sai.AclActionData - 5, // 169: lemming.dataplane.sai.AclRangeAttribute.type:type_name -> lemming.dataplane.sai.AclRangeType - 195, // 170: lemming.dataplane.sai.AclRangeAttribute.limit:type_name -> lemming.dataplane.sai.Uint32Range - 1, // 171: lemming.dataplane.sai.AclBindPointTypeList.list:type_name -> lemming.dataplane.sai.AclBindPointType - 0, // 172: lemming.dataplane.sai.AclActionTypeList.list:type_name -> lemming.dataplane.sai.AclActionType - 5, // 173: lemming.dataplane.sai.AclRangeTypeList.list:type_name -> lemming.dataplane.sai.AclRangeType - 6, // 174: lemming.dataplane.sai.AclTableAttribute.acl_stage:type_name -> lemming.dataplane.sai.AclStage - 199, // 175: lemming.dataplane.sai.AclTableAttribute.acl_bind_point_type_list:type_name -> lemming.dataplane.sai.AclBindPointTypeList - 200, // 176: lemming.dataplane.sai.AclTableAttribute.acl_action_type_list:type_name -> lemming.dataplane.sai.AclActionTypeList - 201, // 177: lemming.dataplane.sai.AclTableAttribute.field_acl_range_type:type_name -> lemming.dataplane.sai.AclRangeTypeList - 202, // 178: lemming.dataplane.sai.AclTableAttribute.entry_list:type_name -> lemming.dataplane.sai.Uint64List - 6, // 179: lemming.dataplane.sai.AclTableGroupAttribute.acl_stage:type_name -> lemming.dataplane.sai.AclStage - 199, // 180: lemming.dataplane.sai.AclTableGroupAttribute.acl_bind_point_type_list:type_name -> lemming.dataplane.sai.AclBindPointTypeList - 7, // 181: lemming.dataplane.sai.AclTableGroupAttribute.type:type_name -> lemming.dataplane.sai.AclTableGroupType - 202, // 182: lemming.dataplane.sai.AclTableGroupAttribute.member_list:type_name -> lemming.dataplane.sai.Uint64List - 13, // 183: lemming.dataplane.sai.BfdSessionAttribute.type:type_name -> lemming.dataplane.sai.BfdSessionType - 9, // 184: lemming.dataplane.sai.BfdSessionAttribute.bfd_encapsulation_type:type_name -> lemming.dataplane.sai.BfdEncapsulationType - 12, // 185: lemming.dataplane.sai.BfdSessionAttribute.state:type_name -> lemming.dataplane.sai.BfdSessionState - 10, // 186: lemming.dataplane.sai.BfdSessionAttribute.offload_type:type_name -> lemming.dataplane.sai.BfdSessionOffloadType - 20, // 187: lemming.dataplane.sai.BridgeAttribute.type:type_name -> lemming.dataplane.sai.BridgeType - 202, // 188: lemming.dataplane.sai.BridgeAttribute.port_list:type_name -> lemming.dataplane.sai.Uint64List - 14, // 189: lemming.dataplane.sai.BridgeAttribute.unknown_unicast_flood_control_type:type_name -> lemming.dataplane.sai.BridgeFloodControlType - 14, // 190: lemming.dataplane.sai.BridgeAttribute.unknown_multicast_flood_control_type:type_name -> lemming.dataplane.sai.BridgeFloodControlType - 14, // 191: lemming.dataplane.sai.BridgeAttribute.broadcast_flood_control_type:type_name -> lemming.dataplane.sai.BridgeFloodControlType - 18, // 192: lemming.dataplane.sai.BridgePortAttribute.type:type_name -> lemming.dataplane.sai.BridgePortType - 17, // 193: lemming.dataplane.sai.BridgePortAttribute.tagging_mode:type_name -> lemming.dataplane.sai.BridgePortTaggingMode - 15, // 194: lemming.dataplane.sai.BridgePortAttribute.fdb_learning_mode:type_name -> lemming.dataplane.sai.BridgePortFdbLearningMode - 83, // 195: lemming.dataplane.sai.BridgePortAttribute.fdb_learning_limit_violation_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 23, // 196: lemming.dataplane.sai.BufferPoolAttribute.type:type_name -> lemming.dataplane.sai.BufferPoolType - 22, // 197: lemming.dataplane.sai.BufferPoolAttribute.threshold_mode:type_name -> lemming.dataplane.sai.BufferPoolThresholdMode - 202, // 198: lemming.dataplane.sai.BufferPoolAttribute.tam:type_name -> lemming.dataplane.sai.Uint64List - 24, // 199: lemming.dataplane.sai.BufferProfileAttribute.threshold_mode:type_name -> lemming.dataplane.sai.BufferProfileThresholdMode - 28, // 200: lemming.dataplane.sai.CounterAttribute.type:type_name -> lemming.dataplane.sai.CounterType - 45, // 201: lemming.dataplane.sai.InDropReasonList.list:type_name -> lemming.dataplane.sai.InDropReason - 79, // 202: lemming.dataplane.sai.OutDropReasonList.list:type_name -> lemming.dataplane.sai.OutDropReason - 30, // 203: lemming.dataplane.sai.DebugCounterAttribute.type:type_name -> lemming.dataplane.sai.DebugCounterType - 29, // 204: lemming.dataplane.sai.DebugCounterAttribute.bind_method:type_name -> lemming.dataplane.sai.DebugCounterBindMethod - 212, // 205: lemming.dataplane.sai.DebugCounterAttribute.in_drop_reason_list:type_name -> lemming.dataplane.sai.InDropReasonList - 213, // 206: lemming.dataplane.sai.DebugCounterAttribute.out_drop_reason_list:type_name -> lemming.dataplane.sai.OutDropReasonList - 202, // 207: lemming.dataplane.sai.DtelAttribute.sink_port_list:type_name -> lemming.dataplane.sai.Uint64List - 168, // 208: lemming.dataplane.sai.DtelAttribute.int_l4_dscp:type_name -> lemming.dataplane.sai.AclFieldData - 31, // 209: lemming.dataplane.sai.DtelEventAttribute.type:type_name -> lemming.dataplane.sai.DtelEventType - 219, // 210: lemming.dataplane.sai.DtelReportSessionAttribute.dst_ip_list:type_name -> lemming.dataplane.sai.BytesList - 34, // 211: lemming.dataplane.sai.FdbEntryAttribute.type:type_name -> lemming.dataplane.sai.FdbEntryType - 83, // 212: lemming.dataplane.sai.FdbEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 36, // 213: lemming.dataplane.sai.FdbFlushAttribute.entry_type:type_name -> lemming.dataplane.sai.FdbFlushEntryType - 72, // 214: lemming.dataplane.sai.FineGrainedHashFieldAttribute.native_hash_field:type_name -> lemming.dataplane.sai.NativeHashField - 72, // 215: lemming.dataplane.sai.NativeHashFieldList.list:type_name -> lemming.dataplane.sai.NativeHashField - 224, // 216: lemming.dataplane.sai.HashAttribute.native_hash_field_list:type_name -> lemming.dataplane.sai.NativeHashFieldList - 202, // 217: lemming.dataplane.sai.HashAttribute.udf_group_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 218: lemming.dataplane.sai.HashAttribute.fine_grained_hash_field_list:type_name -> lemming.dataplane.sai.Uint64List - 42, // 219: lemming.dataplane.sai.HostifAttribute.type:type_name -> lemming.dataplane.sai.HostifType - 44, // 220: lemming.dataplane.sai.HostifAttribute.vlan_tag:type_name -> lemming.dataplane.sai.HostifVlanTag - 41, // 221: lemming.dataplane.sai.HostifPacketAttribute.hostif_tx_type:type_name -> lemming.dataplane.sai.HostifTxType - 327, // 222: lemming.dataplane.sai.HostifPacketAttribute.timestamp:type_name -> google.protobuf.Timestamp - 39, // 223: lemming.dataplane.sai.HostifTableEntryAttribute.type:type_name -> lemming.dataplane.sai.HostifTableEntryType - 38, // 224: lemming.dataplane.sai.HostifTableEntryAttribute.channel_type:type_name -> lemming.dataplane.sai.HostifTableEntryChannelType - 40, // 225: lemming.dataplane.sai.HostifTrapAttribute.trap_type:type_name -> lemming.dataplane.sai.HostifTrapType - 83, // 226: lemming.dataplane.sai.HostifTrapAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 202, // 227: lemming.dataplane.sai.HostifTrapAttribute.exclude_port_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 228: lemming.dataplane.sai.HostifTrapAttribute.mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 43, // 229: lemming.dataplane.sai.HostifUserDefinedTrapAttribute.type:type_name -> lemming.dataplane.sai.HostifUserDefinedTrapType - 202, // 230: lemming.dataplane.sai.IngressPriorityGroupAttribute.tam:type_name -> lemming.dataplane.sai.Uint64List - 83, // 231: lemming.dataplane.sai.InsegEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 49, // 232: lemming.dataplane.sai.InsegEntryAttribute.psc_type:type_name -> lemming.dataplane.sai.InsegEntryPscType - 48, // 233: lemming.dataplane.sai.InsegEntryAttribute.pop_ttl_mode:type_name -> lemming.dataplane.sai.InsegEntryPopTtlMode - 47, // 234: lemming.dataplane.sai.InsegEntryAttribute.pop_qos_mode:type_name -> lemming.dataplane.sai.InsegEntryPopQosMode - 83, // 235: lemming.dataplane.sai.IpmcEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 202, // 236: lemming.dataplane.sai.IpmcGroupAttribute.ipmc_member_list:type_name -> lemming.dataplane.sai.Uint64List - 52, // 237: lemming.dataplane.sai.IpsecCipherList.list:type_name -> lemming.dataplane.sai.IpsecCipher - 237, // 238: lemming.dataplane.sai.IpsecAttribute.supported_cipher_list:type_name -> lemming.dataplane.sai.IpsecCipherList - 124, // 239: lemming.dataplane.sai.IpsecAttribute.stats_mode:type_name -> lemming.dataplane.sai.StatsMode - 202, // 240: lemming.dataplane.sai.IpsecAttribute.sa_list:type_name -> lemming.dataplane.sai.Uint64List - 134, // 241: lemming.dataplane.sai.IpsecPortAttribute.switch_switching_mode:type_name -> lemming.dataplane.sai.SwitchSwitchingMode - 53, // 242: lemming.dataplane.sai.IpsecSaAttribute.ipsec_direction:type_name -> lemming.dataplane.sai.IpsecDirection - 55, // 243: lemming.dataplane.sai.IpsecSaAttribute.octet_count_status:type_name -> lemming.dataplane.sai.IpsecSaOctetCountStatus - 202, // 244: lemming.dataplane.sai.IpsecSaAttribute.ipsec_port_list:type_name -> lemming.dataplane.sai.Uint64List - 52, // 245: lemming.dataplane.sai.IpsecSaAttribute.ipsec_cipher:type_name -> lemming.dataplane.sai.IpsecCipher - 57, // 246: lemming.dataplane.sai.IsolationGroupAttribute.type:type_name -> lemming.dataplane.sai.IsolationGroupType - 202, // 247: lemming.dataplane.sai.IsolationGroupAttribute.isolation_member_list:type_name -> lemming.dataplane.sai.Uint64List - 83, // 248: lemming.dataplane.sai.L2mcEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 202, // 249: lemming.dataplane.sai.L2mcGroupAttribute.l2mc_member_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 250: lemming.dataplane.sai.LagAttribute.port_list:type_name -> lemming.dataplane.sai.Uint64List - 60, // 251: lemming.dataplane.sai.MacsecCipherSuiteList.list:type_name -> lemming.dataplane.sai.MacsecCipherSuite - 61, // 252: lemming.dataplane.sai.MacsecAttribute.direction:type_name -> lemming.dataplane.sai.MacsecDirection - 248, // 253: lemming.dataplane.sai.MacsecAttribute.supported_cipher_suite_list:type_name -> lemming.dataplane.sai.MacsecCipherSuiteList - 249, // 254: lemming.dataplane.sai.MacsecAttribute.sectag_offsets_supported:type_name -> lemming.dataplane.sai.Uint32List - 124, // 255: lemming.dataplane.sai.MacsecAttribute.stats_mode:type_name -> lemming.dataplane.sai.StatsMode - 202, // 256: lemming.dataplane.sai.MacsecAttribute.supported_port_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 257: lemming.dataplane.sai.MacsecAttribute.flow_list:type_name -> lemming.dataplane.sai.Uint64List - 61, // 258: lemming.dataplane.sai.MacsecFlowAttribute.macsec_direction:type_name -> lemming.dataplane.sai.MacsecDirection - 202, // 259: lemming.dataplane.sai.MacsecFlowAttribute.acl_entry_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 260: lemming.dataplane.sai.MacsecFlowAttribute.sc_list:type_name -> lemming.dataplane.sai.Uint64List - 61, // 261: lemming.dataplane.sai.MacsecPortAttribute.macsec_direction:type_name -> lemming.dataplane.sai.MacsecDirection - 134, // 262: lemming.dataplane.sai.MacsecPortAttribute.switch_switching_mode:type_name -> lemming.dataplane.sai.SwitchSwitchingMode - 61, // 263: lemming.dataplane.sai.MacsecSaAttribute.macsec_direction:type_name -> lemming.dataplane.sai.MacsecDirection - 61, // 264: lemming.dataplane.sai.MacsecScAttribute.macsec_direction:type_name -> lemming.dataplane.sai.MacsecDirection - 202, // 265: lemming.dataplane.sai.MacsecScAttribute.sa_list:type_name -> lemming.dataplane.sai.Uint64List - 60, // 266: lemming.dataplane.sai.MacsecScAttribute.macsec_cipher_suite:type_name -> lemming.dataplane.sai.MacsecCipherSuite - 83, // 267: lemming.dataplane.sai.McastFdbEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 68, // 268: lemming.dataplane.sai.MirrorSessionAttribute.type:type_name -> lemming.dataplane.sai.MirrorSessionType - 67, // 269: lemming.dataplane.sai.MirrorSessionAttribute.congestion_mode:type_name -> lemming.dataplane.sai.MirrorSessionCongestionMode - 33, // 270: lemming.dataplane.sai.MirrorSessionAttribute.erspan_encapsulation_type:type_name -> lemming.dataplane.sai.ErspanEncapsulationType - 202, // 271: lemming.dataplane.sai.MirrorSessionAttribute.monitor_portlist:type_name -> lemming.dataplane.sai.Uint64List - 70, // 272: lemming.dataplane.sai.MySidEntryAttribute.endpoint_behavior:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehavior - 69, // 273: lemming.dataplane.sai.MySidEntryAttribute.endpoint_behavior_flavor:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor - 83, // 274: lemming.dataplane.sai.MySidEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 71, // 275: lemming.dataplane.sai.NatEntryAttribute.nat_type:type_name -> lemming.dataplane.sai.NatType - 71, // 276: lemming.dataplane.sai.NatZoneCounterAttribute.nat_type:type_name -> lemming.dataplane.sai.NatType - 83, // 277: lemming.dataplane.sai.NeighborEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 50, // 278: lemming.dataplane.sai.NeighborEntryAttribute.ip_addr_family:type_name -> lemming.dataplane.sai.IpAddrFamily - 77, // 279: lemming.dataplane.sai.NextHopAttribute.type:type_name -> lemming.dataplane.sai.NextHopType - 249, // 280: lemming.dataplane.sai.NextHopAttribute.labelstack:type_name -> lemming.dataplane.sai.Uint32List - 82, // 281: lemming.dataplane.sai.NextHopAttribute.outseg_type:type_name -> lemming.dataplane.sai.OutsegType - 81, // 282: lemming.dataplane.sai.NextHopAttribute.outseg_ttl_mode:type_name -> lemming.dataplane.sai.OutsegTtlMode - 80, // 283: lemming.dataplane.sai.NextHopAttribute.outseg_exp_mode:type_name -> lemming.dataplane.sai.OutsegExpMode - 202, // 284: lemming.dataplane.sai.NextHopGroupAttribute.next_hop_member_list:type_name -> lemming.dataplane.sai.Uint64List - 76, // 285: lemming.dataplane.sai.NextHopGroupAttribute.type:type_name -> lemming.dataplane.sai.NextHopGroupType - 179, // 286: lemming.dataplane.sai.UintMapList.list:type_name -> lemming.dataplane.sai.UintMap - 73, // 287: lemming.dataplane.sai.NextHopGroupMapAttribute.type:type_name -> lemming.dataplane.sai.NextHopGroupMapType - 264, // 288: lemming.dataplane.sai.NextHopGroupMapAttribute.map_to_value_list:type_name -> lemming.dataplane.sai.UintMapList - 74, // 289: lemming.dataplane.sai.NextHopGroupMemberAttribute.configured_role:type_name -> lemming.dataplane.sai.NextHopGroupMemberConfiguredRole - 75, // 290: lemming.dataplane.sai.NextHopGroupMemberAttribute.observed_role:type_name -> lemming.dataplane.sai.NextHopGroupMemberObservedRole - 83, // 291: lemming.dataplane.sai.PacketActionList.list:type_name -> lemming.dataplane.sai.PacketAction - 66, // 292: lemming.dataplane.sai.PolicerAttribute.meter_type:type_name -> lemming.dataplane.sai.MeterType - 87, // 293: lemming.dataplane.sai.PolicerAttribute.mode:type_name -> lemming.dataplane.sai.PolicerMode - 86, // 294: lemming.dataplane.sai.PolicerAttribute.color_source:type_name -> lemming.dataplane.sai.PolicerColorSource - 83, // 295: lemming.dataplane.sai.PolicerAttribute.green_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 83, // 296: lemming.dataplane.sai.PolicerAttribute.yellow_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 83, // 297: lemming.dataplane.sai.PolicerAttribute.red_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 267, // 298: lemming.dataplane.sai.PolicerAttribute.enable_counter_packet_action_list:type_name -> lemming.dataplane.sai.PacketActionList - 90, // 299: lemming.dataplane.sai.PortBreakoutModeTypeList.list:type_name -> lemming.dataplane.sai.PortBreakoutModeType - 95, // 300: lemming.dataplane.sai.PortFecModeList.list:type_name -> lemming.dataplane.sai.PortFecMode - 94, // 301: lemming.dataplane.sai.PortFecModeExtendedList.list:type_name -> lemming.dataplane.sai.PortFecModeExtended - 185, // 302: lemming.dataplane.sai.PortEyeValuesList.list:type_name -> lemming.dataplane.sai.PortEyeValues - 97, // 303: lemming.dataplane.sai.PortInterfaceTypeList.list:type_name -> lemming.dataplane.sai.PortInterfaceType - 93, // 304: lemming.dataplane.sai.PortErrStatusList.list:type_name -> lemming.dataplane.sai.PortErrStatus - 113, // 305: lemming.dataplane.sai.PortAttribute.type:type_name -> lemming.dataplane.sai.PortType - 106, // 306: lemming.dataplane.sai.PortAttribute.oper_status:type_name -> lemming.dataplane.sai.PortOperStatus - 269, // 307: lemming.dataplane.sai.PortAttribute.supported_breakout_mode_type:type_name -> lemming.dataplane.sai.PortBreakoutModeTypeList - 90, // 308: lemming.dataplane.sai.PortAttribute.current_breakout_mode_type:type_name -> lemming.dataplane.sai.PortBreakoutModeType - 202, // 309: lemming.dataplane.sai.PortAttribute.qos_queue_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 310: lemming.dataplane.sai.PortAttribute.qos_scheduler_group_list:type_name -> lemming.dataplane.sai.Uint64List - 249, // 311: lemming.dataplane.sai.PortAttribute.supported_speed:type_name -> lemming.dataplane.sai.Uint32List - 270, // 312: lemming.dataplane.sai.PortAttribute.supported_fec_mode:type_name -> lemming.dataplane.sai.PortFecModeList - 271, // 313: lemming.dataplane.sai.PortAttribute.supported_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtendedList - 249, // 314: lemming.dataplane.sai.PortAttribute.supported_half_duplex_speed:type_name -> lemming.dataplane.sai.Uint32List - 96, // 315: lemming.dataplane.sai.PortAttribute.supported_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode - 104, // 316: lemming.dataplane.sai.PortAttribute.supported_media_type:type_name -> lemming.dataplane.sai.PortMediaType - 249, // 317: lemming.dataplane.sai.PortAttribute.remote_advertised_speed:type_name -> lemming.dataplane.sai.Uint32List - 270, // 318: lemming.dataplane.sai.PortAttribute.remote_advertised_fec_mode:type_name -> lemming.dataplane.sai.PortFecModeList - 271, // 319: lemming.dataplane.sai.PortAttribute.remote_advertised_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtendedList - 249, // 320: lemming.dataplane.sai.PortAttribute.remote_advertised_half_duplex_speed:type_name -> lemming.dataplane.sai.Uint32List - 96, // 321: lemming.dataplane.sai.PortAttribute.remote_advertised_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode - 104, // 322: lemming.dataplane.sai.PortAttribute.remote_advertised_media_type:type_name -> lemming.dataplane.sai.PortMediaType - 202, // 323: lemming.dataplane.sai.PortAttribute.ingress_priority_group_list:type_name -> lemming.dataplane.sai.Uint64List - 272, // 324: lemming.dataplane.sai.PortAttribute.eye_values:type_name -> lemming.dataplane.sai.PortEyeValuesList - 249, // 325: lemming.dataplane.sai.PortAttribute.hw_lane_list:type_name -> lemming.dataplane.sai.Uint32List - 104, // 326: lemming.dataplane.sai.PortAttribute.media_type:type_name -> lemming.dataplane.sai.PortMediaType - 249, // 327: lemming.dataplane.sai.PortAttribute.advertised_speed:type_name -> lemming.dataplane.sai.Uint32List - 270, // 328: lemming.dataplane.sai.PortAttribute.advertised_fec_mode:type_name -> lemming.dataplane.sai.PortFecModeList - 271, // 329: lemming.dataplane.sai.PortAttribute.advertised_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtendedList - 249, // 330: lemming.dataplane.sai.PortAttribute.advertised_half_duplex_speed:type_name -> lemming.dataplane.sai.Uint32List - 96, // 331: lemming.dataplane.sai.PortAttribute.advertised_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode - 104, // 332: lemming.dataplane.sai.PortAttribute.advertised_media_type:type_name -> lemming.dataplane.sai.PortMediaType - 98, // 333: lemming.dataplane.sai.PortAttribute.internal_loopback_mode:type_name -> lemming.dataplane.sai.PortInternalLoopbackMode - 95, // 334: lemming.dataplane.sai.PortAttribute.fec_mode:type_name -> lemming.dataplane.sai.PortFecMode - 94, // 335: lemming.dataplane.sai.PortAttribute.fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended - 96, // 336: lemming.dataplane.sai.PortAttribute.global_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode - 202, // 337: lemming.dataplane.sai.PortAttribute.macsec_port_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 338: lemming.dataplane.sai.PortAttribute.ingress_mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 202, // 339: lemming.dataplane.sai.PortAttribute.egress_mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 202, // 340: lemming.dataplane.sai.PortAttribute.ingress_sample_mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 202, // 341: lemming.dataplane.sai.PortAttribute.egress_sample_mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 202, // 342: lemming.dataplane.sai.PortAttribute.qos_ingress_buffer_profile_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 343: lemming.dataplane.sai.PortAttribute.qos_egress_buffer_profile_list:type_name -> lemming.dataplane.sai.Uint64List - 110, // 344: lemming.dataplane.sai.PortAttribute.priority_flow_control_mode:type_name -> lemming.dataplane.sai.PortPriorityFlowControlMode - 202, // 345: lemming.dataplane.sai.PortAttribute.egress_block_port_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 346: lemming.dataplane.sai.PortAttribute.port_pool_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 347: lemming.dataplane.sai.PortAttribute.tam_object:type_name -> lemming.dataplane.sai.Uint64List - 249, // 348: lemming.dataplane.sai.PortAttribute.serdes_preemphasis:type_name -> lemming.dataplane.sai.Uint32List - 249, // 349: lemming.dataplane.sai.PortAttribute.serdes_idriver:type_name -> lemming.dataplane.sai.Uint32List - 249, // 350: lemming.dataplane.sai.PortAttribute.serdes_ipredriver:type_name -> lemming.dataplane.sai.Uint32List - 111, // 351: lemming.dataplane.sai.PortAttribute.ptp_mode:type_name -> lemming.dataplane.sai.PortPtpMode - 97, // 352: lemming.dataplane.sai.PortAttribute.interface_type:type_name -> lemming.dataplane.sai.PortInterfaceType - 273, // 353: lemming.dataplane.sai.PortAttribute.advertised_interface_type:type_name -> lemming.dataplane.sai.PortInterfaceTypeList - 99, // 354: lemming.dataplane.sai.PortAttribute.link_training_failure_status:type_name -> lemming.dataplane.sai.PortLinkTrainingFailureStatus - 100, // 355: lemming.dataplane.sai.PortAttribute.link_training_rx_status:type_name -> lemming.dataplane.sai.PortLinkTrainingRxStatus - 108, // 356: lemming.dataplane.sai.PortAttribute.prbs_config:type_name -> lemming.dataplane.sai.PortPrbsConfig - 109, // 357: lemming.dataplane.sai.PortAttribute.prbs_rx_status:type_name -> lemming.dataplane.sai.PortPrbsRxStatus - 187, // 358: lemming.dataplane.sai.PortAttribute.prbs_rx_state:type_name -> lemming.dataplane.sai.PRBS_RXState - 274, // 359: lemming.dataplane.sai.PortAttribute.err_status_list:type_name -> lemming.dataplane.sai.PortErrStatusList - 135, // 360: lemming.dataplane.sai.PortAttribute.fabric_attached_switch_type:type_name -> lemming.dataplane.sai.SwitchType - 171, // 361: lemming.dataplane.sai.PortAttribute.fabric_reachability:type_name -> lemming.dataplane.sai.FabricPortReachability - 101, // 362: lemming.dataplane.sai.PortAttribute.loopback_mode:type_name -> lemming.dataplane.sai.PortLoopbackMode - 103, // 363: lemming.dataplane.sai.PortAttribute.mdix_mode_status:type_name -> lemming.dataplane.sai.PortMdixModeStatus - 102, // 364: lemming.dataplane.sai.PortAttribute.mdix_mode_config:type_name -> lemming.dataplane.sai.PortMdixModeConfig - 89, // 365: lemming.dataplane.sai.PortAttribute.auto_neg_config_mode:type_name -> lemming.dataplane.sai.PortAutoNegConfigMode - 105, // 366: lemming.dataplane.sai.PortAttribute.module_type:type_name -> lemming.dataplane.sai.PortModuleType - 92, // 367: lemming.dataplane.sai.PortAttribute.dual_media:type_name -> lemming.dataplane.sai.PortDualMedia - 94, // 368: lemming.dataplane.sai.PortAttribute.auto_neg_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended - 91, // 369: lemming.dataplane.sai.PortConnectorAttribute.failover_mode:type_name -> lemming.dataplane.sai.PortConnectorFailoverMode - 278, // 370: lemming.dataplane.sai.PortSerdesAttribute.preemphasis:type_name -> lemming.dataplane.sai.Int32List - 278, // 371: lemming.dataplane.sai.PortSerdesAttribute.idriver:type_name -> lemming.dataplane.sai.Int32List - 278, // 372: lemming.dataplane.sai.PortSerdesAttribute.ipredriver:type_name -> lemming.dataplane.sai.Int32List - 278, // 373: lemming.dataplane.sai.PortSerdesAttribute.tx_fir_pre1:type_name -> lemming.dataplane.sai.Int32List - 278, // 374: lemming.dataplane.sai.PortSerdesAttribute.tx_fir_pre2:type_name -> lemming.dataplane.sai.Int32List - 278, // 375: lemming.dataplane.sai.PortSerdesAttribute.tx_fir_pre3:type_name -> lemming.dataplane.sai.Int32List - 278, // 376: lemming.dataplane.sai.PortSerdesAttribute.tx_fir_main:type_name -> lemming.dataplane.sai.Int32List - 278, // 377: lemming.dataplane.sai.PortSerdesAttribute.tx_fir_post1:type_name -> lemming.dataplane.sai.Int32List - 278, // 378: lemming.dataplane.sai.PortSerdesAttribute.tx_fir_post2:type_name -> lemming.dataplane.sai.Int32List - 278, // 379: lemming.dataplane.sai.PortSerdesAttribute.tx_fir_post3:type_name -> lemming.dataplane.sai.Int32List - 278, // 380: lemming.dataplane.sai.PortSerdesAttribute.tx_fir_attn:type_name -> lemming.dataplane.sai.Int32List - 189, // 381: lemming.dataplane.sai.QosMapList.list:type_name -> lemming.dataplane.sai.QOSMap - 114, // 382: lemming.dataplane.sai.QosMapAttribute.type:type_name -> lemming.dataplane.sai.QosMapType - 280, // 383: lemming.dataplane.sai.QosMapAttribute.map_to_value_list:type_name -> lemming.dataplane.sai.QosMapList - 117, // 384: lemming.dataplane.sai.QueueAttribute.type:type_name -> lemming.dataplane.sai.QueueType - 202, // 385: lemming.dataplane.sai.QueueAttribute.tam_object:type_name -> lemming.dataplane.sai.Uint64List - 119, // 386: lemming.dataplane.sai.RouterInterfaceAttribute.type:type_name -> lemming.dataplane.sai.RouterInterfaceType - 83, // 387: lemming.dataplane.sai.RouterInterfaceAttribute.neighbor_miss_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 83, // 388: lemming.dataplane.sai.RouterInterfaceAttribute.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 83, // 389: lemming.dataplane.sai.RouteEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 50, // 390: lemming.dataplane.sai.RouteEntryAttribute.ip_addr_family:type_name -> lemming.dataplane.sai.IpAddrFamily - 202, // 391: lemming.dataplane.sai.RpfGroupAttribute.rpf_member_list:type_name -> lemming.dataplane.sai.Uint64List - 121, // 392: lemming.dataplane.sai.SamplepacketAttribute.type:type_name -> lemming.dataplane.sai.SamplepacketType - 120, // 393: lemming.dataplane.sai.SamplepacketAttribute.mode:type_name -> lemming.dataplane.sai.SamplepacketMode - 122, // 394: lemming.dataplane.sai.SchedulerAttribute.scheduling_type:type_name -> lemming.dataplane.sai.SchedulingType - 66, // 395: lemming.dataplane.sai.SchedulerAttribute.meter_type:type_name -> lemming.dataplane.sai.MeterType - 202, // 396: lemming.dataplane.sai.SchedulerGroupAttribute.child_list:type_name -> lemming.dataplane.sai.Uint64List - 194, // 397: lemming.dataplane.sai.TlvEntryList.list:type_name -> lemming.dataplane.sai.TLVEntry - 123, // 398: lemming.dataplane.sai.Srv6SidlistAttribute.type:type_name -> lemming.dataplane.sai.Srv6SidlistType - 290, // 399: lemming.dataplane.sai.Srv6SidlistAttribute.tlv_list:type_name -> lemming.dataplane.sai.TlvEntryList - 219, // 400: lemming.dataplane.sai.Srv6SidlistAttribute.segment_list:type_name -> lemming.dataplane.sai.BytesList - 249, // 401: lemming.dataplane.sai.StpAttribute.vlan_list:type_name -> lemming.dataplane.sai.Uint32List - 202, // 402: lemming.dataplane.sai.StpAttribute.port_list:type_name -> lemming.dataplane.sai.Uint64List - 125, // 403: lemming.dataplane.sai.StpPortAttribute.state:type_name -> lemming.dataplane.sai.StpPortState - 169, // 404: lemming.dataplane.sai.AclResourceList.list:type_name -> lemming.dataplane.sai.ACLResource - 149, // 405: lemming.dataplane.sai.TlvTypeList.list:type_name -> lemming.dataplane.sai.TlvType - 78, // 406: lemming.dataplane.sai.ObjectTypeList.list:type_name -> lemming.dataplane.sai.ObjectType - 10, // 407: lemming.dataplane.sai.BfdSessionOffloadTypeList.list:type_name -> lemming.dataplane.sai.BfdSessionOffloadType - 124, // 408: lemming.dataplane.sai.StatsModeList.list:type_name -> lemming.dataplane.sai.StatsMode - 192, // 409: lemming.dataplane.sai.SystemPortConfigList.list:type_name -> lemming.dataplane.sai.SystemPortConfig - 202, // 410: lemming.dataplane.sai.SwitchAttribute.port_list:type_name -> lemming.dataplane.sai.Uint64List - 131, // 411: lemming.dataplane.sai.SwitchAttribute.oper_status:type_name -> lemming.dataplane.sai.SwitchOperStatus - 278, // 412: lemming.dataplane.sai.SwitchAttribute.temp_list:type_name -> lemming.dataplane.sai.Int32List - 195, // 413: lemming.dataplane.sai.SwitchAttribute.fdb_dst_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range - 195, // 414: lemming.dataplane.sai.SwitchAttribute.route_dst_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range - 195, // 415: lemming.dataplane.sai.SwitchAttribute.neighbor_dst_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range - 195, // 416: lemming.dataplane.sai.SwitchAttribute.port_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range - 195, // 417: lemming.dataplane.sai.SwitchAttribute.vlan_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range - 195, // 418: lemming.dataplane.sai.SwitchAttribute.acl_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range - 195, // 419: lemming.dataplane.sai.SwitchAttribute.acl_user_trap_id_range:type_name -> lemming.dataplane.sai.Uint32Range - 249, // 420: lemming.dataplane.sai.SwitchAttribute.qos_max_number_of_scheduler_groups_per_hierarchy_level:type_name -> lemming.dataplane.sai.Uint32List - 294, // 421: lemming.dataplane.sai.SwitchAttribute.available_acl_table:type_name -> lemming.dataplane.sai.AclResourceList - 294, // 422: lemming.dataplane.sai.SwitchAttribute.available_acl_table_group:type_name -> lemming.dataplane.sai.AclResourceList - 132, // 423: lemming.dataplane.sai.SwitchAttribute.restart_type:type_name -> lemming.dataplane.sai.SwitchRestartType - 167, // 424: lemming.dataplane.sai.SwitchAttribute.acl_capability:type_name -> lemming.dataplane.sai.ACLCapability - 130, // 425: lemming.dataplane.sai.SwitchAttribute.mcast_snooping_capability:type_name -> lemming.dataplane.sai.SwitchMcastSnoopingCapability - 134, // 426: lemming.dataplane.sai.SwitchAttribute.switching_mode:type_name -> lemming.dataplane.sai.SwitchSwitchingMode - 83, // 427: lemming.dataplane.sai.SwitchAttribute.fdb_unicast_miss_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 83, // 428: lemming.dataplane.sai.SwitchAttribute.fdb_broadcast_miss_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 83, // 429: lemming.dataplane.sai.SwitchAttribute.fdb_multicast_miss_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 37, // 430: lemming.dataplane.sai.SwitchAttribute.ecmp_default_hash_algorithm:type_name -> lemming.dataplane.sai.HashAlgorithm - 37, // 431: lemming.dataplane.sai.SwitchAttribute.lag_default_hash_algorithm:type_name -> lemming.dataplane.sai.HashAlgorithm - 278, // 432: lemming.dataplane.sai.SwitchAttribute.switch_hardware_info:type_name -> lemming.dataplane.sai.Int32List - 278, // 433: lemming.dataplane.sai.SwitchAttribute.firmware_path_name:type_name -> lemming.dataplane.sai.Int32List - 167, // 434: lemming.dataplane.sai.SwitchAttribute.acl_stage_ingress:type_name -> lemming.dataplane.sai.ACLCapability - 167, // 435: lemming.dataplane.sai.SwitchAttribute.acl_stage_egress:type_name -> lemming.dataplane.sai.ACLCapability - 295, // 436: lemming.dataplane.sai.SwitchAttribute.srv6_tlv_type:type_name -> lemming.dataplane.sai.TlvTypeList - 83, // 437: lemming.dataplane.sai.SwitchAttribute.pfc_dlr_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 195, // 438: lemming.dataplane.sai.SwitchAttribute.pfc_tc_dld_interval_range:type_name -> lemming.dataplane.sai.Uint32Range - 264, // 439: lemming.dataplane.sai.SwitchAttribute.pfc_tc_dld_interval:type_name -> lemming.dataplane.sai.UintMapList - 195, // 440: lemming.dataplane.sai.SwitchAttribute.pfc_tc_dlr_interval_range:type_name -> lemming.dataplane.sai.Uint32Range - 264, // 441: lemming.dataplane.sai.SwitchAttribute.pfc_tc_dlr_interval:type_name -> lemming.dataplane.sai.UintMapList - 296, // 442: lemming.dataplane.sai.SwitchAttribute.supported_protected_object_type:type_name -> lemming.dataplane.sai.ObjectTypeList - 297, // 443: lemming.dataplane.sai.SwitchAttribute.supported_ipv4_bfd_session_offload_type:type_name -> lemming.dataplane.sai.BfdSessionOffloadTypeList - 297, // 444: lemming.dataplane.sai.SwitchAttribute.supported_ipv6_bfd_session_offload_type:type_name -> lemming.dataplane.sai.BfdSessionOffloadTypeList - 298, // 445: lemming.dataplane.sai.SwitchAttribute.supported_extended_stats_mode:type_name -> lemming.dataplane.sai.StatsModeList - 202, // 446: lemming.dataplane.sai.SwitchAttribute.tam_object_id:type_name -> lemming.dataplane.sai.Uint64List - 296, // 447: lemming.dataplane.sai.SwitchAttribute.supported_object_type_list:type_name -> lemming.dataplane.sai.ObjectTypeList - 129, // 448: lemming.dataplane.sai.SwitchAttribute.hardware_access_bus:type_name -> lemming.dataplane.sai.SwitchHardwareAccessBus - 127, // 449: lemming.dataplane.sai.SwitchAttribute.firmware_load_method:type_name -> lemming.dataplane.sai.SwitchFirmwareLoadMethod - 128, // 450: lemming.dataplane.sai.SwitchAttribute.firmware_load_type:type_name -> lemming.dataplane.sai.SwitchFirmwareLoadType - 202, // 451: lemming.dataplane.sai.SwitchAttribute.port_connector_list:type_name -> lemming.dataplane.sai.Uint64List - 135, // 452: lemming.dataplane.sai.SwitchAttribute.type:type_name -> lemming.dataplane.sai.SwitchType - 202, // 453: lemming.dataplane.sai.SwitchAttribute.macsec_object_list:type_name -> lemming.dataplane.sai.Uint64List - 299, // 454: lemming.dataplane.sai.SwitchAttribute.system_port_config_list:type_name -> lemming.dataplane.sai.SystemPortConfigList - 202, // 455: lemming.dataplane.sai.SwitchAttribute.system_port_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 456: lemming.dataplane.sai.SwitchAttribute.fabric_port_list:type_name -> lemming.dataplane.sai.Uint64List - 126, // 457: lemming.dataplane.sai.SwitchAttribute.failover_config_mode:type_name -> lemming.dataplane.sai.SwitchFailoverConfigMode - 202, // 458: lemming.dataplane.sai.SwitchAttribute.tunnel_objects_list:type_name -> lemming.dataplane.sai.Uint64List - 249, // 459: lemming.dataplane.sai.SwitchAttribute.slave_mdio_addr_list:type_name -> lemming.dataplane.sai.Uint32List - 202, // 460: lemming.dataplane.sai.SwitchAttribute.my_mac_list:type_name -> lemming.dataplane.sai.Uint64List - 158, // 461: lemming.dataplane.sai.SwitchTunnelAttribute.tunnel_type:type_name -> lemming.dataplane.sai.TunnelType - 83, // 462: lemming.dataplane.sai.SwitchTunnelAttribute.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 152, // 463: lemming.dataplane.sai.SwitchTunnelAttribute.tunnel_encap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelEncapEcnMode - 202, // 464: lemming.dataplane.sai.SwitchTunnelAttribute.encap_mappers:type_name -> lemming.dataplane.sai.Uint64List - 150, // 465: lemming.dataplane.sai.SwitchTunnelAttribute.tunnel_decap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelDecapEcnMode - 202, // 466: lemming.dataplane.sai.SwitchTunnelAttribute.decap_mappers:type_name -> lemming.dataplane.sai.Uint64List - 159, // 467: lemming.dataplane.sai.SwitchTunnelAttribute.tunnel_vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode - 136, // 468: lemming.dataplane.sai.SystemPortAttribute.type:type_name -> lemming.dataplane.sai.SystemPortType - 202, // 469: lemming.dataplane.sai.SystemPortAttribute.qos_voq_list:type_name -> lemming.dataplane.sai.Uint64List - 192, // 470: lemming.dataplane.sai.SystemPortAttribute.config_info:type_name -> lemming.dataplane.sai.SystemPortConfig - 137, // 471: lemming.dataplane.sai.TamBindPointTypeList.list:type_name -> lemming.dataplane.sai.TamBindPointType - 202, // 472: lemming.dataplane.sai.TamAttribute.telemetry_objects_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 473: lemming.dataplane.sai.TamAttribute.event_objects_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 474: lemming.dataplane.sai.TamAttribute.int_objects_list:type_name -> lemming.dataplane.sai.Uint64List - 303, // 475: lemming.dataplane.sai.TamAttribute.tam_bind_point_type_list:type_name -> lemming.dataplane.sai.TamBindPointTypeList - 139, // 476: lemming.dataplane.sai.TamEventAttribute.type:type_name -> lemming.dataplane.sai.TamEventType - 202, // 477: lemming.dataplane.sai.TamEventAttribute.action_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 478: lemming.dataplane.sai.TamEventAttribute.collector_list:type_name -> lemming.dataplane.sai.Uint64List - 138, // 479: lemming.dataplane.sai.TamEventThresholdAttribute.unit:type_name -> lemming.dataplane.sai.TamEventThresholdUnit - 141, // 480: lemming.dataplane.sai.TamIntAttribute.type:type_name -> lemming.dataplane.sai.TamIntType - 140, // 481: lemming.dataplane.sai.TamIntAttribute.int_presence_type:type_name -> lemming.dataplane.sai.TamIntPresenceType - 202, // 482: lemming.dataplane.sai.TamIntAttribute.collector_list:type_name -> lemming.dataplane.sai.Uint64List - 145, // 483: lemming.dataplane.sai.TamMathFuncAttribute.tam_tel_math_func_type:type_name -> lemming.dataplane.sai.TamTelMathFuncType - 143, // 484: lemming.dataplane.sai.TamReportAttribute.type:type_name -> lemming.dataplane.sai.TamReportType - 249, // 485: lemming.dataplane.sai.TamReportAttribute.histogram_bin_boundary:type_name -> lemming.dataplane.sai.Uint32List - 142, // 486: lemming.dataplane.sai.TamReportAttribute.report_mode:type_name -> lemming.dataplane.sai.TamReportMode - 202, // 487: lemming.dataplane.sai.TamTelemetryAttribute.tam_type_list:type_name -> lemming.dataplane.sai.Uint64List - 202, // 488: lemming.dataplane.sai.TamTelemetryAttribute.collector_list:type_name -> lemming.dataplane.sai.Uint64List - 144, // 489: lemming.dataplane.sai.TamTelemetryAttribute.tam_reporting_unit:type_name -> lemming.dataplane.sai.TamReportingUnit - 146, // 490: lemming.dataplane.sai.TamTelTypeAttribute.tam_telemetry_type:type_name -> lemming.dataplane.sai.TamTelemetryType - 148, // 491: lemming.dataplane.sai.TamTransportAttribute.transport_type:type_name -> lemming.dataplane.sai.TamTransportType - 147, // 492: lemming.dataplane.sai.TamTransportAttribute.transport_auth_type:type_name -> lemming.dataplane.sai.TamTransportAuthType - 158, // 493: lemming.dataplane.sai.TunnelAttribute.type:type_name -> lemming.dataplane.sai.TunnelType - 154, // 494: lemming.dataplane.sai.TunnelAttribute.peer_mode:type_name -> lemming.dataplane.sai.TunnelPeerMode - 157, // 495: lemming.dataplane.sai.TunnelAttribute.encap_ttl_mode:type_name -> lemming.dataplane.sai.TunnelTtlMode - 151, // 496: lemming.dataplane.sai.TunnelAttribute.encap_dscp_mode:type_name -> lemming.dataplane.sai.TunnelDscpMode - 152, // 497: lemming.dataplane.sai.TunnelAttribute.encap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelEncapEcnMode - 202, // 498: lemming.dataplane.sai.TunnelAttribute.encap_mappers:type_name -> lemming.dataplane.sai.Uint64List - 150, // 499: lemming.dataplane.sai.TunnelAttribute.decap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelDecapEcnMode - 202, // 500: lemming.dataplane.sai.TunnelAttribute.decap_mappers:type_name -> lemming.dataplane.sai.Uint64List - 157, // 501: lemming.dataplane.sai.TunnelAttribute.decap_ttl_mode:type_name -> lemming.dataplane.sai.TunnelTtlMode - 151, // 502: lemming.dataplane.sai.TunnelAttribute.decap_dscp_mode:type_name -> lemming.dataplane.sai.TunnelDscpMode - 202, // 503: lemming.dataplane.sai.TunnelAttribute.term_table_entry_list:type_name -> lemming.dataplane.sai.Uint64List - 83, // 504: lemming.dataplane.sai.TunnelAttribute.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 159, // 505: lemming.dataplane.sai.TunnelAttribute.vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode - 202, // 506: lemming.dataplane.sai.TunnelAttribute.ipsec_sa_port_list:type_name -> lemming.dataplane.sai.Uint64List - 153, // 507: lemming.dataplane.sai.TunnelMapAttribute.type:type_name -> lemming.dataplane.sai.TunnelMapType - 202, // 508: lemming.dataplane.sai.TunnelMapAttribute.entry_list:type_name -> lemming.dataplane.sai.Uint64List - 153, // 509: lemming.dataplane.sai.TunnelMapEntryAttribute.tunnel_map_type:type_name -> lemming.dataplane.sai.TunnelMapType - 156, // 510: lemming.dataplane.sai.TunnelTermTableEntryAttribute.type:type_name -> lemming.dataplane.sai.TunnelTermTableEntryType - 158, // 511: lemming.dataplane.sai.TunnelTermTableEntryAttribute.tunnel_type:type_name -> lemming.dataplane.sai.TunnelType - 50, // 512: lemming.dataplane.sai.TunnelTermTableEntryAttribute.ip_addr_family:type_name -> lemming.dataplane.sai.IpAddrFamily - 160, // 513: lemming.dataplane.sai.UdfAttribute.base:type_name -> lemming.dataplane.sai.UdfBase - 249, // 514: lemming.dataplane.sai.UdfAttribute.hash_mask:type_name -> lemming.dataplane.sai.Uint32List - 202, // 515: lemming.dataplane.sai.UdfGroupAttribute.udf_list:type_name -> lemming.dataplane.sai.Uint64List - 161, // 516: lemming.dataplane.sai.UdfGroupAttribute.type:type_name -> lemming.dataplane.sai.UdfGroupType - 168, // 517: lemming.dataplane.sai.UdfMatchAttribute.l2_type:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 518: lemming.dataplane.sai.UdfMatchAttribute.l3_type:type_name -> lemming.dataplane.sai.AclFieldData - 168, // 519: lemming.dataplane.sai.UdfMatchAttribute.gre_type:type_name -> lemming.dataplane.sai.AclFieldData - 83, // 520: lemming.dataplane.sai.VirtualRouterAttribute.violation_ttl1_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 83, // 521: lemming.dataplane.sai.VirtualRouterAttribute.violation_ip_options_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 83, // 522: lemming.dataplane.sai.VirtualRouterAttribute.unknown_l3_multicast_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 202, // 523: lemming.dataplane.sai.VlanAttribute.member_list:type_name -> lemming.dataplane.sai.Uint64List - 163, // 524: lemming.dataplane.sai.VlanAttribute.ipv4_mcast_lookup_key_type:type_name -> lemming.dataplane.sai.VlanMcastLookupKeyType - 163, // 525: lemming.dataplane.sai.VlanAttribute.ipv6_mcast_lookup_key_type:type_name -> lemming.dataplane.sai.VlanMcastLookupKeyType - 162, // 526: lemming.dataplane.sai.VlanAttribute.unknown_unicast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType - 162, // 527: lemming.dataplane.sai.VlanAttribute.unknown_multicast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType - 162, // 528: lemming.dataplane.sai.VlanAttribute.broadcast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType - 202, // 529: lemming.dataplane.sai.VlanAttribute.tam_object:type_name -> lemming.dataplane.sai.Uint64List - 165, // 530: lemming.dataplane.sai.VlanMemberAttribute.vlan_tagging_mode:type_name -> lemming.dataplane.sai.VlanTaggingMode - 32, // 531: lemming.dataplane.sai.WredAttribute.ecn_mark_mode:type_name -> lemming.dataplane.sai.EcnMarkMode - 532, // [532:532] is the sub-list for method output_type - 532, // [532:532] is the sub-list for method input_type - 532, // [532:532] is the sub-list for extension type_name - 532, // [532:532] is the sub-list for extension extendee - 0, // [0:532] is the sub-list for field type_name -} - -func init() { file_dataplane_standalone_proto_common_proto_init() } -func file_dataplane_standalone_proto_common_proto_init() { - if File_dataplane_standalone_proto_common_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_dataplane_standalone_proto_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclActionData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ACLCapability); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclFieldData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ACLResource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BfdSessionStateChangeNotificationData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FabricPortReachability); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FdbEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FdbEventNotificationData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InsegEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpPrefix); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpmcEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpsecSaStatusNotificationData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*L2McEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UintMap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*McastFdbEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MySidEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NatEntryData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NatEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NeighborEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortEyeValues); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortOperStatusNotification); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PRBS_RXState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QOSMapParams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QOSMap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueDeadlockNotificationData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RouteEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemPortConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HMAC); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_dataplane_standalone_proto_common_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TLVEntry); i { + 168, // 92: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label3_ttl:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 93: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label3_exp:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 94: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label3_bos:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 95: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label4_label:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 96: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label4_ttl:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 97: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label4_exp:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 98: lemming.dataplane.sai.AclEntryAttribute.field_mpls_label4_bos:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 99: lemming.dataplane.sai.AclEntryAttribute.field_fdb_dst_user_meta:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 100: lemming.dataplane.sai.AclEntryAttribute.field_route_dst_user_meta:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 101: lemming.dataplane.sai.AclEntryAttribute.field_neighbor_dst_user_meta:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 102: lemming.dataplane.sai.AclEntryAttribute.field_port_user_meta:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 103: lemming.dataplane.sai.AclEntryAttribute.field_vlan_user_meta:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 104: lemming.dataplane.sai.AclEntryAttribute.field_acl_user_meta:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 105: lemming.dataplane.sai.AclEntryAttribute.field_fdb_npu_meta_dst_hit:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 106: lemming.dataplane.sai.AclEntryAttribute.field_neighbor_npu_meta_dst_hit:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 107: lemming.dataplane.sai.AclEntryAttribute.field_route_npu_meta_dst_hit:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 108: lemming.dataplane.sai.AclEntryAttribute.field_bth_opcode:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 109: lemming.dataplane.sai.AclEntryAttribute.field_aeth_syndrome:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 110: lemming.dataplane.sai.AclEntryAttribute.user_defined_field_group_min:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 111: lemming.dataplane.sai.AclEntryAttribute.user_defined_field_group_max:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 112: lemming.dataplane.sai.AclEntryAttribute.field_acl_range_type:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 113: lemming.dataplane.sai.AclEntryAttribute.field_ipv6_next_header:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 114: lemming.dataplane.sai.AclEntryAttribute.field_gre_key:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 115: lemming.dataplane.sai.AclEntryAttribute.field_tam_int_type:type_name -> lemming.dataplane.sai.AclFieldData + 166, // 116: lemming.dataplane.sai.AclEntryAttribute.action_redirect:type_name -> lemming.dataplane.sai.AclActionData + 166, // 117: lemming.dataplane.sai.AclEntryAttribute.action_endpoint_ip:type_name -> lemming.dataplane.sai.AclActionData + 166, // 118: lemming.dataplane.sai.AclEntryAttribute.action_redirect_list:type_name -> lemming.dataplane.sai.AclActionData + 166, // 119: lemming.dataplane.sai.AclEntryAttribute.action_packet_action:type_name -> lemming.dataplane.sai.AclActionData + 166, // 120: lemming.dataplane.sai.AclEntryAttribute.action_flood:type_name -> lemming.dataplane.sai.AclActionData + 166, // 121: lemming.dataplane.sai.AclEntryAttribute.action_counter:type_name -> lemming.dataplane.sai.AclActionData + 166, // 122: lemming.dataplane.sai.AclEntryAttribute.action_mirror_ingress:type_name -> lemming.dataplane.sai.AclActionData + 166, // 123: lemming.dataplane.sai.AclEntryAttribute.action_mirror_egress:type_name -> lemming.dataplane.sai.AclActionData + 166, // 124: lemming.dataplane.sai.AclEntryAttribute.action_set_policer:type_name -> lemming.dataplane.sai.AclActionData + 166, // 125: lemming.dataplane.sai.AclEntryAttribute.action_decrement_ttl:type_name -> lemming.dataplane.sai.AclActionData + 166, // 126: lemming.dataplane.sai.AclEntryAttribute.action_set_tc:type_name -> lemming.dataplane.sai.AclActionData + 166, // 127: lemming.dataplane.sai.AclEntryAttribute.action_set_packet_color:type_name -> lemming.dataplane.sai.AclActionData + 166, // 128: lemming.dataplane.sai.AclEntryAttribute.action_set_inner_vlan_id:type_name -> lemming.dataplane.sai.AclActionData + 166, // 129: lemming.dataplane.sai.AclEntryAttribute.action_set_inner_vlan_pri:type_name -> lemming.dataplane.sai.AclActionData + 166, // 130: lemming.dataplane.sai.AclEntryAttribute.action_set_outer_vlan_id:type_name -> lemming.dataplane.sai.AclActionData + 166, // 131: lemming.dataplane.sai.AclEntryAttribute.action_set_outer_vlan_pri:type_name -> lemming.dataplane.sai.AclActionData + 166, // 132: lemming.dataplane.sai.AclEntryAttribute.action_add_vlan_id:type_name -> lemming.dataplane.sai.AclActionData + 166, // 133: lemming.dataplane.sai.AclEntryAttribute.action_add_vlan_pri:type_name -> lemming.dataplane.sai.AclActionData + 166, // 134: lemming.dataplane.sai.AclEntryAttribute.action_set_src_mac:type_name -> lemming.dataplane.sai.AclActionData + 166, // 135: lemming.dataplane.sai.AclEntryAttribute.action_set_dst_mac:type_name -> lemming.dataplane.sai.AclActionData + 166, // 136: lemming.dataplane.sai.AclEntryAttribute.action_set_src_ip:type_name -> lemming.dataplane.sai.AclActionData + 166, // 137: lemming.dataplane.sai.AclEntryAttribute.action_set_dst_ip:type_name -> lemming.dataplane.sai.AclActionData + 166, // 138: lemming.dataplane.sai.AclEntryAttribute.action_set_src_ipv6:type_name -> lemming.dataplane.sai.AclActionData + 166, // 139: lemming.dataplane.sai.AclEntryAttribute.action_set_dst_ipv6:type_name -> lemming.dataplane.sai.AclActionData + 166, // 140: lemming.dataplane.sai.AclEntryAttribute.action_set_dscp:type_name -> lemming.dataplane.sai.AclActionData + 166, // 141: lemming.dataplane.sai.AclEntryAttribute.action_set_ecn:type_name -> lemming.dataplane.sai.AclActionData + 166, // 142: lemming.dataplane.sai.AclEntryAttribute.action_set_l4_src_port:type_name -> lemming.dataplane.sai.AclActionData + 166, // 143: lemming.dataplane.sai.AclEntryAttribute.action_set_l4_dst_port:type_name -> lemming.dataplane.sai.AclActionData + 166, // 144: lemming.dataplane.sai.AclEntryAttribute.action_ingress_samplepacket_enable:type_name -> lemming.dataplane.sai.AclActionData + 166, // 145: lemming.dataplane.sai.AclEntryAttribute.action_egress_samplepacket_enable:type_name -> lemming.dataplane.sai.AclActionData + 166, // 146: lemming.dataplane.sai.AclEntryAttribute.action_set_acl_meta_data:type_name -> lemming.dataplane.sai.AclActionData + 166, // 147: lemming.dataplane.sai.AclEntryAttribute.action_egress_block_port_list:type_name -> lemming.dataplane.sai.AclActionData + 166, // 148: lemming.dataplane.sai.AclEntryAttribute.action_set_user_trap_id:type_name -> lemming.dataplane.sai.AclActionData + 166, // 149: lemming.dataplane.sai.AclEntryAttribute.action_set_do_not_learn:type_name -> lemming.dataplane.sai.AclActionData + 166, // 150: lemming.dataplane.sai.AclEntryAttribute.action_acl_dtel_flow_op:type_name -> lemming.dataplane.sai.AclActionData + 166, // 151: lemming.dataplane.sai.AclEntryAttribute.action_dtel_int_session:type_name -> lemming.dataplane.sai.AclActionData + 166, // 152: lemming.dataplane.sai.AclEntryAttribute.action_dtel_drop_report_enable:type_name -> lemming.dataplane.sai.AclActionData + 166, // 153: lemming.dataplane.sai.AclEntryAttribute.action_dtel_tail_drop_report_enable:type_name -> lemming.dataplane.sai.AclActionData + 166, // 154: lemming.dataplane.sai.AclEntryAttribute.action_dtel_flow_sample_percent:type_name -> lemming.dataplane.sai.AclActionData + 166, // 155: lemming.dataplane.sai.AclEntryAttribute.action_dtel_report_all_packets:type_name -> lemming.dataplane.sai.AclActionData + 166, // 156: lemming.dataplane.sai.AclEntryAttribute.action_no_nat:type_name -> lemming.dataplane.sai.AclActionData + 166, // 157: lemming.dataplane.sai.AclEntryAttribute.action_int_insert:type_name -> lemming.dataplane.sai.AclActionData + 166, // 158: lemming.dataplane.sai.AclEntryAttribute.action_int_delete:type_name -> lemming.dataplane.sai.AclActionData + 166, // 159: lemming.dataplane.sai.AclEntryAttribute.action_int_report_flow:type_name -> lemming.dataplane.sai.AclActionData + 166, // 160: lemming.dataplane.sai.AclEntryAttribute.action_int_report_drops:type_name -> lemming.dataplane.sai.AclActionData + 166, // 161: lemming.dataplane.sai.AclEntryAttribute.action_int_report_tail_drops:type_name -> lemming.dataplane.sai.AclActionData + 166, // 162: lemming.dataplane.sai.AclEntryAttribute.action_tam_int_object:type_name -> lemming.dataplane.sai.AclActionData + 166, // 163: lemming.dataplane.sai.AclEntryAttribute.action_set_isolation_group:type_name -> lemming.dataplane.sai.AclActionData + 166, // 164: lemming.dataplane.sai.AclEntryAttribute.action_macsec_flow:type_name -> lemming.dataplane.sai.AclActionData + 166, // 165: lemming.dataplane.sai.AclEntryAttribute.action_set_lag_hash_id:type_name -> lemming.dataplane.sai.AclActionData + 166, // 166: lemming.dataplane.sai.AclEntryAttribute.action_set_ecmp_hash_id:type_name -> lemming.dataplane.sai.AclActionData + 166, // 167: lemming.dataplane.sai.AclEntryAttribute.action_set_vrf:type_name -> lemming.dataplane.sai.AclActionData + 166, // 168: lemming.dataplane.sai.AclEntryAttribute.action_set_forwarding_class:type_name -> lemming.dataplane.sai.AclActionData + 5, // 169: lemming.dataplane.sai.AclRangeAttribute.type:type_name -> lemming.dataplane.sai.AclRangeType + 196, // 170: lemming.dataplane.sai.AclRangeAttribute.limit:type_name -> lemming.dataplane.sai.Uint32Range + 6, // 171: lemming.dataplane.sai.AclTableAttribute.acl_stage:type_name -> lemming.dataplane.sai.AclStage + 1, // 172: lemming.dataplane.sai.AclTableAttribute.acl_bind_point_type_list:type_name -> lemming.dataplane.sai.AclBindPointType + 0, // 173: lemming.dataplane.sai.AclTableAttribute.acl_action_type_list:type_name -> lemming.dataplane.sai.AclActionType + 5, // 174: lemming.dataplane.sai.AclTableAttribute.field_acl_range_type:type_name -> lemming.dataplane.sai.AclRangeType + 6, // 175: lemming.dataplane.sai.AclTableGroupAttribute.acl_stage:type_name -> lemming.dataplane.sai.AclStage + 1, // 176: lemming.dataplane.sai.AclTableGroupAttribute.acl_bind_point_type_list:type_name -> lemming.dataplane.sai.AclBindPointType + 7, // 177: lemming.dataplane.sai.AclTableGroupAttribute.type:type_name -> lemming.dataplane.sai.AclTableGroupType + 13, // 178: lemming.dataplane.sai.BfdSessionAttribute.type:type_name -> lemming.dataplane.sai.BfdSessionType + 9, // 179: lemming.dataplane.sai.BfdSessionAttribute.bfd_encapsulation_type:type_name -> lemming.dataplane.sai.BfdEncapsulationType + 12, // 180: lemming.dataplane.sai.BfdSessionAttribute.state:type_name -> lemming.dataplane.sai.BfdSessionState + 10, // 181: lemming.dataplane.sai.BfdSessionAttribute.offload_type:type_name -> lemming.dataplane.sai.BfdSessionOffloadType + 20, // 182: lemming.dataplane.sai.BridgeAttribute.type:type_name -> lemming.dataplane.sai.BridgeType + 14, // 183: lemming.dataplane.sai.BridgeAttribute.unknown_unicast_flood_control_type:type_name -> lemming.dataplane.sai.BridgeFloodControlType + 14, // 184: lemming.dataplane.sai.BridgeAttribute.unknown_multicast_flood_control_type:type_name -> lemming.dataplane.sai.BridgeFloodControlType + 14, // 185: lemming.dataplane.sai.BridgeAttribute.broadcast_flood_control_type:type_name -> lemming.dataplane.sai.BridgeFloodControlType + 18, // 186: lemming.dataplane.sai.BridgePortAttribute.type:type_name -> lemming.dataplane.sai.BridgePortType + 17, // 187: lemming.dataplane.sai.BridgePortAttribute.tagging_mode:type_name -> lemming.dataplane.sai.BridgePortTaggingMode + 15, // 188: lemming.dataplane.sai.BridgePortAttribute.fdb_learning_mode:type_name -> lemming.dataplane.sai.BridgePortFdbLearningMode + 83, // 189: lemming.dataplane.sai.BridgePortAttribute.fdb_learning_limit_violation_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 23, // 190: lemming.dataplane.sai.BufferPoolAttribute.type:type_name -> lemming.dataplane.sai.BufferPoolType + 22, // 191: lemming.dataplane.sai.BufferPoolAttribute.threshold_mode:type_name -> lemming.dataplane.sai.BufferPoolThresholdMode + 24, // 192: lemming.dataplane.sai.BufferProfileAttribute.threshold_mode:type_name -> lemming.dataplane.sai.BufferProfileThresholdMode + 28, // 193: lemming.dataplane.sai.CounterAttribute.type:type_name -> lemming.dataplane.sai.CounterType + 30, // 194: lemming.dataplane.sai.DebugCounterAttribute.type:type_name -> lemming.dataplane.sai.DebugCounterType + 29, // 195: lemming.dataplane.sai.DebugCounterAttribute.bind_method:type_name -> lemming.dataplane.sai.DebugCounterBindMethod + 45, // 196: lemming.dataplane.sai.DebugCounterAttribute.in_drop_reason_list:type_name -> lemming.dataplane.sai.InDropReason + 79, // 197: lemming.dataplane.sai.DebugCounterAttribute.out_drop_reason_list:type_name -> lemming.dataplane.sai.OutDropReason + 168, // 198: lemming.dataplane.sai.DtelAttribute.int_l4_dscp:type_name -> lemming.dataplane.sai.AclFieldData + 31, // 199: lemming.dataplane.sai.DtelEventAttribute.type:type_name -> lemming.dataplane.sai.DtelEventType + 34, // 200: lemming.dataplane.sai.FdbEntryAttribute.type:type_name -> lemming.dataplane.sai.FdbEntryType + 83, // 201: lemming.dataplane.sai.FdbEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 36, // 202: lemming.dataplane.sai.FdbFlushAttribute.entry_type:type_name -> lemming.dataplane.sai.FdbFlushEntryType + 72, // 203: lemming.dataplane.sai.FineGrainedHashFieldAttribute.native_hash_field:type_name -> lemming.dataplane.sai.NativeHashField + 72, // 204: lemming.dataplane.sai.HashAttribute.native_hash_field_list:type_name -> lemming.dataplane.sai.NativeHashField + 42, // 205: lemming.dataplane.sai.HostifAttribute.type:type_name -> lemming.dataplane.sai.HostifType + 44, // 206: lemming.dataplane.sai.HostifAttribute.vlan_tag:type_name -> lemming.dataplane.sai.HostifVlanTag + 41, // 207: lemming.dataplane.sai.HostifPacketAttribute.hostif_tx_type:type_name -> lemming.dataplane.sai.HostifTxType + 299, // 208: lemming.dataplane.sai.HostifPacketAttribute.timestamp:type_name -> google.protobuf.Timestamp + 39, // 209: lemming.dataplane.sai.HostifTableEntryAttribute.type:type_name -> lemming.dataplane.sai.HostifTableEntryType + 38, // 210: lemming.dataplane.sai.HostifTableEntryAttribute.channel_type:type_name -> lemming.dataplane.sai.HostifTableEntryChannelType + 40, // 211: lemming.dataplane.sai.HostifTrapAttribute.trap_type:type_name -> lemming.dataplane.sai.HostifTrapType + 83, // 212: lemming.dataplane.sai.HostifTrapAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 43, // 213: lemming.dataplane.sai.HostifUserDefinedTrapAttribute.type:type_name -> lemming.dataplane.sai.HostifUserDefinedTrapType + 83, // 214: lemming.dataplane.sai.InsegEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 49, // 215: lemming.dataplane.sai.InsegEntryAttribute.psc_type:type_name -> lemming.dataplane.sai.InsegEntryPscType + 48, // 216: lemming.dataplane.sai.InsegEntryAttribute.pop_ttl_mode:type_name -> lemming.dataplane.sai.InsegEntryPopTtlMode + 47, // 217: lemming.dataplane.sai.InsegEntryAttribute.pop_qos_mode:type_name -> lemming.dataplane.sai.InsegEntryPopQosMode + 83, // 218: lemming.dataplane.sai.IpmcEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 52, // 219: lemming.dataplane.sai.IpsecAttribute.supported_cipher_list:type_name -> lemming.dataplane.sai.IpsecCipher + 124, // 220: lemming.dataplane.sai.IpsecAttribute.stats_mode:type_name -> lemming.dataplane.sai.StatsMode + 134, // 221: lemming.dataplane.sai.IpsecPortAttribute.switch_switching_mode:type_name -> lemming.dataplane.sai.SwitchSwitchingMode + 53, // 222: lemming.dataplane.sai.IpsecSaAttribute.ipsec_direction:type_name -> lemming.dataplane.sai.IpsecDirection + 55, // 223: lemming.dataplane.sai.IpsecSaAttribute.octet_count_status:type_name -> lemming.dataplane.sai.IpsecSaOctetCountStatus + 52, // 224: lemming.dataplane.sai.IpsecSaAttribute.ipsec_cipher:type_name -> lemming.dataplane.sai.IpsecCipher + 57, // 225: lemming.dataplane.sai.IsolationGroupAttribute.type:type_name -> lemming.dataplane.sai.IsolationGroupType + 83, // 226: lemming.dataplane.sai.L2mcEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 61, // 227: lemming.dataplane.sai.MacsecAttribute.direction:type_name -> lemming.dataplane.sai.MacsecDirection + 60, // 228: lemming.dataplane.sai.MacsecAttribute.supported_cipher_suite_list:type_name -> lemming.dataplane.sai.MacsecCipherSuite + 124, // 229: lemming.dataplane.sai.MacsecAttribute.stats_mode:type_name -> lemming.dataplane.sai.StatsMode + 61, // 230: lemming.dataplane.sai.MacsecFlowAttribute.macsec_direction:type_name -> lemming.dataplane.sai.MacsecDirection + 61, // 231: lemming.dataplane.sai.MacsecPortAttribute.macsec_direction:type_name -> lemming.dataplane.sai.MacsecDirection + 134, // 232: lemming.dataplane.sai.MacsecPortAttribute.switch_switching_mode:type_name -> lemming.dataplane.sai.SwitchSwitchingMode + 61, // 233: lemming.dataplane.sai.MacsecSaAttribute.macsec_direction:type_name -> lemming.dataplane.sai.MacsecDirection + 61, // 234: lemming.dataplane.sai.MacsecScAttribute.macsec_direction:type_name -> lemming.dataplane.sai.MacsecDirection + 60, // 235: lemming.dataplane.sai.MacsecScAttribute.macsec_cipher_suite:type_name -> lemming.dataplane.sai.MacsecCipherSuite + 83, // 236: lemming.dataplane.sai.McastFdbEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 68, // 237: lemming.dataplane.sai.MirrorSessionAttribute.type:type_name -> lemming.dataplane.sai.MirrorSessionType + 67, // 238: lemming.dataplane.sai.MirrorSessionAttribute.congestion_mode:type_name -> lemming.dataplane.sai.MirrorSessionCongestionMode + 33, // 239: lemming.dataplane.sai.MirrorSessionAttribute.erspan_encapsulation_type:type_name -> lemming.dataplane.sai.ErspanEncapsulationType + 70, // 240: lemming.dataplane.sai.MySidEntryAttribute.endpoint_behavior:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehavior + 69, // 241: lemming.dataplane.sai.MySidEntryAttribute.endpoint_behavior_flavor:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor + 83, // 242: lemming.dataplane.sai.MySidEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 71, // 243: lemming.dataplane.sai.NatEntryAttribute.nat_type:type_name -> lemming.dataplane.sai.NatType + 71, // 244: lemming.dataplane.sai.NatZoneCounterAttribute.nat_type:type_name -> lemming.dataplane.sai.NatType + 83, // 245: lemming.dataplane.sai.NeighborEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 50, // 246: lemming.dataplane.sai.NeighborEntryAttribute.ip_addr_family:type_name -> lemming.dataplane.sai.IpAddrFamily + 77, // 247: lemming.dataplane.sai.NextHopAttribute.type:type_name -> lemming.dataplane.sai.NextHopType + 82, // 248: lemming.dataplane.sai.NextHopAttribute.outseg_type:type_name -> lemming.dataplane.sai.OutsegType + 81, // 249: lemming.dataplane.sai.NextHopAttribute.outseg_ttl_mode:type_name -> lemming.dataplane.sai.OutsegTtlMode + 80, // 250: lemming.dataplane.sai.NextHopAttribute.outseg_exp_mode:type_name -> lemming.dataplane.sai.OutsegExpMode + 76, // 251: lemming.dataplane.sai.NextHopGroupAttribute.type:type_name -> lemming.dataplane.sai.NextHopGroupType + 73, // 252: lemming.dataplane.sai.NextHopGroupMapAttribute.type:type_name -> lemming.dataplane.sai.NextHopGroupMapType + 180, // 253: lemming.dataplane.sai.NextHopGroupMapAttribute.map_to_value_list:type_name -> lemming.dataplane.sai.UintMap + 74, // 254: lemming.dataplane.sai.NextHopGroupMemberAttribute.configured_role:type_name -> lemming.dataplane.sai.NextHopGroupMemberConfiguredRole + 75, // 255: lemming.dataplane.sai.NextHopGroupMemberAttribute.observed_role:type_name -> lemming.dataplane.sai.NextHopGroupMemberObservedRole + 66, // 256: lemming.dataplane.sai.PolicerAttribute.meter_type:type_name -> lemming.dataplane.sai.MeterType + 87, // 257: lemming.dataplane.sai.PolicerAttribute.mode:type_name -> lemming.dataplane.sai.PolicerMode + 86, // 258: lemming.dataplane.sai.PolicerAttribute.color_source:type_name -> lemming.dataplane.sai.PolicerColorSource + 83, // 259: lemming.dataplane.sai.PolicerAttribute.green_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 260: lemming.dataplane.sai.PolicerAttribute.yellow_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 261: lemming.dataplane.sai.PolicerAttribute.red_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 262: lemming.dataplane.sai.PolicerAttribute.enable_counter_packet_action_list:type_name -> lemming.dataplane.sai.PacketAction + 113, // 263: lemming.dataplane.sai.PortAttribute.type:type_name -> lemming.dataplane.sai.PortType + 106, // 264: lemming.dataplane.sai.PortAttribute.oper_status:type_name -> lemming.dataplane.sai.PortOperStatus + 90, // 265: lemming.dataplane.sai.PortAttribute.supported_breakout_mode_type:type_name -> lemming.dataplane.sai.PortBreakoutModeType + 90, // 266: lemming.dataplane.sai.PortAttribute.current_breakout_mode_type:type_name -> lemming.dataplane.sai.PortBreakoutModeType + 95, // 267: lemming.dataplane.sai.PortAttribute.supported_fec_mode:type_name -> lemming.dataplane.sai.PortFecMode + 94, // 268: lemming.dataplane.sai.PortAttribute.supported_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended + 96, // 269: lemming.dataplane.sai.PortAttribute.supported_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode + 104, // 270: lemming.dataplane.sai.PortAttribute.supported_media_type:type_name -> lemming.dataplane.sai.PortMediaType + 95, // 271: lemming.dataplane.sai.PortAttribute.remote_advertised_fec_mode:type_name -> lemming.dataplane.sai.PortFecMode + 94, // 272: lemming.dataplane.sai.PortAttribute.remote_advertised_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended + 96, // 273: lemming.dataplane.sai.PortAttribute.remote_advertised_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode + 104, // 274: lemming.dataplane.sai.PortAttribute.remote_advertised_media_type:type_name -> lemming.dataplane.sai.PortMediaType + 186, // 275: lemming.dataplane.sai.PortAttribute.eye_values:type_name -> lemming.dataplane.sai.PortEyeValues + 104, // 276: lemming.dataplane.sai.PortAttribute.media_type:type_name -> lemming.dataplane.sai.PortMediaType + 95, // 277: lemming.dataplane.sai.PortAttribute.advertised_fec_mode:type_name -> lemming.dataplane.sai.PortFecMode + 94, // 278: lemming.dataplane.sai.PortAttribute.advertised_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended + 96, // 279: lemming.dataplane.sai.PortAttribute.advertised_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode + 104, // 280: lemming.dataplane.sai.PortAttribute.advertised_media_type:type_name -> lemming.dataplane.sai.PortMediaType + 98, // 281: lemming.dataplane.sai.PortAttribute.internal_loopback_mode:type_name -> lemming.dataplane.sai.PortInternalLoopbackMode + 95, // 282: lemming.dataplane.sai.PortAttribute.fec_mode:type_name -> lemming.dataplane.sai.PortFecMode + 94, // 283: lemming.dataplane.sai.PortAttribute.fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended + 96, // 284: lemming.dataplane.sai.PortAttribute.global_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode + 110, // 285: lemming.dataplane.sai.PortAttribute.priority_flow_control_mode:type_name -> lemming.dataplane.sai.PortPriorityFlowControlMode + 111, // 286: lemming.dataplane.sai.PortAttribute.ptp_mode:type_name -> lemming.dataplane.sai.PortPtpMode + 97, // 287: lemming.dataplane.sai.PortAttribute.interface_type:type_name -> lemming.dataplane.sai.PortInterfaceType + 97, // 288: lemming.dataplane.sai.PortAttribute.advertised_interface_type:type_name -> lemming.dataplane.sai.PortInterfaceType + 99, // 289: lemming.dataplane.sai.PortAttribute.link_training_failure_status:type_name -> lemming.dataplane.sai.PortLinkTrainingFailureStatus + 100, // 290: lemming.dataplane.sai.PortAttribute.link_training_rx_status:type_name -> lemming.dataplane.sai.PortLinkTrainingRxStatus + 108, // 291: lemming.dataplane.sai.PortAttribute.prbs_config:type_name -> lemming.dataplane.sai.PortPrbsConfig + 109, // 292: lemming.dataplane.sai.PortAttribute.prbs_rx_status:type_name -> lemming.dataplane.sai.PortPrbsRxStatus + 188, // 293: lemming.dataplane.sai.PortAttribute.prbs_rx_state:type_name -> lemming.dataplane.sai.PRBS_RXState + 93, // 294: lemming.dataplane.sai.PortAttribute.err_status_list:type_name -> lemming.dataplane.sai.PortErrStatus + 135, // 295: lemming.dataplane.sai.PortAttribute.fabric_attached_switch_type:type_name -> lemming.dataplane.sai.SwitchType + 172, // 296: lemming.dataplane.sai.PortAttribute.fabric_reachability:type_name -> lemming.dataplane.sai.FabricPortReachability + 101, // 297: lemming.dataplane.sai.PortAttribute.loopback_mode:type_name -> lemming.dataplane.sai.PortLoopbackMode + 103, // 298: lemming.dataplane.sai.PortAttribute.mdix_mode_status:type_name -> lemming.dataplane.sai.PortMdixModeStatus + 102, // 299: lemming.dataplane.sai.PortAttribute.mdix_mode_config:type_name -> lemming.dataplane.sai.PortMdixModeConfig + 89, // 300: lemming.dataplane.sai.PortAttribute.auto_neg_config_mode:type_name -> lemming.dataplane.sai.PortAutoNegConfigMode + 105, // 301: lemming.dataplane.sai.PortAttribute.module_type:type_name -> lemming.dataplane.sai.PortModuleType + 92, // 302: lemming.dataplane.sai.PortAttribute.dual_media:type_name -> lemming.dataplane.sai.PortDualMedia + 94, // 303: lemming.dataplane.sai.PortAttribute.auto_neg_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended + 91, // 304: lemming.dataplane.sai.PortConnectorAttribute.failover_mode:type_name -> lemming.dataplane.sai.PortConnectorFailoverMode + 114, // 305: lemming.dataplane.sai.QosMapAttribute.type:type_name -> lemming.dataplane.sai.QosMapType + 190, // 306: lemming.dataplane.sai.QosMapAttribute.map_to_value_list:type_name -> lemming.dataplane.sai.QOSMap + 117, // 307: lemming.dataplane.sai.QueueAttribute.type:type_name -> lemming.dataplane.sai.QueueType + 119, // 308: lemming.dataplane.sai.RouterInterfaceAttribute.type:type_name -> lemming.dataplane.sai.RouterInterfaceType + 83, // 309: lemming.dataplane.sai.RouterInterfaceAttribute.neighbor_miss_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 310: lemming.dataplane.sai.RouterInterfaceAttribute.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 311: lemming.dataplane.sai.RouteEntryAttribute.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 50, // 312: lemming.dataplane.sai.RouteEntryAttribute.ip_addr_family:type_name -> lemming.dataplane.sai.IpAddrFamily + 121, // 313: lemming.dataplane.sai.SamplepacketAttribute.type:type_name -> lemming.dataplane.sai.SamplepacketType + 120, // 314: lemming.dataplane.sai.SamplepacketAttribute.mode:type_name -> lemming.dataplane.sai.SamplepacketMode + 122, // 315: lemming.dataplane.sai.SchedulerAttribute.scheduling_type:type_name -> lemming.dataplane.sai.SchedulingType + 66, // 316: lemming.dataplane.sai.SchedulerAttribute.meter_type:type_name -> lemming.dataplane.sai.MeterType + 123, // 317: lemming.dataplane.sai.Srv6SidlistAttribute.type:type_name -> lemming.dataplane.sai.Srv6SidlistType + 195, // 318: lemming.dataplane.sai.Srv6SidlistAttribute.tlv_list:type_name -> lemming.dataplane.sai.TLVEntry + 125, // 319: lemming.dataplane.sai.StpPortAttribute.state:type_name -> lemming.dataplane.sai.StpPortState + 131, // 320: lemming.dataplane.sai.SwitchAttribute.oper_status:type_name -> lemming.dataplane.sai.SwitchOperStatus + 196, // 321: lemming.dataplane.sai.SwitchAttribute.fdb_dst_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range + 196, // 322: lemming.dataplane.sai.SwitchAttribute.route_dst_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range + 196, // 323: lemming.dataplane.sai.SwitchAttribute.neighbor_dst_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range + 196, // 324: lemming.dataplane.sai.SwitchAttribute.port_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range + 196, // 325: lemming.dataplane.sai.SwitchAttribute.vlan_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range + 196, // 326: lemming.dataplane.sai.SwitchAttribute.acl_user_meta_data_range:type_name -> lemming.dataplane.sai.Uint32Range + 196, // 327: lemming.dataplane.sai.SwitchAttribute.acl_user_trap_id_range:type_name -> lemming.dataplane.sai.Uint32Range + 170, // 328: lemming.dataplane.sai.SwitchAttribute.available_acl_table:type_name -> lemming.dataplane.sai.ACLResource + 170, // 329: lemming.dataplane.sai.SwitchAttribute.available_acl_table_group:type_name -> lemming.dataplane.sai.ACLResource + 132, // 330: lemming.dataplane.sai.SwitchAttribute.restart_type:type_name -> lemming.dataplane.sai.SwitchRestartType + 167, // 331: lemming.dataplane.sai.SwitchAttribute.acl_capability:type_name -> lemming.dataplane.sai.ACLCapability + 130, // 332: lemming.dataplane.sai.SwitchAttribute.mcast_snooping_capability:type_name -> lemming.dataplane.sai.SwitchMcastSnoopingCapability + 134, // 333: lemming.dataplane.sai.SwitchAttribute.switching_mode:type_name -> lemming.dataplane.sai.SwitchSwitchingMode + 83, // 334: lemming.dataplane.sai.SwitchAttribute.fdb_unicast_miss_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 335: lemming.dataplane.sai.SwitchAttribute.fdb_broadcast_miss_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 336: lemming.dataplane.sai.SwitchAttribute.fdb_multicast_miss_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 37, // 337: lemming.dataplane.sai.SwitchAttribute.ecmp_default_hash_algorithm:type_name -> lemming.dataplane.sai.HashAlgorithm + 37, // 338: lemming.dataplane.sai.SwitchAttribute.lag_default_hash_algorithm:type_name -> lemming.dataplane.sai.HashAlgorithm + 167, // 339: lemming.dataplane.sai.SwitchAttribute.acl_stage_ingress:type_name -> lemming.dataplane.sai.ACLCapability + 167, // 340: lemming.dataplane.sai.SwitchAttribute.acl_stage_egress:type_name -> lemming.dataplane.sai.ACLCapability + 149, // 341: lemming.dataplane.sai.SwitchAttribute.srv6_tlv_type:type_name -> lemming.dataplane.sai.TlvType + 83, // 342: lemming.dataplane.sai.SwitchAttribute.pfc_dlr_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 196, // 343: lemming.dataplane.sai.SwitchAttribute.pfc_tc_dld_interval_range:type_name -> lemming.dataplane.sai.Uint32Range + 180, // 344: lemming.dataplane.sai.SwitchAttribute.pfc_tc_dld_interval:type_name -> lemming.dataplane.sai.UintMap + 196, // 345: lemming.dataplane.sai.SwitchAttribute.pfc_tc_dlr_interval_range:type_name -> lemming.dataplane.sai.Uint32Range + 180, // 346: lemming.dataplane.sai.SwitchAttribute.pfc_tc_dlr_interval:type_name -> lemming.dataplane.sai.UintMap + 78, // 347: lemming.dataplane.sai.SwitchAttribute.supported_protected_object_type:type_name -> lemming.dataplane.sai.ObjectType + 10, // 348: lemming.dataplane.sai.SwitchAttribute.supported_ipv4_bfd_session_offload_type:type_name -> lemming.dataplane.sai.BfdSessionOffloadType + 10, // 349: lemming.dataplane.sai.SwitchAttribute.supported_ipv6_bfd_session_offload_type:type_name -> lemming.dataplane.sai.BfdSessionOffloadType + 124, // 350: lemming.dataplane.sai.SwitchAttribute.supported_extended_stats_mode:type_name -> lemming.dataplane.sai.StatsMode + 78, // 351: lemming.dataplane.sai.SwitchAttribute.supported_object_type_list:type_name -> lemming.dataplane.sai.ObjectType + 129, // 352: lemming.dataplane.sai.SwitchAttribute.hardware_access_bus:type_name -> lemming.dataplane.sai.SwitchHardwareAccessBus + 127, // 353: lemming.dataplane.sai.SwitchAttribute.firmware_load_method:type_name -> lemming.dataplane.sai.SwitchFirmwareLoadMethod + 128, // 354: lemming.dataplane.sai.SwitchAttribute.firmware_load_type:type_name -> lemming.dataplane.sai.SwitchFirmwareLoadType + 135, // 355: lemming.dataplane.sai.SwitchAttribute.type:type_name -> lemming.dataplane.sai.SwitchType + 193, // 356: lemming.dataplane.sai.SwitchAttribute.system_port_config_list:type_name -> lemming.dataplane.sai.SystemPortConfig + 126, // 357: lemming.dataplane.sai.SwitchAttribute.failover_config_mode:type_name -> lemming.dataplane.sai.SwitchFailoverConfigMode + 158, // 358: lemming.dataplane.sai.SwitchTunnelAttribute.tunnel_type:type_name -> lemming.dataplane.sai.TunnelType + 83, // 359: lemming.dataplane.sai.SwitchTunnelAttribute.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 152, // 360: lemming.dataplane.sai.SwitchTunnelAttribute.tunnel_encap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelEncapEcnMode + 150, // 361: lemming.dataplane.sai.SwitchTunnelAttribute.tunnel_decap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelDecapEcnMode + 159, // 362: lemming.dataplane.sai.SwitchTunnelAttribute.tunnel_vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode + 136, // 363: lemming.dataplane.sai.SystemPortAttribute.type:type_name -> lemming.dataplane.sai.SystemPortType + 193, // 364: lemming.dataplane.sai.SystemPortAttribute.config_info:type_name -> lemming.dataplane.sai.SystemPortConfig + 137, // 365: lemming.dataplane.sai.TamAttribute.tam_bind_point_type_list:type_name -> lemming.dataplane.sai.TamBindPointType + 139, // 366: lemming.dataplane.sai.TamEventAttribute.type:type_name -> lemming.dataplane.sai.TamEventType + 138, // 367: lemming.dataplane.sai.TamEventThresholdAttribute.unit:type_name -> lemming.dataplane.sai.TamEventThresholdUnit + 141, // 368: lemming.dataplane.sai.TamIntAttribute.type:type_name -> lemming.dataplane.sai.TamIntType + 140, // 369: lemming.dataplane.sai.TamIntAttribute.int_presence_type:type_name -> lemming.dataplane.sai.TamIntPresenceType + 145, // 370: lemming.dataplane.sai.TamMathFuncAttribute.tam_tel_math_func_type:type_name -> lemming.dataplane.sai.TamTelMathFuncType + 143, // 371: lemming.dataplane.sai.TamReportAttribute.type:type_name -> lemming.dataplane.sai.TamReportType + 142, // 372: lemming.dataplane.sai.TamReportAttribute.report_mode:type_name -> lemming.dataplane.sai.TamReportMode + 144, // 373: lemming.dataplane.sai.TamTelemetryAttribute.tam_reporting_unit:type_name -> lemming.dataplane.sai.TamReportingUnit + 146, // 374: lemming.dataplane.sai.TamTelTypeAttribute.tam_telemetry_type:type_name -> lemming.dataplane.sai.TamTelemetryType + 148, // 375: lemming.dataplane.sai.TamTransportAttribute.transport_type:type_name -> lemming.dataplane.sai.TamTransportType + 147, // 376: lemming.dataplane.sai.TamTransportAttribute.transport_auth_type:type_name -> lemming.dataplane.sai.TamTransportAuthType + 158, // 377: lemming.dataplane.sai.TunnelAttribute.type:type_name -> lemming.dataplane.sai.TunnelType + 154, // 378: lemming.dataplane.sai.TunnelAttribute.peer_mode:type_name -> lemming.dataplane.sai.TunnelPeerMode + 157, // 379: lemming.dataplane.sai.TunnelAttribute.encap_ttl_mode:type_name -> lemming.dataplane.sai.TunnelTtlMode + 151, // 380: lemming.dataplane.sai.TunnelAttribute.encap_dscp_mode:type_name -> lemming.dataplane.sai.TunnelDscpMode + 152, // 381: lemming.dataplane.sai.TunnelAttribute.encap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelEncapEcnMode + 150, // 382: lemming.dataplane.sai.TunnelAttribute.decap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelDecapEcnMode + 157, // 383: lemming.dataplane.sai.TunnelAttribute.decap_ttl_mode:type_name -> lemming.dataplane.sai.TunnelTtlMode + 151, // 384: lemming.dataplane.sai.TunnelAttribute.decap_dscp_mode:type_name -> lemming.dataplane.sai.TunnelDscpMode + 83, // 385: lemming.dataplane.sai.TunnelAttribute.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 159, // 386: lemming.dataplane.sai.TunnelAttribute.vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode + 153, // 387: lemming.dataplane.sai.TunnelMapAttribute.type:type_name -> lemming.dataplane.sai.TunnelMapType + 153, // 388: lemming.dataplane.sai.TunnelMapEntryAttribute.tunnel_map_type:type_name -> lemming.dataplane.sai.TunnelMapType + 156, // 389: lemming.dataplane.sai.TunnelTermTableEntryAttribute.type:type_name -> lemming.dataplane.sai.TunnelTermTableEntryType + 158, // 390: lemming.dataplane.sai.TunnelTermTableEntryAttribute.tunnel_type:type_name -> lemming.dataplane.sai.TunnelType + 50, // 391: lemming.dataplane.sai.TunnelTermTableEntryAttribute.ip_addr_family:type_name -> lemming.dataplane.sai.IpAddrFamily + 160, // 392: lemming.dataplane.sai.UdfAttribute.base:type_name -> lemming.dataplane.sai.UdfBase + 161, // 393: lemming.dataplane.sai.UdfGroupAttribute.type:type_name -> lemming.dataplane.sai.UdfGroupType + 168, // 394: lemming.dataplane.sai.UdfMatchAttribute.l2_type:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 395: lemming.dataplane.sai.UdfMatchAttribute.l3_type:type_name -> lemming.dataplane.sai.AclFieldData + 168, // 396: lemming.dataplane.sai.UdfMatchAttribute.gre_type:type_name -> lemming.dataplane.sai.AclFieldData + 83, // 397: lemming.dataplane.sai.VirtualRouterAttribute.violation_ttl1_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 398: lemming.dataplane.sai.VirtualRouterAttribute.violation_ip_options_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 83, // 399: lemming.dataplane.sai.VirtualRouterAttribute.unknown_l3_multicast_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 163, // 400: lemming.dataplane.sai.VlanAttribute.ipv4_mcast_lookup_key_type:type_name -> lemming.dataplane.sai.VlanMcastLookupKeyType + 163, // 401: lemming.dataplane.sai.VlanAttribute.ipv6_mcast_lookup_key_type:type_name -> lemming.dataplane.sai.VlanMcastLookupKeyType + 162, // 402: lemming.dataplane.sai.VlanAttribute.unknown_unicast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType + 162, // 403: lemming.dataplane.sai.VlanAttribute.unknown_multicast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType + 162, // 404: lemming.dataplane.sai.VlanAttribute.broadcast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType + 165, // 405: lemming.dataplane.sai.VlanMemberAttribute.vlan_tagging_mode:type_name -> lemming.dataplane.sai.VlanTaggingMode + 32, // 406: lemming.dataplane.sai.WredAttribute.ecn_mark_mode:type_name -> lemming.dataplane.sai.EcnMarkMode + 300, // 407: lemming.dataplane.sai.attr_enum_value:extendee -> google.protobuf.FieldOptions + 408, // [408:408] is the sub-list for method output_type + 408, // [408:408] is the sub-list for method input_type + 408, // [408:408] is the sub-list for extension type_name + 407, // [407:408] is the sub-list for extension extendee + 0, // [0:407] is the sub-list for field type_name +} + +func init() { file_dataplane_standalone_proto_common_proto_init() } +func file_dataplane_standalone_proto_common_proto_init() { + if File_dataplane_standalone_proto_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_dataplane_standalone_proto_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AclActionData); i { case 0: return &v.state case 1: @@ -40068,8 +40474,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Uint32Range); i { + file_dataplane_standalone_proto_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ACLCapability); i { case 0: return &v.state case 1: @@ -40080,8 +40486,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclCounterAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AclFieldData); i { case 0: return &v.state case 1: @@ -40092,8 +40498,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Uint64List); i { case 0: return &v.state case 1: @@ -40104,8 +40510,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclRangeAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ACLResource); i { case 0: return &v.state case 1: @@ -40116,8 +40522,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclBindPointTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BfdSessionStateChangeNotificationData); i { case 0: return &v.state case 1: @@ -40128,8 +40534,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclActionTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FabricPortReachability); i { case 0: return &v.state case 1: @@ -40140,8 +40546,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclRangeTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FdbEntry); i { case 0: return &v.state case 1: @@ -40152,8 +40558,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Uint64List); i { + file_dataplane_standalone_proto_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FdbEventNotificationData); i { case 0: return &v.state case 1: @@ -40164,8 +40570,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclTableAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InsegEntry); i { case 0: return &v.state case 1: @@ -40176,8 +40582,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclTableGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpPrefix); i { case 0: return &v.state case 1: @@ -40188,8 +40594,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclTableGroupMemberAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpmcEntry); i { case 0: return &v.state case 1: @@ -40200,8 +40606,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BfdSessionAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpsecSaStatusNotificationData); i { case 0: return &v.state case 1: @@ -40212,8 +40618,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BridgeAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L2McEntry); i { case 0: return &v.state case 1: @@ -40224,8 +40630,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BridgePortAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UintMap); i { case 0: return &v.state case 1: @@ -40236,8 +40642,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BufferPoolAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*McastFdbEntry); i { case 0: return &v.state case 1: @@ -40248,8 +40654,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BufferProfileAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MySidEntry); i { case 0: return &v.state case 1: @@ -40260,8 +40666,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CounterAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NatEntryData); i { case 0: return &v.state case 1: @@ -40272,8 +40678,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InDropReasonList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NatEntry); i { case 0: return &v.state case 1: @@ -40284,8 +40690,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutDropReasonList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NeighborEntry); i { case 0: return &v.state case 1: @@ -40296,8 +40702,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DebugCounterAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortEyeValues); i { case 0: return &v.state case 1: @@ -40308,8 +40714,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DtelAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortOperStatusNotification); i { case 0: return &v.state case 1: @@ -40320,8 +40726,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DtelEventAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PRBS_RXState); i { case 0: return &v.state case 1: @@ -40332,8 +40738,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DtelIntSessionAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QOSMapParams); i { case 0: return &v.state case 1: @@ -40344,8 +40750,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DtelQueueReportAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QOSMap); i { case 0: return &v.state case 1: @@ -40356,8 +40762,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BytesList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueueDeadlockNotificationData); i { case 0: return &v.state case 1: @@ -40368,8 +40774,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DtelReportSessionAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouteEntry); i { case 0: return &v.state case 1: @@ -40380,8 +40786,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FdbEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SystemPortConfig); i { case 0: return &v.state case 1: @@ -40392,8 +40798,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FdbFlushAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HMAC); i { case 0: return &v.state case 1: @@ -40404,8 +40810,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FineGrainedHashFieldAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TLVEntry); i { case 0: return &v.state case 1: @@ -40416,8 +40822,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NativeHashFieldList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Uint32Range); i { case 0: return &v.state case 1: @@ -40428,8 +40834,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HashAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AclCounterAttribute); i { case 0: return &v.state case 1: @@ -40440,8 +40846,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostifAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AclEntryAttribute); i { case 0: return &v.state case 1: @@ -40452,8 +40858,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostifPacketAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AclRangeAttribute); i { case 0: return &v.state case 1: @@ -40464,8 +40870,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostifTableEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AclTableAttribute); i { case 0: return &v.state case 1: @@ -40476,8 +40882,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostifTrapAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AclTableGroupAttribute); i { case 0: return &v.state case 1: @@ -40488,8 +40894,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostifTrapGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AclTableGroupMemberAttribute); i { case 0: return &v.state case 1: @@ -40500,8 +40906,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostifUserDefinedTrapAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BfdSessionAttribute); i { case 0: return &v.state case 1: @@ -40512,8 +40918,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IngressPriorityGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BridgeAttribute); i { case 0: return &v.state case 1: @@ -40524,8 +40930,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InsegEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BridgePortAttribute); i { case 0: return &v.state case 1: @@ -40536,8 +40942,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpmcEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BufferPoolAttribute); i { case 0: return &v.state case 1: @@ -40548,8 +40954,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpmcGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BufferProfileAttribute); i { case 0: return &v.state case 1: @@ -40560,8 +40966,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpmcGroupMemberAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CounterAttribute); i { case 0: return &v.state case 1: @@ -40572,8 +40978,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpsecCipherList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DebugCounterAttribute); i { case 0: return &v.state case 1: @@ -40584,8 +40990,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpsecAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DtelAttribute); i { case 0: return &v.state case 1: @@ -40596,8 +41002,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpsecPortAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DtelEventAttribute); i { case 0: return &v.state case 1: @@ -40608,8 +41014,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpsecSaAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DtelIntSessionAttribute); i { case 0: return &v.state case 1: @@ -40620,8 +41026,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsolationGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DtelQueueReportAttribute); i { case 0: return &v.state case 1: @@ -40632,8 +41038,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsolationGroupMemberAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DtelReportSessionAttribute); i { case 0: return &v.state case 1: @@ -40644,8 +41050,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*L2McEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FdbEntryAttribute); i { case 0: return &v.state case 1: @@ -40656,8 +41062,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*L2McGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FdbFlushAttribute); i { case 0: return &v.state case 1: @@ -40668,8 +41074,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*L2McGroupMemberAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FineGrainedHashFieldAttribute); i { case 0: return &v.state case 1: @@ -40680,8 +41086,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LagAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HashAttribute); i { case 0: return &v.state case 1: @@ -40692,8 +41098,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LagMemberAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostifAttribute); i { case 0: return &v.state case 1: @@ -40704,8 +41110,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MacsecCipherSuiteList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostifPacketAttribute); i { case 0: return &v.state case 1: @@ -40716,8 +41122,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Uint32List); i { + file_dataplane_standalone_proto_common_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostifTableEntryAttribute); i { case 0: return &v.state case 1: @@ -40728,8 +41134,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MacsecAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostifTrapAttribute); i { case 0: return &v.state case 1: @@ -40740,8 +41146,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MacsecFlowAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostifTrapGroupAttribute); i { case 0: return &v.state case 1: @@ -40752,8 +41158,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MacsecPortAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostifUserDefinedTrapAttribute); i { case 0: return &v.state case 1: @@ -40764,8 +41170,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MacsecSaAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IngressPriorityGroupAttribute); i { case 0: return &v.state case 1: @@ -40776,8 +41182,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MacsecScAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InsegEntryAttribute); i { case 0: return &v.state case 1: @@ -40788,8 +41194,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*McastFdbEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpmcEntryAttribute); i { case 0: return &v.state case 1: @@ -40800,8 +41206,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MirrorSessionAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpmcGroupAttribute); i { case 0: return &v.state case 1: @@ -40812,8 +41218,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MyMacAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpmcGroupMemberAttribute); i { case 0: return &v.state case 1: @@ -40824,8 +41230,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MySidEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpsecAttribute); i { case 0: return &v.state case 1: @@ -40836,8 +41242,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NatEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpsecPortAttribute); i { case 0: return &v.state case 1: @@ -40848,8 +41254,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NatZoneCounterAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpsecSaAttribute); i { case 0: return &v.state case 1: @@ -40860,8 +41266,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NeighborEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsolationGroupAttribute); i { case 0: return &v.state case 1: @@ -40872,8 +41278,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NextHopAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsolationGroupMemberAttribute); i { case 0: return &v.state case 1: @@ -40884,8 +41290,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NextHopGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L2McEntryAttribute); i { case 0: return &v.state case 1: @@ -40896,8 +41302,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UintMapList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L2McGroupAttribute); i { case 0: return &v.state case 1: @@ -40908,8 +41314,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NextHopGroupMapAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L2McGroupMemberAttribute); i { case 0: return &v.state case 1: @@ -40920,8 +41326,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NextHopGroupMemberAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LagAttribute); i { case 0: return &v.state case 1: @@ -40932,8 +41338,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PacketActionList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LagMemberAttribute); i { case 0: return &v.state case 1: @@ -40944,8 +41350,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicerAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MacsecAttribute); i { case 0: return &v.state case 1: @@ -40956,8 +41362,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortBreakoutModeTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MacsecFlowAttribute); i { case 0: return &v.state case 1: @@ -40968,8 +41374,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortFecModeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MacsecPortAttribute); i { case 0: return &v.state case 1: @@ -40980,8 +41386,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortFecModeExtendedList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MacsecSaAttribute); i { case 0: return &v.state case 1: @@ -40992,8 +41398,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortEyeValuesList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MacsecScAttribute); i { case 0: return &v.state case 1: @@ -41004,8 +41410,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortInterfaceTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*McastFdbEntryAttribute); i { case 0: return &v.state case 1: @@ -41016,8 +41422,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortErrStatusList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MirrorSessionAttribute); i { case 0: return &v.state case 1: @@ -41028,8 +41434,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MyMacAttribute); i { case 0: return &v.state case 1: @@ -41040,8 +41446,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortConnectorAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MySidEntryAttribute); i { case 0: return &v.state case 1: @@ -41052,8 +41458,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortPoolAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NatEntryAttribute); i { case 0: return &v.state case 1: @@ -41064,8 +41470,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Int32List); i { + file_dataplane_standalone_proto_common_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NatZoneCounterAttribute); i { case 0: return &v.state case 1: @@ -41076,8 +41482,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortSerdesAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NeighborEntryAttribute); i { case 0: return &v.state case 1: @@ -41088,8 +41494,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QosMapList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextHopAttribute); i { case 0: return &v.state case 1: @@ -41100,8 +41506,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QosMapAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextHopGroupAttribute); i { case 0: return &v.state case 1: @@ -41112,8 +41518,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextHopGroupMapAttribute); i { case 0: return &v.state case 1: @@ -41124,8 +41530,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RouterInterfaceAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextHopGroupMemberAttribute); i { case 0: return &v.state case 1: @@ -41136,8 +41542,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RouteEntryAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PolicerAttribute); i { case 0: return &v.state case 1: @@ -41148,8 +41554,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpfGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortAttribute); i { case 0: return &v.state case 1: @@ -41160,8 +41566,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpfGroupMemberAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortConnectorAttribute); i { case 0: return &v.state case 1: @@ -41172,8 +41578,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SamplepacketAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortPoolAttribute); i { case 0: return &v.state case 1: @@ -41184,8 +41590,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SchedulerAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortSerdesAttribute); i { case 0: return &v.state case 1: @@ -41196,8 +41602,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SchedulerGroupAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QosMapAttribute); i { case 0: return &v.state case 1: @@ -41208,8 +41614,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TlvEntryList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueueAttribute); i { case 0: return &v.state case 1: @@ -41220,8 +41626,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Srv6SidlistAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouterInterfaceAttribute); i { case 0: return &v.state case 1: @@ -41232,8 +41638,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StpAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouteEntryAttribute); i { case 0: return &v.state case 1: @@ -41244,8 +41650,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StpPortAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RpfGroupAttribute); i { case 0: return &v.state case 1: @@ -41256,8 +41662,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AclResourceList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RpfGroupMemberAttribute); i { case 0: return &v.state case 1: @@ -41268,8 +41674,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TlvTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SamplepacketAttribute); i { case 0: return &v.state case 1: @@ -41280,8 +41686,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ObjectTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SchedulerAttribute); i { case 0: return &v.state case 1: @@ -41292,8 +41698,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BfdSessionOffloadTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SchedulerGroupAttribute); i { case 0: return &v.state case 1: @@ -41304,8 +41710,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatsModeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Srv6SidlistAttribute); i { case 0: return &v.state case 1: @@ -41316,8 +41722,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemPortConfigList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StpAttribute); i { case 0: return &v.state case 1: @@ -41328,8 +41734,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwitchAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StpPortAttribute); i { case 0: return &v.state case 1: @@ -41340,8 +41746,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwitchTunnelAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchAttribute); i { case 0: return &v.state case 1: @@ -41352,8 +41758,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemPortAttribute); i { + file_dataplane_standalone_proto_common_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchTunnelAttribute); i { case 0: return &v.state case 1: @@ -41364,8 +41770,8 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TamBindPointTypeList); i { + file_dataplane_standalone_proto_common_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SystemPortAttribute); i { case 0: return &v.state case 1: @@ -41376,7 +41782,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamAttribute); i { case 0: return &v.state @@ -41388,7 +41794,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamCollectorAttribute); i { case 0: return &v.state @@ -41400,7 +41806,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamEventAttribute); i { case 0: return &v.state @@ -41412,7 +41818,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamEventActionAttribute); i { case 0: return &v.state @@ -41424,7 +41830,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamEventThresholdAttribute); i { case 0: return &v.state @@ -41436,7 +41842,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamIntAttribute); i { case 0: return &v.state @@ -41448,7 +41854,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamMathFuncAttribute); i { case 0: return &v.state @@ -41460,7 +41866,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamReportAttribute); i { case 0: return &v.state @@ -41472,7 +41878,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamTelemetryAttribute); i { case 0: return &v.state @@ -41484,7 +41890,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamTelTypeAttribute); i { case 0: return &v.state @@ -41496,7 +41902,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TamTransportAttribute); i { case 0: return &v.state @@ -41508,7 +41914,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TunnelAttribute); i { case 0: return &v.state @@ -41520,7 +41926,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TunnelMapAttribute); i { case 0: return &v.state @@ -41532,7 +41938,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TunnelMapEntryAttribute); i { case 0: return &v.state @@ -41544,7 +41950,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TunnelTermTableEntryAttribute); i { case 0: return &v.state @@ -41556,7 +41962,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UdfAttribute); i { case 0: return &v.state @@ -41568,7 +41974,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UdfGroupAttribute); i { case 0: return &v.state @@ -41580,7 +41986,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UdfMatchAttribute); i { case 0: return &v.state @@ -41592,7 +41998,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VirtualRouterAttribute); i { case 0: return &v.state @@ -41604,7 +42010,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VlanAttribute); i { case 0: return &v.state @@ -41616,7 +42022,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VlanMemberAttribute); i { case 0: return &v.state @@ -41628,7 +42034,7 @@ func file_dataplane_standalone_proto_common_proto_init() { return nil } } - file_dataplane_standalone_proto_common_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_dataplane_standalone_proto_common_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WredAttribute); i { case 0: return &v.state @@ -41663,7 +42069,7 @@ func file_dataplane_standalone_proto_common_proto_init() { (*AclFieldData_DataIp)(nil), (*AclFieldData_DataList)(nil), } - file_dataplane_standalone_proto_common_proto_msgTypes[16].OneofWrappers = []interface{}{ + file_dataplane_standalone_proto_common_proto_msgTypes[17].OneofWrappers = []interface{}{ (*NatEntryData_KeySrcIp)(nil), (*NatEntryData_KeyDstIp)(nil), (*NatEntryData_KeyProto)(nil), @@ -41675,26 +42081,126 @@ func file_dataplane_standalone_proto_common_proto_init() { (*NatEntryData_MaskL4SrcPort)(nil), (*NatEntryData_MaskL4DstPort)(nil), } - file_dataplane_standalone_proto_common_proto_msgTypes[28].OneofWrappers = []interface{}{ + file_dataplane_standalone_proto_common_proto_msgTypes[29].OneofWrappers = []interface{}{ (*TLVEntry_IngressNode)(nil), (*TLVEntry_EgressNode)(nil), (*TLVEntry_OpaqueContainer)(nil), (*TLVEntry_Hmac)(nil), } + file_dataplane_standalone_proto_common_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[32].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[33].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[34].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[35].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[36].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[37].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[38].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[39].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[40].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[41].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[42].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[43].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[44].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[45].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[46].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[47].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[48].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[49].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[50].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[51].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[53].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[54].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[55].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[56].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[57].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[58].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[59].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[60].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[61].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[62].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[63].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[64].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[65].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[66].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[67].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[68].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[69].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[70].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[71].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[72].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[73].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[74].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[75].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[76].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[77].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[78].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[79].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[80].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[81].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[82].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[83].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[84].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[85].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[86].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[87].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[88].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[89].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[90].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[91].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[92].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[93].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[94].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[95].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[96].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[97].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[98].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[99].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[100].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[101].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[102].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[103].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[104].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[105].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[106].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[107].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[108].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[109].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[111].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[112].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[113].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[114].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[115].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[116].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[117].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[118].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[119].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[120].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[121].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[122].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[123].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[124].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[125].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[126].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[127].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[128].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[129].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[130].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_common_proto_msgTypes[131].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_dataplane_standalone_proto_common_proto_rawDesc, NumEnums: 166, - NumMessages: 161, - NumExtensions: 0, + NumMessages: 133, + NumExtensions: 1, NumServices: 0, }, GoTypes: file_dataplane_standalone_proto_common_proto_goTypes, DependencyIndexes: file_dataplane_standalone_proto_common_proto_depIdxs, EnumInfos: file_dataplane_standalone_proto_common_proto_enumTypes, MessageInfos: file_dataplane_standalone_proto_common_proto_msgTypes, + ExtensionInfos: file_dataplane_standalone_proto_common_proto_extTypes, }.Build() File_dataplane_standalone_proto_common_proto = out.File file_dataplane_standalone_proto_common_proto_rawDesc = nil diff --git a/dataplane/standalone/proto/common.proto b/dataplane/standalone/proto/common.proto index 172097a2..4134cbef 100644 --- a/dataplane/standalone/proto/common.proto +++ b/dataplane/standalone/proto/common.proto @@ -2,4042 +2,4067 @@ syntax = "proto3"; package lemming.dataplane.sai; - + import "google/protobuf/timestamp.proto"; +import "google/protobuf/descriptor.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; +extend google.protobuf.FieldOptions { + optional int32 attr_enum_value = 50000; +} message AclActionData { - bool enable = 1; - oneof parameter { - uint64 uint = 2; - uint64 int = 3; - bytes mac = 4; - bytes ip = 5; - uint64 oid = 6; - Uint64List objlist = 7; - bytes ipaddr = 8; - }; + bool enable = 1; + oneof parameter { + uint64 uint = 2; + uint64 int = 3; + bytes mac = 4; + bytes ip = 5; + uint64 oid = 6; + Uint64List objlist = 7; + bytes ipaddr = 8; + }; } message ACLCapability { - bool is_action_list_mandatory = 1; - repeated int32 action_list = 2; + bool is_action_list_mandatory = 1; + repeated int32 action_list = 2; } message AclFieldData { - bool enable = 1; - oneof mask { - uint64 mask_uint = 2; - uint64 mask_int = 3; - bytes mask_mac = 4; - bytes mask_ip = 5; - Uint64List mask_list = 6; - }; - oneof data { - bool data_bool = 7; - uint64 data_uint = 8; - int64 data_int = 9; - bytes data_mac = 10; - bytes data_ip = 11; - Uint64List data_list = 12; - }; + bool enable = 1; + oneof mask { + uint64 mask_uint = 2; + uint64 mask_int = 3; + bytes mask_mac = 4; + bytes mask_ip = 5; + Uint64List mask_list = 6; + }; + oneof data { + bool data_bool = 7; + uint64 data_uint = 8; + int64 data_int = 9; + bytes data_mac = 10; + bytes data_ip = 11; + Uint64List data_list = 12; + }; +} + +message Uint64List { + repeated uint64 list = 1; } message ACLResource { - AclStage stage = 1; - AclBindPointType bind_point = 2; - uint32 avail_num = 3; + AclStage stage = 1; + AclBindPointType bind_point = 2; + uint32 avail_num = 3; } message BfdSessionStateChangeNotificationData { - uint64 bfd_session_id = 1; - BfdSessionState session_state = 2; + uint64 bfd_session_id = 1; + BfdSessionState session_state = 2; } message FabricPortReachability { - uint32 switch_id = 1; - bool reachable = 2; + uint32 switch_id = 1; + bool reachable = 2; } message FdbEntry { - uint64 switch_id = 1; - bytes mac_address = 2; - uint64 bv_id = 3; + uint64 switch_id = 1; + bytes mac_address = 2; + uint64 bv_id = 3; } - message FdbEventNotificationData { - FdbEvent event_type = 1; - FdbEntry fdb_entry = 2; - repeated FdbEntryAttribute attrs = 3; + FdbEvent event_type = 1; + FdbEntry fdb_entry = 2; + repeated FdbEntryAttribute attrs = 3; } message InsegEntry { - uint64 switch_id = 1; - uint32 label = 2; + uint64 switch_id = 1; + uint32 label = 2; } message IpPrefix { - bytes addr = 1; - bytes mask = 2; + bytes addr = 1; + bytes mask = 2; } message IpmcEntry { - uint64 switch_id = 1; - uint64 vr_id = 2; - IpmcEntryType type = 3; - bytes destination = 4; - bytes source = 5; + uint64 switch_id = 1; + uint64 vr_id = 2; + IpmcEntryType type = 3; + bytes destination = 4; + bytes source = 5; } message IpsecSaStatusNotificationData { - uint64 ipsec_sa_id = 1; - IpsecSaOctetCountStatus ipsec_sa_octet_count_status = 2; - bool ipsec_egress_sn_at_max_limit = 3; + uint64 ipsec_sa_id = 1; + IpsecSaOctetCountStatus ipsec_sa_octet_count_status = 2; + bool ipsec_egress_sn_at_max_limit = 3; } message L2mcEntry { - uint64 switch_id = 1; - uint64 bv_id = 2; - L2mcEntryType type = 3; - bytes destination = 4; - bytes source = 5; + uint64 switch_id = 1; + uint64 bv_id = 2; + L2mcEntryType type = 3; + bytes destination = 4; + bytes source = 5; } message UintMap { - map uintmap = 1; + map uintmap = 1; } message McastFdbEntry { - uint64 switch_id = 1; - bytes mac_address = 2; - uint64 bv_id = 3; + uint64 switch_id = 1; + bytes mac_address = 2; + uint64 bv_id = 3; } message MySidEntry { - uint64 switch_id = 1; - uint64 vr_id = 2; - uint32 locator_block_len = 3; - uint32 locator_node_len = 4; - uint32 function_len = 5; - uint32 args_len = 6; - bytes sid = 7; -} - -message NatEntryData{ - oneof key { - bytes key_src_ip = 2; - bytes key_dst_ip = 3; - uint32 key_proto = 4; - uint32 key_l4_src_port = 5; - uint32 key_l4_dst_port = 6; - }; - oneof mask { - bytes mask_src_ip = 7; - bytes mask_dst_ip = 8; - uint32 mask_proto = 9; - uint32 mask_l4_src_port = 10; - uint32 mask_l4_dst_port = 11; - }; + uint64 switch_id = 1; + uint64 vr_id = 2; + uint32 locator_block_len = 3; + uint32 locator_node_len = 4; + uint32 function_len = 5; + uint32 args_len = 6; + bytes sid = 7; +} + +message NatEntryData { + oneof key { + bytes key_src_ip = 2; + bytes key_dst_ip = 3; + uint32 key_proto = 4; + uint32 key_l4_src_port = 5; + uint32 key_l4_dst_port = 6; + }; + oneof mask { + bytes mask_src_ip = 7; + bytes mask_dst_ip = 8; + uint32 mask_proto = 9; + uint32 mask_l4_src_port = 10; + uint32 mask_l4_dst_port = 11; + }; } message NatEntry { - uint64 switch_id = 1; - uint64 vr_id = 2; - NatType nat_type = 3; - NatEntryData data = 4; + uint64 switch_id = 1; + uint64 vr_id = 2; + NatType nat_type = 3; + NatEntryData data = 4; } message NeighborEntry { - uint64 switch_id = 1; - uint64 rif_id = 2; - bytes ip_address = 3; + uint64 switch_id = 1; + uint64 rif_id = 2; + bytes ip_address = 3; } message PortEyeValues { - uint32 lane = 1; - int32 left = 2; - int32 right = 3; - int32 up = 4; - int32 down = 5; + uint32 lane = 1; + int32 left = 2; + int32 right = 3; + int32 up = 4; + int32 down = 5; } message PortOperStatusNotification { - uint64 port_id = 1; - PortOperStatus port_state = 2; + uint64 port_id = 1; + PortOperStatus port_state = 2; } message PRBS_RXState { - PortPrbsRxStatus rx_status = 1; - uint32 error_count = 2; + PortPrbsRxStatus rx_status = 1; + uint32 error_count = 2; } - -message QOSMapParams { - uint32 tc = 1; - uint32 dscp = 2; - uint32 dot1p = 3; - uint32 prio = 4; - uint32 pg = 5; - uint32 queue_index = 6; - PacketColor color = 7; - uint32 mpls_exp = 8; - uint32 fc = 9; +message QOSMapParams { + uint32 tc = 1; + uint32 dscp = 2; + uint32 dot1p = 3; + uint32 prio = 4; + uint32 pg = 5; + uint32 queue_index = 6; + PacketColor color = 7; + uint32 mpls_exp = 8; + uint32 fc = 9; } message QOSMap { - QOSMapParams key = 1; - QOSMapParams value = 2; + QOSMapParams key = 1; + QOSMapParams value = 2; } message QueueDeadlockNotificationData { - uint64 queue_id = 1; - QueuePfcDeadlockEventType event= 2; - bool app_managed_recovery = 3; + uint64 queue_id = 1; + QueuePfcDeadlockEventType event = 2; + bool app_managed_recovery = 3; } message RouteEntry { - uint64 switch_id = 1; - uint64 vr_id = 2; - IpPrefix destination = 3; + uint64 switch_id = 1; + uint64 vr_id = 2; + IpPrefix destination = 3; } message SystemPortConfig { - uint32 port_id = 1; - uint32 attached_switch_id = 2; - uint32 attached_core_index = 3; - uint32 attached_core_port_index = 4; - uint32 speed = 5; - uint32 num_voq = 6; + uint32 port_id = 1; + uint32 attached_switch_id = 2; + uint32 attached_core_index = 3; + uint32 attached_core_port_index = 4; + uint32 speed = 5; + uint32 num_voq = 6; } message HMAC { - uint32 key_id = 1; - repeated uint32 hmac = 2; + uint32 key_id = 1; + repeated uint32 hmac = 2; } message TLVEntry { - oneof entry { - bytes ingress_node = 1; - bytes egress_node = 2; - bytes opaque_container = 3; - HMAC hmac = 4; - } + oneof entry { + bytes ingress_node = 1; + bytes egress_node = 2; + bytes opaque_container = 3; + HMAC hmac = 4; + } } message Uint32Range { - uint64 min = 1; - uint64 max = 2; + uint64 min = 1; + uint64 max = 2; } enum AclActionType { - ACL_ACTION_TYPE_UNSPECIFIED = 0; - ACL_ACTION_TYPE_REDIRECT = 1; - ACL_ACTION_TYPE_ENDPOINT_IP = 2; - ACL_ACTION_TYPE_REDIRECT_LIST = 3; - ACL_ACTION_TYPE_PACKET_ACTION = 4; - ACL_ACTION_TYPE_FLOOD = 5; - ACL_ACTION_TYPE_COUNTER = 6; - ACL_ACTION_TYPE_MIRROR_INGRESS = 7; - ACL_ACTION_TYPE_MIRROR_EGRESS = 8; - ACL_ACTION_TYPE_SET_POLICER = 9; - ACL_ACTION_TYPE_DECREMENT_TTL = 10; - ACL_ACTION_TYPE_SET_TC = 11; - ACL_ACTION_TYPE_SET_PACKET_COLOR = 12; - ACL_ACTION_TYPE_SET_INNER_VLAN_ID = 13; - ACL_ACTION_TYPE_SET_INNER_VLAN_PRI = 14; - ACL_ACTION_TYPE_SET_OUTER_VLAN_ID = 15; - ACL_ACTION_TYPE_SET_OUTER_VLAN_PRI = 16; - ACL_ACTION_TYPE_ADD_VLAN_ID = 17; - ACL_ACTION_TYPE_ADD_VLAN_PRI = 18; - ACL_ACTION_TYPE_SET_SRC_MAC = 19; - ACL_ACTION_TYPE_SET_DST_MAC = 20; - ACL_ACTION_TYPE_SET_SRC_IP = 21; - ACL_ACTION_TYPE_SET_DST_IP = 22; - ACL_ACTION_TYPE_SET_SRC_IPV6 = 23; - ACL_ACTION_TYPE_SET_DST_IPV6 = 24; - ACL_ACTION_TYPE_SET_DSCP = 25; - ACL_ACTION_TYPE_SET_ECN = 26; - ACL_ACTION_TYPE_SET_L4_SRC_PORT = 27; - ACL_ACTION_TYPE_SET_L4_DST_PORT = 28; - ACL_ACTION_TYPE_INGRESS_SAMPLEPACKET_ENABLE = 29; - ACL_ACTION_TYPE_EGRESS_SAMPLEPACKET_ENABLE = 30; - ACL_ACTION_TYPE_SET_ACL_META_DATA = 31; - ACL_ACTION_TYPE_EGRESS_BLOCK_PORT_LIST = 32; - ACL_ACTION_TYPE_SET_USER_TRAP_ID = 33; - ACL_ACTION_TYPE_SET_DO_NOT_LEARN = 34; - ACL_ACTION_TYPE_ACL_DTEL_FLOW_OP = 35; - ACL_ACTION_TYPE_DTEL_INT_SESSION = 36; - ACL_ACTION_TYPE_DTEL_DROP_REPORT_ENABLE = 37; - ACL_ACTION_TYPE_DTEL_TAIL_DROP_REPORT_ENABLE = 38; - ACL_ACTION_TYPE_DTEL_FLOW_SAMPLE_PERCENT = 39; - ACL_ACTION_TYPE_DTEL_REPORT_ALL_PACKETS = 40; - ACL_ACTION_TYPE_NO_NAT = 41; - ACL_ACTION_TYPE_INT_INSERT = 42; - ACL_ACTION_TYPE_INT_DELETE = 43; - ACL_ACTION_TYPE_INT_REPORT_FLOW = 44; - ACL_ACTION_TYPE_INT_REPORT_DROPS = 45; - ACL_ACTION_TYPE_INT_REPORT_TAIL_DROPS = 46; - ACL_ACTION_TYPE_TAM_INT_OBJECT = 47; - ACL_ACTION_TYPE_SET_ISOLATION_GROUP = 48; - ACL_ACTION_TYPE_MACSEC_FLOW = 49; - ACL_ACTION_TYPE_SET_LAG_HASH_ID = 50; - ACL_ACTION_TYPE_SET_ECMP_HASH_ID = 51; - ACL_ACTION_TYPE_SET_VRF = 52; - ACL_ACTION_TYPE_SET_FORWARDING_CLASS = 53; + ACL_ACTION_TYPE_UNSPECIFIED = 0; + ACL_ACTION_TYPE_REDIRECT = 1; + ACL_ACTION_TYPE_ENDPOINT_IP = 2; + ACL_ACTION_TYPE_REDIRECT_LIST = 3; + ACL_ACTION_TYPE_PACKET_ACTION = 4; + ACL_ACTION_TYPE_FLOOD = 5; + ACL_ACTION_TYPE_COUNTER = 6; + ACL_ACTION_TYPE_MIRROR_INGRESS = 7; + ACL_ACTION_TYPE_MIRROR_EGRESS = 8; + ACL_ACTION_TYPE_SET_POLICER = 9; + ACL_ACTION_TYPE_DECREMENT_TTL = 10; + ACL_ACTION_TYPE_SET_TC = 11; + ACL_ACTION_TYPE_SET_PACKET_COLOR = 12; + ACL_ACTION_TYPE_SET_INNER_VLAN_ID = 13; + ACL_ACTION_TYPE_SET_INNER_VLAN_PRI = 14; + ACL_ACTION_TYPE_SET_OUTER_VLAN_ID = 15; + ACL_ACTION_TYPE_SET_OUTER_VLAN_PRI = 16; + ACL_ACTION_TYPE_ADD_VLAN_ID = 17; + ACL_ACTION_TYPE_ADD_VLAN_PRI = 18; + ACL_ACTION_TYPE_SET_SRC_MAC = 19; + ACL_ACTION_TYPE_SET_DST_MAC = 20; + ACL_ACTION_TYPE_SET_SRC_IP = 21; + ACL_ACTION_TYPE_SET_DST_IP = 22; + ACL_ACTION_TYPE_SET_SRC_IPV6 = 23; + ACL_ACTION_TYPE_SET_DST_IPV6 = 24; + ACL_ACTION_TYPE_SET_DSCP = 25; + ACL_ACTION_TYPE_SET_ECN = 26; + ACL_ACTION_TYPE_SET_L4_SRC_PORT = 27; + ACL_ACTION_TYPE_SET_L4_DST_PORT = 28; + ACL_ACTION_TYPE_INGRESS_SAMPLEPACKET_ENABLE = 29; + ACL_ACTION_TYPE_EGRESS_SAMPLEPACKET_ENABLE = 30; + ACL_ACTION_TYPE_SET_ACL_META_DATA = 31; + ACL_ACTION_TYPE_EGRESS_BLOCK_PORT_LIST = 32; + ACL_ACTION_TYPE_SET_USER_TRAP_ID = 33; + ACL_ACTION_TYPE_SET_DO_NOT_LEARN = 34; + ACL_ACTION_TYPE_ACL_DTEL_FLOW_OP = 35; + ACL_ACTION_TYPE_DTEL_INT_SESSION = 36; + ACL_ACTION_TYPE_DTEL_DROP_REPORT_ENABLE = 37; + ACL_ACTION_TYPE_DTEL_TAIL_DROP_REPORT_ENABLE = 38; + ACL_ACTION_TYPE_DTEL_FLOW_SAMPLE_PERCENT = 39; + ACL_ACTION_TYPE_DTEL_REPORT_ALL_PACKETS = 40; + ACL_ACTION_TYPE_NO_NAT = 41; + ACL_ACTION_TYPE_INT_INSERT = 42; + ACL_ACTION_TYPE_INT_DELETE = 43; + ACL_ACTION_TYPE_INT_REPORT_FLOW = 44; + ACL_ACTION_TYPE_INT_REPORT_DROPS = 45; + ACL_ACTION_TYPE_INT_REPORT_TAIL_DROPS = 46; + ACL_ACTION_TYPE_TAM_INT_OBJECT = 47; + ACL_ACTION_TYPE_SET_ISOLATION_GROUP = 48; + ACL_ACTION_TYPE_MACSEC_FLOW = 49; + ACL_ACTION_TYPE_SET_LAG_HASH_ID = 50; + ACL_ACTION_TYPE_SET_ECMP_HASH_ID = 51; + ACL_ACTION_TYPE_SET_VRF = 52; + ACL_ACTION_TYPE_SET_FORWARDING_CLASS = 53; } enum AclBindPointType { - ACL_BIND_POINT_TYPE_UNSPECIFIED = 0; - ACL_BIND_POINT_TYPE_PORT = 1; - ACL_BIND_POINT_TYPE_LAG = 2; - ACL_BIND_POINT_TYPE_VLAN = 3; - ACL_BIND_POINT_TYPE_ROUTER_INTERFACE = 4; - ACL_BIND_POINT_TYPE_ROUTER_INTF = 5; - ACL_BIND_POINT_TYPE_SWITCH = 6; + ACL_BIND_POINT_TYPE_UNSPECIFIED = 0; + ACL_BIND_POINT_TYPE_PORT = 1; + ACL_BIND_POINT_TYPE_LAG = 2; + ACL_BIND_POINT_TYPE_VLAN = 3; + ACL_BIND_POINT_TYPE_ROUTER_INTERFACE = 4; + ACL_BIND_POINT_TYPE_ROUTER_INTF = 5; + ACL_BIND_POINT_TYPE_SWITCH = 6; } enum AclDtelFlowOp { - ACL_DTEL_FLOW_OP_UNSPECIFIED = 0; - ACL_DTEL_FLOW_OP_NOP = 1; - ACL_DTEL_FLOW_OP_INT = 2; - ACL_DTEL_FLOW_OP_IOAM = 3; - ACL_DTEL_FLOW_OP_POSTCARD = 4; + ACL_DTEL_FLOW_OP_UNSPECIFIED = 0; + ACL_DTEL_FLOW_OP_NOP = 1; + ACL_DTEL_FLOW_OP_INT = 2; + ACL_DTEL_FLOW_OP_IOAM = 3; + ACL_DTEL_FLOW_OP_POSTCARD = 4; } enum AclIpFrag { - ACL_IP_FRAG_UNSPECIFIED = 0; - ACL_IP_FRAG_ANY = 1; - ACL_IP_FRAG_NON_FRAG = 2; - ACL_IP_FRAG_NON_FRAG_OR_HEAD = 3; - ACL_IP_FRAG_HEAD = 4; - ACL_IP_FRAG_NON_HEAD = 5; + ACL_IP_FRAG_UNSPECIFIED = 0; + ACL_IP_FRAG_ANY = 1; + ACL_IP_FRAG_NON_FRAG = 2; + ACL_IP_FRAG_NON_FRAG_OR_HEAD = 3; + ACL_IP_FRAG_HEAD = 4; + ACL_IP_FRAG_NON_HEAD = 5; } enum AclIpType { - ACL_IP_TYPE_UNSPECIFIED = 0; - ACL_IP_TYPE_ANY = 1; - ACL_IP_TYPE_IP = 2; - ACL_IP_TYPE_NON_IP = 3; - ACL_IP_TYPE_IPV4ANY = 4; - ACL_IP_TYPE_NON_IPV4 = 5; - ACL_IP_TYPE_IPV6ANY = 6; - ACL_IP_TYPE_NON_IPV6 = 7; - ACL_IP_TYPE_ARP = 8; - ACL_IP_TYPE_ARP_REQUEST = 9; - ACL_IP_TYPE_ARP_REPLY = 10; + ACL_IP_TYPE_UNSPECIFIED = 0; + ACL_IP_TYPE_ANY = 1; + ACL_IP_TYPE_IP = 2; + ACL_IP_TYPE_NON_IP = 3; + ACL_IP_TYPE_IPV4ANY = 4; + ACL_IP_TYPE_NON_IPV4 = 5; + ACL_IP_TYPE_IPV6ANY = 6; + ACL_IP_TYPE_NON_IPV6 = 7; + ACL_IP_TYPE_ARP = 8; + ACL_IP_TYPE_ARP_REQUEST = 9; + ACL_IP_TYPE_ARP_REPLY = 10; } enum AclRangeType { - ACL_RANGE_TYPE_UNSPECIFIED = 0; - ACL_RANGE_TYPE_L4_SRC_PORT_RANGE = 1; - ACL_RANGE_TYPE_L4_DST_PORT_RANGE = 2; - ACL_RANGE_TYPE_OUTER_VLAN = 3; - ACL_RANGE_TYPE_INNER_VLAN = 4; - ACL_RANGE_TYPE_PACKET_LENGTH = 5; + ACL_RANGE_TYPE_UNSPECIFIED = 0; + ACL_RANGE_TYPE_L4_SRC_PORT_RANGE = 1; + ACL_RANGE_TYPE_L4_DST_PORT_RANGE = 2; + ACL_RANGE_TYPE_OUTER_VLAN = 3; + ACL_RANGE_TYPE_INNER_VLAN = 4; + ACL_RANGE_TYPE_PACKET_LENGTH = 5; } enum AclStage { - ACL_STAGE_UNSPECIFIED = 0; - ACL_STAGE_INGRESS = 1; - ACL_STAGE_EGRESS = 2; - ACL_STAGE_INGRESS_MACSEC = 3; - ACL_STAGE_EGRESS_MACSEC = 4; - ACL_STAGE_PRE_INGRESS = 5; + ACL_STAGE_UNSPECIFIED = 0; + ACL_STAGE_INGRESS = 1; + ACL_STAGE_EGRESS = 2; + ACL_STAGE_INGRESS_MACSEC = 3; + ACL_STAGE_EGRESS_MACSEC = 4; + ACL_STAGE_PRE_INGRESS = 5; } enum AclTableGroupType { - ACL_TABLE_GROUP_TYPE_UNSPECIFIED = 0; - ACL_TABLE_GROUP_TYPE_SEQUENTIAL = 1; - ACL_TABLE_GROUP_TYPE_PARALLEL = 2; + ACL_TABLE_GROUP_TYPE_UNSPECIFIED = 0; + ACL_TABLE_GROUP_TYPE_SEQUENTIAL = 1; + ACL_TABLE_GROUP_TYPE_PARALLEL = 2; } enum Api { - API_UNSPECIFIED = 0; - API_SAI_UNSPECIFIED = 1; - API_SWITCH = 2; - API_PORT = 3; - API_FDB = 4; - API_VLAN = 5; - API_VIRTUAL_ROUTER = 6; - API_ROUTE = 7; - API_NEXT_HOP = 8; - API_NEXT_HOP_GROUP = 9; - API_ROUTER_INTERFACE = 10; - API_NEIGHBOR = 11; - API_ACL = 12; - API_HOSTIF = 13; - API_MIRROR = 14; - API_SAMPLEPACKET = 15; - API_STP = 16; - API_LAG = 17; - API_POLICER = 18; - API_WRED = 19; - API_QOS_MAP = 20; - API_QUEUE = 21; - API_SCHEDULER = 22; - API_SCHEDULER_GROUP = 23; - API_BUFFER = 24; - API_HASH = 25; - API_UDF = 26; - API_TUNNEL = 27; - API_L2MC = 28; - API_IPMC = 29; - API_RPF_GROUP = 30; - API_L2MC_GROUP = 31; - API_IPMC_GROUP = 32; - API_MCAST_FDB = 33; - API_BRIDGE = 34; - API_TAM = 35; - API_SRV6 = 36; - API_MPLS = 37; - API_DTEL = 38; - API_BFD = 39; - API_ISOLATION_GROUP = 40; - API_NAT = 41; - API_COUNTER = 42; - API_DEBUG_COUNTER = 43; - API_MACSEC = 44; - API_SYSTEM_PORT = 45; - API_MY_MAC = 46; - API_IPSEC = 47; - API_MAX = 48; + API_UNSPECIFIED = 0; + API_SAI_UNSPECIFIED = 1; + API_SWITCH = 2; + API_PORT = 3; + API_FDB = 4; + API_VLAN = 5; + API_VIRTUAL_ROUTER = 6; + API_ROUTE = 7; + API_NEXT_HOP = 8; + API_NEXT_HOP_GROUP = 9; + API_ROUTER_INTERFACE = 10; + API_NEIGHBOR = 11; + API_ACL = 12; + API_HOSTIF = 13; + API_MIRROR = 14; + API_SAMPLEPACKET = 15; + API_STP = 16; + API_LAG = 17; + API_POLICER = 18; + API_WRED = 19; + API_QOS_MAP = 20; + API_QUEUE = 21; + API_SCHEDULER = 22; + API_SCHEDULER_GROUP = 23; + API_BUFFER = 24; + API_HASH = 25; + API_UDF = 26; + API_TUNNEL = 27; + API_L2MC = 28; + API_IPMC = 29; + API_RPF_GROUP = 30; + API_L2MC_GROUP = 31; + API_IPMC_GROUP = 32; + API_MCAST_FDB = 33; + API_BRIDGE = 34; + API_TAM = 35; + API_SRV6 = 36; + API_MPLS = 37; + API_DTEL = 38; + API_BFD = 39; + API_ISOLATION_GROUP = 40; + API_NAT = 41; + API_COUNTER = 42; + API_DEBUG_COUNTER = 43; + API_MACSEC = 44; + API_SYSTEM_PORT = 45; + API_MY_MAC = 46; + API_IPSEC = 47; + API_MAX = 48; } enum BfdEncapsulationType { - BFD_ENCAPSULATION_TYPE_UNSPECIFIED = 0; - BFD_ENCAPSULATION_TYPE_IP_IN_IP = 1; - BFD_ENCAPSULATION_TYPE_L3_GRE_TUNNEL = 2; - BFD_ENCAPSULATION_TYPE_NONE = 3; + BFD_ENCAPSULATION_TYPE_UNSPECIFIED = 0; + BFD_ENCAPSULATION_TYPE_IP_IN_IP = 1; + BFD_ENCAPSULATION_TYPE_L3_GRE_TUNNEL = 2; + BFD_ENCAPSULATION_TYPE_NONE = 3; } enum BfdSessionOffloadType { - BFD_SESSION_OFFLOAD_TYPE_UNSPECIFIED = 0; - BFD_SESSION_OFFLOAD_TYPE_NONE = 1; - BFD_SESSION_OFFLOAD_TYPE_FULL = 2; - BFD_SESSION_OFFLOAD_TYPE_SUSTENANCE = 3; + BFD_SESSION_OFFLOAD_TYPE_UNSPECIFIED = 0; + BFD_SESSION_OFFLOAD_TYPE_NONE = 1; + BFD_SESSION_OFFLOAD_TYPE_FULL = 2; + BFD_SESSION_OFFLOAD_TYPE_SUSTENANCE = 3; } enum BfdSessionStat { - BFD_SESSION_STAT_UNSPECIFIED = 0; - BFD_SESSION_STAT_IN_PACKETS = 1; - BFD_SESSION_STAT_OUT_PACKETS = 2; - BFD_SESSION_STAT_DROP_PACKETS = 3; + BFD_SESSION_STAT_UNSPECIFIED = 0; + BFD_SESSION_STAT_IN_PACKETS = 1; + BFD_SESSION_STAT_OUT_PACKETS = 2; + BFD_SESSION_STAT_DROP_PACKETS = 3; } enum BfdSessionState { - BFD_SESSION_STATE_UNSPECIFIED = 0; - BFD_SESSION_STATE_ADMIN_DOWN = 1; - BFD_SESSION_STATE_DOWN = 2; - BFD_SESSION_STATE_INIT = 3; - BFD_SESSION_STATE_UP = 4; + BFD_SESSION_STATE_UNSPECIFIED = 0; + BFD_SESSION_STATE_ADMIN_DOWN = 1; + BFD_SESSION_STATE_DOWN = 2; + BFD_SESSION_STATE_INIT = 3; + BFD_SESSION_STATE_UP = 4; } enum BfdSessionType { - BFD_SESSION_TYPE_UNSPECIFIED = 0; - BFD_SESSION_TYPE_DEMAND_ACTIVE = 1; - BFD_SESSION_TYPE_DEMAND_PASSIVE = 2; - BFD_SESSION_TYPE_ASYNC_ACTIVE = 3; - BFD_SESSION_TYPE_ASYNC_PASSIVE = 4; + BFD_SESSION_TYPE_UNSPECIFIED = 0; + BFD_SESSION_TYPE_DEMAND_ACTIVE = 1; + BFD_SESSION_TYPE_DEMAND_PASSIVE = 2; + BFD_SESSION_TYPE_ASYNC_ACTIVE = 3; + BFD_SESSION_TYPE_ASYNC_PASSIVE = 4; } enum BridgeFloodControlType { - BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED = 0; - BRIDGE_FLOOD_CONTROL_TYPE_SUB_PORTS = 1; - BRIDGE_FLOOD_CONTROL_TYPE_NONE = 2; - BRIDGE_FLOOD_CONTROL_TYPE_L2MC_GROUP = 3; - BRIDGE_FLOOD_CONTROL_TYPE_COMBINED = 4; + BRIDGE_FLOOD_CONTROL_TYPE_UNSPECIFIED = 0; + BRIDGE_FLOOD_CONTROL_TYPE_SUB_PORTS = 1; + BRIDGE_FLOOD_CONTROL_TYPE_NONE = 2; + BRIDGE_FLOOD_CONTROL_TYPE_L2MC_GROUP = 3; + BRIDGE_FLOOD_CONTROL_TYPE_COMBINED = 4; } enum BridgePortFdbLearningMode { - BRIDGE_PORT_FDB_LEARNING_MODE_UNSPECIFIED = 0; - BRIDGE_PORT_FDB_LEARNING_MODE_DROP = 1; - BRIDGE_PORT_FDB_LEARNING_MODE_DISABLE = 2; - BRIDGE_PORT_FDB_LEARNING_MODE_HW = 3; - BRIDGE_PORT_FDB_LEARNING_MODE_CPU_TRAP = 4; - BRIDGE_PORT_FDB_LEARNING_MODE_CPU_LOG = 5; - BRIDGE_PORT_FDB_LEARNING_MODE_FDB_NOTIFICATION = 6; + BRIDGE_PORT_FDB_LEARNING_MODE_UNSPECIFIED = 0; + BRIDGE_PORT_FDB_LEARNING_MODE_DROP = 1; + BRIDGE_PORT_FDB_LEARNING_MODE_DISABLE = 2; + BRIDGE_PORT_FDB_LEARNING_MODE_HW = 3; + BRIDGE_PORT_FDB_LEARNING_MODE_CPU_TRAP = 4; + BRIDGE_PORT_FDB_LEARNING_MODE_CPU_LOG = 5; + BRIDGE_PORT_FDB_LEARNING_MODE_FDB_NOTIFICATION = 6; } enum BridgePortStat { - BRIDGE_PORT_STAT_UNSPECIFIED = 0; - BRIDGE_PORT_STAT_IN_OCTETS = 1; - BRIDGE_PORT_STAT_IN_PACKETS = 2; - BRIDGE_PORT_STAT_OUT_OCTETS = 3; - BRIDGE_PORT_STAT_OUT_PACKETS = 4; + BRIDGE_PORT_STAT_UNSPECIFIED = 0; + BRIDGE_PORT_STAT_IN_OCTETS = 1; + BRIDGE_PORT_STAT_IN_PACKETS = 2; + BRIDGE_PORT_STAT_OUT_OCTETS = 3; + BRIDGE_PORT_STAT_OUT_PACKETS = 4; } enum BridgePortTaggingMode { - BRIDGE_PORT_TAGGING_MODE_UNSPECIFIED = 0; - BRIDGE_PORT_TAGGING_MODE_UNTAGGED = 1; - BRIDGE_PORT_TAGGING_MODE_TAGGED = 2; + BRIDGE_PORT_TAGGING_MODE_UNSPECIFIED = 0; + BRIDGE_PORT_TAGGING_MODE_UNTAGGED = 1; + BRIDGE_PORT_TAGGING_MODE_TAGGED = 2; } enum BridgePortType { - BRIDGE_PORT_TYPE_UNSPECIFIED = 0; - BRIDGE_PORT_TYPE_PORT = 1; - BRIDGE_PORT_TYPE_SUB_PORT = 2; - BRIDGE_PORT_TYPE_1Q_ROUTER = 3; - BRIDGE_PORT_TYPE_1D_ROUTER = 4; - BRIDGE_PORT_TYPE_TUNNEL = 5; + BRIDGE_PORT_TYPE_UNSPECIFIED = 0; + BRIDGE_PORT_TYPE_PORT = 1; + BRIDGE_PORT_TYPE_SUB_PORT = 2; + BRIDGE_PORT_TYPE_1Q_ROUTER = 3; + BRIDGE_PORT_TYPE_1D_ROUTER = 4; + BRIDGE_PORT_TYPE_TUNNEL = 5; } enum BridgeStat { - BRIDGE_STAT_UNSPECIFIED = 0; - BRIDGE_STAT_IN_OCTETS = 1; - BRIDGE_STAT_IN_PACKETS = 2; - BRIDGE_STAT_OUT_OCTETS = 3; - BRIDGE_STAT_OUT_PACKETS = 4; + BRIDGE_STAT_UNSPECIFIED = 0; + BRIDGE_STAT_IN_OCTETS = 1; + BRIDGE_STAT_IN_PACKETS = 2; + BRIDGE_STAT_OUT_OCTETS = 3; + BRIDGE_STAT_OUT_PACKETS = 4; } enum BridgeType { - BRIDGE_TYPE_UNSPECIFIED = 0; - BRIDGE_TYPE_1Q = 1; - BRIDGE_TYPE_1D = 2; + BRIDGE_TYPE_UNSPECIFIED = 0; + BRIDGE_TYPE_1Q = 1; + BRIDGE_TYPE_1D = 2; } enum BufferPoolStat { - BUFFER_POOL_STAT_UNSPECIFIED = 0; - BUFFER_POOL_STAT_CURR_OCCUPANCY_BYTES = 1; - BUFFER_POOL_STAT_WATERMARK_BYTES = 2; - BUFFER_POOL_STAT_DROPPED_PACKETS = 3; - BUFFER_POOL_STAT_GREEN_WRED_DROPPED_PACKETS = 4; - BUFFER_POOL_STAT_GREEN_WRED_DROPPED_BYTES = 5; - BUFFER_POOL_STAT_YELLOW_WRED_DROPPED_PACKETS = 6; - BUFFER_POOL_STAT_YELLOW_WRED_DROPPED_BYTES = 7; - BUFFER_POOL_STAT_RED_WRED_DROPPED_PACKETS = 8; - BUFFER_POOL_STAT_RED_WRED_DROPPED_BYTES = 9; - BUFFER_POOL_STAT_WRED_DROPPED_PACKETS = 10; - BUFFER_POOL_STAT_WRED_DROPPED_BYTES = 11; - BUFFER_POOL_STAT_GREEN_WRED_ECN_MARKED_PACKETS = 12; - BUFFER_POOL_STAT_GREEN_WRED_ECN_MARKED_BYTES = 13; - BUFFER_POOL_STAT_YELLOW_WRED_ECN_MARKED_PACKETS = 14; - BUFFER_POOL_STAT_YELLOW_WRED_ECN_MARKED_BYTES = 15; - BUFFER_POOL_STAT_RED_WRED_ECN_MARKED_PACKETS = 16; - BUFFER_POOL_STAT_RED_WRED_ECN_MARKED_BYTES = 17; - BUFFER_POOL_STAT_WRED_ECN_MARKED_PACKETS = 18; - BUFFER_POOL_STAT_WRED_ECN_MARKED_BYTES = 19; - BUFFER_POOL_STAT_XOFF_ROOM_CURR_OCCUPANCY_BYTES = 20; - BUFFER_POOL_STAT_XOFF_ROOM_WATERMARK_BYTES = 21; - BUFFER_POOL_STAT_CUSTOM_RANGE_BASE = 22; + BUFFER_POOL_STAT_UNSPECIFIED = 0; + BUFFER_POOL_STAT_CURR_OCCUPANCY_BYTES = 1; + BUFFER_POOL_STAT_WATERMARK_BYTES = 2; + BUFFER_POOL_STAT_DROPPED_PACKETS = 3; + BUFFER_POOL_STAT_GREEN_WRED_DROPPED_PACKETS = 4; + BUFFER_POOL_STAT_GREEN_WRED_DROPPED_BYTES = 5; + BUFFER_POOL_STAT_YELLOW_WRED_DROPPED_PACKETS = 6; + BUFFER_POOL_STAT_YELLOW_WRED_DROPPED_BYTES = 7; + BUFFER_POOL_STAT_RED_WRED_DROPPED_PACKETS = 8; + BUFFER_POOL_STAT_RED_WRED_DROPPED_BYTES = 9; + BUFFER_POOL_STAT_WRED_DROPPED_PACKETS = 10; + BUFFER_POOL_STAT_WRED_DROPPED_BYTES = 11; + BUFFER_POOL_STAT_GREEN_WRED_ECN_MARKED_PACKETS = 12; + BUFFER_POOL_STAT_GREEN_WRED_ECN_MARKED_BYTES = 13; + BUFFER_POOL_STAT_YELLOW_WRED_ECN_MARKED_PACKETS = 14; + BUFFER_POOL_STAT_YELLOW_WRED_ECN_MARKED_BYTES = 15; + BUFFER_POOL_STAT_RED_WRED_ECN_MARKED_PACKETS = 16; + BUFFER_POOL_STAT_RED_WRED_ECN_MARKED_BYTES = 17; + BUFFER_POOL_STAT_WRED_ECN_MARKED_PACKETS = 18; + BUFFER_POOL_STAT_WRED_ECN_MARKED_BYTES = 19; + BUFFER_POOL_STAT_XOFF_ROOM_CURR_OCCUPANCY_BYTES = 20; + BUFFER_POOL_STAT_XOFF_ROOM_WATERMARK_BYTES = 21; + BUFFER_POOL_STAT_CUSTOM_RANGE_BASE = 22; } enum BufferPoolThresholdMode { - BUFFER_POOL_THRESHOLD_MODE_UNSPECIFIED = 0; - BUFFER_POOL_THRESHOLD_MODE_STATIC = 1; - BUFFER_POOL_THRESHOLD_MODE_DYNAMIC = 2; + BUFFER_POOL_THRESHOLD_MODE_UNSPECIFIED = 0; + BUFFER_POOL_THRESHOLD_MODE_STATIC = 1; + BUFFER_POOL_THRESHOLD_MODE_DYNAMIC = 2; } enum BufferPoolType { - BUFFER_POOL_TYPE_UNSPECIFIED = 0; - BUFFER_POOL_TYPE_INGRESS = 1; - BUFFER_POOL_TYPE_EGRESS = 2; - BUFFER_POOL_TYPE_BOTH = 3; + BUFFER_POOL_TYPE_UNSPECIFIED = 0; + BUFFER_POOL_TYPE_INGRESS = 1; + BUFFER_POOL_TYPE_EGRESS = 2; + BUFFER_POOL_TYPE_BOTH = 3; } enum BufferProfileThresholdMode { - BUFFER_PROFILE_THRESHOLD_MODE_UNSPECIFIED = 0; - BUFFER_PROFILE_THRESHOLD_MODE_STATIC = 1; - BUFFER_PROFILE_THRESHOLD_MODE_DYNAMIC = 2; + BUFFER_PROFILE_THRESHOLD_MODE_UNSPECIFIED = 0; + BUFFER_PROFILE_THRESHOLD_MODE_STATIC = 1; + BUFFER_PROFILE_THRESHOLD_MODE_DYNAMIC = 2; } enum BulkOpErrorMode { - BULK_OP_ERROR_MODE_UNSPECIFIED = 0; - BULK_OP_ERROR_MODE_STOP_ON_ERROR = 1; - BULK_OP_ERROR_MODE_IGNORE_ERROR = 2; + BULK_OP_ERROR_MODE_UNSPECIFIED = 0; + BULK_OP_ERROR_MODE_STOP_ON_ERROR = 1; + BULK_OP_ERROR_MODE_IGNORE_ERROR = 2; } enum CommonApi { - COMMON_API_UNSPECIFIED = 0; - COMMON_API_CREATE = 1; - COMMON_API_REMOVE = 2; - COMMON_API_SET = 3; - COMMON_API_GET = 4; - COMMON_API_BULK_CREATE = 5; - COMMON_API_BULK_REMOVE = 6; - COMMON_API_BULK_SET = 7; - COMMON_API_BULK_GET = 8; - COMMON_API_MAX = 9; + COMMON_API_UNSPECIFIED = 0; + COMMON_API_CREATE = 1; + COMMON_API_REMOVE = 2; + COMMON_API_SET = 3; + COMMON_API_GET = 4; + COMMON_API_BULK_CREATE = 5; + COMMON_API_BULK_REMOVE = 6; + COMMON_API_BULK_SET = 7; + COMMON_API_BULK_GET = 8; + COMMON_API_MAX = 9; } enum CounterStat { - COUNTER_STAT_UNSPECIFIED = 0; - COUNTER_STAT_PACKETS = 1; - COUNTER_STAT_BYTES = 2; - COUNTER_STAT_CUSTOM_RANGE_BASE = 3; + COUNTER_STAT_UNSPECIFIED = 0; + COUNTER_STAT_PACKETS = 1; + COUNTER_STAT_BYTES = 2; + COUNTER_STAT_CUSTOM_RANGE_BASE = 3; } enum CounterType { - COUNTER_TYPE_UNSPECIFIED = 0; - COUNTER_TYPE_REGULAR = 1; + COUNTER_TYPE_UNSPECIFIED = 0; + COUNTER_TYPE_REGULAR = 1; } enum DebugCounterBindMethod { - DEBUG_COUNTER_BIND_METHOD_UNSPECIFIED = 0; - DEBUG_COUNTER_BIND_METHOD_AUTOMATIC = 1; + DEBUG_COUNTER_BIND_METHOD_UNSPECIFIED = 0; + DEBUG_COUNTER_BIND_METHOD_AUTOMATIC = 1; } enum DebugCounterType { - DEBUG_COUNTER_TYPE_UNSPECIFIED = 0; - DEBUG_COUNTER_TYPE_PORT_IN_DROP_REASONS = 1; - DEBUG_COUNTER_TYPE_PORT_OUT_DROP_REASONS = 2; - DEBUG_COUNTER_TYPE_SWITCH_IN_DROP_REASONS = 3; - DEBUG_COUNTER_TYPE_SWITCH_OUT_DROP_REASONS = 4; + DEBUG_COUNTER_TYPE_UNSPECIFIED = 0; + DEBUG_COUNTER_TYPE_PORT_IN_DROP_REASONS = 1; + DEBUG_COUNTER_TYPE_PORT_OUT_DROP_REASONS = 2; + DEBUG_COUNTER_TYPE_SWITCH_IN_DROP_REASONS = 3; + DEBUG_COUNTER_TYPE_SWITCH_OUT_DROP_REASONS = 4; } enum DtelEventType { - DTEL_EVENT_TYPE_UNSPECIFIED = 0; - DTEL_EVENT_TYPE_FLOW_STATE = 1; - DTEL_EVENT_TYPE_FLOW_REPORT_ALL_PACKETS = 2; - DTEL_EVENT_TYPE_FLOW_TCPFLAG = 3; - DTEL_EVENT_TYPE_QUEUE_REPORT_THRESHOLD_BREACH = 4; - DTEL_EVENT_TYPE_QUEUE_REPORT_TAIL_DROP = 5; - DTEL_EVENT_TYPE_DROP_REPORT = 6; - DTEL_EVENT_TYPE_MAX = 7; + DTEL_EVENT_TYPE_UNSPECIFIED = 0; + DTEL_EVENT_TYPE_FLOW_STATE = 1; + DTEL_EVENT_TYPE_FLOW_REPORT_ALL_PACKETS = 2; + DTEL_EVENT_TYPE_FLOW_TCPFLAG = 3; + DTEL_EVENT_TYPE_QUEUE_REPORT_THRESHOLD_BREACH = 4; + DTEL_EVENT_TYPE_QUEUE_REPORT_TAIL_DROP = 5; + DTEL_EVENT_TYPE_DROP_REPORT = 6; + DTEL_EVENT_TYPE_MAX = 7; } enum EcnMarkMode { - ECN_MARK_MODE_UNSPECIFIED = 0; - ECN_MARK_MODE_NONE = 1; - ECN_MARK_MODE_GREEN = 2; - ECN_MARK_MODE_YELLOW = 3; - ECN_MARK_MODE_RED = 4; - ECN_MARK_MODE_GREEN_YELLOW = 5; - ECN_MARK_MODE_GREEN_RED = 6; - ECN_MARK_MODE_YELLOW_RED = 7; - ECN_MARK_MODE_ALL = 8; + ECN_MARK_MODE_UNSPECIFIED = 0; + ECN_MARK_MODE_NONE = 1; + ECN_MARK_MODE_GREEN = 2; + ECN_MARK_MODE_YELLOW = 3; + ECN_MARK_MODE_RED = 4; + ECN_MARK_MODE_GREEN_YELLOW = 5; + ECN_MARK_MODE_GREEN_RED = 6; + ECN_MARK_MODE_YELLOW_RED = 7; + ECN_MARK_MODE_ALL = 8; } enum ErspanEncapsulationType { - ERSPAN_ENCAPSULATION_TYPE_UNSPECIFIED = 0; - ERSPAN_ENCAPSULATION_TYPE_MIRROR_L3_GRE_TUNNEL = 1; + ERSPAN_ENCAPSULATION_TYPE_UNSPECIFIED = 0; + ERSPAN_ENCAPSULATION_TYPE_MIRROR_L3_GRE_TUNNEL = 1; } enum FdbEntryType { - FDB_ENTRY_TYPE_UNSPECIFIED = 0; - FDB_ENTRY_TYPE_DYNAMIC = 1; - FDB_ENTRY_TYPE_STATIC = 2; + FDB_ENTRY_TYPE_UNSPECIFIED = 0; + FDB_ENTRY_TYPE_DYNAMIC = 1; + FDB_ENTRY_TYPE_STATIC = 2; } enum FdbEvent { - FDB_EVENT_UNSPECIFIED = 0; - FDB_EVENT_LEARNED = 1; - FDB_EVENT_AGED = 2; - FDB_EVENT_MOVE = 3; - FDB_EVENT_FLUSHED = 4; + FDB_EVENT_UNSPECIFIED = 0; + FDB_EVENT_LEARNED = 1; + FDB_EVENT_AGED = 2; + FDB_EVENT_MOVE = 3; + FDB_EVENT_FLUSHED = 4; } enum FdbFlushEntryType { - FDB_FLUSH_ENTRY_TYPE_UNSPECIFIED = 0; - FDB_FLUSH_ENTRY_TYPE_DYNAMIC = 1; - FDB_FLUSH_ENTRY_TYPE_STATIC = 2; - FDB_FLUSH_ENTRY_TYPE_ALL = 3; + FDB_FLUSH_ENTRY_TYPE_UNSPECIFIED = 0; + FDB_FLUSH_ENTRY_TYPE_DYNAMIC = 1; + FDB_FLUSH_ENTRY_TYPE_STATIC = 2; + FDB_FLUSH_ENTRY_TYPE_ALL = 3; } enum HashAlgorithm { - HASH_ALGORITHM_UNSPECIFIED = 0; - HASH_ALGORITHM_CRC = 1; - HASH_ALGORITHM_XOR = 2; - HASH_ALGORITHM_RANDOM = 3; - HASH_ALGORITHM_CRC_32LO = 4; - HASH_ALGORITHM_CRC_32HI = 5; - HASH_ALGORITHM_CRC_CCITT = 6; - HASH_ALGORITHM_CRC_XOR = 7; + HASH_ALGORITHM_UNSPECIFIED = 0; + HASH_ALGORITHM_CRC = 1; + HASH_ALGORITHM_XOR = 2; + HASH_ALGORITHM_RANDOM = 3; + HASH_ALGORITHM_CRC_32LO = 4; + HASH_ALGORITHM_CRC_32HI = 5; + HASH_ALGORITHM_CRC_CCITT = 6; + HASH_ALGORITHM_CRC_XOR = 7; } enum HostifTableEntryChannelType { - HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_UNSPECIFIED = 0; - HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_CB = 1; - HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_FD = 2; - HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_NETDEV_PHYSICAL_PORT = 3; - HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_NETDEV_LOGICAL_PORT = 4; - HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_NETDEV_L3 = 5; - HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_GENETLINK = 6; + HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_UNSPECIFIED = 0; + HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_CB = 1; + HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_FD = 2; + HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_NETDEV_PHYSICAL_PORT = 3; + HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_NETDEV_LOGICAL_PORT = 4; + HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_NETDEV_L3 = 5; + HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_GENETLINK = 6; } enum HostifTableEntryType { - HOSTIF_TABLE_ENTRY_TYPE_UNSPECIFIED = 0; - HOSTIF_TABLE_ENTRY_TYPE_PORT = 1; - HOSTIF_TABLE_ENTRY_TYPE_LAG = 2; - HOSTIF_TABLE_ENTRY_TYPE_VLAN = 3; - HOSTIF_TABLE_ENTRY_TYPE_TRAP_ID = 4; - HOSTIF_TABLE_ENTRY_TYPE_WILDCARD = 5; + HOSTIF_TABLE_ENTRY_TYPE_UNSPECIFIED = 0; + HOSTIF_TABLE_ENTRY_TYPE_PORT = 1; + HOSTIF_TABLE_ENTRY_TYPE_LAG = 2; + HOSTIF_TABLE_ENTRY_TYPE_VLAN = 3; + HOSTIF_TABLE_ENTRY_TYPE_TRAP_ID = 4; + HOSTIF_TABLE_ENTRY_TYPE_WILDCARD = 5; } enum HostifTrapType { - HOSTIF_TRAP_TYPE_UNSPECIFIED = 0; - HOSTIF_TRAP_TYPE_START = 1; - HOSTIF_TRAP_TYPE_STP = 2; - HOSTIF_TRAP_TYPE_LACP = 3; - HOSTIF_TRAP_TYPE_EAPOL = 4; - HOSTIF_TRAP_TYPE_LLDP = 5; - HOSTIF_TRAP_TYPE_PVRST = 6; - HOSTIF_TRAP_TYPE_IGMP_TYPE_QUERY = 7; - HOSTIF_TRAP_TYPE_IGMP_TYPE_LEAVE = 8; - HOSTIF_TRAP_TYPE_IGMP_TYPE_V1_REPORT = 9; - HOSTIF_TRAP_TYPE_IGMP_TYPE_V2_REPORT = 10; - HOSTIF_TRAP_TYPE_IGMP_TYPE_V3_REPORT = 11; - HOSTIF_TRAP_TYPE_SAMPLEPACKET = 12; - HOSTIF_TRAP_TYPE_UDLD = 13; - HOSTIF_TRAP_TYPE_CDP = 14; - HOSTIF_TRAP_TYPE_VTP = 15; - HOSTIF_TRAP_TYPE_DTP = 16; - HOSTIF_TRAP_TYPE_PAGP = 17; - HOSTIF_TRAP_TYPE_PTP = 18; - HOSTIF_TRAP_TYPE_PTP_TX_EVENT = 19; - HOSTIF_TRAP_TYPE_DHCP_L2 = 20; - HOSTIF_TRAP_TYPE_DHCPV6_L2 = 21; - HOSTIF_TRAP_TYPE_SWITCH_CUSTOM_RANGE_BASE = 22; - HOSTIF_TRAP_TYPE_ARP_REQUEST = 23; - HOSTIF_TRAP_TYPE_ARP_RESPONSE = 24; - HOSTIF_TRAP_TYPE_DHCP = 25; - HOSTIF_TRAP_TYPE_OSPF = 26; - HOSTIF_TRAP_TYPE_PIM = 27; - HOSTIF_TRAP_TYPE_VRRP = 28; - HOSTIF_TRAP_TYPE_DHCPV6 = 29; - HOSTIF_TRAP_TYPE_OSPFV6 = 30; - HOSTIF_TRAP_TYPE_VRRPV6 = 31; - HOSTIF_TRAP_TYPE_IPV6_NEIGHBOR_DISCOVERY = 32; - HOSTIF_TRAP_TYPE_IPV6_MLD_V1_V2 = 33; - HOSTIF_TRAP_TYPE_IPV6_MLD_V1_REPORT = 34; - HOSTIF_TRAP_TYPE_IPV6_MLD_V1_DONE = 35; - HOSTIF_TRAP_TYPE_MLD_V2_REPORT = 36; - HOSTIF_TRAP_TYPE_UNKNOWN_L3_MULTICAST = 37; - HOSTIF_TRAP_TYPE_SNAT_MISS = 38; - HOSTIF_TRAP_TYPE_DNAT_MISS = 39; - HOSTIF_TRAP_TYPE_NAT_HAIRPIN = 40; - HOSTIF_TRAP_TYPE_IPV6_NEIGHBOR_SOLICITATION = 41; - HOSTIF_TRAP_TYPE_IPV6_NEIGHBOR_ADVERTISEMENT = 42; - HOSTIF_TRAP_TYPE_ISIS = 43; - HOSTIF_TRAP_TYPE_ROUTER_CUSTOM_RANGE_BASE = 44; - HOSTIF_TRAP_TYPE_IP2ME = 45; - HOSTIF_TRAP_TYPE_SSH = 46; - HOSTIF_TRAP_TYPE_SNMP = 47; - HOSTIF_TRAP_TYPE_BGP = 48; - HOSTIF_TRAP_TYPE_BGPV6 = 49; - HOSTIF_TRAP_TYPE_BFD = 50; - HOSTIF_TRAP_TYPE_BFDV6 = 51; - HOSTIF_TRAP_TYPE_BFD_MICRO = 52; - HOSTIF_TRAP_TYPE_BFDV6_MICRO = 53; - HOSTIF_TRAP_TYPE_LDP = 54; - HOSTIF_TRAP_TYPE_LOCAL_IP_CUSTOM_RANGE_BASE = 55; - HOSTIF_TRAP_TYPE_L3_MTU_ERROR = 56; - HOSTIF_TRAP_TYPE_TTL_ERROR = 57; - HOSTIF_TRAP_TYPE_STATIC_FDB_MOVE = 58; - HOSTIF_TRAP_TYPE_PIPELINE_DISCARD_EGRESS_BUFFER = 59; - HOSTIF_TRAP_TYPE_PIPELINE_DISCARD_WRED = 60; - HOSTIF_TRAP_TYPE_PIPELINE_DISCARD_ROUTER = 61; - HOSTIF_TRAP_TYPE_MPLS_TTL_ERROR = 62; - HOSTIF_TRAP_TYPE_MPLS_ROUTER_ALERT_LABEL = 63; - HOSTIF_TRAP_TYPE_MPLS_LABEL_LOOKUP_MISS = 64; - HOSTIF_TRAP_TYPE_CUSTOM_EXCEPTION_RANGE_BASE = 65; - HOSTIF_TRAP_TYPE_END = 66; + HOSTIF_TRAP_TYPE_UNSPECIFIED = 0; + HOSTIF_TRAP_TYPE_START = 1; + HOSTIF_TRAP_TYPE_STP = 2; + HOSTIF_TRAP_TYPE_LACP = 3; + HOSTIF_TRAP_TYPE_EAPOL = 4; + HOSTIF_TRAP_TYPE_LLDP = 5; + HOSTIF_TRAP_TYPE_PVRST = 6; + HOSTIF_TRAP_TYPE_IGMP_TYPE_QUERY = 7; + HOSTIF_TRAP_TYPE_IGMP_TYPE_LEAVE = 8; + HOSTIF_TRAP_TYPE_IGMP_TYPE_V1_REPORT = 9; + HOSTIF_TRAP_TYPE_IGMP_TYPE_V2_REPORT = 10; + HOSTIF_TRAP_TYPE_IGMP_TYPE_V3_REPORT = 11; + HOSTIF_TRAP_TYPE_SAMPLEPACKET = 12; + HOSTIF_TRAP_TYPE_UDLD = 13; + HOSTIF_TRAP_TYPE_CDP = 14; + HOSTIF_TRAP_TYPE_VTP = 15; + HOSTIF_TRAP_TYPE_DTP = 16; + HOSTIF_TRAP_TYPE_PAGP = 17; + HOSTIF_TRAP_TYPE_PTP = 18; + HOSTIF_TRAP_TYPE_PTP_TX_EVENT = 19; + HOSTIF_TRAP_TYPE_DHCP_L2 = 20; + HOSTIF_TRAP_TYPE_DHCPV6_L2 = 21; + HOSTIF_TRAP_TYPE_SWITCH_CUSTOM_RANGE_BASE = 22; + HOSTIF_TRAP_TYPE_ARP_REQUEST = 23; + HOSTIF_TRAP_TYPE_ARP_RESPONSE = 24; + HOSTIF_TRAP_TYPE_DHCP = 25; + HOSTIF_TRAP_TYPE_OSPF = 26; + HOSTIF_TRAP_TYPE_PIM = 27; + HOSTIF_TRAP_TYPE_VRRP = 28; + HOSTIF_TRAP_TYPE_DHCPV6 = 29; + HOSTIF_TRAP_TYPE_OSPFV6 = 30; + HOSTIF_TRAP_TYPE_VRRPV6 = 31; + HOSTIF_TRAP_TYPE_IPV6_NEIGHBOR_DISCOVERY = 32; + HOSTIF_TRAP_TYPE_IPV6_MLD_V1_V2 = 33; + HOSTIF_TRAP_TYPE_IPV6_MLD_V1_REPORT = 34; + HOSTIF_TRAP_TYPE_IPV6_MLD_V1_DONE = 35; + HOSTIF_TRAP_TYPE_MLD_V2_REPORT = 36; + HOSTIF_TRAP_TYPE_UNKNOWN_L3_MULTICAST = 37; + HOSTIF_TRAP_TYPE_SNAT_MISS = 38; + HOSTIF_TRAP_TYPE_DNAT_MISS = 39; + HOSTIF_TRAP_TYPE_NAT_HAIRPIN = 40; + HOSTIF_TRAP_TYPE_IPV6_NEIGHBOR_SOLICITATION = 41; + HOSTIF_TRAP_TYPE_IPV6_NEIGHBOR_ADVERTISEMENT = 42; + HOSTIF_TRAP_TYPE_ISIS = 43; + HOSTIF_TRAP_TYPE_ROUTER_CUSTOM_RANGE_BASE = 44; + HOSTIF_TRAP_TYPE_IP2ME = 45; + HOSTIF_TRAP_TYPE_SSH = 46; + HOSTIF_TRAP_TYPE_SNMP = 47; + HOSTIF_TRAP_TYPE_BGP = 48; + HOSTIF_TRAP_TYPE_BGPV6 = 49; + HOSTIF_TRAP_TYPE_BFD = 50; + HOSTIF_TRAP_TYPE_BFDV6 = 51; + HOSTIF_TRAP_TYPE_BFD_MICRO = 52; + HOSTIF_TRAP_TYPE_BFDV6_MICRO = 53; + HOSTIF_TRAP_TYPE_LDP = 54; + HOSTIF_TRAP_TYPE_LOCAL_IP_CUSTOM_RANGE_BASE = 55; + HOSTIF_TRAP_TYPE_L3_MTU_ERROR = 56; + HOSTIF_TRAP_TYPE_TTL_ERROR = 57; + HOSTIF_TRAP_TYPE_STATIC_FDB_MOVE = 58; + HOSTIF_TRAP_TYPE_PIPELINE_DISCARD_EGRESS_BUFFER = 59; + HOSTIF_TRAP_TYPE_PIPELINE_DISCARD_WRED = 60; + HOSTIF_TRAP_TYPE_PIPELINE_DISCARD_ROUTER = 61; + HOSTIF_TRAP_TYPE_MPLS_TTL_ERROR = 62; + HOSTIF_TRAP_TYPE_MPLS_ROUTER_ALERT_LABEL = 63; + HOSTIF_TRAP_TYPE_MPLS_LABEL_LOOKUP_MISS = 64; + HOSTIF_TRAP_TYPE_CUSTOM_EXCEPTION_RANGE_BASE = 65; + HOSTIF_TRAP_TYPE_END = 66; } enum HostifTxType { - HOSTIF_TX_TYPE_UNSPECIFIED = 0; - HOSTIF_TX_TYPE_PIPELINE_BYPASS = 1; - HOSTIF_TX_TYPE_PIPELINE_LOOKUP = 2; - HOSTIF_TX_TYPE_CUSTOM_RANGE_BASE = 3; + HOSTIF_TX_TYPE_UNSPECIFIED = 0; + HOSTIF_TX_TYPE_PIPELINE_BYPASS = 1; + HOSTIF_TX_TYPE_PIPELINE_LOOKUP = 2; + HOSTIF_TX_TYPE_CUSTOM_RANGE_BASE = 3; } enum HostifType { - HOSTIF_TYPE_UNSPECIFIED = 0; - HOSTIF_TYPE_NETDEV = 1; - HOSTIF_TYPE_FD = 2; - HOSTIF_TYPE_GENETLINK = 3; + HOSTIF_TYPE_UNSPECIFIED = 0; + HOSTIF_TYPE_NETDEV = 1; + HOSTIF_TYPE_FD = 2; + HOSTIF_TYPE_GENETLINK = 3; } enum HostifUserDefinedTrapType { - HOSTIF_USER_DEFINED_TRAP_TYPE_UNSPECIFIED = 0; - HOSTIF_USER_DEFINED_TRAP_TYPE_START = 1; - HOSTIF_USER_DEFINED_TRAP_TYPE_ROUTER = 2; - HOSTIF_USER_DEFINED_TRAP_TYPE_NEIGHBOR = 3; - HOSTIF_USER_DEFINED_TRAP_TYPE_NEIGH = 4; - HOSTIF_USER_DEFINED_TRAP_TYPE_ACL = 5; - HOSTIF_USER_DEFINED_TRAP_TYPE_FDB = 6; - HOSTIF_USER_DEFINED_TRAP_TYPE_INSEG_ENTRY = 7; - HOSTIF_USER_DEFINED_TRAP_TYPE_CUSTOM_RANGE_BASE = 8; - HOSTIF_USER_DEFINED_TRAP_TYPE_END = 9; + HOSTIF_USER_DEFINED_TRAP_TYPE_UNSPECIFIED = 0; + HOSTIF_USER_DEFINED_TRAP_TYPE_START = 1; + HOSTIF_USER_DEFINED_TRAP_TYPE_ROUTER = 2; + HOSTIF_USER_DEFINED_TRAP_TYPE_NEIGHBOR = 3; + HOSTIF_USER_DEFINED_TRAP_TYPE_NEIGH = 4; + HOSTIF_USER_DEFINED_TRAP_TYPE_ACL = 5; + HOSTIF_USER_DEFINED_TRAP_TYPE_FDB = 6; + HOSTIF_USER_DEFINED_TRAP_TYPE_INSEG_ENTRY = 7; + HOSTIF_USER_DEFINED_TRAP_TYPE_CUSTOM_RANGE_BASE = 8; + HOSTIF_USER_DEFINED_TRAP_TYPE_END = 9; } enum HostifVlanTag { - HOSTIF_VLAN_TAG_UNSPECIFIED = 0; - HOSTIF_VLAN_TAG_STRIP = 1; - HOSTIF_VLAN_TAG_KEEP = 2; - HOSTIF_VLAN_TAG_ORIGINAL = 3; + HOSTIF_VLAN_TAG_UNSPECIFIED = 0; + HOSTIF_VLAN_TAG_STRIP = 1; + HOSTIF_VLAN_TAG_KEEP = 2; + HOSTIF_VLAN_TAG_ORIGINAL = 3; } enum InDropReason { - IN_DROP_REASON_UNSPECIFIED = 0; - IN_DROP_REASON_START = 1; - IN_DROP_REASON_L2_ANY = 2; - IN_DROP_REASON_SMAC_MULTICAST = 3; - IN_DROP_REASON_SMAC_EQUALS_DMAC = 4; - IN_DROP_REASON_DMAC_RESERVED = 5; - IN_DROP_REASON_VLAN_TAG_NOT_ALLOWED = 6; - IN_DROP_REASON_INGRESS_VLAN_FILTER = 7; - IN_DROP_REASON_INGRESS_STP_FILTER = 8; - IN_DROP_REASON_FDB_UC_DISCARD = 9; - IN_DROP_REASON_FDB_MC_DISCARD = 10; - IN_DROP_REASON_L2_LOOPBACK_FILTER = 11; - IN_DROP_REASON_EXCEEDS_L2_MTU = 12; - IN_DROP_REASON_L3_ANY = 13; - IN_DROP_REASON_EXCEEDS_L3_MTU = 14; - IN_DROP_REASON_TTL = 15; - IN_DROP_REASON_L3_LOOPBACK_FILTER = 16; - IN_DROP_REASON_NON_ROUTABLE = 17; - IN_DROP_REASON_NO_L3_HEADER = 18; - IN_DROP_REASON_IP_HEADER_ERROR = 19; - IN_DROP_REASON_UC_DIP_MC_DMAC = 20; - IN_DROP_REASON_DIP_LOOPBACK = 21; - IN_DROP_REASON_SIP_LOOPBACK = 22; - IN_DROP_REASON_SIP_MC = 23; - IN_DROP_REASON_SIP_CLASS_E = 24; - IN_DROP_REASON_SIP_UNSPECIFIED = 25; - IN_DROP_REASON_MC_DMAC_MISMATCH = 26; - IN_DROP_REASON_SIP_EQUALS_DIP = 27; - IN_DROP_REASON_SIP_BC = 28; - IN_DROP_REASON_DIP_LOCAL = 29; - IN_DROP_REASON_DIP_LINK_LOCAL = 30; - IN_DROP_REASON_SIP_LINK_LOCAL = 31; - IN_DROP_REASON_IPV6_MC_SCOPE0 = 32; - IN_DROP_REASON_IPV6_MC_SCOPE1 = 33; - IN_DROP_REASON_IRIF_DISABLED = 34; - IN_DROP_REASON_ERIF_DISABLED = 35; - IN_DROP_REASON_LPM4_MISS = 36; - IN_DROP_REASON_LPM6_MISS = 37; - IN_DROP_REASON_BLACKHOLE_ROUTE = 38; - IN_DROP_REASON_BLACKHOLE_ARP = 39; - IN_DROP_REASON_UNRESOLVED_NEXT_HOP = 40; - IN_DROP_REASON_L3_EGRESS_LINK_DOWN = 41; - IN_DROP_REASON_DECAP_ERROR = 42; - IN_DROP_REASON_ACL_ANY = 43; - IN_DROP_REASON_ACL_INGRESS_PORT = 44; - IN_DROP_REASON_ACL_INGRESS_LAG = 45; - IN_DROP_REASON_ACL_INGRESS_VLAN = 46; - IN_DROP_REASON_ACL_INGRESS_RIF = 47; - IN_DROP_REASON_ACL_INGRESS_SWITCH = 48; - IN_DROP_REASON_ACL_EGRESS_PORT = 49; - IN_DROP_REASON_ACL_EGRESS_LAG = 50; - IN_DROP_REASON_ACL_EGRESS_VLAN = 51; - IN_DROP_REASON_ACL_EGRESS_RIF = 52; - IN_DROP_REASON_ACL_EGRESS_SWITCH = 53; - IN_DROP_REASON_FDB_AND_BLACKHOLE_DISCARDS = 54; - IN_DROP_REASON_MPLS_MISS = 55; - IN_DROP_REASON_SRV6_LOCAL_SID_DROP = 56; - IN_DROP_REASON_END = 57; - IN_DROP_REASON_CUSTOM_RANGE_BASE = 58; - IN_DROP_REASON_CUSTOM_RANGE_END = 59; + IN_DROP_REASON_UNSPECIFIED = 0; + IN_DROP_REASON_START = 1; + IN_DROP_REASON_L2_ANY = 2; + IN_DROP_REASON_SMAC_MULTICAST = 3; + IN_DROP_REASON_SMAC_EQUALS_DMAC = 4; + IN_DROP_REASON_DMAC_RESERVED = 5; + IN_DROP_REASON_VLAN_TAG_NOT_ALLOWED = 6; + IN_DROP_REASON_INGRESS_VLAN_FILTER = 7; + IN_DROP_REASON_INGRESS_STP_FILTER = 8; + IN_DROP_REASON_FDB_UC_DISCARD = 9; + IN_DROP_REASON_FDB_MC_DISCARD = 10; + IN_DROP_REASON_L2_LOOPBACK_FILTER = 11; + IN_DROP_REASON_EXCEEDS_L2_MTU = 12; + IN_DROP_REASON_L3_ANY = 13; + IN_DROP_REASON_EXCEEDS_L3_MTU = 14; + IN_DROP_REASON_TTL = 15; + IN_DROP_REASON_L3_LOOPBACK_FILTER = 16; + IN_DROP_REASON_NON_ROUTABLE = 17; + IN_DROP_REASON_NO_L3_HEADER = 18; + IN_DROP_REASON_IP_HEADER_ERROR = 19; + IN_DROP_REASON_UC_DIP_MC_DMAC = 20; + IN_DROP_REASON_DIP_LOOPBACK = 21; + IN_DROP_REASON_SIP_LOOPBACK = 22; + IN_DROP_REASON_SIP_MC = 23; + IN_DROP_REASON_SIP_CLASS_E = 24; + IN_DROP_REASON_SIP_UNSPECIFIED = 25; + IN_DROP_REASON_MC_DMAC_MISMATCH = 26; + IN_DROP_REASON_SIP_EQUALS_DIP = 27; + IN_DROP_REASON_SIP_BC = 28; + IN_DROP_REASON_DIP_LOCAL = 29; + IN_DROP_REASON_DIP_LINK_LOCAL = 30; + IN_DROP_REASON_SIP_LINK_LOCAL = 31; + IN_DROP_REASON_IPV6_MC_SCOPE0 = 32; + IN_DROP_REASON_IPV6_MC_SCOPE1 = 33; + IN_DROP_REASON_IRIF_DISABLED = 34; + IN_DROP_REASON_ERIF_DISABLED = 35; + IN_DROP_REASON_LPM4_MISS = 36; + IN_DROP_REASON_LPM6_MISS = 37; + IN_DROP_REASON_BLACKHOLE_ROUTE = 38; + IN_DROP_REASON_BLACKHOLE_ARP = 39; + IN_DROP_REASON_UNRESOLVED_NEXT_HOP = 40; + IN_DROP_REASON_L3_EGRESS_LINK_DOWN = 41; + IN_DROP_REASON_DECAP_ERROR = 42; + IN_DROP_REASON_ACL_ANY = 43; + IN_DROP_REASON_ACL_INGRESS_PORT = 44; + IN_DROP_REASON_ACL_INGRESS_LAG = 45; + IN_DROP_REASON_ACL_INGRESS_VLAN = 46; + IN_DROP_REASON_ACL_INGRESS_RIF = 47; + IN_DROP_REASON_ACL_INGRESS_SWITCH = 48; + IN_DROP_REASON_ACL_EGRESS_PORT = 49; + IN_DROP_REASON_ACL_EGRESS_LAG = 50; + IN_DROP_REASON_ACL_EGRESS_VLAN = 51; + IN_DROP_REASON_ACL_EGRESS_RIF = 52; + IN_DROP_REASON_ACL_EGRESS_SWITCH = 53; + IN_DROP_REASON_FDB_AND_BLACKHOLE_DISCARDS = 54; + IN_DROP_REASON_MPLS_MISS = 55; + IN_DROP_REASON_SRV6_LOCAL_SID_DROP = 56; + IN_DROP_REASON_END = 57; + IN_DROP_REASON_CUSTOM_RANGE_BASE = 58; + IN_DROP_REASON_CUSTOM_RANGE_END = 59; } enum IngressPriorityGroupStat { - INGRESS_PRIORITY_GROUP_STAT_UNSPECIFIED = 0; - INGRESS_PRIORITY_GROUP_STAT_PACKETS = 1; - INGRESS_PRIORITY_GROUP_STAT_BYTES = 2; - INGRESS_PRIORITY_GROUP_STAT_CURR_OCCUPANCY_BYTES = 3; - INGRESS_PRIORITY_GROUP_STAT_WATERMARK_BYTES = 4; - INGRESS_PRIORITY_GROUP_STAT_SHARED_CURR_OCCUPANCY_BYTES = 5; - INGRESS_PRIORITY_GROUP_STAT_SHARED_WATERMARK_BYTES = 6; - INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_CURR_OCCUPANCY_BYTES = 7; - INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_WATERMARK_BYTES = 8; - INGRESS_PRIORITY_GROUP_STAT_DROPPED_PACKETS = 9; - INGRESS_PRIORITY_GROUP_STAT_CUSTOM_RANGE_BASE = 10; + INGRESS_PRIORITY_GROUP_STAT_UNSPECIFIED = 0; + INGRESS_PRIORITY_GROUP_STAT_PACKETS = 1; + INGRESS_PRIORITY_GROUP_STAT_BYTES = 2; + INGRESS_PRIORITY_GROUP_STAT_CURR_OCCUPANCY_BYTES = 3; + INGRESS_PRIORITY_GROUP_STAT_WATERMARK_BYTES = 4; + INGRESS_PRIORITY_GROUP_STAT_SHARED_CURR_OCCUPANCY_BYTES = 5; + INGRESS_PRIORITY_GROUP_STAT_SHARED_WATERMARK_BYTES = 6; + INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_CURR_OCCUPANCY_BYTES = 7; + INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_WATERMARK_BYTES = 8; + INGRESS_PRIORITY_GROUP_STAT_DROPPED_PACKETS = 9; + INGRESS_PRIORITY_GROUP_STAT_CUSTOM_RANGE_BASE = 10; } enum InsegEntryPopQosMode { - INSEG_ENTRY_POP_QOS_MODE_UNSPECIFIED = 0; - INSEG_ENTRY_POP_QOS_MODE_UNIFORM = 1; - INSEG_ENTRY_POP_QOS_MODE_PIPE = 2; + INSEG_ENTRY_POP_QOS_MODE_UNSPECIFIED = 0; + INSEG_ENTRY_POP_QOS_MODE_UNIFORM = 1; + INSEG_ENTRY_POP_QOS_MODE_PIPE = 2; } enum InsegEntryPopTtlMode { - INSEG_ENTRY_POP_TTL_MODE_UNSPECIFIED = 0; - INSEG_ENTRY_POP_TTL_MODE_UNIFORM = 1; - INSEG_ENTRY_POP_TTL_MODE_PIPE = 2; + INSEG_ENTRY_POP_TTL_MODE_UNSPECIFIED = 0; + INSEG_ENTRY_POP_TTL_MODE_UNIFORM = 1; + INSEG_ENTRY_POP_TTL_MODE_PIPE = 2; } enum InsegEntryPscType { - INSEG_ENTRY_PSC_TYPE_UNSPECIFIED = 0; - INSEG_ENTRY_PSC_TYPE_ELSP = 1; - INSEG_ENTRY_PSC_TYPE_LLSP = 2; + INSEG_ENTRY_PSC_TYPE_UNSPECIFIED = 0; + INSEG_ENTRY_PSC_TYPE_ELSP = 1; + INSEG_ENTRY_PSC_TYPE_LLSP = 2; } enum IpAddrFamily { - IP_ADDR_FAMILY_UNSPECIFIED = 0; - IP_ADDR_FAMILY_IPV4 = 1; - IP_ADDR_FAMILY_IPV6 = 2; + IP_ADDR_FAMILY_UNSPECIFIED = 0; + IP_ADDR_FAMILY_IPV4 = 1; + IP_ADDR_FAMILY_IPV6 = 2; } enum IpmcEntryType { - IPMC_ENTRY_TYPE_UNSPECIFIED = 0; - IPMC_ENTRY_TYPE_SG = 1; - IPMC_ENTRY_TYPE_XG = 2; + IPMC_ENTRY_TYPE_UNSPECIFIED = 0; + IPMC_ENTRY_TYPE_SG = 1; + IPMC_ENTRY_TYPE_XG = 2; } enum IpsecCipher { - IPSEC_CIPHER_UNSPECIFIED = 0; - IPSEC_CIPHER_AES128_GCM16 = 1; - IPSEC_CIPHER_AES256_GCM16 = 2; - IPSEC_CIPHER_AES128_GMAC = 3; - IPSEC_CIPHER_AES256_GMAC = 4; + IPSEC_CIPHER_UNSPECIFIED = 0; + IPSEC_CIPHER_AES128_GCM16 = 1; + IPSEC_CIPHER_AES256_GCM16 = 2; + IPSEC_CIPHER_AES128_GMAC = 3; + IPSEC_CIPHER_AES256_GMAC = 4; } enum IpsecDirection { - IPSEC_DIRECTION_UNSPECIFIED = 0; - IPSEC_DIRECTION_EGRESS = 1; - IPSEC_DIRECTION_INGRESS = 2; + IPSEC_DIRECTION_UNSPECIFIED = 0; + IPSEC_DIRECTION_EGRESS = 1; + IPSEC_DIRECTION_INGRESS = 2; } enum IpsecPortStat { - IPSEC_PORT_STAT_UNSPECIFIED = 0; - IPSEC_PORT_STAT_TX_ERROR_PKTS = 1; - IPSEC_PORT_STAT_TX_IPSEC_PKTS = 2; - IPSEC_PORT_STAT_TX_NON_IPSEC_PKTS = 3; - IPSEC_PORT_STAT_RX_ERROR_PKTS = 4; - IPSEC_PORT_STAT_RX_IPSEC_PKTS = 5; - IPSEC_PORT_STAT_RX_NON_IPSEC_PKTS = 6; + IPSEC_PORT_STAT_UNSPECIFIED = 0; + IPSEC_PORT_STAT_TX_ERROR_PKTS = 1; + IPSEC_PORT_STAT_TX_IPSEC_PKTS = 2; + IPSEC_PORT_STAT_TX_NON_IPSEC_PKTS = 3; + IPSEC_PORT_STAT_RX_ERROR_PKTS = 4; + IPSEC_PORT_STAT_RX_IPSEC_PKTS = 5; + IPSEC_PORT_STAT_RX_NON_IPSEC_PKTS = 6; } enum IpsecSaOctetCountStatus { - IPSEC_SA_OCTET_COUNT_STATUS_UNSPECIFIED = 0; - IPSEC_SA_OCTET_COUNT_STATUS_BELOW_LOW_WATERMARK = 1; - IPSEC_SA_OCTET_COUNT_STATUS_BELOW_HIGH_WATERMARK = 2; - IPSEC_SA_OCTET_COUNT_STATUS_ABOVE_HIGH_WATERMARK = 3; + IPSEC_SA_OCTET_COUNT_STATUS_UNSPECIFIED = 0; + IPSEC_SA_OCTET_COUNT_STATUS_BELOW_LOW_WATERMARK = 1; + IPSEC_SA_OCTET_COUNT_STATUS_BELOW_HIGH_WATERMARK = 2; + IPSEC_SA_OCTET_COUNT_STATUS_ABOVE_HIGH_WATERMARK = 3; } enum IpsecSaStat { - IPSEC_SA_STAT_UNSPECIFIED = 0; - IPSEC_SA_STAT_PROTECTED_OCTETS = 1; - IPSEC_SA_STAT_PROTECTED_PKTS = 2; - IPSEC_SA_STAT_GOOD_PKTS = 3; - IPSEC_SA_STAT_BAD_HEADER_PKTS_IN = 4; - IPSEC_SA_STAT_REPLAYED_PKTS_IN = 5; - IPSEC_SA_STAT_LATE_PKTS_IN = 6; - IPSEC_SA_STAT_BAD_TRAILER_PKTS_IN = 7; - IPSEC_SA_STAT_AUTH_FAIL_PKTS_IN = 8; - IPSEC_SA_STAT_DUMMY_DROPPED_PKTS_IN = 9; - IPSEC_SA_STAT_OTHER_DROPPED_PKTS = 10; + IPSEC_SA_STAT_UNSPECIFIED = 0; + IPSEC_SA_STAT_PROTECTED_OCTETS = 1; + IPSEC_SA_STAT_PROTECTED_PKTS = 2; + IPSEC_SA_STAT_GOOD_PKTS = 3; + IPSEC_SA_STAT_BAD_HEADER_PKTS_IN = 4; + IPSEC_SA_STAT_REPLAYED_PKTS_IN = 5; + IPSEC_SA_STAT_LATE_PKTS_IN = 6; + IPSEC_SA_STAT_BAD_TRAILER_PKTS_IN = 7; + IPSEC_SA_STAT_AUTH_FAIL_PKTS_IN = 8; + IPSEC_SA_STAT_DUMMY_DROPPED_PKTS_IN = 9; + IPSEC_SA_STAT_OTHER_DROPPED_PKTS = 10; } enum IsolationGroupType { - ISOLATION_GROUP_TYPE_UNSPECIFIED = 0; - ISOLATION_GROUP_TYPE_PORT = 1; - ISOLATION_GROUP_TYPE_BRIDGE_PORT = 2; + ISOLATION_GROUP_TYPE_UNSPECIFIED = 0; + ISOLATION_GROUP_TYPE_PORT = 1; + ISOLATION_GROUP_TYPE_BRIDGE_PORT = 2; } enum L2mcEntryType { - L2MC_ENTRY_TYPE_UNSPECIFIED = 0; - L2MC_ENTRY_TYPE_SG = 1; - L2MC_ENTRY_TYPE_XG = 2; + L2MC_ENTRY_TYPE_UNSPECIFIED = 0; + L2MC_ENTRY_TYPE_SG = 1; + L2MC_ENTRY_TYPE_XG = 2; } enum LogLevel { - LOG_LEVEL_UNSPECIFIED = 0; - LOG_LEVEL_DEBUG = 1; - LOG_LEVEL_INFO = 2; - LOG_LEVEL_NOTICE = 3; - LOG_LEVEL_WARN = 4; - LOG_LEVEL_ERROR = 5; - LOG_LEVEL_CRITICAL = 6; + LOG_LEVEL_UNSPECIFIED = 0; + LOG_LEVEL_DEBUG = 1; + LOG_LEVEL_INFO = 2; + LOG_LEVEL_NOTICE = 3; + LOG_LEVEL_WARN = 4; + LOG_LEVEL_ERROR = 5; + LOG_LEVEL_CRITICAL = 6; } enum MacsecCipherSuite { - MACSEC_CIPHER_SUITE_UNSPECIFIED = 0; - MACSEC_CIPHER_SUITE_GCM_AES_128 = 1; - MACSEC_CIPHER_SUITE_GCM_AES_256 = 2; - MACSEC_CIPHER_SUITE_GCM_AES_XPN_128 = 3; - MACSEC_CIPHER_SUITE_GCM_AES_XPN_256 = 4; + MACSEC_CIPHER_SUITE_UNSPECIFIED = 0; + MACSEC_CIPHER_SUITE_GCM_AES_128 = 1; + MACSEC_CIPHER_SUITE_GCM_AES_256 = 2; + MACSEC_CIPHER_SUITE_GCM_AES_XPN_128 = 3; + MACSEC_CIPHER_SUITE_GCM_AES_XPN_256 = 4; } enum MacsecDirection { - MACSEC_DIRECTION_UNSPECIFIED = 0; - MACSEC_DIRECTION_EGRESS = 1; - MACSEC_DIRECTION_INGRESS = 2; + MACSEC_DIRECTION_UNSPECIFIED = 0; + MACSEC_DIRECTION_EGRESS = 1; + MACSEC_DIRECTION_INGRESS = 2; } enum MacsecFlowStat { - MACSEC_FLOW_STAT_UNSPECIFIED = 0; - MACSEC_FLOW_STAT_OTHER_ERR = 1; - MACSEC_FLOW_STAT_OCTETS_UNCONTROLLED = 2; - MACSEC_FLOW_STAT_OCTETS_CONTROLLED = 3; - MACSEC_FLOW_STAT_OUT_OCTETS_COMMON = 4; - MACSEC_FLOW_STAT_UCAST_PKTS_UNCONTROLLED = 5; - MACSEC_FLOW_STAT_UCAST_PKTS_CONTROLLED = 6; - MACSEC_FLOW_STAT_MULTICAST_PKTS_UNCONTROLLED = 7; - MACSEC_FLOW_STAT_MULTICAST_PKTS_CONTROLLED = 8; - MACSEC_FLOW_STAT_BROADCAST_PKTS_UNCONTROLLED = 9; - MACSEC_FLOW_STAT_BROADCAST_PKTS_CONTROLLED = 10; - MACSEC_FLOW_STAT_CONTROL_PKTS = 11; - MACSEC_FLOW_STAT_PKTS_UNTAGGED = 12; - MACSEC_FLOW_STAT_IN_TAGGED_CONTROL_PKTS = 13; - MACSEC_FLOW_STAT_OUT_PKTS_TOO_LONG = 14; - MACSEC_FLOW_STAT_IN_PKTS_NO_TAG = 15; - MACSEC_FLOW_STAT_IN_PKTS_BAD_TAG = 16; - MACSEC_FLOW_STAT_IN_PKTS_NO_SCI = 17; - MACSEC_FLOW_STAT_IN_PKTS_UNKNOWN_SCI = 18; - MACSEC_FLOW_STAT_IN_PKTS_OVERRUN = 19; + MACSEC_FLOW_STAT_UNSPECIFIED = 0; + MACSEC_FLOW_STAT_OTHER_ERR = 1; + MACSEC_FLOW_STAT_OCTETS_UNCONTROLLED = 2; + MACSEC_FLOW_STAT_OCTETS_CONTROLLED = 3; + MACSEC_FLOW_STAT_OUT_OCTETS_COMMON = 4; + MACSEC_FLOW_STAT_UCAST_PKTS_UNCONTROLLED = 5; + MACSEC_FLOW_STAT_UCAST_PKTS_CONTROLLED = 6; + MACSEC_FLOW_STAT_MULTICAST_PKTS_UNCONTROLLED = 7; + MACSEC_FLOW_STAT_MULTICAST_PKTS_CONTROLLED = 8; + MACSEC_FLOW_STAT_BROADCAST_PKTS_UNCONTROLLED = 9; + MACSEC_FLOW_STAT_BROADCAST_PKTS_CONTROLLED = 10; + MACSEC_FLOW_STAT_CONTROL_PKTS = 11; + MACSEC_FLOW_STAT_PKTS_UNTAGGED = 12; + MACSEC_FLOW_STAT_IN_TAGGED_CONTROL_PKTS = 13; + MACSEC_FLOW_STAT_OUT_PKTS_TOO_LONG = 14; + MACSEC_FLOW_STAT_IN_PKTS_NO_TAG = 15; + MACSEC_FLOW_STAT_IN_PKTS_BAD_TAG = 16; + MACSEC_FLOW_STAT_IN_PKTS_NO_SCI = 17; + MACSEC_FLOW_STAT_IN_PKTS_UNKNOWN_SCI = 18; + MACSEC_FLOW_STAT_IN_PKTS_OVERRUN = 19; } enum MacsecPortStat { - MACSEC_PORT_STAT_UNSPECIFIED = 0; - MACSEC_PORT_STAT_PRE_MACSEC_DROP_PKTS = 1; - MACSEC_PORT_STAT_CONTROL_PKTS = 2; - MACSEC_PORT_STAT_DATA_PKTS = 3; + MACSEC_PORT_STAT_UNSPECIFIED = 0; + MACSEC_PORT_STAT_PRE_MACSEC_DROP_PKTS = 1; + MACSEC_PORT_STAT_CONTROL_PKTS = 2; + MACSEC_PORT_STAT_DATA_PKTS = 3; } enum MacsecSaStat { - MACSEC_SA_STAT_UNSPECIFIED = 0; - MACSEC_SA_STAT_OCTETS_ENCRYPTED = 1; - MACSEC_SA_STAT_OCTETS_PROTECTED = 2; - MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED = 3; - MACSEC_SA_STAT_OUT_PKTS_PROTECTED = 4; - MACSEC_SA_STAT_IN_PKTS_UNCHECKED = 5; - MACSEC_SA_STAT_IN_PKTS_DELAYED = 6; - MACSEC_SA_STAT_IN_PKTS_LATE = 7; - MACSEC_SA_STAT_IN_PKTS_INVALID = 8; - MACSEC_SA_STAT_IN_PKTS_NOT_VALID = 9; - MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA = 10; - MACSEC_SA_STAT_IN_PKTS_UNUSED_SA = 11; - MACSEC_SA_STAT_IN_PKTS_OK = 12; + MACSEC_SA_STAT_UNSPECIFIED = 0; + MACSEC_SA_STAT_OCTETS_ENCRYPTED = 1; + MACSEC_SA_STAT_OCTETS_PROTECTED = 2; + MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED = 3; + MACSEC_SA_STAT_OUT_PKTS_PROTECTED = 4; + MACSEC_SA_STAT_IN_PKTS_UNCHECKED = 5; + MACSEC_SA_STAT_IN_PKTS_DELAYED = 6; + MACSEC_SA_STAT_IN_PKTS_LATE = 7; + MACSEC_SA_STAT_IN_PKTS_INVALID = 8; + MACSEC_SA_STAT_IN_PKTS_NOT_VALID = 9; + MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA = 10; + MACSEC_SA_STAT_IN_PKTS_UNUSED_SA = 11; + MACSEC_SA_STAT_IN_PKTS_OK = 12; } enum MacsecScStat { - MACSEC_SC_STAT_UNSPECIFIED = 0; - MACSEC_SC_STAT_SA_NOT_IN_USE = 1; + MACSEC_SC_STAT_UNSPECIFIED = 0; + MACSEC_SC_STAT_SA_NOT_IN_USE = 1; } enum MeterType { - METER_TYPE_UNSPECIFIED = 0; - METER_TYPE_PACKETS = 1; - METER_TYPE_BYTES = 2; - METER_TYPE_CUSTOM_RANGE_BASE = 3; + METER_TYPE_UNSPECIFIED = 0; + METER_TYPE_PACKETS = 1; + METER_TYPE_BYTES = 2; + METER_TYPE_CUSTOM_RANGE_BASE = 3; } enum MirrorSessionCongestionMode { - MIRROR_SESSION_CONGESTION_MODE_UNSPECIFIED = 0; - MIRROR_SESSION_CONGESTION_MODE_INDEPENDENT = 1; - MIRROR_SESSION_CONGESTION_MODE_CORRELATED = 2; + MIRROR_SESSION_CONGESTION_MODE_UNSPECIFIED = 0; + MIRROR_SESSION_CONGESTION_MODE_INDEPENDENT = 1; + MIRROR_SESSION_CONGESTION_MODE_CORRELATED = 2; } enum MirrorSessionType { - MIRROR_SESSION_TYPE_UNSPECIFIED = 0; - MIRROR_SESSION_TYPE_LOCAL = 1; - MIRROR_SESSION_TYPE_REMOTE = 2; - MIRROR_SESSION_TYPE_ENHANCED_REMOTE = 3; - MIRROR_SESSION_TYPE_SFLOW = 4; + MIRROR_SESSION_TYPE_UNSPECIFIED = 0; + MIRROR_SESSION_TYPE_LOCAL = 1; + MIRROR_SESSION_TYPE_REMOTE = 2; + MIRROR_SESSION_TYPE_ENHANCED_REMOTE = 3; + MIRROR_SESSION_TYPE_SFLOW = 4; } enum MySidEntryEndpointBehaviorFlavor { - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_UNSPECIFIED = 0; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_NONE = 1; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP = 2; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USP = 3; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USD = 4; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USP = 5; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USD_AND_USP = 6; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD = 7; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USP_AND_USD = 8; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_UNSPECIFIED = 0; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_NONE = 1; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP = 2; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USP = 3; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USD = 4; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USP = 5; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USD_AND_USP = 6; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD = 7; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USP_AND_USD = 8; } enum MySidEntryEndpointBehavior { - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UNSPECIFIED = 0; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_E = 1; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_X = 2; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_T = 3; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX6 = 4; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX4 = 5; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6 = 6; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4 = 7; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46 = 8; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS = 9; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS_RED = 10; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT = 11; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT_RED = 12; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UN = 13; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UA = 14; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_CUSTOM_RANGE_START = 15; - MY_SID_ENTRY_ENDPOINT_BEHAVIOR_CUSTOM_RANGE_END = 16; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UNSPECIFIED = 0; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_E = 1; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_X = 2; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_T = 3; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX6 = 4; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX4 = 5; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6 = 6; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4 = 7; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46 = 8; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS = 9; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS_RED = 10; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT = 11; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT_RED = 12; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UN = 13; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UA = 14; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_CUSTOM_RANGE_START = 15; + MY_SID_ENTRY_ENDPOINT_BEHAVIOR_CUSTOM_RANGE_END = 16; } enum NatType { - NAT_TYPE_UNSPECIFIED = 0; - NAT_TYPE_NONE = 1; - NAT_TYPE_SOURCE_NAT = 2; - NAT_TYPE_DESTINATION_NAT = 3; - NAT_TYPE_DOUBLE_NAT = 4; - NAT_TYPE_DESTINATION_NAT_POOL = 5; + NAT_TYPE_UNSPECIFIED = 0; + NAT_TYPE_NONE = 1; + NAT_TYPE_SOURCE_NAT = 2; + NAT_TYPE_DESTINATION_NAT = 3; + NAT_TYPE_DOUBLE_NAT = 4; + NAT_TYPE_DESTINATION_NAT_POOL = 5; } enum NativeHashField { - NATIVE_HASH_FIELD_UNSPECIFIED = 0; - NATIVE_HASH_FIELD_SRC_IP = 1; - NATIVE_HASH_FIELD_DST_IP = 2; - NATIVE_HASH_FIELD_INNER_SRC_IP = 3; - NATIVE_HASH_FIELD_INNER_DST_IP = 4; - NATIVE_HASH_FIELD_SRC_IPV4 = 5; - NATIVE_HASH_FIELD_DST_IPV4 = 6; - NATIVE_HASH_FIELD_SRC_IPV6 = 7; - NATIVE_HASH_FIELD_DST_IPV6 = 8; - NATIVE_HASH_FIELD_INNER_SRC_IPV4 = 9; - NATIVE_HASH_FIELD_INNER_DST_IPV4 = 10; - NATIVE_HASH_FIELD_INNER_SRC_IPV6 = 11; - NATIVE_HASH_FIELD_INNER_DST_IPV6 = 12; - NATIVE_HASH_FIELD_VLAN_ID = 13; - NATIVE_HASH_FIELD_IP_PROTOCOL = 14; - NATIVE_HASH_FIELD_ETHERTYPE = 15; - NATIVE_HASH_FIELD_L4_SRC_PORT = 16; - NATIVE_HASH_FIELD_L4_DST_PORT = 17; - NATIVE_HASH_FIELD_SRC_MAC = 18; - NATIVE_HASH_FIELD_DST_MAC = 19; - NATIVE_HASH_FIELD_IN_PORT = 20; - NATIVE_HASH_FIELD_INNER_IP_PROTOCOL = 21; - NATIVE_HASH_FIELD_INNER_ETHERTYPE = 22; - NATIVE_HASH_FIELD_INNER_L4_SRC_PORT = 23; - NATIVE_HASH_FIELD_INNER_L4_DST_PORT = 24; - NATIVE_HASH_FIELD_INNER_SRC_MAC = 25; - NATIVE_HASH_FIELD_INNER_DST_MAC = 26; - NATIVE_HASH_FIELD_MPLS_LABEL_ALL = 27; - NATIVE_HASH_FIELD_MPLS_LABEL_0 = 28; - NATIVE_HASH_FIELD_MPLS_LABEL_1 = 29; - NATIVE_HASH_FIELD_MPLS_LABEL_2 = 30; - NATIVE_HASH_FIELD_MPLS_LABEL_3 = 31; - NATIVE_HASH_FIELD_MPLS_LABEL_4 = 32; - NATIVE_HASH_FIELD_IPV6_FLOW_LABEL = 33; - NATIVE_HASH_FIELD_NONE = 34; + NATIVE_HASH_FIELD_UNSPECIFIED = 0; + NATIVE_HASH_FIELD_SRC_IP = 1; + NATIVE_HASH_FIELD_DST_IP = 2; + NATIVE_HASH_FIELD_INNER_SRC_IP = 3; + NATIVE_HASH_FIELD_INNER_DST_IP = 4; + NATIVE_HASH_FIELD_SRC_IPV4 = 5; + NATIVE_HASH_FIELD_DST_IPV4 = 6; + NATIVE_HASH_FIELD_SRC_IPV6 = 7; + NATIVE_HASH_FIELD_DST_IPV6 = 8; + NATIVE_HASH_FIELD_INNER_SRC_IPV4 = 9; + NATIVE_HASH_FIELD_INNER_DST_IPV4 = 10; + NATIVE_HASH_FIELD_INNER_SRC_IPV6 = 11; + NATIVE_HASH_FIELD_INNER_DST_IPV6 = 12; + NATIVE_HASH_FIELD_VLAN_ID = 13; + NATIVE_HASH_FIELD_IP_PROTOCOL = 14; + NATIVE_HASH_FIELD_ETHERTYPE = 15; + NATIVE_HASH_FIELD_L4_SRC_PORT = 16; + NATIVE_HASH_FIELD_L4_DST_PORT = 17; + NATIVE_HASH_FIELD_SRC_MAC = 18; + NATIVE_HASH_FIELD_DST_MAC = 19; + NATIVE_HASH_FIELD_IN_PORT = 20; + NATIVE_HASH_FIELD_INNER_IP_PROTOCOL = 21; + NATIVE_HASH_FIELD_INNER_ETHERTYPE = 22; + NATIVE_HASH_FIELD_INNER_L4_SRC_PORT = 23; + NATIVE_HASH_FIELD_INNER_L4_DST_PORT = 24; + NATIVE_HASH_FIELD_INNER_SRC_MAC = 25; + NATIVE_HASH_FIELD_INNER_DST_MAC = 26; + NATIVE_HASH_FIELD_MPLS_LABEL_ALL = 27; + NATIVE_HASH_FIELD_MPLS_LABEL_0 = 28; + NATIVE_HASH_FIELD_MPLS_LABEL_1 = 29; + NATIVE_HASH_FIELD_MPLS_LABEL_2 = 30; + NATIVE_HASH_FIELD_MPLS_LABEL_3 = 31; + NATIVE_HASH_FIELD_MPLS_LABEL_4 = 32; + NATIVE_HASH_FIELD_IPV6_FLOW_LABEL = 33; + NATIVE_HASH_FIELD_NONE = 34; } enum NextHopGroupMapType { - NEXT_HOP_GROUP_MAP_TYPE_UNSPECIFIED = 0; - NEXT_HOP_GROUP_MAP_TYPE_FORWARDING_CLASS_TO_INDEX = 1; + NEXT_HOP_GROUP_MAP_TYPE_UNSPECIFIED = 0; + NEXT_HOP_GROUP_MAP_TYPE_FORWARDING_CLASS_TO_INDEX = 1; } enum NextHopGroupMemberConfiguredRole { - NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_UNSPECIFIED = 0; - NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_PRIMARY = 1; - NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_STANDBY = 2; + NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_UNSPECIFIED = 0; + NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_PRIMARY = 1; + NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_STANDBY = 2; } enum NextHopGroupMemberObservedRole { - NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_UNSPECIFIED = 0; - NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_ACTIVE = 1; - NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_INACTIVE = 2; + NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_UNSPECIFIED = 0; + NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_ACTIVE = 1; + NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_INACTIVE = 2; } enum NextHopGroupType { - NEXT_HOP_GROUP_TYPE_UNSPECIFIED = 0; - NEXT_HOP_GROUP_TYPE_DYNAMIC_UNORDERED_ECMP = 1; - NEXT_HOP_GROUP_TYPE_ECMP = 2; - NEXT_HOP_GROUP_TYPE_DYNAMIC_ORDERED_ECMP = 3; - NEXT_HOP_GROUP_TYPE_FINE_GRAIN_ECMP = 4; - NEXT_HOP_GROUP_TYPE_PROTECTION = 5; - NEXT_HOP_GROUP_TYPE_CLASS_BASED = 6; + NEXT_HOP_GROUP_TYPE_UNSPECIFIED = 0; + NEXT_HOP_GROUP_TYPE_DYNAMIC_UNORDERED_ECMP = 1; + NEXT_HOP_GROUP_TYPE_ECMP = 2; + NEXT_HOP_GROUP_TYPE_DYNAMIC_ORDERED_ECMP = 3; + NEXT_HOP_GROUP_TYPE_FINE_GRAIN_ECMP = 4; + NEXT_HOP_GROUP_TYPE_PROTECTION = 5; + NEXT_HOP_GROUP_TYPE_CLASS_BASED = 6; } enum NextHopType { - NEXT_HOP_TYPE_UNSPECIFIED = 0; - NEXT_HOP_TYPE_IP = 1; - NEXT_HOP_TYPE_MPLS = 2; - NEXT_HOP_TYPE_TUNNEL_ENCAP = 3; - NEXT_HOP_TYPE_SRV6_SIDLIST = 4; + NEXT_HOP_TYPE_UNSPECIFIED = 0; + NEXT_HOP_TYPE_IP = 1; + NEXT_HOP_TYPE_MPLS = 2; + NEXT_HOP_TYPE_TUNNEL_ENCAP = 3; + NEXT_HOP_TYPE_SRV6_SIDLIST = 4; } enum ObjectType { - OBJECT_TYPE_UNSPECIFIED = 0; - OBJECT_TYPE_NULL = 1; - OBJECT_TYPE_PORT = 2; - OBJECT_TYPE_LAG = 3; - OBJECT_TYPE_VIRTUAL_ROUTER = 4; - OBJECT_TYPE_NEXT_HOP = 5; - OBJECT_TYPE_NEXT_HOP_GROUP = 6; - OBJECT_TYPE_ROUTER_INTERFACE = 7; - OBJECT_TYPE_ACL_TABLE = 8; - OBJECT_TYPE_ACL_ENTRY = 9; - OBJECT_TYPE_ACL_COUNTER = 10; - OBJECT_TYPE_ACL_RANGE = 11; - OBJECT_TYPE_ACL_TABLE_GROUP = 12; - OBJECT_TYPE_ACL_TABLE_GROUP_MEMBER = 13; - OBJECT_TYPE_HOSTIF = 14; - OBJECT_TYPE_MIRROR_SESSION = 15; - OBJECT_TYPE_SAMPLEPACKET = 16; - OBJECT_TYPE_STP = 17; - OBJECT_TYPE_HOSTIF_TRAP_GROUP = 18; - OBJECT_TYPE_POLICER = 19; - OBJECT_TYPE_WRED = 20; - OBJECT_TYPE_QOS_MAP = 21; - OBJECT_TYPE_QUEUE = 22; - OBJECT_TYPE_SCHEDULER = 23; - OBJECT_TYPE_SCHEDULER_GROUP = 24; - OBJECT_TYPE_BUFFER_POOL = 25; - OBJECT_TYPE_BUFFER_PROFILE = 26; - OBJECT_TYPE_INGRESS_PRIORITY_GROUP = 27; - OBJECT_TYPE_LAG_MEMBER = 28; - OBJECT_TYPE_HASH = 29; - OBJECT_TYPE_UDF = 30; - OBJECT_TYPE_UDF_MATCH = 31; - OBJECT_TYPE_UDF_GROUP = 32; - OBJECT_TYPE_FDB_ENTRY = 33; - OBJECT_TYPE_SWITCH = 34; - OBJECT_TYPE_HOSTIF_TRAP = 35; - OBJECT_TYPE_HOSTIF_TABLE_ENTRY = 36; - OBJECT_TYPE_NEIGHBOR_ENTRY = 37; - OBJECT_TYPE_ROUTE_ENTRY = 38; - OBJECT_TYPE_VLAN = 39; - OBJECT_TYPE_VLAN_MEMBER = 40; - OBJECT_TYPE_HOSTIF_PACKET = 41; - OBJECT_TYPE_TUNNEL_MAP = 42; - OBJECT_TYPE_TUNNEL = 43; - OBJECT_TYPE_TUNNEL_TERM_TABLE_ENTRY = 44; - OBJECT_TYPE_FDB_FLUSH = 45; - OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER = 46; - OBJECT_TYPE_STP_PORT = 47; - OBJECT_TYPE_RPF_GROUP = 48; - OBJECT_TYPE_RPF_GROUP_MEMBER = 49; - OBJECT_TYPE_L2MC_GROUP = 50; - OBJECT_TYPE_L2MC_GROUP_MEMBER = 51; - OBJECT_TYPE_IPMC_GROUP = 52; - OBJECT_TYPE_IPMC_GROUP_MEMBER = 53; - OBJECT_TYPE_L2MC_ENTRY = 54; - OBJECT_TYPE_IPMC_ENTRY = 55; - OBJECT_TYPE_MCAST_FDB_ENTRY = 56; - OBJECT_TYPE_HOSTIF_USER_DEFINED_TRAP = 57; - OBJECT_TYPE_BRIDGE = 58; - OBJECT_TYPE_BRIDGE_PORT = 59; - OBJECT_TYPE_TUNNEL_MAP_ENTRY = 60; - OBJECT_TYPE_TAM = 61; - OBJECT_TYPE_SRV6_SIDLIST = 62; - OBJECT_TYPE_PORT_POOL = 63; - OBJECT_TYPE_INSEG_ENTRY = 64; - OBJECT_TYPE_DTEL = 65; - OBJECT_TYPE_DTEL_QUEUE_REPORT = 66; - OBJECT_TYPE_DTEL_INT_SESSION = 67; - OBJECT_TYPE_DTEL_REPORT_SESSION = 68; - OBJECT_TYPE_DTEL_EVENT = 69; - OBJECT_TYPE_BFD_SESSION = 70; - OBJECT_TYPE_ISOLATION_GROUP = 71; - OBJECT_TYPE_ISOLATION_GROUP_MEMBER = 72; - OBJECT_TYPE_TAM_MATH_FUNC = 73; - OBJECT_TYPE_TAM_REPORT = 74; - OBJECT_TYPE_TAM_EVENT_THRESHOLD = 75; - OBJECT_TYPE_TAM_TEL_TYPE = 76; - OBJECT_TYPE_TAM_TRANSPORT = 77; - OBJECT_TYPE_TAM_TELEMETRY = 78; - OBJECT_TYPE_TAM_COLLECTOR = 79; - OBJECT_TYPE_TAM_EVENT_ACTION = 80; - OBJECT_TYPE_TAM_EVENT = 81; - OBJECT_TYPE_NAT_ZONE_COUNTER = 82; - OBJECT_TYPE_NAT_ENTRY = 83; - OBJECT_TYPE_TAM_INT = 84; - OBJECT_TYPE_COUNTER = 85; - OBJECT_TYPE_DEBUG_COUNTER = 86; - OBJECT_TYPE_PORT_CONNECTOR = 87; - OBJECT_TYPE_PORT_SERDES = 88; - OBJECT_TYPE_MACSEC = 89; - OBJECT_TYPE_MACSEC_PORT = 90; - OBJECT_TYPE_MACSEC_FLOW = 91; - OBJECT_TYPE_MACSEC_SC = 92; - OBJECT_TYPE_MACSEC_SA = 93; - OBJECT_TYPE_SYSTEM_PORT = 94; - OBJECT_TYPE_FINE_GRAINED_HASH_FIELD = 95; - OBJECT_TYPE_SWITCH_TUNNEL = 96; - OBJECT_TYPE_MY_SID_ENTRY = 97; - OBJECT_TYPE_MY_MAC = 98; - OBJECT_TYPE_NEXT_HOP_GROUP_MAP = 99; - OBJECT_TYPE_IPSEC = 100; - OBJECT_TYPE_IPSEC_PORT = 101; - OBJECT_TYPE_IPSEC_SA = 102; - OBJECT_TYPE_MAX = 103; + OBJECT_TYPE_UNSPECIFIED = 0; + OBJECT_TYPE_NULL = 1; + OBJECT_TYPE_PORT = 2; + OBJECT_TYPE_LAG = 3; + OBJECT_TYPE_VIRTUAL_ROUTER = 4; + OBJECT_TYPE_NEXT_HOP = 5; + OBJECT_TYPE_NEXT_HOP_GROUP = 6; + OBJECT_TYPE_ROUTER_INTERFACE = 7; + OBJECT_TYPE_ACL_TABLE = 8; + OBJECT_TYPE_ACL_ENTRY = 9; + OBJECT_TYPE_ACL_COUNTER = 10; + OBJECT_TYPE_ACL_RANGE = 11; + OBJECT_TYPE_ACL_TABLE_GROUP = 12; + OBJECT_TYPE_ACL_TABLE_GROUP_MEMBER = 13; + OBJECT_TYPE_HOSTIF = 14; + OBJECT_TYPE_MIRROR_SESSION = 15; + OBJECT_TYPE_SAMPLEPACKET = 16; + OBJECT_TYPE_STP = 17; + OBJECT_TYPE_HOSTIF_TRAP_GROUP = 18; + OBJECT_TYPE_POLICER = 19; + OBJECT_TYPE_WRED = 20; + OBJECT_TYPE_QOS_MAP = 21; + OBJECT_TYPE_QUEUE = 22; + OBJECT_TYPE_SCHEDULER = 23; + OBJECT_TYPE_SCHEDULER_GROUP = 24; + OBJECT_TYPE_BUFFER_POOL = 25; + OBJECT_TYPE_BUFFER_PROFILE = 26; + OBJECT_TYPE_INGRESS_PRIORITY_GROUP = 27; + OBJECT_TYPE_LAG_MEMBER = 28; + OBJECT_TYPE_HASH = 29; + OBJECT_TYPE_UDF = 30; + OBJECT_TYPE_UDF_MATCH = 31; + OBJECT_TYPE_UDF_GROUP = 32; + OBJECT_TYPE_FDB_ENTRY = 33; + OBJECT_TYPE_SWITCH = 34; + OBJECT_TYPE_HOSTIF_TRAP = 35; + OBJECT_TYPE_HOSTIF_TABLE_ENTRY = 36; + OBJECT_TYPE_NEIGHBOR_ENTRY = 37; + OBJECT_TYPE_ROUTE_ENTRY = 38; + OBJECT_TYPE_VLAN = 39; + OBJECT_TYPE_VLAN_MEMBER = 40; + OBJECT_TYPE_HOSTIF_PACKET = 41; + OBJECT_TYPE_TUNNEL_MAP = 42; + OBJECT_TYPE_TUNNEL = 43; + OBJECT_TYPE_TUNNEL_TERM_TABLE_ENTRY = 44; + OBJECT_TYPE_FDB_FLUSH = 45; + OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER = 46; + OBJECT_TYPE_STP_PORT = 47; + OBJECT_TYPE_RPF_GROUP = 48; + OBJECT_TYPE_RPF_GROUP_MEMBER = 49; + OBJECT_TYPE_L2MC_GROUP = 50; + OBJECT_TYPE_L2MC_GROUP_MEMBER = 51; + OBJECT_TYPE_IPMC_GROUP = 52; + OBJECT_TYPE_IPMC_GROUP_MEMBER = 53; + OBJECT_TYPE_L2MC_ENTRY = 54; + OBJECT_TYPE_IPMC_ENTRY = 55; + OBJECT_TYPE_MCAST_FDB_ENTRY = 56; + OBJECT_TYPE_HOSTIF_USER_DEFINED_TRAP = 57; + OBJECT_TYPE_BRIDGE = 58; + OBJECT_TYPE_BRIDGE_PORT = 59; + OBJECT_TYPE_TUNNEL_MAP_ENTRY = 60; + OBJECT_TYPE_TAM = 61; + OBJECT_TYPE_SRV6_SIDLIST = 62; + OBJECT_TYPE_PORT_POOL = 63; + OBJECT_TYPE_INSEG_ENTRY = 64; + OBJECT_TYPE_DTEL = 65; + OBJECT_TYPE_DTEL_QUEUE_REPORT = 66; + OBJECT_TYPE_DTEL_INT_SESSION = 67; + OBJECT_TYPE_DTEL_REPORT_SESSION = 68; + OBJECT_TYPE_DTEL_EVENT = 69; + OBJECT_TYPE_BFD_SESSION = 70; + OBJECT_TYPE_ISOLATION_GROUP = 71; + OBJECT_TYPE_ISOLATION_GROUP_MEMBER = 72; + OBJECT_TYPE_TAM_MATH_FUNC = 73; + OBJECT_TYPE_TAM_REPORT = 74; + OBJECT_TYPE_TAM_EVENT_THRESHOLD = 75; + OBJECT_TYPE_TAM_TEL_TYPE = 76; + OBJECT_TYPE_TAM_TRANSPORT = 77; + OBJECT_TYPE_TAM_TELEMETRY = 78; + OBJECT_TYPE_TAM_COLLECTOR = 79; + OBJECT_TYPE_TAM_EVENT_ACTION = 80; + OBJECT_TYPE_TAM_EVENT = 81; + OBJECT_TYPE_NAT_ZONE_COUNTER = 82; + OBJECT_TYPE_NAT_ENTRY = 83; + OBJECT_TYPE_TAM_INT = 84; + OBJECT_TYPE_COUNTER = 85; + OBJECT_TYPE_DEBUG_COUNTER = 86; + OBJECT_TYPE_PORT_CONNECTOR = 87; + OBJECT_TYPE_PORT_SERDES = 88; + OBJECT_TYPE_MACSEC = 89; + OBJECT_TYPE_MACSEC_PORT = 90; + OBJECT_TYPE_MACSEC_FLOW = 91; + OBJECT_TYPE_MACSEC_SC = 92; + OBJECT_TYPE_MACSEC_SA = 93; + OBJECT_TYPE_SYSTEM_PORT = 94; + OBJECT_TYPE_FINE_GRAINED_HASH_FIELD = 95; + OBJECT_TYPE_SWITCH_TUNNEL = 96; + OBJECT_TYPE_MY_SID_ENTRY = 97; + OBJECT_TYPE_MY_MAC = 98; + OBJECT_TYPE_NEXT_HOP_GROUP_MAP = 99; + OBJECT_TYPE_IPSEC = 100; + OBJECT_TYPE_IPSEC_PORT = 101; + OBJECT_TYPE_IPSEC_SA = 102; + OBJECT_TYPE_MAX = 103; } enum OutDropReason { - OUT_DROP_REASON_UNSPECIFIED = 0; - OUT_DROP_REASON_START = 1; - OUT_DROP_REASON_L2_ANY = 2; - OUT_DROP_REASON_EGRESS_VLAN_FILTER = 3; - OUT_DROP_REASON_L3_ANY = 4; - OUT_DROP_REASON_L3_EGRESS_LINK_DOWN = 5; - OUT_DROP_REASON_TUNNEL_LOOPBACK_PACKET_DROP = 6; - OUT_DROP_REASON_END = 7; - OUT_DROP_REASON_CUSTOM_RANGE_BASE = 8; - OUT_DROP_REASON_CUSTOM_RANGE_END = 9; + OUT_DROP_REASON_UNSPECIFIED = 0; + OUT_DROP_REASON_START = 1; + OUT_DROP_REASON_L2_ANY = 2; + OUT_DROP_REASON_EGRESS_VLAN_FILTER = 3; + OUT_DROP_REASON_L3_ANY = 4; + OUT_DROP_REASON_L3_EGRESS_LINK_DOWN = 5; + OUT_DROP_REASON_TUNNEL_LOOPBACK_PACKET_DROP = 6; + OUT_DROP_REASON_END = 7; + OUT_DROP_REASON_CUSTOM_RANGE_BASE = 8; + OUT_DROP_REASON_CUSTOM_RANGE_END = 9; } enum OutsegExpMode { - OUTSEG_EXP_MODE_UNSPECIFIED = 0; - OUTSEG_EXP_MODE_UNIFORM = 1; - OUTSEG_EXP_MODE_PIPE = 2; + OUTSEG_EXP_MODE_UNSPECIFIED = 0; + OUTSEG_EXP_MODE_UNIFORM = 1; + OUTSEG_EXP_MODE_PIPE = 2; } enum OutsegTtlMode { - OUTSEG_TTL_MODE_UNSPECIFIED = 0; - OUTSEG_TTL_MODE_UNIFORM = 1; - OUTSEG_TTL_MODE_PIPE = 2; + OUTSEG_TTL_MODE_UNSPECIFIED = 0; + OUTSEG_TTL_MODE_UNIFORM = 1; + OUTSEG_TTL_MODE_PIPE = 2; } enum OutsegType { - OUTSEG_TYPE_UNSPECIFIED = 0; - OUTSEG_TYPE_PUSH = 1; - OUTSEG_TYPE_SWAP = 2; + OUTSEG_TYPE_UNSPECIFIED = 0; + OUTSEG_TYPE_PUSH = 1; + OUTSEG_TYPE_SWAP = 2; } enum PacketAction { - PACKET_ACTION_UNSPECIFIED = 0; - PACKET_ACTION_DROP = 1; - PACKET_ACTION_FORWARD = 2; - PACKET_ACTION_COPY = 3; - PACKET_ACTION_COPY_CANCEL = 4; - PACKET_ACTION_TRAP = 5; - PACKET_ACTION_LOG = 6; - PACKET_ACTION_DENY = 7; - PACKET_ACTION_TRANSIT = 8; + PACKET_ACTION_UNSPECIFIED = 0; + PACKET_ACTION_DROP = 1; + PACKET_ACTION_FORWARD = 2; + PACKET_ACTION_COPY = 3; + PACKET_ACTION_COPY_CANCEL = 4; + PACKET_ACTION_TRAP = 5; + PACKET_ACTION_LOG = 6; + PACKET_ACTION_DENY = 7; + PACKET_ACTION_TRANSIT = 8; } enum PacketColor { - PACKET_COLOR_UNSPECIFIED = 0; - PACKET_COLOR_GREEN = 1; - PACKET_COLOR_YELLOW = 2; - PACKET_COLOR_RED = 3; + PACKET_COLOR_UNSPECIFIED = 0; + PACKET_COLOR_GREEN = 1; + PACKET_COLOR_YELLOW = 2; + PACKET_COLOR_RED = 3; } enum PacketVlan { - PACKET_VLAN_UNSPECIFIED = 0; - PACKET_VLAN_UNTAG = 1; - PACKET_VLAN_SINGLE_OUTER_TAG = 2; - PACKET_VLAN_DOUBLE_TAG = 3; + PACKET_VLAN_UNSPECIFIED = 0; + PACKET_VLAN_UNTAG = 1; + PACKET_VLAN_SINGLE_OUTER_TAG = 2; + PACKET_VLAN_DOUBLE_TAG = 3; } enum PolicerColorSource { - POLICER_COLOR_SOURCE_UNSPECIFIED = 0; - POLICER_COLOR_SOURCE_BLIND = 1; - POLICER_COLOR_SOURCE_AWARE = 2; - POLICER_COLOR_SOURCE_CUSTOM_RANGE_BASE = 3; + POLICER_COLOR_SOURCE_UNSPECIFIED = 0; + POLICER_COLOR_SOURCE_BLIND = 1; + POLICER_COLOR_SOURCE_AWARE = 2; + POLICER_COLOR_SOURCE_CUSTOM_RANGE_BASE = 3; } enum PolicerMode { - POLICER_MODE_UNSPECIFIED = 0; - POLICER_MODE_SR_TCM = 1; - POLICER_MODE_TR_TCM = 2; - POLICER_MODE_STORM_CONTROL = 3; - POLICER_MODE_CUSTOM_RANGE_BASE = 4; + POLICER_MODE_UNSPECIFIED = 0; + POLICER_MODE_SR_TCM = 1; + POLICER_MODE_TR_TCM = 2; + POLICER_MODE_STORM_CONTROL = 3; + POLICER_MODE_CUSTOM_RANGE_BASE = 4; } enum PolicerStat { - POLICER_STAT_UNSPECIFIED = 0; - POLICER_STAT_PACKETS = 1; - POLICER_STAT_ATTR_BYTES = 2; - POLICER_STAT_GREEN_PACKETS = 3; - POLICER_STAT_GREEN_BYTES = 4; - POLICER_STAT_YELLOW_PACKETS = 5; - POLICER_STAT_YELLOW_BYTES = 6; - POLICER_STAT_RED_PACKETS = 7; - POLICER_STAT_RED_BYTES = 8; - POLICER_STAT_CUSTOM_RANGE_BASE = 9; + POLICER_STAT_UNSPECIFIED = 0; + POLICER_STAT_PACKETS = 1; + POLICER_STAT_ATTR_BYTES = 2; + POLICER_STAT_GREEN_PACKETS = 3; + POLICER_STAT_GREEN_BYTES = 4; + POLICER_STAT_YELLOW_PACKETS = 5; + POLICER_STAT_YELLOW_BYTES = 6; + POLICER_STAT_RED_PACKETS = 7; + POLICER_STAT_RED_BYTES = 8; + POLICER_STAT_CUSTOM_RANGE_BASE = 9; } enum PortAutoNegConfigMode { - PORT_AUTO_NEG_CONFIG_MODE_UNSPECIFIED = 0; - PORT_AUTO_NEG_CONFIG_MODE_DISABLED = 1; - PORT_AUTO_NEG_CONFIG_MODE_AUTO = 2; - PORT_AUTO_NEG_CONFIG_MODE_SLAVE = 3; - PORT_AUTO_NEG_CONFIG_MODE_MASTER = 4; + PORT_AUTO_NEG_CONFIG_MODE_UNSPECIFIED = 0; + PORT_AUTO_NEG_CONFIG_MODE_DISABLED = 1; + PORT_AUTO_NEG_CONFIG_MODE_AUTO = 2; + PORT_AUTO_NEG_CONFIG_MODE_SLAVE = 3; + PORT_AUTO_NEG_CONFIG_MODE_MASTER = 4; } enum PortBreakoutModeType { - PORT_BREAKOUT_MODE_TYPE_UNSPECIFIED = 0; - PORT_BREAKOUT_MODE_TYPE_1_LANE = 1; - PORT_BREAKOUT_MODE_TYPE_2_LANE = 2; - PORT_BREAKOUT_MODE_TYPE_4_LANE = 3; - PORT_BREAKOUT_MODE_TYPE_MAX = 4; + PORT_BREAKOUT_MODE_TYPE_UNSPECIFIED = 0; + PORT_BREAKOUT_MODE_TYPE_1_LANE = 1; + PORT_BREAKOUT_MODE_TYPE_2_LANE = 2; + PORT_BREAKOUT_MODE_TYPE_4_LANE = 3; + PORT_BREAKOUT_MODE_TYPE_MAX = 4; } enum PortConnectorFailoverMode { - PORT_CONNECTOR_FAILOVER_MODE_UNSPECIFIED = 0; - PORT_CONNECTOR_FAILOVER_MODE_DISABLE = 1; - PORT_CONNECTOR_FAILOVER_MODE_PRIMARY = 2; - PORT_CONNECTOR_FAILOVER_MODE_SECONDARY = 3; + PORT_CONNECTOR_FAILOVER_MODE_UNSPECIFIED = 0; + PORT_CONNECTOR_FAILOVER_MODE_DISABLE = 1; + PORT_CONNECTOR_FAILOVER_MODE_PRIMARY = 2; + PORT_CONNECTOR_FAILOVER_MODE_SECONDARY = 3; } enum PortDualMedia { - PORT_DUAL_MEDIA_UNSPECIFIED = 0; - PORT_DUAL_MEDIA_NONE = 1; - PORT_DUAL_MEDIA_COPPER_ONLY = 2; - PORT_DUAL_MEDIA_FIBER_ONLY = 3; - PORT_DUAL_MEDIA_COPPER_PREFERRED = 4; - PORT_DUAL_MEDIA_FIBER_PREFERRED = 5; + PORT_DUAL_MEDIA_UNSPECIFIED = 0; + PORT_DUAL_MEDIA_NONE = 1; + PORT_DUAL_MEDIA_COPPER_ONLY = 2; + PORT_DUAL_MEDIA_FIBER_ONLY = 3; + PORT_DUAL_MEDIA_COPPER_PREFERRED = 4; + PORT_DUAL_MEDIA_FIBER_PREFERRED = 5; } enum PortErrStatus { - PORT_ERR_STATUS_UNSPECIFIED = 0; - PORT_ERR_STATUS_DATA_UNIT_CRC_ERROR = 1; - PORT_ERR_STATUS_DATA_UNIT_SIZE = 2; - PORT_ERR_STATUS_DATA_UNIT_MISALIGNMENT_ERROR = 3; - PORT_ERR_STATUS_CODE_GROUP_ERROR = 4; - PORT_ERR_STATUS_SIGNAL_LOCAL_ERROR = 5; - PORT_ERR_STATUS_NO_RX_REACHABILITY = 6; - PORT_ERR_STATUS_CRC_RATE = 7; - PORT_ERR_STATUS_REMOTE_FAULT_STATUS = 8; - PORT_ERR_STATUS_MAX = 9; + PORT_ERR_STATUS_UNSPECIFIED = 0; + PORT_ERR_STATUS_DATA_UNIT_CRC_ERROR = 1; + PORT_ERR_STATUS_DATA_UNIT_SIZE = 2; + PORT_ERR_STATUS_DATA_UNIT_MISALIGNMENT_ERROR = 3; + PORT_ERR_STATUS_CODE_GROUP_ERROR = 4; + PORT_ERR_STATUS_SIGNAL_LOCAL_ERROR = 5; + PORT_ERR_STATUS_NO_RX_REACHABILITY = 6; + PORT_ERR_STATUS_CRC_RATE = 7; + PORT_ERR_STATUS_REMOTE_FAULT_STATUS = 8; + PORT_ERR_STATUS_MAX = 9; } enum PortFecModeExtended { - PORT_FEC_MODE_EXTENDED_UNSPECIFIED = 0; - PORT_FEC_MODE_EXTENDED_NONE = 1; - PORT_FEC_MODE_EXTENDED_RS528 = 2; - PORT_FEC_MODE_EXTENDED_RS544 = 3; - PORT_FEC_MODE_EXTENDED_RS544_INTERLEAVED = 4; - PORT_FEC_MODE_EXTENDED_FC = 5; + PORT_FEC_MODE_EXTENDED_UNSPECIFIED = 0; + PORT_FEC_MODE_EXTENDED_NONE = 1; + PORT_FEC_MODE_EXTENDED_RS528 = 2; + PORT_FEC_MODE_EXTENDED_RS544 = 3; + PORT_FEC_MODE_EXTENDED_RS544_INTERLEAVED = 4; + PORT_FEC_MODE_EXTENDED_FC = 5; } enum PortFecMode { - PORT_FEC_MODE_UNSPECIFIED = 0; - PORT_FEC_MODE_NONE = 1; - PORT_FEC_MODE_RS = 2; - PORT_FEC_MODE_FC = 3; + PORT_FEC_MODE_UNSPECIFIED = 0; + PORT_FEC_MODE_NONE = 1; + PORT_FEC_MODE_RS = 2; + PORT_FEC_MODE_FC = 3; } enum PortFlowControlMode { - PORT_FLOW_CONTROL_MODE_UNSPECIFIED = 0; - PORT_FLOW_CONTROL_MODE_DISABLE = 1; - PORT_FLOW_CONTROL_MODE_TX_ONLY = 2; - PORT_FLOW_CONTROL_MODE_RX_ONLY = 3; - PORT_FLOW_CONTROL_MODE_BOTH_ENABLE = 4; + PORT_FLOW_CONTROL_MODE_UNSPECIFIED = 0; + PORT_FLOW_CONTROL_MODE_DISABLE = 1; + PORT_FLOW_CONTROL_MODE_TX_ONLY = 2; + PORT_FLOW_CONTROL_MODE_RX_ONLY = 3; + PORT_FLOW_CONTROL_MODE_BOTH_ENABLE = 4; } enum PortInterfaceType { - PORT_INTERFACE_TYPE_UNSPECIFIED = 0; - PORT_INTERFACE_TYPE_NONE = 1; - PORT_INTERFACE_TYPE_CR = 2; - PORT_INTERFACE_TYPE_CR2 = 3; - PORT_INTERFACE_TYPE_CR4 = 4; - PORT_INTERFACE_TYPE_SR = 5; - PORT_INTERFACE_TYPE_SR2 = 6; - PORT_INTERFACE_TYPE_SR4 = 7; - PORT_INTERFACE_TYPE_LR = 8; - PORT_INTERFACE_TYPE_LR4 = 9; - PORT_INTERFACE_TYPE_KR = 10; - PORT_INTERFACE_TYPE_KR4 = 11; - PORT_INTERFACE_TYPE_CAUI = 12; - PORT_INTERFACE_TYPE_GMII = 13; - PORT_INTERFACE_TYPE_SFI = 14; - PORT_INTERFACE_TYPE_XLAUI = 15; - PORT_INTERFACE_TYPE_KR2 = 16; - PORT_INTERFACE_TYPE_CAUI4 = 17; - PORT_INTERFACE_TYPE_XAUI = 18; - PORT_INTERFACE_TYPE_XFI = 19; - PORT_INTERFACE_TYPE_XGMII = 20; - PORT_INTERFACE_TYPE_MAX = 21; + PORT_INTERFACE_TYPE_UNSPECIFIED = 0; + PORT_INTERFACE_TYPE_NONE = 1; + PORT_INTERFACE_TYPE_CR = 2; + PORT_INTERFACE_TYPE_CR2 = 3; + PORT_INTERFACE_TYPE_CR4 = 4; + PORT_INTERFACE_TYPE_SR = 5; + PORT_INTERFACE_TYPE_SR2 = 6; + PORT_INTERFACE_TYPE_SR4 = 7; + PORT_INTERFACE_TYPE_LR = 8; + PORT_INTERFACE_TYPE_LR4 = 9; + PORT_INTERFACE_TYPE_KR = 10; + PORT_INTERFACE_TYPE_KR4 = 11; + PORT_INTERFACE_TYPE_CAUI = 12; + PORT_INTERFACE_TYPE_GMII = 13; + PORT_INTERFACE_TYPE_SFI = 14; + PORT_INTERFACE_TYPE_XLAUI = 15; + PORT_INTERFACE_TYPE_KR2 = 16; + PORT_INTERFACE_TYPE_CAUI4 = 17; + PORT_INTERFACE_TYPE_XAUI = 18; + PORT_INTERFACE_TYPE_XFI = 19; + PORT_INTERFACE_TYPE_XGMII = 20; + PORT_INTERFACE_TYPE_MAX = 21; } enum PortInternalLoopbackMode { - PORT_INTERNAL_LOOPBACK_MODE_UNSPECIFIED = 0; - PORT_INTERNAL_LOOPBACK_MODE_NONE = 1; - PORT_INTERNAL_LOOPBACK_MODE_PHY = 2; - PORT_INTERNAL_LOOPBACK_MODE_MAC = 3; + PORT_INTERNAL_LOOPBACK_MODE_UNSPECIFIED = 0; + PORT_INTERNAL_LOOPBACK_MODE_NONE = 1; + PORT_INTERNAL_LOOPBACK_MODE_PHY = 2; + PORT_INTERNAL_LOOPBACK_MODE_MAC = 3; } enum PortLinkTrainingFailureStatus { - PORT_LINK_TRAINING_FAILURE_STATUS_UNSPECIFIED = 0; - PORT_LINK_TRAINING_FAILURE_STATUS_NO_ERROR = 1; - PORT_LINK_TRAINING_FAILURE_STATUS_FRAME_LOCK_ERROR = 2; - PORT_LINK_TRAINING_FAILURE_STATUS_SNR_LOWER_THRESHOLD = 3; - PORT_LINK_TRAINING_FAILURE_STATUS_TIME_OUT = 4; + PORT_LINK_TRAINING_FAILURE_STATUS_UNSPECIFIED = 0; + PORT_LINK_TRAINING_FAILURE_STATUS_NO_ERROR = 1; + PORT_LINK_TRAINING_FAILURE_STATUS_FRAME_LOCK_ERROR = 2; + PORT_LINK_TRAINING_FAILURE_STATUS_SNR_LOWER_THRESHOLD = 3; + PORT_LINK_TRAINING_FAILURE_STATUS_TIME_OUT = 4; } enum PortLinkTrainingRxStatus { - PORT_LINK_TRAINING_RX_STATUS_UNSPECIFIED = 0; - PORT_LINK_TRAINING_RX_STATUS_NOT_TRAINED = 1; - PORT_LINK_TRAINING_RX_STATUS_TRAINED = 2; + PORT_LINK_TRAINING_RX_STATUS_UNSPECIFIED = 0; + PORT_LINK_TRAINING_RX_STATUS_NOT_TRAINED = 1; + PORT_LINK_TRAINING_RX_STATUS_TRAINED = 2; } enum PortLoopbackMode { - PORT_LOOPBACK_MODE_UNSPECIFIED = 0; - PORT_LOOPBACK_MODE_NONE = 1; - PORT_LOOPBACK_MODE_PHY = 2; - PORT_LOOPBACK_MODE_MAC = 3; - PORT_LOOPBACK_MODE_PHY_REMOTE = 4; + PORT_LOOPBACK_MODE_UNSPECIFIED = 0; + PORT_LOOPBACK_MODE_NONE = 1; + PORT_LOOPBACK_MODE_PHY = 2; + PORT_LOOPBACK_MODE_MAC = 3; + PORT_LOOPBACK_MODE_PHY_REMOTE = 4; } enum PortMdixModeConfig { - PORT_MDIX_MODE_CONFIG_UNSPECIFIED = 0; - PORT_MDIX_MODE_CONFIG_AUTO = 1; - PORT_MDIX_MODE_CONFIG_STRAIGHT = 2; - PORT_MDIX_MODE_CONFIG_CROSSOVER = 3; + PORT_MDIX_MODE_CONFIG_UNSPECIFIED = 0; + PORT_MDIX_MODE_CONFIG_AUTO = 1; + PORT_MDIX_MODE_CONFIG_STRAIGHT = 2; + PORT_MDIX_MODE_CONFIG_CROSSOVER = 3; } enum PortMdixModeStatus { - PORT_MDIX_MODE_STATUS_UNSPECIFIED = 0; - PORT_MDIX_MODE_STATUS_STRAIGHT = 1; - PORT_MDIX_MODE_STATUS_CROSSOVER = 2; + PORT_MDIX_MODE_STATUS_UNSPECIFIED = 0; + PORT_MDIX_MODE_STATUS_STRAIGHT = 1; + PORT_MDIX_MODE_STATUS_CROSSOVER = 2; } enum PortMediaType { - PORT_MEDIA_TYPE_UNSPECIFIED = 0; - PORT_MEDIA_TYPE_NOT_PRESENT = 1; - PORT_MEDIA_TYPE_UNKNOWN = 2; - PORT_MEDIA_TYPE_FIBER = 3; - PORT_MEDIA_TYPE_COPPER = 4; - PORT_MEDIA_TYPE_BACKPLANE = 5; + PORT_MEDIA_TYPE_UNSPECIFIED = 0; + PORT_MEDIA_TYPE_NOT_PRESENT = 1; + PORT_MEDIA_TYPE_UNKNOWN = 2; + PORT_MEDIA_TYPE_FIBER = 3; + PORT_MEDIA_TYPE_COPPER = 4; + PORT_MEDIA_TYPE_BACKPLANE = 5; } enum PortModuleType { - PORT_MODULE_TYPE_UNSPECIFIED = 0; - PORT_MODULE_TYPE_1000BASE_X = 1; - PORT_MODULE_TYPE_100FX = 2; - PORT_MODULE_TYPE_SGMII_SLAVE = 3; + PORT_MODULE_TYPE_UNSPECIFIED = 0; + PORT_MODULE_TYPE_1000BASE_X = 1; + PORT_MODULE_TYPE_100FX = 2; + PORT_MODULE_TYPE_SGMII_SLAVE = 3; } enum PortOperStatus { - PORT_OPER_STATUS_UNSPECIFIED = 0; - PORT_OPER_STATUS_UNKNOWN = 1; - PORT_OPER_STATUS_UP = 2; - PORT_OPER_STATUS_DOWN = 3; - PORT_OPER_STATUS_TESTING = 4; - PORT_OPER_STATUS_NOT_PRESENT = 5; + PORT_OPER_STATUS_UNSPECIFIED = 0; + PORT_OPER_STATUS_UNKNOWN = 1; + PORT_OPER_STATUS_UP = 2; + PORT_OPER_STATUS_DOWN = 3; + PORT_OPER_STATUS_TESTING = 4; + PORT_OPER_STATUS_NOT_PRESENT = 5; } enum PortPoolStat { - PORT_POOL_STAT_UNSPECIFIED = 0; - PORT_POOL_STAT_IF_OCTETS = 1; - PORT_POOL_STAT_GREEN_WRED_DROPPED_PACKETS = 2; - PORT_POOL_STAT_GREEN_WRED_DROPPED_BYTES = 3; - PORT_POOL_STAT_YELLOW_WRED_DROPPED_PACKETS = 4; - PORT_POOL_STAT_YELLOW_WRED_DROPPED_BYTES = 5; - PORT_POOL_STAT_RED_WRED_DROPPED_PACKETS = 6; - PORT_POOL_STAT_RED_WRED_DROPPED_BYTES = 7; - PORT_POOL_STAT_WRED_DROPPED_PACKETS = 8; - PORT_POOL_STAT_WRED_DROPPED_BYTES = 9; - PORT_POOL_STAT_GREEN_WRED_ECN_MARKED_PACKETS = 10; - PORT_POOL_STAT_GREEN_WRED_ECN_MARKED_BYTES = 11; - PORT_POOL_STAT_YELLOW_WRED_ECN_MARKED_PACKETS = 12; - PORT_POOL_STAT_YELLOW_WRED_ECN_MARKED_BYTES = 13; - PORT_POOL_STAT_RED_WRED_ECN_MARKED_PACKETS = 14; - PORT_POOL_STAT_RED_WRED_ECN_MARKED_BYTES = 15; - PORT_POOL_STAT_WRED_ECN_MARKED_PACKETS = 16; - PORT_POOL_STAT_WRED_ECN_MARKED_BYTES = 17; - PORT_POOL_STAT_CURR_OCCUPANCY_BYTES = 18; - PORT_POOL_STAT_WATERMARK_BYTES = 19; - PORT_POOL_STAT_SHARED_CURR_OCCUPANCY_BYTES = 20; - PORT_POOL_STAT_SHARED_WATERMARK_BYTES = 21; - PORT_POOL_STAT_DROPPED_PKTS = 22; + PORT_POOL_STAT_UNSPECIFIED = 0; + PORT_POOL_STAT_IF_OCTETS = 1; + PORT_POOL_STAT_GREEN_WRED_DROPPED_PACKETS = 2; + PORT_POOL_STAT_GREEN_WRED_DROPPED_BYTES = 3; + PORT_POOL_STAT_YELLOW_WRED_DROPPED_PACKETS = 4; + PORT_POOL_STAT_YELLOW_WRED_DROPPED_BYTES = 5; + PORT_POOL_STAT_RED_WRED_DROPPED_PACKETS = 6; + PORT_POOL_STAT_RED_WRED_DROPPED_BYTES = 7; + PORT_POOL_STAT_WRED_DROPPED_PACKETS = 8; + PORT_POOL_STAT_WRED_DROPPED_BYTES = 9; + PORT_POOL_STAT_GREEN_WRED_ECN_MARKED_PACKETS = 10; + PORT_POOL_STAT_GREEN_WRED_ECN_MARKED_BYTES = 11; + PORT_POOL_STAT_YELLOW_WRED_ECN_MARKED_PACKETS = 12; + PORT_POOL_STAT_YELLOW_WRED_ECN_MARKED_BYTES = 13; + PORT_POOL_STAT_RED_WRED_ECN_MARKED_PACKETS = 14; + PORT_POOL_STAT_RED_WRED_ECN_MARKED_BYTES = 15; + PORT_POOL_STAT_WRED_ECN_MARKED_PACKETS = 16; + PORT_POOL_STAT_WRED_ECN_MARKED_BYTES = 17; + PORT_POOL_STAT_CURR_OCCUPANCY_BYTES = 18; + PORT_POOL_STAT_WATERMARK_BYTES = 19; + PORT_POOL_STAT_SHARED_CURR_OCCUPANCY_BYTES = 20; + PORT_POOL_STAT_SHARED_WATERMARK_BYTES = 21; + PORT_POOL_STAT_DROPPED_PKTS = 22; } enum PortPrbsConfig { - PORT_PRBS_CONFIG_UNSPECIFIED = 0; - PORT_PRBS_CONFIG_DISABLE = 1; - PORT_PRBS_CONFIG_ENABLE_TX_RX = 2; - PORT_PRBS_CONFIG_ENABLE_RX = 3; - PORT_PRBS_CONFIG_ENABLE_TX = 4; + PORT_PRBS_CONFIG_UNSPECIFIED = 0; + PORT_PRBS_CONFIG_DISABLE = 1; + PORT_PRBS_CONFIG_ENABLE_TX_RX = 2; + PORT_PRBS_CONFIG_ENABLE_RX = 3; + PORT_PRBS_CONFIG_ENABLE_TX = 4; } enum PortPrbsRxStatus { - PORT_PRBS_RX_STATUS_UNSPECIFIED = 0; - PORT_PRBS_RX_STATUS_OK = 1; - PORT_PRBS_RX_STATUS_LOCK_WITH_ERRORS = 2; - PORT_PRBS_RX_STATUS_NOT_LOCKED = 3; - PORT_PRBS_RX_STATUS_LOST_LOCK = 4; + PORT_PRBS_RX_STATUS_UNSPECIFIED = 0; + PORT_PRBS_RX_STATUS_OK = 1; + PORT_PRBS_RX_STATUS_LOCK_WITH_ERRORS = 2; + PORT_PRBS_RX_STATUS_NOT_LOCKED = 3; + PORT_PRBS_RX_STATUS_LOST_LOCK = 4; } enum PortPriorityFlowControlMode { - PORT_PRIORITY_FLOW_CONTROL_MODE_UNSPECIFIED = 0; - PORT_PRIORITY_FLOW_CONTROL_MODE_COMBINED = 1; - PORT_PRIORITY_FLOW_CONTROL_MODE_SEPARATE = 2; + PORT_PRIORITY_FLOW_CONTROL_MODE_UNSPECIFIED = 0; + PORT_PRIORITY_FLOW_CONTROL_MODE_COMBINED = 1; + PORT_PRIORITY_FLOW_CONTROL_MODE_SEPARATE = 2; } enum PortPtpMode { - PORT_PTP_MODE_UNSPECIFIED = 0; - PORT_PTP_MODE_NONE = 1; - PORT_PTP_MODE_SINGLE_STEP_TIMESTAMP = 2; - PORT_PTP_MODE_TWO_STEP_TIMESTAMP = 3; + PORT_PTP_MODE_UNSPECIFIED = 0; + PORT_PTP_MODE_NONE = 1; + PORT_PTP_MODE_SINGLE_STEP_TIMESTAMP = 2; + PORT_PTP_MODE_TWO_STEP_TIMESTAMP = 3; } enum PortStat { - PORT_STAT_UNSPECIFIED = 0; - PORT_STAT_IF_IN_OCTETS = 1; - PORT_STAT_IF_IN_UCAST_PKTS = 2; - PORT_STAT_IF_IN_NON_UCAST_PKTS = 3; - PORT_STAT_IF_IN_DISCARDS = 4; - PORT_STAT_IF_IN_ERRORS = 5; - PORT_STAT_IF_IN_UNKNOWN_PROTOS = 6; - PORT_STAT_IF_IN_BROADCAST_PKTS = 7; - PORT_STAT_IF_IN_MULTICAST_PKTS = 8; - PORT_STAT_IF_IN_VLAN_DISCARDS = 9; - PORT_STAT_IF_OUT_OCTETS = 10; - PORT_STAT_IF_OUT_UCAST_PKTS = 11; - PORT_STAT_IF_OUT_NON_UCAST_PKTS = 12; - PORT_STAT_IF_OUT_DISCARDS = 13; - PORT_STAT_IF_OUT_ERRORS = 14; - PORT_STAT_IF_OUT_QLEN = 15; - PORT_STAT_IF_OUT_BROADCAST_PKTS = 16; - PORT_STAT_IF_OUT_MULTICAST_PKTS = 17; - PORT_STAT_ETHER_STATS_DROP_EVENTS = 18; - PORT_STAT_ETHER_STATS_MULTICAST_PKTS = 19; - PORT_STAT_ETHER_STATS_BROADCAST_PKTS = 20; - PORT_STAT_ETHER_STATS_UNDERSIZE_PKTS = 21; - PORT_STAT_ETHER_STATS_FRAGMENTS = 22; - PORT_STAT_ETHER_STATS_PKTS_64_OCTETS = 23; - PORT_STAT_ETHER_STATS_PKTS_65_TO_127_OCTETS = 24; - PORT_STAT_ETHER_STATS_PKTS_128_TO_255_OCTETS = 25; - PORT_STAT_ETHER_STATS_PKTS_256_TO_511_OCTETS = 26; - PORT_STAT_ETHER_STATS_PKTS_512_TO_1023_OCTETS = 27; - PORT_STAT_ETHER_STATS_PKTS_1024_TO_1518_OCTETS = 28; - PORT_STAT_ETHER_STATS_PKTS_1519_TO_2047_OCTETS = 29; - PORT_STAT_ETHER_STATS_PKTS_2048_TO_4095_OCTETS = 30; - PORT_STAT_ETHER_STATS_PKTS_4096_TO_9216_OCTETS = 31; - PORT_STAT_ETHER_STATS_PKTS_9217_TO_16383_OCTETS = 32; - PORT_STAT_ETHER_STATS_OVERSIZE_PKTS = 33; - PORT_STAT_ETHER_RX_OVERSIZE_PKTS = 34; - PORT_STAT_ETHER_TX_OVERSIZE_PKTS = 35; - PORT_STAT_ETHER_STATS_JABBERS = 36; - PORT_STAT_ETHER_STATS_OCTETS = 37; - PORT_STAT_ETHER_STATS_PKTS = 38; - PORT_STAT_ETHER_STATS_COLLISIONS = 39; - PORT_STAT_ETHER_STATS_CRC_ALIGN_ERRORS = 40; - PORT_STAT_ETHER_STATS_TX_NO_ERRORS = 41; - PORT_STAT_ETHER_STATS_RX_NO_ERRORS = 42; - PORT_STAT_IP_IN_RECEIVES = 43; - PORT_STAT_IP_IN_OCTETS = 44; - PORT_STAT_IP_IN_UCAST_PKTS = 45; - PORT_STAT_IP_IN_NON_UCAST_PKTS = 46; - PORT_STAT_IP_IN_DISCARDS = 47; - PORT_STAT_IP_OUT_OCTETS = 48; - PORT_STAT_IP_OUT_UCAST_PKTS = 49; - PORT_STAT_IP_OUT_NON_UCAST_PKTS = 50; - PORT_STAT_IP_OUT_DISCARDS = 51; - PORT_STAT_IPV6_IN_RECEIVES = 52; - PORT_STAT_IPV6_IN_OCTETS = 53; - PORT_STAT_IPV6_IN_UCAST_PKTS = 54; - PORT_STAT_IPV6_IN_NON_UCAST_PKTS = 55; - PORT_STAT_IPV6_IN_MCAST_PKTS = 56; - PORT_STAT_IPV6_IN_DISCARDS = 57; - PORT_STAT_IPV6_OUT_OCTETS = 58; - PORT_STAT_IPV6_OUT_UCAST_PKTS = 59; - PORT_STAT_IPV6_OUT_NON_UCAST_PKTS = 60; - PORT_STAT_IPV6_OUT_MCAST_PKTS = 61; - PORT_STAT_IPV6_OUT_DISCARDS = 62; - PORT_STAT_GREEN_WRED_DROPPED_PACKETS = 63; - PORT_STAT_GREEN_WRED_DROPPED_BYTES = 64; - PORT_STAT_YELLOW_WRED_DROPPED_PACKETS = 65; - PORT_STAT_YELLOW_WRED_DROPPED_BYTES = 66; - PORT_STAT_RED_WRED_DROPPED_PACKETS = 67; - PORT_STAT_RED_WRED_DROPPED_BYTES = 68; - PORT_STAT_WRED_DROPPED_PACKETS = 69; - PORT_STAT_WRED_DROPPED_BYTES = 70; - PORT_STAT_ECN_MARKED_PACKETS = 71; - PORT_STAT_ETHER_IN_PKTS_64_OCTETS = 72; - PORT_STAT_ETHER_IN_PKTS_65_TO_127_OCTETS = 73; - PORT_STAT_ETHER_IN_PKTS_128_TO_255_OCTETS = 74; - PORT_STAT_ETHER_IN_PKTS_256_TO_511_OCTETS = 75; - PORT_STAT_ETHER_IN_PKTS_512_TO_1023_OCTETS = 76; - PORT_STAT_ETHER_IN_PKTS_1024_TO_1518_OCTETS = 77; - PORT_STAT_ETHER_IN_PKTS_1519_TO_2047_OCTETS = 78; - PORT_STAT_ETHER_IN_PKTS_2048_TO_4095_OCTETS = 79; - PORT_STAT_ETHER_IN_PKTS_4096_TO_9216_OCTETS = 80; - PORT_STAT_ETHER_IN_PKTS_9217_TO_16383_OCTETS = 81; - PORT_STAT_ETHER_OUT_PKTS_64_OCTETS = 82; - PORT_STAT_ETHER_OUT_PKTS_65_TO_127_OCTETS = 83; - PORT_STAT_ETHER_OUT_PKTS_128_TO_255_OCTETS = 84; - PORT_STAT_ETHER_OUT_PKTS_256_TO_511_OCTETS = 85; - PORT_STAT_ETHER_OUT_PKTS_512_TO_1023_OCTETS = 86; - PORT_STAT_ETHER_OUT_PKTS_1024_TO_1518_OCTETS = 87; - PORT_STAT_ETHER_OUT_PKTS_1519_TO_2047_OCTETS = 88; - PORT_STAT_ETHER_OUT_PKTS_2048_TO_4095_OCTETS = 89; - PORT_STAT_ETHER_OUT_PKTS_4096_TO_9216_OCTETS = 90; - PORT_STAT_ETHER_OUT_PKTS_9217_TO_16383_OCTETS = 91; - PORT_STAT_IN_CURR_OCCUPANCY_BYTES = 92; - PORT_STAT_IN_WATERMARK_BYTES = 93; - PORT_STAT_IN_SHARED_CURR_OCCUPANCY_BYTES = 94; - PORT_STAT_IN_SHARED_WATERMARK_BYTES = 95; - PORT_STAT_OUT_CURR_OCCUPANCY_BYTES = 96; - PORT_STAT_OUT_WATERMARK_BYTES = 97; - PORT_STAT_OUT_SHARED_CURR_OCCUPANCY_BYTES = 98; - PORT_STAT_OUT_SHARED_WATERMARK_BYTES = 99; - PORT_STAT_IN_DROPPED_PKTS = 100; - PORT_STAT_OUT_DROPPED_PKTS = 101; - PORT_STAT_PAUSE_RX_PKTS = 102; - PORT_STAT_PAUSE_TX_PKTS = 103; - PORT_STAT_PFC_0_RX_PKTS = 104; - PORT_STAT_PFC_0_TX_PKTS = 105; - PORT_STAT_PFC_1_RX_PKTS = 106; - PORT_STAT_PFC_1_TX_PKTS = 107; - PORT_STAT_PFC_2_RX_PKTS = 108; - PORT_STAT_PFC_2_TX_PKTS = 109; - PORT_STAT_PFC_3_RX_PKTS = 110; - PORT_STAT_PFC_3_TX_PKTS = 111; - PORT_STAT_PFC_4_RX_PKTS = 112; - PORT_STAT_PFC_4_TX_PKTS = 113; - PORT_STAT_PFC_5_RX_PKTS = 114; - PORT_STAT_PFC_5_TX_PKTS = 115; - PORT_STAT_PFC_6_RX_PKTS = 116; - PORT_STAT_PFC_6_TX_PKTS = 117; - PORT_STAT_PFC_7_RX_PKTS = 118; - PORT_STAT_PFC_7_TX_PKTS = 119; - PORT_STAT_PFC_0_RX_PAUSE_DURATION = 120; - PORT_STAT_PFC_0_TX_PAUSE_DURATION = 121; - PORT_STAT_PFC_1_RX_PAUSE_DURATION = 122; - PORT_STAT_PFC_1_TX_PAUSE_DURATION = 123; - PORT_STAT_PFC_2_RX_PAUSE_DURATION = 124; - PORT_STAT_PFC_2_TX_PAUSE_DURATION = 125; - PORT_STAT_PFC_3_RX_PAUSE_DURATION = 126; - PORT_STAT_PFC_3_TX_PAUSE_DURATION = 127; - PORT_STAT_PFC_4_RX_PAUSE_DURATION = 128; - PORT_STAT_PFC_4_TX_PAUSE_DURATION = 129; - PORT_STAT_PFC_5_RX_PAUSE_DURATION = 130; - PORT_STAT_PFC_5_TX_PAUSE_DURATION = 131; - PORT_STAT_PFC_6_RX_PAUSE_DURATION = 132; - PORT_STAT_PFC_6_TX_PAUSE_DURATION = 133; - PORT_STAT_PFC_7_RX_PAUSE_DURATION = 134; - PORT_STAT_PFC_7_TX_PAUSE_DURATION = 135; - PORT_STAT_PFC_0_RX_PAUSE_DURATION_US = 136; - PORT_STAT_PFC_0_TX_PAUSE_DURATION_US = 137; - PORT_STAT_PFC_1_RX_PAUSE_DURATION_US = 138; - PORT_STAT_PFC_1_TX_PAUSE_DURATION_US = 139; - PORT_STAT_PFC_2_RX_PAUSE_DURATION_US = 140; - PORT_STAT_PFC_2_TX_PAUSE_DURATION_US = 141; - PORT_STAT_PFC_3_RX_PAUSE_DURATION_US = 142; - PORT_STAT_PFC_3_TX_PAUSE_DURATION_US = 143; - PORT_STAT_PFC_4_RX_PAUSE_DURATION_US = 144; - PORT_STAT_PFC_4_TX_PAUSE_DURATION_US = 145; - PORT_STAT_PFC_5_RX_PAUSE_DURATION_US = 146; - PORT_STAT_PFC_5_TX_PAUSE_DURATION_US = 147; - PORT_STAT_PFC_6_RX_PAUSE_DURATION_US = 148; - PORT_STAT_PFC_6_TX_PAUSE_DURATION_US = 149; - PORT_STAT_PFC_7_RX_PAUSE_DURATION_US = 150; - PORT_STAT_PFC_7_TX_PAUSE_DURATION_US = 151; - PORT_STAT_PFC_0_ON2OFF_RX_PKTS = 152; - PORT_STAT_PFC_1_ON2OFF_RX_PKTS = 153; - PORT_STAT_PFC_2_ON2OFF_RX_PKTS = 154; - PORT_STAT_PFC_3_ON2OFF_RX_PKTS = 155; - PORT_STAT_PFC_4_ON2OFF_RX_PKTS = 156; - PORT_STAT_PFC_5_ON2OFF_RX_PKTS = 157; - PORT_STAT_PFC_6_ON2OFF_RX_PKTS = 158; - PORT_STAT_PFC_7_ON2OFF_RX_PKTS = 159; - PORT_STAT_DOT3_STATS_ALIGNMENT_ERRORS = 160; - PORT_STAT_DOT3_STATS_FCS_ERRORS = 161; - PORT_STAT_DOT3_STATS_SINGLE_COLLISION_FRAMES = 162; - PORT_STAT_DOT3_STATS_MULTIPLE_COLLISION_FRAMES = 163; - PORT_STAT_DOT3_STATS_SQE_TEST_ERRORS = 164; - PORT_STAT_DOT3_STATS_DEFERRED_TRANSMISSIONS = 165; - PORT_STAT_DOT3_STATS_LATE_COLLISIONS = 166; - PORT_STAT_DOT3_STATS_EXCESSIVE_COLLISIONS = 167; - PORT_STAT_DOT3_STATS_INTERNAL_MAC_TRANSMIT_ERRORS = 168; - PORT_STAT_DOT3_STATS_CARRIER_SENSE_ERRORS = 169; - PORT_STAT_DOT3_STATS_FRAME_TOO_LONGS = 170; - PORT_STAT_DOT3_STATS_INTERNAL_MAC_RECEIVE_ERRORS = 171; - PORT_STAT_DOT3_STATS_SYMBOL_ERRORS = 172; - PORT_STAT_DOT3_CONTROL_IN_UNKNOWN_OPCODES = 173; - PORT_STAT_EEE_TX_EVENT_COUNT = 174; - PORT_STAT_EEE_RX_EVENT_COUNT = 175; - PORT_STAT_EEE_TX_DURATION = 176; - PORT_STAT_EEE_RX_DURATION = 177; - PORT_STAT_PRBS_ERROR_COUNT = 178; - PORT_STAT_IF_IN_FEC_CORRECTABLE_FRAMES = 179; - PORT_STAT_IF_IN_FEC_NOT_CORRECTABLE_FRAMES = 180; - PORT_STAT_IF_IN_FEC_SYMBOL_ERRORS = 181; - PORT_STAT_IF_IN_FABRIC_DATA_UNITS = 182; - PORT_STAT_IF_OUT_FABRIC_DATA_UNITS = 183; - PORT_STAT_IN_DROP_REASON_RANGE_BASE = 184; - PORT_STAT_IN_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = 185; - PORT_STAT_IN_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS = 186; - PORT_STAT_IN_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS = 187; - PORT_STAT_IN_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS = 188; - PORT_STAT_IN_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS = 189; - PORT_STAT_IN_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS = 190; - PORT_STAT_IN_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS = 191; - PORT_STAT_IN_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS = 192; - PORT_STAT_IN_DROP_REASON_RANGE_END = 193; - PORT_STAT_OUT_DROP_REASON_RANGE_BASE = 194; - PORT_STAT_OUT_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = 195; - PORT_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS = 196; - PORT_STAT_OUT_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS = 197; - PORT_STAT_OUT_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS = 198; - PORT_STAT_OUT_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS = 199; - PORT_STAT_OUT_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS = 200; - PORT_STAT_OUT_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS = 201; - PORT_STAT_OUT_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS = 202; - PORT_STAT_OUT_DROP_REASON_RANGE_END = 203; + PORT_STAT_UNSPECIFIED = 0; + PORT_STAT_IF_IN_OCTETS = 1; + PORT_STAT_IF_IN_UCAST_PKTS = 2; + PORT_STAT_IF_IN_NON_UCAST_PKTS = 3; + PORT_STAT_IF_IN_DISCARDS = 4; + PORT_STAT_IF_IN_ERRORS = 5; + PORT_STAT_IF_IN_UNKNOWN_PROTOS = 6; + PORT_STAT_IF_IN_BROADCAST_PKTS = 7; + PORT_STAT_IF_IN_MULTICAST_PKTS = 8; + PORT_STAT_IF_IN_VLAN_DISCARDS = 9; + PORT_STAT_IF_OUT_OCTETS = 10; + PORT_STAT_IF_OUT_UCAST_PKTS = 11; + PORT_STAT_IF_OUT_NON_UCAST_PKTS = 12; + PORT_STAT_IF_OUT_DISCARDS = 13; + PORT_STAT_IF_OUT_ERRORS = 14; + PORT_STAT_IF_OUT_QLEN = 15; + PORT_STAT_IF_OUT_BROADCAST_PKTS = 16; + PORT_STAT_IF_OUT_MULTICAST_PKTS = 17; + PORT_STAT_ETHER_STATS_DROP_EVENTS = 18; + PORT_STAT_ETHER_STATS_MULTICAST_PKTS = 19; + PORT_STAT_ETHER_STATS_BROADCAST_PKTS = 20; + PORT_STAT_ETHER_STATS_UNDERSIZE_PKTS = 21; + PORT_STAT_ETHER_STATS_FRAGMENTS = 22; + PORT_STAT_ETHER_STATS_PKTS_64_OCTETS = 23; + PORT_STAT_ETHER_STATS_PKTS_65_TO_127_OCTETS = 24; + PORT_STAT_ETHER_STATS_PKTS_128_TO_255_OCTETS = 25; + PORT_STAT_ETHER_STATS_PKTS_256_TO_511_OCTETS = 26; + PORT_STAT_ETHER_STATS_PKTS_512_TO_1023_OCTETS = 27; + PORT_STAT_ETHER_STATS_PKTS_1024_TO_1518_OCTETS = 28; + PORT_STAT_ETHER_STATS_PKTS_1519_TO_2047_OCTETS = 29; + PORT_STAT_ETHER_STATS_PKTS_2048_TO_4095_OCTETS = 30; + PORT_STAT_ETHER_STATS_PKTS_4096_TO_9216_OCTETS = 31; + PORT_STAT_ETHER_STATS_PKTS_9217_TO_16383_OCTETS = 32; + PORT_STAT_ETHER_STATS_OVERSIZE_PKTS = 33; + PORT_STAT_ETHER_RX_OVERSIZE_PKTS = 34; + PORT_STAT_ETHER_TX_OVERSIZE_PKTS = 35; + PORT_STAT_ETHER_STATS_JABBERS = 36; + PORT_STAT_ETHER_STATS_OCTETS = 37; + PORT_STAT_ETHER_STATS_PKTS = 38; + PORT_STAT_ETHER_STATS_COLLISIONS = 39; + PORT_STAT_ETHER_STATS_CRC_ALIGN_ERRORS = 40; + PORT_STAT_ETHER_STATS_TX_NO_ERRORS = 41; + PORT_STAT_ETHER_STATS_RX_NO_ERRORS = 42; + PORT_STAT_IP_IN_RECEIVES = 43; + PORT_STAT_IP_IN_OCTETS = 44; + PORT_STAT_IP_IN_UCAST_PKTS = 45; + PORT_STAT_IP_IN_NON_UCAST_PKTS = 46; + PORT_STAT_IP_IN_DISCARDS = 47; + PORT_STAT_IP_OUT_OCTETS = 48; + PORT_STAT_IP_OUT_UCAST_PKTS = 49; + PORT_STAT_IP_OUT_NON_UCAST_PKTS = 50; + PORT_STAT_IP_OUT_DISCARDS = 51; + PORT_STAT_IPV6_IN_RECEIVES = 52; + PORT_STAT_IPV6_IN_OCTETS = 53; + PORT_STAT_IPV6_IN_UCAST_PKTS = 54; + PORT_STAT_IPV6_IN_NON_UCAST_PKTS = 55; + PORT_STAT_IPV6_IN_MCAST_PKTS = 56; + PORT_STAT_IPV6_IN_DISCARDS = 57; + PORT_STAT_IPV6_OUT_OCTETS = 58; + PORT_STAT_IPV6_OUT_UCAST_PKTS = 59; + PORT_STAT_IPV6_OUT_NON_UCAST_PKTS = 60; + PORT_STAT_IPV6_OUT_MCAST_PKTS = 61; + PORT_STAT_IPV6_OUT_DISCARDS = 62; + PORT_STAT_GREEN_WRED_DROPPED_PACKETS = 63; + PORT_STAT_GREEN_WRED_DROPPED_BYTES = 64; + PORT_STAT_YELLOW_WRED_DROPPED_PACKETS = 65; + PORT_STAT_YELLOW_WRED_DROPPED_BYTES = 66; + PORT_STAT_RED_WRED_DROPPED_PACKETS = 67; + PORT_STAT_RED_WRED_DROPPED_BYTES = 68; + PORT_STAT_WRED_DROPPED_PACKETS = 69; + PORT_STAT_WRED_DROPPED_BYTES = 70; + PORT_STAT_ECN_MARKED_PACKETS = 71; + PORT_STAT_ETHER_IN_PKTS_64_OCTETS = 72; + PORT_STAT_ETHER_IN_PKTS_65_TO_127_OCTETS = 73; + PORT_STAT_ETHER_IN_PKTS_128_TO_255_OCTETS = 74; + PORT_STAT_ETHER_IN_PKTS_256_TO_511_OCTETS = 75; + PORT_STAT_ETHER_IN_PKTS_512_TO_1023_OCTETS = 76; + PORT_STAT_ETHER_IN_PKTS_1024_TO_1518_OCTETS = 77; + PORT_STAT_ETHER_IN_PKTS_1519_TO_2047_OCTETS = 78; + PORT_STAT_ETHER_IN_PKTS_2048_TO_4095_OCTETS = 79; + PORT_STAT_ETHER_IN_PKTS_4096_TO_9216_OCTETS = 80; + PORT_STAT_ETHER_IN_PKTS_9217_TO_16383_OCTETS = 81; + PORT_STAT_ETHER_OUT_PKTS_64_OCTETS = 82; + PORT_STAT_ETHER_OUT_PKTS_65_TO_127_OCTETS = 83; + PORT_STAT_ETHER_OUT_PKTS_128_TO_255_OCTETS = 84; + PORT_STAT_ETHER_OUT_PKTS_256_TO_511_OCTETS = 85; + PORT_STAT_ETHER_OUT_PKTS_512_TO_1023_OCTETS = 86; + PORT_STAT_ETHER_OUT_PKTS_1024_TO_1518_OCTETS = 87; + PORT_STAT_ETHER_OUT_PKTS_1519_TO_2047_OCTETS = 88; + PORT_STAT_ETHER_OUT_PKTS_2048_TO_4095_OCTETS = 89; + PORT_STAT_ETHER_OUT_PKTS_4096_TO_9216_OCTETS = 90; + PORT_STAT_ETHER_OUT_PKTS_9217_TO_16383_OCTETS = 91; + PORT_STAT_IN_CURR_OCCUPANCY_BYTES = 92; + PORT_STAT_IN_WATERMARK_BYTES = 93; + PORT_STAT_IN_SHARED_CURR_OCCUPANCY_BYTES = 94; + PORT_STAT_IN_SHARED_WATERMARK_BYTES = 95; + PORT_STAT_OUT_CURR_OCCUPANCY_BYTES = 96; + PORT_STAT_OUT_WATERMARK_BYTES = 97; + PORT_STAT_OUT_SHARED_CURR_OCCUPANCY_BYTES = 98; + PORT_STAT_OUT_SHARED_WATERMARK_BYTES = 99; + PORT_STAT_IN_DROPPED_PKTS = 100; + PORT_STAT_OUT_DROPPED_PKTS = 101; + PORT_STAT_PAUSE_RX_PKTS = 102; + PORT_STAT_PAUSE_TX_PKTS = 103; + PORT_STAT_PFC_0_RX_PKTS = 104; + PORT_STAT_PFC_0_TX_PKTS = 105; + PORT_STAT_PFC_1_RX_PKTS = 106; + PORT_STAT_PFC_1_TX_PKTS = 107; + PORT_STAT_PFC_2_RX_PKTS = 108; + PORT_STAT_PFC_2_TX_PKTS = 109; + PORT_STAT_PFC_3_RX_PKTS = 110; + PORT_STAT_PFC_3_TX_PKTS = 111; + PORT_STAT_PFC_4_RX_PKTS = 112; + PORT_STAT_PFC_4_TX_PKTS = 113; + PORT_STAT_PFC_5_RX_PKTS = 114; + PORT_STAT_PFC_5_TX_PKTS = 115; + PORT_STAT_PFC_6_RX_PKTS = 116; + PORT_STAT_PFC_6_TX_PKTS = 117; + PORT_STAT_PFC_7_RX_PKTS = 118; + PORT_STAT_PFC_7_TX_PKTS = 119; + PORT_STAT_PFC_0_RX_PAUSE_DURATION = 120; + PORT_STAT_PFC_0_TX_PAUSE_DURATION = 121; + PORT_STAT_PFC_1_RX_PAUSE_DURATION = 122; + PORT_STAT_PFC_1_TX_PAUSE_DURATION = 123; + PORT_STAT_PFC_2_RX_PAUSE_DURATION = 124; + PORT_STAT_PFC_2_TX_PAUSE_DURATION = 125; + PORT_STAT_PFC_3_RX_PAUSE_DURATION = 126; + PORT_STAT_PFC_3_TX_PAUSE_DURATION = 127; + PORT_STAT_PFC_4_RX_PAUSE_DURATION = 128; + PORT_STAT_PFC_4_TX_PAUSE_DURATION = 129; + PORT_STAT_PFC_5_RX_PAUSE_DURATION = 130; + PORT_STAT_PFC_5_TX_PAUSE_DURATION = 131; + PORT_STAT_PFC_6_RX_PAUSE_DURATION = 132; + PORT_STAT_PFC_6_TX_PAUSE_DURATION = 133; + PORT_STAT_PFC_7_RX_PAUSE_DURATION = 134; + PORT_STAT_PFC_7_TX_PAUSE_DURATION = 135; + PORT_STAT_PFC_0_RX_PAUSE_DURATION_US = 136; + PORT_STAT_PFC_0_TX_PAUSE_DURATION_US = 137; + PORT_STAT_PFC_1_RX_PAUSE_DURATION_US = 138; + PORT_STAT_PFC_1_TX_PAUSE_DURATION_US = 139; + PORT_STAT_PFC_2_RX_PAUSE_DURATION_US = 140; + PORT_STAT_PFC_2_TX_PAUSE_DURATION_US = 141; + PORT_STAT_PFC_3_RX_PAUSE_DURATION_US = 142; + PORT_STAT_PFC_3_TX_PAUSE_DURATION_US = 143; + PORT_STAT_PFC_4_RX_PAUSE_DURATION_US = 144; + PORT_STAT_PFC_4_TX_PAUSE_DURATION_US = 145; + PORT_STAT_PFC_5_RX_PAUSE_DURATION_US = 146; + PORT_STAT_PFC_5_TX_PAUSE_DURATION_US = 147; + PORT_STAT_PFC_6_RX_PAUSE_DURATION_US = 148; + PORT_STAT_PFC_6_TX_PAUSE_DURATION_US = 149; + PORT_STAT_PFC_7_RX_PAUSE_DURATION_US = 150; + PORT_STAT_PFC_7_TX_PAUSE_DURATION_US = 151; + PORT_STAT_PFC_0_ON2OFF_RX_PKTS = 152; + PORT_STAT_PFC_1_ON2OFF_RX_PKTS = 153; + PORT_STAT_PFC_2_ON2OFF_RX_PKTS = 154; + PORT_STAT_PFC_3_ON2OFF_RX_PKTS = 155; + PORT_STAT_PFC_4_ON2OFF_RX_PKTS = 156; + PORT_STAT_PFC_5_ON2OFF_RX_PKTS = 157; + PORT_STAT_PFC_6_ON2OFF_RX_PKTS = 158; + PORT_STAT_PFC_7_ON2OFF_RX_PKTS = 159; + PORT_STAT_DOT3_STATS_ALIGNMENT_ERRORS = 160; + PORT_STAT_DOT3_STATS_FCS_ERRORS = 161; + PORT_STAT_DOT3_STATS_SINGLE_COLLISION_FRAMES = 162; + PORT_STAT_DOT3_STATS_MULTIPLE_COLLISION_FRAMES = 163; + PORT_STAT_DOT3_STATS_SQE_TEST_ERRORS = 164; + PORT_STAT_DOT3_STATS_DEFERRED_TRANSMISSIONS = 165; + PORT_STAT_DOT3_STATS_LATE_COLLISIONS = 166; + PORT_STAT_DOT3_STATS_EXCESSIVE_COLLISIONS = 167; + PORT_STAT_DOT3_STATS_INTERNAL_MAC_TRANSMIT_ERRORS = 168; + PORT_STAT_DOT3_STATS_CARRIER_SENSE_ERRORS = 169; + PORT_STAT_DOT3_STATS_FRAME_TOO_LONGS = 170; + PORT_STAT_DOT3_STATS_INTERNAL_MAC_RECEIVE_ERRORS = 171; + PORT_STAT_DOT3_STATS_SYMBOL_ERRORS = 172; + PORT_STAT_DOT3_CONTROL_IN_UNKNOWN_OPCODES = 173; + PORT_STAT_EEE_TX_EVENT_COUNT = 174; + PORT_STAT_EEE_RX_EVENT_COUNT = 175; + PORT_STAT_EEE_TX_DURATION = 176; + PORT_STAT_EEE_RX_DURATION = 177; + PORT_STAT_PRBS_ERROR_COUNT = 178; + PORT_STAT_IF_IN_FEC_CORRECTABLE_FRAMES = 179; + PORT_STAT_IF_IN_FEC_NOT_CORRECTABLE_FRAMES = 180; + PORT_STAT_IF_IN_FEC_SYMBOL_ERRORS = 181; + PORT_STAT_IF_IN_FABRIC_DATA_UNITS = 182; + PORT_STAT_IF_OUT_FABRIC_DATA_UNITS = 183; + PORT_STAT_IN_DROP_REASON_RANGE_BASE = 184; + PORT_STAT_IN_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = 185; + PORT_STAT_IN_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS = 186; + PORT_STAT_IN_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS = 187; + PORT_STAT_IN_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS = 188; + PORT_STAT_IN_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS = 189; + PORT_STAT_IN_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS = 190; + PORT_STAT_IN_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS = 191; + PORT_STAT_IN_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS = 192; + PORT_STAT_IN_DROP_REASON_RANGE_END = 193; + PORT_STAT_OUT_DROP_REASON_RANGE_BASE = 194; + PORT_STAT_OUT_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = 195; + PORT_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS = 196; + PORT_STAT_OUT_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS = 197; + PORT_STAT_OUT_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS = 198; + PORT_STAT_OUT_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS = 199; + PORT_STAT_OUT_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS = 200; + PORT_STAT_OUT_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS = 201; + PORT_STAT_OUT_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS = 202; + PORT_STAT_OUT_DROP_REASON_RANGE_END = 203; } enum PortType { - PORT_TYPE_UNSPECIFIED = 0; - PORT_TYPE_LOGICAL = 1; - PORT_TYPE_CPU = 2; - PORT_TYPE_FABRIC = 3; - PORT_TYPE_RECYCLE = 4; + PORT_TYPE_UNSPECIFIED = 0; + PORT_TYPE_LOGICAL = 1; + PORT_TYPE_CPU = 2; + PORT_TYPE_FABRIC = 3; + PORT_TYPE_RECYCLE = 4; } enum QosMapType { - QOS_MAP_TYPE_UNSPECIFIED = 0; - QOS_MAP_TYPE_DOT1P_TO_TC = 1; - QOS_MAP_TYPE_DOT1P_TO_COLOR = 2; - QOS_MAP_TYPE_DSCP_TO_TC = 3; - QOS_MAP_TYPE_DSCP_TO_COLOR = 4; - QOS_MAP_TYPE_TC_TO_QUEUE = 5; - QOS_MAP_TYPE_TC_AND_COLOR_TO_DSCP = 6; - QOS_MAP_TYPE_TC_AND_COLOR_TO_DOT1P = 7; - QOS_MAP_TYPE_TC_TO_PRIORITY_GROUP = 8; - QOS_MAP_TYPE_PFC_PRIORITY_TO_PRIORITY_GROUP = 9; - QOS_MAP_TYPE_PFC_PRIORITY_TO_QUEUE = 10; - QOS_MAP_TYPE_MPLS_EXP_TO_TC = 11; - QOS_MAP_TYPE_MPLS_EXP_TO_COLOR = 12; - QOS_MAP_TYPE_TC_AND_COLOR_TO_MPLS_EXP = 13; - QOS_MAP_TYPE_DSCP_TO_FORWARDING_CLASS = 14; - QOS_MAP_TYPE_MPLS_EXP_TO_FORWARDING_CLASS = 15; - QOS_MAP_TYPE_CUSTOM_RANGE_BASE = 16; + QOS_MAP_TYPE_UNSPECIFIED = 0; + QOS_MAP_TYPE_DOT1P_TO_TC = 1; + QOS_MAP_TYPE_DOT1P_TO_COLOR = 2; + QOS_MAP_TYPE_DSCP_TO_TC = 3; + QOS_MAP_TYPE_DSCP_TO_COLOR = 4; + QOS_MAP_TYPE_TC_TO_QUEUE = 5; + QOS_MAP_TYPE_TC_AND_COLOR_TO_DSCP = 6; + QOS_MAP_TYPE_TC_AND_COLOR_TO_DOT1P = 7; + QOS_MAP_TYPE_TC_TO_PRIORITY_GROUP = 8; + QOS_MAP_TYPE_PFC_PRIORITY_TO_PRIORITY_GROUP = 9; + QOS_MAP_TYPE_PFC_PRIORITY_TO_QUEUE = 10; + QOS_MAP_TYPE_MPLS_EXP_TO_TC = 11; + QOS_MAP_TYPE_MPLS_EXP_TO_COLOR = 12; + QOS_MAP_TYPE_TC_AND_COLOR_TO_MPLS_EXP = 13; + QOS_MAP_TYPE_DSCP_TO_FORWARDING_CLASS = 14; + QOS_MAP_TYPE_MPLS_EXP_TO_FORWARDING_CLASS = 15; + QOS_MAP_TYPE_CUSTOM_RANGE_BASE = 16; } enum QueuePfcDeadlockEventType { - QUEUE_PFC_DEADLOCK_EVENT_TYPE_UNSPECIFIED = 0; - QUEUE_PFC_DEADLOCK_EVENT_TYPE_DETECTED = 1; - QUEUE_PFC_DEADLOCK_EVENT_TYPE_RECOVERED = 2; + QUEUE_PFC_DEADLOCK_EVENT_TYPE_UNSPECIFIED = 0; + QUEUE_PFC_DEADLOCK_EVENT_TYPE_DETECTED = 1; + QUEUE_PFC_DEADLOCK_EVENT_TYPE_RECOVERED = 2; } enum QueueStat { - QUEUE_STAT_UNSPECIFIED = 0; - QUEUE_STAT_PACKETS = 1; - QUEUE_STAT_BYTES = 2; - QUEUE_STAT_DROPPED_PACKETS = 3; - QUEUE_STAT_DROPPED_BYTES = 4; - QUEUE_STAT_GREEN_PACKETS = 5; - QUEUE_STAT_GREEN_BYTES = 6; - QUEUE_STAT_GREEN_DROPPED_PACKETS = 7; - QUEUE_STAT_GREEN_DROPPED_BYTES = 8; - QUEUE_STAT_YELLOW_PACKETS = 9; - QUEUE_STAT_YELLOW_BYTES = 10; - QUEUE_STAT_YELLOW_DROPPED_PACKETS = 11; - QUEUE_STAT_YELLOW_DROPPED_BYTES = 12; - QUEUE_STAT_RED_PACKETS = 13; - QUEUE_STAT_RED_BYTES = 14; - QUEUE_STAT_RED_DROPPED_PACKETS = 15; - QUEUE_STAT_RED_DROPPED_BYTES = 16; - QUEUE_STAT_GREEN_WRED_DROPPED_PACKETS = 17; - QUEUE_STAT_GREEN_WRED_DROPPED_BYTES = 18; - QUEUE_STAT_YELLOW_WRED_DROPPED_PACKETS = 19; - QUEUE_STAT_YELLOW_WRED_DROPPED_BYTES = 20; - QUEUE_STAT_RED_WRED_DROPPED_PACKETS = 21; - QUEUE_STAT_RED_WRED_DROPPED_BYTES = 22; - QUEUE_STAT_WRED_DROPPED_PACKETS = 23; - QUEUE_STAT_WRED_DROPPED_BYTES = 24; - QUEUE_STAT_CURR_OCCUPANCY_BYTES = 25; - QUEUE_STAT_WATERMARK_BYTES = 26; - QUEUE_STAT_SHARED_CURR_OCCUPANCY_BYTES = 27; - QUEUE_STAT_SHARED_WATERMARK_BYTES = 28; - QUEUE_STAT_GREEN_WRED_ECN_MARKED_PACKETS = 29; - QUEUE_STAT_GREEN_WRED_ECN_MARKED_BYTES = 30; - QUEUE_STAT_YELLOW_WRED_ECN_MARKED_PACKETS = 31; - QUEUE_STAT_YELLOW_WRED_ECN_MARKED_BYTES = 32; - QUEUE_STAT_RED_WRED_ECN_MARKED_PACKETS = 33; - QUEUE_STAT_RED_WRED_ECN_MARKED_BYTES = 34; - QUEUE_STAT_WRED_ECN_MARKED_PACKETS = 35; - QUEUE_STAT_WRED_ECN_MARKED_BYTES = 36; - QUEUE_STAT_CURR_OCCUPANCY_LEVEL = 37; - QUEUE_STAT_WATERMARK_LEVEL = 38; - QUEUE_STAT_CUSTOM_RANGE_BASE = 39; + QUEUE_STAT_UNSPECIFIED = 0; + QUEUE_STAT_PACKETS = 1; + QUEUE_STAT_BYTES = 2; + QUEUE_STAT_DROPPED_PACKETS = 3; + QUEUE_STAT_DROPPED_BYTES = 4; + QUEUE_STAT_GREEN_PACKETS = 5; + QUEUE_STAT_GREEN_BYTES = 6; + QUEUE_STAT_GREEN_DROPPED_PACKETS = 7; + QUEUE_STAT_GREEN_DROPPED_BYTES = 8; + QUEUE_STAT_YELLOW_PACKETS = 9; + QUEUE_STAT_YELLOW_BYTES = 10; + QUEUE_STAT_YELLOW_DROPPED_PACKETS = 11; + QUEUE_STAT_YELLOW_DROPPED_BYTES = 12; + QUEUE_STAT_RED_PACKETS = 13; + QUEUE_STAT_RED_BYTES = 14; + QUEUE_STAT_RED_DROPPED_PACKETS = 15; + QUEUE_STAT_RED_DROPPED_BYTES = 16; + QUEUE_STAT_GREEN_WRED_DROPPED_PACKETS = 17; + QUEUE_STAT_GREEN_WRED_DROPPED_BYTES = 18; + QUEUE_STAT_YELLOW_WRED_DROPPED_PACKETS = 19; + QUEUE_STAT_YELLOW_WRED_DROPPED_BYTES = 20; + QUEUE_STAT_RED_WRED_DROPPED_PACKETS = 21; + QUEUE_STAT_RED_WRED_DROPPED_BYTES = 22; + QUEUE_STAT_WRED_DROPPED_PACKETS = 23; + QUEUE_STAT_WRED_DROPPED_BYTES = 24; + QUEUE_STAT_CURR_OCCUPANCY_BYTES = 25; + QUEUE_STAT_WATERMARK_BYTES = 26; + QUEUE_STAT_SHARED_CURR_OCCUPANCY_BYTES = 27; + QUEUE_STAT_SHARED_WATERMARK_BYTES = 28; + QUEUE_STAT_GREEN_WRED_ECN_MARKED_PACKETS = 29; + QUEUE_STAT_GREEN_WRED_ECN_MARKED_BYTES = 30; + QUEUE_STAT_YELLOW_WRED_ECN_MARKED_PACKETS = 31; + QUEUE_STAT_YELLOW_WRED_ECN_MARKED_BYTES = 32; + QUEUE_STAT_RED_WRED_ECN_MARKED_PACKETS = 33; + QUEUE_STAT_RED_WRED_ECN_MARKED_BYTES = 34; + QUEUE_STAT_WRED_ECN_MARKED_PACKETS = 35; + QUEUE_STAT_WRED_ECN_MARKED_BYTES = 36; + QUEUE_STAT_CURR_OCCUPANCY_LEVEL = 37; + QUEUE_STAT_WATERMARK_LEVEL = 38; + QUEUE_STAT_CUSTOM_RANGE_BASE = 39; } enum QueueType { - QUEUE_TYPE_UNSPECIFIED = 0; - QUEUE_TYPE_ALL = 1; - QUEUE_TYPE_UNICAST = 2; - QUEUE_TYPE_MULTICAST = 3; - QUEUE_TYPE_UNICAST_VOQ = 4; - QUEUE_TYPE_MULTICAST_VOQ = 5; - QUEUE_TYPE_FABRIC_TX = 6; - QUEUE_TYPE_CUSTOM_RANGE_BASE = 7; + QUEUE_TYPE_UNSPECIFIED = 0; + QUEUE_TYPE_ALL = 1; + QUEUE_TYPE_UNICAST = 2; + QUEUE_TYPE_MULTICAST = 3; + QUEUE_TYPE_UNICAST_VOQ = 4; + QUEUE_TYPE_MULTICAST_VOQ = 5; + QUEUE_TYPE_FABRIC_TX = 6; + QUEUE_TYPE_CUSTOM_RANGE_BASE = 7; } enum RouterInterfaceStat { - ROUTER_INTERFACE_STAT_UNSPECIFIED = 0; - ROUTER_INTERFACE_STAT_IN_OCTETS = 1; - ROUTER_INTERFACE_STAT_IN_PACKETS = 2; - ROUTER_INTERFACE_STAT_OUT_OCTETS = 3; - ROUTER_INTERFACE_STAT_OUT_PACKETS = 4; - ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS = 5; - ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS = 6; - ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS = 7; - ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS = 8; + ROUTER_INTERFACE_STAT_UNSPECIFIED = 0; + ROUTER_INTERFACE_STAT_IN_OCTETS = 1; + ROUTER_INTERFACE_STAT_IN_PACKETS = 2; + ROUTER_INTERFACE_STAT_OUT_OCTETS = 3; + ROUTER_INTERFACE_STAT_OUT_PACKETS = 4; + ROUTER_INTERFACE_STAT_IN_ERROR_OCTETS = 5; + ROUTER_INTERFACE_STAT_IN_ERROR_PACKETS = 6; + ROUTER_INTERFACE_STAT_OUT_ERROR_OCTETS = 7; + ROUTER_INTERFACE_STAT_OUT_ERROR_PACKETS = 8; } enum RouterInterfaceType { - ROUTER_INTERFACE_TYPE_UNSPECIFIED = 0; - ROUTER_INTERFACE_TYPE_PORT = 1; - ROUTER_INTERFACE_TYPE_VLAN = 2; - ROUTER_INTERFACE_TYPE_LOOPBACK = 3; - ROUTER_INTERFACE_TYPE_MPLS_ROUTER = 4; - ROUTER_INTERFACE_TYPE_SUB_PORT = 5; - ROUTER_INTERFACE_TYPE_BRIDGE = 6; - ROUTER_INTERFACE_TYPE_QINQ_PORT = 7; + ROUTER_INTERFACE_TYPE_UNSPECIFIED = 0; + ROUTER_INTERFACE_TYPE_PORT = 1; + ROUTER_INTERFACE_TYPE_VLAN = 2; + ROUTER_INTERFACE_TYPE_LOOPBACK = 3; + ROUTER_INTERFACE_TYPE_MPLS_ROUTER = 4; + ROUTER_INTERFACE_TYPE_SUB_PORT = 5; + ROUTER_INTERFACE_TYPE_BRIDGE = 6; + ROUTER_INTERFACE_TYPE_QINQ_PORT = 7; } enum SamplepacketMode { - SAMPLEPACKET_MODE_UNSPECIFIED = 0; - SAMPLEPACKET_MODE_EXCLUSIVE = 1; - SAMPLEPACKET_MODE_SHARED = 2; + SAMPLEPACKET_MODE_UNSPECIFIED = 0; + SAMPLEPACKET_MODE_EXCLUSIVE = 1; + SAMPLEPACKET_MODE_SHARED = 2; } enum SamplepacketType { - SAMPLEPACKET_TYPE_UNSPECIFIED = 0; - SAMPLEPACKET_TYPE_SLOW_PATH = 1; - SAMPLEPACKET_TYPE_MIRROR_SESSION = 2; + SAMPLEPACKET_TYPE_UNSPECIFIED = 0; + SAMPLEPACKET_TYPE_SLOW_PATH = 1; + SAMPLEPACKET_TYPE_MIRROR_SESSION = 2; } enum SchedulingType { - SCHEDULING_TYPE_UNSPECIFIED = 0; - SCHEDULING_TYPE_STRICT = 1; - SCHEDULING_TYPE_WRR = 2; - SCHEDULING_TYPE_DWRR = 3; + SCHEDULING_TYPE_UNSPECIFIED = 0; + SCHEDULING_TYPE_STRICT = 1; + SCHEDULING_TYPE_WRR = 2; + SCHEDULING_TYPE_DWRR = 3; } enum Srv6SidlistType { - SRV6_SIDLIST_TYPE_UNSPECIFIED = 0; - SRV6_SIDLIST_TYPE_INSERT = 1; - SRV6_SIDLIST_TYPE_INSERT_RED = 2; - SRV6_SIDLIST_TYPE_ENCAPS = 3; - SRV6_SIDLIST_TYPE_ENCAPS_RED = 4; - SRV6_SIDLIST_TYPE_CUSTOM_RANGE_BASE = 5; + SRV6_SIDLIST_TYPE_UNSPECIFIED = 0; + SRV6_SIDLIST_TYPE_INSERT = 1; + SRV6_SIDLIST_TYPE_INSERT_RED = 2; + SRV6_SIDLIST_TYPE_ENCAPS = 3; + SRV6_SIDLIST_TYPE_ENCAPS_RED = 4; + SRV6_SIDLIST_TYPE_CUSTOM_RANGE_BASE = 5; } enum StatsMode { - STATS_MODE_UNSPECIFIED = 0; - STATS_MODE_READ = 1; - STATS_MODE_READ_AND_CLEAR = 2; + STATS_MODE_UNSPECIFIED = 0; + STATS_MODE_READ = 1; + STATS_MODE_READ_AND_CLEAR = 2; } enum StpPortState { - STP_PORT_STATE_UNSPECIFIED = 0; - STP_PORT_STATE_LEARNING = 1; - STP_PORT_STATE_FORWARDING = 2; - STP_PORT_STATE_BLOCKING = 3; + STP_PORT_STATE_UNSPECIFIED = 0; + STP_PORT_STATE_LEARNING = 1; + STP_PORT_STATE_FORWARDING = 2; + STP_PORT_STATE_BLOCKING = 3; } enum SwitchFailoverConfigMode { - SWITCH_FAILOVER_CONFIG_MODE_UNSPECIFIED = 0; - SWITCH_FAILOVER_CONFIG_MODE_NO_HITLESS = 1; - SWITCH_FAILOVER_CONFIG_MODE_HITLESS = 2; + SWITCH_FAILOVER_CONFIG_MODE_UNSPECIFIED = 0; + SWITCH_FAILOVER_CONFIG_MODE_NO_HITLESS = 1; + SWITCH_FAILOVER_CONFIG_MODE_HITLESS = 2; } enum SwitchFirmwareLoadMethod { - SWITCH_FIRMWARE_LOAD_METHOD_UNSPECIFIED = 0; - SWITCH_FIRMWARE_LOAD_METHOD_NONE = 1; - SWITCH_FIRMWARE_LOAD_METHOD_INTERNAL = 2; - SWITCH_FIRMWARE_LOAD_METHOD_EEPROM = 3; + SWITCH_FIRMWARE_LOAD_METHOD_UNSPECIFIED = 0; + SWITCH_FIRMWARE_LOAD_METHOD_NONE = 1; + SWITCH_FIRMWARE_LOAD_METHOD_INTERNAL = 2; + SWITCH_FIRMWARE_LOAD_METHOD_EEPROM = 3; } enum SwitchFirmwareLoadType { - SWITCH_FIRMWARE_LOAD_TYPE_UNSPECIFIED = 0; - SWITCH_FIRMWARE_LOAD_TYPE_SKIP = 1; - SWITCH_FIRMWARE_LOAD_TYPE_FORCE = 2; - SWITCH_FIRMWARE_LOAD_TYPE_AUTO = 3; + SWITCH_FIRMWARE_LOAD_TYPE_UNSPECIFIED = 0; + SWITCH_FIRMWARE_LOAD_TYPE_SKIP = 1; + SWITCH_FIRMWARE_LOAD_TYPE_FORCE = 2; + SWITCH_FIRMWARE_LOAD_TYPE_AUTO = 3; } enum SwitchHardwareAccessBus { - SWITCH_HARDWARE_ACCESS_BUS_UNSPECIFIED = 0; - SWITCH_HARDWARE_ACCESS_BUS_MDIO = 1; - SWITCH_HARDWARE_ACCESS_BUS_I2C = 2; - SWITCH_HARDWARE_ACCESS_BUS_CPLD = 3; + SWITCH_HARDWARE_ACCESS_BUS_UNSPECIFIED = 0; + SWITCH_HARDWARE_ACCESS_BUS_MDIO = 1; + SWITCH_HARDWARE_ACCESS_BUS_I2C = 2; + SWITCH_HARDWARE_ACCESS_BUS_CPLD = 3; } enum SwitchMcastSnoopingCapability { - SWITCH_MCAST_SNOOPING_CAPABILITY_UNSPECIFIED = 0; - SWITCH_MCAST_SNOOPING_CAPABILITY_NONE = 1; - SWITCH_MCAST_SNOOPING_CAPABILITY_XG = 2; - SWITCH_MCAST_SNOOPING_CAPABILITY_SG = 3; - SWITCH_MCAST_SNOOPING_CAPABILITY_XG_AND_SG = 4; + SWITCH_MCAST_SNOOPING_CAPABILITY_UNSPECIFIED = 0; + SWITCH_MCAST_SNOOPING_CAPABILITY_NONE = 1; + SWITCH_MCAST_SNOOPING_CAPABILITY_XG = 2; + SWITCH_MCAST_SNOOPING_CAPABILITY_SG = 3; + SWITCH_MCAST_SNOOPING_CAPABILITY_XG_AND_SG = 4; } enum SwitchOperStatus { - SWITCH_OPER_STATUS_UNSPECIFIED = 0; - SWITCH_OPER_STATUS_UNKNOWN = 1; - SWITCH_OPER_STATUS_UP = 2; - SWITCH_OPER_STATUS_DOWN = 3; - SWITCH_OPER_STATUS_FAILED = 4; + SWITCH_OPER_STATUS_UNSPECIFIED = 0; + SWITCH_OPER_STATUS_UNKNOWN = 1; + SWITCH_OPER_STATUS_UP = 2; + SWITCH_OPER_STATUS_DOWN = 3; + SWITCH_OPER_STATUS_FAILED = 4; } enum SwitchRestartType { - SWITCH_RESTART_TYPE_UNSPECIFIED = 0; - SWITCH_RESTART_TYPE_NONE = 1; - SWITCH_RESTART_TYPE_PLANNED = 2; - SWITCH_RESTART_TYPE_ANY = 3; + SWITCH_RESTART_TYPE_UNSPECIFIED = 0; + SWITCH_RESTART_TYPE_NONE = 1; + SWITCH_RESTART_TYPE_PLANNED = 2; + SWITCH_RESTART_TYPE_ANY = 3; } enum SwitchStat { - SWITCH_STAT_UNSPECIFIED = 0; - SWITCH_STAT_IN_DROP_REASON_RANGE_BASE = 1; - SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = 2; - SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS = 3; - SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS = 4; - SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS = 5; - SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS = 6; - SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS = 7; - SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS = 8; - SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS = 9; - SWITCH_STAT_IN_DROP_REASON_RANGE_END = 10; - SWITCH_STAT_OUT_DROP_REASON_RANGE_BASE = 11; - SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = 12; - SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS = 13; - SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS = 14; - SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS = 15; - SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS = 16; - SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS = 17; - SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS = 18; - SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS = 19; - SWITCH_STAT_OUT_DROP_REASON_RANGE_END = 20; - SWITCH_STAT_FABRIC_DROP_REASON_RANGE_BASE = 21; - SWITCH_STAT_ECC_DROP = 22; - SWITCH_STAT_REACHABILITY_DROP = 23; - SWITCH_STAT_HIGHEST_QUEUE_CONGESTION_LEVEL = 24; - SWITCH_STAT_GLOBAL_DROP = 25; - SWITCH_STAT_FABRIC_DROP_REASON_RANGE_END = 26; + SWITCH_STAT_UNSPECIFIED = 0; + SWITCH_STAT_IN_DROP_REASON_RANGE_BASE = 1; + SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = 2; + SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS = 3; + SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS = 4; + SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS = 5; + SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS = 6; + SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS = 7; + SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS = 8; + SWITCH_STAT_IN_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS = 9; + SWITCH_STAT_IN_DROP_REASON_RANGE_END = 10; + SWITCH_STAT_OUT_DROP_REASON_RANGE_BASE = 11; + SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_0_DROPPED_PKTS = 12; + SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_1_DROPPED_PKTS = 13; + SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_2_DROPPED_PKTS = 14; + SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_3_DROPPED_PKTS = 15; + SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_4_DROPPED_PKTS = 16; + SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_5_DROPPED_PKTS = 17; + SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_6_DROPPED_PKTS = 18; + SWITCH_STAT_OUT_CONFIGURED_DROP_REASONS_7_DROPPED_PKTS = 19; + SWITCH_STAT_OUT_DROP_REASON_RANGE_END = 20; + SWITCH_STAT_FABRIC_DROP_REASON_RANGE_BASE = 21; + SWITCH_STAT_ECC_DROP = 22; + SWITCH_STAT_REACHABILITY_DROP = 23; + SWITCH_STAT_HIGHEST_QUEUE_CONGESTION_LEVEL = 24; + SWITCH_STAT_GLOBAL_DROP = 25; + SWITCH_STAT_FABRIC_DROP_REASON_RANGE_END = 26; } enum SwitchSwitchingMode { - SWITCH_SWITCHING_MODE_UNSPECIFIED = 0; - SWITCH_SWITCHING_MODE_CUT_THROUGH = 1; - SWITCH_SWITCHING_MODE_STORE_AND_FORWARD = 2; + SWITCH_SWITCHING_MODE_UNSPECIFIED = 0; + SWITCH_SWITCHING_MODE_CUT_THROUGH = 1; + SWITCH_SWITCHING_MODE_STORE_AND_FORWARD = 2; } enum SwitchType { - SWITCH_TYPE_UNSPECIFIED = 0; - SWITCH_TYPE_NPU = 1; - SWITCH_TYPE_PHY = 2; - SWITCH_TYPE_VOQ = 3; - SWITCH_TYPE_FABRIC = 4; + SWITCH_TYPE_UNSPECIFIED = 0; + SWITCH_TYPE_NPU = 1; + SWITCH_TYPE_PHY = 2; + SWITCH_TYPE_VOQ = 3; + SWITCH_TYPE_FABRIC = 4; } enum SystemPortType { - SYSTEM_PORT_TYPE_UNSPECIFIED = 0; - SYSTEM_PORT_TYPE_LOCAL = 1; - SYSTEM_PORT_TYPE_REMOTE = 2; + SYSTEM_PORT_TYPE_UNSPECIFIED = 0; + SYSTEM_PORT_TYPE_LOCAL = 1; + SYSTEM_PORT_TYPE_REMOTE = 2; } enum TamBindPointType { - TAM_BIND_POINT_TYPE_UNSPECIFIED = 0; - TAM_BIND_POINT_TYPE_QUEUE = 1; - TAM_BIND_POINT_TYPE_PORT = 2; - TAM_BIND_POINT_TYPE_LAG = 3; - TAM_BIND_POINT_TYPE_VLAN = 4; - TAM_BIND_POINT_TYPE_SWITCH = 5; - TAM_BIND_POINT_TYPE_IPG = 6; - TAM_BIND_POINT_TYPE_BSP = 7; + TAM_BIND_POINT_TYPE_UNSPECIFIED = 0; + TAM_BIND_POINT_TYPE_QUEUE = 1; + TAM_BIND_POINT_TYPE_PORT = 2; + TAM_BIND_POINT_TYPE_LAG = 3; + TAM_BIND_POINT_TYPE_VLAN = 4; + TAM_BIND_POINT_TYPE_SWITCH = 5; + TAM_BIND_POINT_TYPE_IPG = 6; + TAM_BIND_POINT_TYPE_BSP = 7; } enum TamEventThresholdUnit { - TAM_EVENT_THRESHOLD_UNIT_UNSPECIFIED = 0; - TAM_EVENT_THRESHOLD_UNIT_NANOSEC = 1; - TAM_EVENT_THRESHOLD_UNIT_USEC = 2; - TAM_EVENT_THRESHOLD_UNIT_MSEC = 3; - TAM_EVENT_THRESHOLD_UNIT_PERCENT = 4; - TAM_EVENT_THRESHOLD_UNIT_BYTES = 5; - TAM_EVENT_THRESHOLD_UNIT_PACKETS = 6; - TAM_EVENT_THRESHOLD_UNIT_CELLS = 7; + TAM_EVENT_THRESHOLD_UNIT_UNSPECIFIED = 0; + TAM_EVENT_THRESHOLD_UNIT_NANOSEC = 1; + TAM_EVENT_THRESHOLD_UNIT_USEC = 2; + TAM_EVENT_THRESHOLD_UNIT_MSEC = 3; + TAM_EVENT_THRESHOLD_UNIT_PERCENT = 4; + TAM_EVENT_THRESHOLD_UNIT_BYTES = 5; + TAM_EVENT_THRESHOLD_UNIT_PACKETS = 6; + TAM_EVENT_THRESHOLD_UNIT_CELLS = 7; } enum TamEventType { - TAM_EVENT_TYPE_UNSPECIFIED = 0; - TAM_EVENT_TYPE_FLOW_STATE = 1; - TAM_EVENT_TYPE_FLOW_WATCHLIST = 2; - TAM_EVENT_TYPE_FLOW_TCPFLAG = 3; - TAM_EVENT_TYPE_QUEUE_THRESHOLD = 4; - TAM_EVENT_TYPE_QUEUE_TAIL_DROP = 5; - TAM_EVENT_TYPE_PACKET_DROP = 6; - TAM_EVENT_TYPE_RESOURCE_UTILIZATION = 7; - TAM_EVENT_TYPE_IPG_SHARED = 8; - TAM_EVENT_TYPE_IPG_XOFF_ROOM = 9; - TAM_EVENT_TYPE_BSP = 10; + TAM_EVENT_TYPE_UNSPECIFIED = 0; + TAM_EVENT_TYPE_FLOW_STATE = 1; + TAM_EVENT_TYPE_FLOW_WATCHLIST = 2; + TAM_EVENT_TYPE_FLOW_TCPFLAG = 3; + TAM_EVENT_TYPE_QUEUE_THRESHOLD = 4; + TAM_EVENT_TYPE_QUEUE_TAIL_DROP = 5; + TAM_EVENT_TYPE_PACKET_DROP = 6; + TAM_EVENT_TYPE_RESOURCE_UTILIZATION = 7; + TAM_EVENT_TYPE_IPG_SHARED = 8; + TAM_EVENT_TYPE_IPG_XOFF_ROOM = 9; + TAM_EVENT_TYPE_BSP = 10; } enum TamIntPresenceType { - TAM_INT_PRESENCE_TYPE_UNSPECIFIED = 0; - TAM_INT_PRESENCE_TYPE_UNDEFINED = 1; - TAM_INT_PRESENCE_TYPE_PB = 2; - TAM_INT_PRESENCE_TYPE_L3_PROTOCOL = 3; - TAM_INT_PRESENCE_TYPE_DSCP = 4; + TAM_INT_PRESENCE_TYPE_UNSPECIFIED = 0; + TAM_INT_PRESENCE_TYPE_UNDEFINED = 1; + TAM_INT_PRESENCE_TYPE_PB = 2; + TAM_INT_PRESENCE_TYPE_L3_PROTOCOL = 3; + TAM_INT_PRESENCE_TYPE_DSCP = 4; } enum TamIntType { - TAM_INT_TYPE_UNSPECIFIED = 0; - TAM_INT_TYPE_IOAM = 1; - TAM_INT_TYPE_IFA1 = 2; - TAM_INT_TYPE_IFA2 = 3; - TAM_INT_TYPE_P4_INT_1 = 4; - TAM_INT_TYPE_P4_INT_2 = 5; - TAM_INT_TYPE_DIRECT_EXPORT = 6; - TAM_INT_TYPE_IFA1_TAILSTAMP = 7; + TAM_INT_TYPE_UNSPECIFIED = 0; + TAM_INT_TYPE_IOAM = 1; + TAM_INT_TYPE_IFA1 = 2; + TAM_INT_TYPE_IFA2 = 3; + TAM_INT_TYPE_P4_INT_1 = 4; + TAM_INT_TYPE_P4_INT_2 = 5; + TAM_INT_TYPE_DIRECT_EXPORT = 6; + TAM_INT_TYPE_IFA1_TAILSTAMP = 7; } enum TamReportMode { - TAM_REPORT_MODE_UNSPECIFIED = 0; - TAM_REPORT_MODE_ALL = 1; - TAM_REPORT_MODE_BULK = 2; + TAM_REPORT_MODE_UNSPECIFIED = 0; + TAM_REPORT_MODE_ALL = 1; + TAM_REPORT_MODE_BULK = 2; } enum TamReportType { - TAM_REPORT_TYPE_UNSPECIFIED = 0; - TAM_REPORT_TYPE_SFLOW = 1; - TAM_REPORT_TYPE_IPFIX = 2; - TAM_REPORT_TYPE_PROTO = 3; - TAM_REPORT_TYPE_THRIFT = 4; - TAM_REPORT_TYPE_JSON = 5; - TAM_REPORT_TYPE_P4_EXTN = 6; - TAM_REPORT_TYPE_HISTOGRAM = 7; - TAM_REPORT_TYPE_VENDOR_EXTN = 8; + TAM_REPORT_TYPE_UNSPECIFIED = 0; + TAM_REPORT_TYPE_SFLOW = 1; + TAM_REPORT_TYPE_IPFIX = 2; + TAM_REPORT_TYPE_PROTO = 3; + TAM_REPORT_TYPE_THRIFT = 4; + TAM_REPORT_TYPE_JSON = 5; + TAM_REPORT_TYPE_P4_EXTN = 6; + TAM_REPORT_TYPE_HISTOGRAM = 7; + TAM_REPORT_TYPE_VENDOR_EXTN = 8; } enum TamReportingUnit { - TAM_REPORTING_UNIT_UNSPECIFIED = 0; - TAM_REPORTING_UNIT_SEC = 1; - TAM_REPORTING_UNIT_MINUTE = 2; - TAM_REPORTING_UNIT_HOUR = 3; - TAM_REPORTING_UNIT_DAY = 4; + TAM_REPORTING_UNIT_UNSPECIFIED = 0; + TAM_REPORTING_UNIT_SEC = 1; + TAM_REPORTING_UNIT_MINUTE = 2; + TAM_REPORTING_UNIT_HOUR = 3; + TAM_REPORTING_UNIT_DAY = 4; } enum TamTelMathFuncType { - TAM_TEL_MATH_FUNC_TYPE_UNSPECIFIED = 0; - TAM_TEL_MATH_FUNC_TYPE_NONE = 1; - TAM_TEL_MATH_FUNC_TYPE_GEO_MEAN = 2; - TAM_TEL_MATH_FUNC_TYPE_ALGEBRAIC_MEAN = 3; - TAM_TEL_MATH_FUNC_TYPE_AVERAGE = 4; - TAM_TEL_MATH_FUNC_TYPE_MODE = 5; - TAM_TEL_MATH_FUNC_TYPE_RATE = 6; + TAM_TEL_MATH_FUNC_TYPE_UNSPECIFIED = 0; + TAM_TEL_MATH_FUNC_TYPE_NONE = 1; + TAM_TEL_MATH_FUNC_TYPE_GEO_MEAN = 2; + TAM_TEL_MATH_FUNC_TYPE_ALGEBRAIC_MEAN = 3; + TAM_TEL_MATH_FUNC_TYPE_AVERAGE = 4; + TAM_TEL_MATH_FUNC_TYPE_MODE = 5; + TAM_TEL_MATH_FUNC_TYPE_RATE = 6; } enum TamTelemetryType { - TAM_TELEMETRY_TYPE_UNSPECIFIED = 0; - TAM_TELEMETRY_TYPE_NE = 1; - TAM_TELEMETRY_TYPE_SWITCH = 2; - TAM_TELEMETRY_TYPE_FABRIC = 3; - TAM_TELEMETRY_TYPE_FLOW = 4; - TAM_TELEMETRY_TYPE_INT = 5; + TAM_TELEMETRY_TYPE_UNSPECIFIED = 0; + TAM_TELEMETRY_TYPE_NE = 1; + TAM_TELEMETRY_TYPE_SWITCH = 2; + TAM_TELEMETRY_TYPE_FABRIC = 3; + TAM_TELEMETRY_TYPE_FLOW = 4; + TAM_TELEMETRY_TYPE_INT = 5; } enum TamTransportAuthType { - TAM_TRANSPORT_AUTH_TYPE_UNSPECIFIED = 0; - TAM_TRANSPORT_AUTH_TYPE_NONE = 1; - TAM_TRANSPORT_AUTH_TYPE_SSL = 2; - TAM_TRANSPORT_AUTH_TYPE_TLS = 3; + TAM_TRANSPORT_AUTH_TYPE_UNSPECIFIED = 0; + TAM_TRANSPORT_AUTH_TYPE_NONE = 1; + TAM_TRANSPORT_AUTH_TYPE_SSL = 2; + TAM_TRANSPORT_AUTH_TYPE_TLS = 3; } enum TamTransportType { - TAM_TRANSPORT_TYPE_UNSPECIFIED = 0; - TAM_TRANSPORT_TYPE_NONE = 1; - TAM_TRANSPORT_TYPE_TCP = 2; - TAM_TRANSPORT_TYPE_UDP = 3; - TAM_TRANSPORT_TYPE_GRPC = 4; - TAM_TRANSPORT_TYPE_MIRROR = 5; + TAM_TRANSPORT_TYPE_UNSPECIFIED = 0; + TAM_TRANSPORT_TYPE_NONE = 1; + TAM_TRANSPORT_TYPE_TCP = 2; + TAM_TRANSPORT_TYPE_UDP = 3; + TAM_TRANSPORT_TYPE_GRPC = 4; + TAM_TRANSPORT_TYPE_MIRROR = 5; } enum TlvType { - TLV_TYPE_UNSPECIFIED = 0; - TLV_TYPE_INGRESS = 1; - TLV_TYPE_EGRESS = 2; - TLV_TYPE_OPAQUE = 3; - TLV_TYPE_HMAC = 4; + TLV_TYPE_UNSPECIFIED = 0; + TLV_TYPE_INGRESS = 1; + TLV_TYPE_EGRESS = 2; + TLV_TYPE_OPAQUE = 3; + TLV_TYPE_HMAC = 4; } enum TunnelDecapEcnMode { - TUNNEL_DECAP_ECN_MODE_UNSPECIFIED = 0; - TUNNEL_DECAP_ECN_MODE_STANDARD = 1; - TUNNEL_DECAP_ECN_MODE_COPY_FROM_OUTER = 2; - TUNNEL_DECAP_ECN_MODE_USER_DEFINED = 3; + TUNNEL_DECAP_ECN_MODE_UNSPECIFIED = 0; + TUNNEL_DECAP_ECN_MODE_STANDARD = 1; + TUNNEL_DECAP_ECN_MODE_COPY_FROM_OUTER = 2; + TUNNEL_DECAP_ECN_MODE_USER_DEFINED = 3; } enum TunnelDscpMode { - TUNNEL_DSCP_MODE_UNSPECIFIED = 0; - TUNNEL_DSCP_MODE_UNIFORM_MODEL = 1; - TUNNEL_DSCP_MODE_PIPE_MODEL = 2; + TUNNEL_DSCP_MODE_UNSPECIFIED = 0; + TUNNEL_DSCP_MODE_UNIFORM_MODEL = 1; + TUNNEL_DSCP_MODE_PIPE_MODEL = 2; } enum TunnelEncapEcnMode { - TUNNEL_ENCAP_ECN_MODE_UNSPECIFIED = 0; - TUNNEL_ENCAP_ECN_MODE_STANDARD = 1; - TUNNEL_ENCAP_ECN_MODE_USER_DEFINED = 2; + TUNNEL_ENCAP_ECN_MODE_UNSPECIFIED = 0; + TUNNEL_ENCAP_ECN_MODE_STANDARD = 1; + TUNNEL_ENCAP_ECN_MODE_USER_DEFINED = 2; } enum TunnelMapType { - TUNNEL_MAP_TYPE_UNSPECIFIED = 0; - TUNNEL_MAP_TYPE_OECN_TO_UECN = 1; - TUNNEL_MAP_TYPE_UECN_OECN_TO_OECN = 2; - TUNNEL_MAP_TYPE_VNI_TO_VLAN_ID = 3; - TUNNEL_MAP_TYPE_VLAN_ID_TO_VNI = 4; - TUNNEL_MAP_TYPE_VNI_TO_BRIDGE_IF = 5; - TUNNEL_MAP_TYPE_BRIDGE_IF_TO_VNI = 6; - TUNNEL_MAP_TYPE_VNI_TO_VIRTUAL_ROUTER_ID = 7; - TUNNEL_MAP_TYPE_VIRTUAL_ROUTER_ID_TO_VNI = 8; - TUNNEL_MAP_TYPE_VSID_TO_VLAN_ID = 9; - TUNNEL_MAP_TYPE_VLAN_ID_TO_VSID = 10; - TUNNEL_MAP_TYPE_VSID_TO_BRIDGE_IF = 11; - TUNNEL_MAP_TYPE_BRIDGE_IF_TO_VSID = 12; - TUNNEL_MAP_TYPE_CUSTOM_RANGE_BASE = 13; + TUNNEL_MAP_TYPE_UNSPECIFIED = 0; + TUNNEL_MAP_TYPE_OECN_TO_UECN = 1; + TUNNEL_MAP_TYPE_UECN_OECN_TO_OECN = 2; + TUNNEL_MAP_TYPE_VNI_TO_VLAN_ID = 3; + TUNNEL_MAP_TYPE_VLAN_ID_TO_VNI = 4; + TUNNEL_MAP_TYPE_VNI_TO_BRIDGE_IF = 5; + TUNNEL_MAP_TYPE_BRIDGE_IF_TO_VNI = 6; + TUNNEL_MAP_TYPE_VNI_TO_VIRTUAL_ROUTER_ID = 7; + TUNNEL_MAP_TYPE_VIRTUAL_ROUTER_ID_TO_VNI = 8; + TUNNEL_MAP_TYPE_VSID_TO_VLAN_ID = 9; + TUNNEL_MAP_TYPE_VLAN_ID_TO_VSID = 10; + TUNNEL_MAP_TYPE_VSID_TO_BRIDGE_IF = 11; + TUNNEL_MAP_TYPE_BRIDGE_IF_TO_VSID = 12; + TUNNEL_MAP_TYPE_CUSTOM_RANGE_BASE = 13; } enum TunnelPeerMode { - TUNNEL_PEER_MODE_UNSPECIFIED = 0; - TUNNEL_PEER_MODE_P2P = 1; - TUNNEL_PEER_MODE_P2MP = 2; + TUNNEL_PEER_MODE_UNSPECIFIED = 0; + TUNNEL_PEER_MODE_P2P = 1; + TUNNEL_PEER_MODE_P2MP = 2; } enum TunnelStat { - TUNNEL_STAT_UNSPECIFIED = 0; - TUNNEL_STAT_IN_OCTETS = 1; - TUNNEL_STAT_IN_PACKETS = 2; - TUNNEL_STAT_OUT_OCTETS = 3; - TUNNEL_STAT_OUT_PACKETS = 4; + TUNNEL_STAT_UNSPECIFIED = 0; + TUNNEL_STAT_IN_OCTETS = 1; + TUNNEL_STAT_IN_PACKETS = 2; + TUNNEL_STAT_OUT_OCTETS = 3; + TUNNEL_STAT_OUT_PACKETS = 4; } enum TunnelTermTableEntryType { - TUNNEL_TERM_TABLE_ENTRY_TYPE_UNSPECIFIED = 0; - TUNNEL_TERM_TABLE_ENTRY_TYPE_P2P = 1; - TUNNEL_TERM_TABLE_ENTRY_TYPE_P2MP = 2; - TUNNEL_TERM_TABLE_ENTRY_TYPE_MP2P = 3; - TUNNEL_TERM_TABLE_ENTRY_TYPE_MP2MP = 4; + TUNNEL_TERM_TABLE_ENTRY_TYPE_UNSPECIFIED = 0; + TUNNEL_TERM_TABLE_ENTRY_TYPE_P2P = 1; + TUNNEL_TERM_TABLE_ENTRY_TYPE_P2MP = 2; + TUNNEL_TERM_TABLE_ENTRY_TYPE_MP2P = 3; + TUNNEL_TERM_TABLE_ENTRY_TYPE_MP2MP = 4; } enum TunnelTtlMode { - TUNNEL_TTL_MODE_UNSPECIFIED = 0; - TUNNEL_TTL_MODE_UNIFORM_MODEL = 1; - TUNNEL_TTL_MODE_PIPE_MODEL = 2; + TUNNEL_TTL_MODE_UNSPECIFIED = 0; + TUNNEL_TTL_MODE_UNIFORM_MODEL = 1; + TUNNEL_TTL_MODE_PIPE_MODEL = 2; } enum TunnelType { - TUNNEL_TYPE_UNSPECIFIED = 0; - TUNNEL_TYPE_IPINIP = 1; - TUNNEL_TYPE_IPINIP_GRE = 2; - TUNNEL_TYPE_VXLAN = 3; - TUNNEL_TYPE_MPLS = 4; - TUNNEL_TYPE_SRV6 = 5; - TUNNEL_TYPE_NVGRE = 6; - TUNNEL_TYPE_IPINIP_ESP = 7; - TUNNEL_TYPE_IPINIP_UDP_ESP = 8; - TUNNEL_TYPE_VXLAN_UDP_ESP = 9; + TUNNEL_TYPE_UNSPECIFIED = 0; + TUNNEL_TYPE_IPINIP = 1; + TUNNEL_TYPE_IPINIP_GRE = 2; + TUNNEL_TYPE_VXLAN = 3; + TUNNEL_TYPE_MPLS = 4; + TUNNEL_TYPE_SRV6 = 5; + TUNNEL_TYPE_NVGRE = 6; + TUNNEL_TYPE_IPINIP_ESP = 7; + TUNNEL_TYPE_IPINIP_UDP_ESP = 8; + TUNNEL_TYPE_VXLAN_UDP_ESP = 9; } enum TunnelVxlanUdpSportMode { - TUNNEL_VXLAN_UDP_SPORT_MODE_UNSPECIFIED = 0; - TUNNEL_VXLAN_UDP_SPORT_MODE_USER_DEFINED = 1; - TUNNEL_VXLAN_UDP_SPORT_MODE_EPHEMERAL = 2; + TUNNEL_VXLAN_UDP_SPORT_MODE_UNSPECIFIED = 0; + TUNNEL_VXLAN_UDP_SPORT_MODE_USER_DEFINED = 1; + TUNNEL_VXLAN_UDP_SPORT_MODE_EPHEMERAL = 2; } enum UdfBase { - UDF_BASE_UNSPECIFIED = 0; - UDF_BASE_L2 = 1; - UDF_BASE_L3 = 2; - UDF_BASE_L4 = 3; + UDF_BASE_UNSPECIFIED = 0; + UDF_BASE_L2 = 1; + UDF_BASE_L3 = 2; + UDF_BASE_L4 = 3; } enum UdfGroupType { - UDF_GROUP_TYPE_UNSPECIFIED = 0; - UDF_GROUP_TYPE_START = 1; - UDF_GROUP_TYPE_GENERIC = 2; - UDF_GROUP_TYPE_HASH = 3; - UDF_GROUP_TYPE_END = 4; + UDF_GROUP_TYPE_UNSPECIFIED = 0; + UDF_GROUP_TYPE_START = 1; + UDF_GROUP_TYPE_GENERIC = 2; + UDF_GROUP_TYPE_HASH = 3; + UDF_GROUP_TYPE_END = 4; } enum VlanFloodControlType { - VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED = 0; - VLAN_FLOOD_CONTROL_TYPE_ALL = 1; - VLAN_FLOOD_CONTROL_TYPE_NONE = 2; - VLAN_FLOOD_CONTROL_TYPE_L2MC_GROUP = 3; - VLAN_FLOOD_CONTROL_TYPE_COMBINED = 4; + VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED = 0; + VLAN_FLOOD_CONTROL_TYPE_ALL = 1; + VLAN_FLOOD_CONTROL_TYPE_NONE = 2; + VLAN_FLOOD_CONTROL_TYPE_L2MC_GROUP = 3; + VLAN_FLOOD_CONTROL_TYPE_COMBINED = 4; } enum VlanMcastLookupKeyType { - VLAN_MCAST_LOOKUP_KEY_TYPE_UNSPECIFIED = 0; - VLAN_MCAST_LOOKUP_KEY_TYPE_MAC_DA = 1; - VLAN_MCAST_LOOKUP_KEY_TYPE_XG = 2; - VLAN_MCAST_LOOKUP_KEY_TYPE_SG = 3; - VLAN_MCAST_LOOKUP_KEY_TYPE_XG_AND_SG = 4; + VLAN_MCAST_LOOKUP_KEY_TYPE_UNSPECIFIED = 0; + VLAN_MCAST_LOOKUP_KEY_TYPE_MAC_DA = 1; + VLAN_MCAST_LOOKUP_KEY_TYPE_XG = 2; + VLAN_MCAST_LOOKUP_KEY_TYPE_SG = 3; + VLAN_MCAST_LOOKUP_KEY_TYPE_XG_AND_SG = 4; } enum VlanStat { - VLAN_STAT_UNSPECIFIED = 0; - VLAN_STAT_IN_OCTETS = 1; - VLAN_STAT_IN_PACKETS = 2; - VLAN_STAT_IN_UCAST_PKTS = 3; - VLAN_STAT_IN_NON_UCAST_PKTS = 4; - VLAN_STAT_IN_DISCARDS = 5; - VLAN_STAT_IN_ERRORS = 6; - VLAN_STAT_IN_UNKNOWN_PROTOS = 7; - VLAN_STAT_OUT_OCTETS = 8; - VLAN_STAT_OUT_PACKETS = 9; - VLAN_STAT_OUT_UCAST_PKTS = 10; - VLAN_STAT_OUT_NON_UCAST_PKTS = 11; - VLAN_STAT_OUT_DISCARDS = 12; - VLAN_STAT_OUT_ERRORS = 13; - VLAN_STAT_OUT_QLEN = 14; + VLAN_STAT_UNSPECIFIED = 0; + VLAN_STAT_IN_OCTETS = 1; + VLAN_STAT_IN_PACKETS = 2; + VLAN_STAT_IN_UCAST_PKTS = 3; + VLAN_STAT_IN_NON_UCAST_PKTS = 4; + VLAN_STAT_IN_DISCARDS = 5; + VLAN_STAT_IN_ERRORS = 6; + VLAN_STAT_IN_UNKNOWN_PROTOS = 7; + VLAN_STAT_OUT_OCTETS = 8; + VLAN_STAT_OUT_PACKETS = 9; + VLAN_STAT_OUT_UCAST_PKTS = 10; + VLAN_STAT_OUT_NON_UCAST_PKTS = 11; + VLAN_STAT_OUT_DISCARDS = 12; + VLAN_STAT_OUT_ERRORS = 13; + VLAN_STAT_OUT_QLEN = 14; } enum VlanTaggingMode { - VLAN_TAGGING_MODE_UNSPECIFIED = 0; - VLAN_TAGGING_MODE_UNTAGGED = 1; - VLAN_TAGGING_MODE_TAGGED = 2; - VLAN_TAGGING_MODE_PRIORITY_TAGGED = 3; + VLAN_TAGGING_MODE_UNSPECIFIED = 0; + VLAN_TAGGING_MODE_UNTAGGED = 1; + VLAN_TAGGING_MODE_TAGGED = 2; + VLAN_TAGGING_MODE_PRIORITY_TAGGED = 3; } message AclCounterAttribute { - uint64 table_id = 1; - bool enable_packet_count = 2; - bool enable_byte_count = 3; - uint64 packets = 4; - uint64 bytes = 5; + optional uint64 table_id = 1 [(attr_enum_value) = 1]; + optional bool enable_packet_count = 2 [(attr_enum_value) = 2]; + optional bool enable_byte_count = 3 [(attr_enum_value) = 3]; + optional uint64 packets = 4 [(attr_enum_value) = 4]; + optional uint64 bytes = 5 [(attr_enum_value) = 5]; } message AclEntryAttribute { - uint64 table_id = 1; - uint32 priority = 2; - bool admin_state = 3; - AclFieldData field_src_ipv6 = 4; - AclFieldData field_src_ipv6_word3 = 5; - AclFieldData field_src_ipv6_word2 = 6; - AclFieldData field_src_ipv6_word1 = 7; - AclFieldData field_src_ipv6_word0 = 8; - AclFieldData field_dst_ipv6 = 9; - AclFieldData field_dst_ipv6_word3 = 10; - AclFieldData field_dst_ipv6_word2 = 11; - AclFieldData field_dst_ipv6_word1 = 12; - AclFieldData field_dst_ipv6_word0 = 13; - AclFieldData field_inner_src_ipv6 = 14; - AclFieldData field_inner_dst_ipv6 = 15; - AclFieldData field_src_mac = 16; - AclFieldData field_dst_mac = 17; - AclFieldData field_src_ip = 18; - AclFieldData field_dst_ip = 19; - AclFieldData field_inner_src_ip = 20; - AclFieldData field_inner_dst_ip = 21; - AclFieldData field_in_ports = 22; - AclFieldData field_out_ports = 23; - AclFieldData field_in_port = 24; - AclFieldData field_out_port = 25; - AclFieldData field_src_port = 26; - AclFieldData field_outer_vlan_id = 27; - AclFieldData field_outer_vlan_pri = 28; - AclFieldData field_outer_vlan_cfi = 29; - AclFieldData field_inner_vlan_id = 30; - AclFieldData field_inner_vlan_pri = 31; - AclFieldData field_inner_vlan_cfi = 32; - AclFieldData field_l4_src_port = 33; - AclFieldData field_l4_dst_port = 34; - AclFieldData field_inner_l4_src_port = 35; - AclFieldData field_inner_l4_dst_port = 36; - AclFieldData field_ether_type = 37; - AclFieldData field_inner_ether_type = 38; - AclFieldData field_ip_protocol = 39; - AclFieldData field_inner_ip_protocol = 40; - AclFieldData field_ip_identification = 41; - AclFieldData field_dscp = 42; - AclFieldData field_ecn = 43; - AclFieldData field_ttl = 44; - AclFieldData field_tos = 45; - AclFieldData field_ip_flags = 46; - AclFieldData field_tcp_flags = 47; - AclFieldData field_acl_ip_type = 48; - AclFieldData field_acl_ip_frag = 49; - AclFieldData field_ipv6_flow_label = 50; - AclFieldData field_tc = 51; - AclFieldData field_icmp_type = 52; - AclFieldData field_icmp_code = 53; - AclFieldData field_icmpv6_type = 54; - AclFieldData field_icmpv6_code = 55; - AclFieldData field_packet_vlan = 56; - AclFieldData field_tunnel_vni = 57; - AclFieldData field_has_vlan_tag = 58; - AclFieldData field_macsec_sci = 59; - AclFieldData field_mpls_label0_label = 60; - AclFieldData field_mpls_label0_ttl = 61; - AclFieldData field_mpls_label0_exp = 62; - AclFieldData field_mpls_label0_bos = 63; - AclFieldData field_mpls_label1_label = 64; - AclFieldData field_mpls_label1_ttl = 65; - AclFieldData field_mpls_label1_exp = 66; - AclFieldData field_mpls_label1_bos = 67; - AclFieldData field_mpls_label2_label = 68; - AclFieldData field_mpls_label2_ttl = 69; - AclFieldData field_mpls_label2_exp = 70; - AclFieldData field_mpls_label2_bos = 71; - AclFieldData field_mpls_label3_label = 72; - AclFieldData field_mpls_label3_ttl = 73; - AclFieldData field_mpls_label3_exp = 74; - AclFieldData field_mpls_label3_bos = 75; - AclFieldData field_mpls_label4_label = 76; - AclFieldData field_mpls_label4_ttl = 77; - AclFieldData field_mpls_label4_exp = 78; - AclFieldData field_mpls_label4_bos = 79; - AclFieldData field_fdb_dst_user_meta = 80; - AclFieldData field_route_dst_user_meta = 81; - AclFieldData field_neighbor_dst_user_meta = 82; - AclFieldData field_port_user_meta = 83; - AclFieldData field_vlan_user_meta = 84; - AclFieldData field_acl_user_meta = 85; - AclFieldData field_fdb_npu_meta_dst_hit = 86; - AclFieldData field_neighbor_npu_meta_dst_hit = 87; - AclFieldData field_route_npu_meta_dst_hit = 88; - AclFieldData field_bth_opcode = 89; - AclFieldData field_aeth_syndrome = 90; - AclFieldData user_defined_field_group_min = 91; - AclFieldData user_defined_field_group_max = 92; - AclFieldData field_acl_range_type = 93; - AclFieldData field_ipv6_next_header = 94; - AclFieldData field_gre_key = 95; - AclFieldData field_tam_int_type = 96; - AclActionData action_redirect = 97; - AclActionData action_endpoint_ip = 98; - AclActionData action_redirect_list = 99; - AclActionData action_packet_action = 100; - AclActionData action_flood = 101; - AclActionData action_counter = 102; - AclActionData action_mirror_ingress = 103; - AclActionData action_mirror_egress = 104; - AclActionData action_set_policer = 105; - AclActionData action_decrement_ttl = 106; - AclActionData action_set_tc = 107; - AclActionData action_set_packet_color = 108; - AclActionData action_set_inner_vlan_id = 109; - AclActionData action_set_inner_vlan_pri = 110; - AclActionData action_set_outer_vlan_id = 111; - AclActionData action_set_outer_vlan_pri = 112; - AclActionData action_add_vlan_id = 113; - AclActionData action_add_vlan_pri = 114; - AclActionData action_set_src_mac = 115; - AclActionData action_set_dst_mac = 116; - AclActionData action_set_src_ip = 117; - AclActionData action_set_dst_ip = 118; - AclActionData action_set_src_ipv6 = 119; - AclActionData action_set_dst_ipv6 = 120; - AclActionData action_set_dscp = 121; - AclActionData action_set_ecn = 122; - AclActionData action_set_l4_src_port = 123; - AclActionData action_set_l4_dst_port = 124; - AclActionData action_ingress_samplepacket_enable = 125; - AclActionData action_egress_samplepacket_enable = 126; - AclActionData action_set_acl_meta_data = 127; - AclActionData action_egress_block_port_list = 128; - AclActionData action_set_user_trap_id = 129; - AclActionData action_set_do_not_learn = 130; - AclActionData action_acl_dtel_flow_op = 131; - AclActionData action_dtel_int_session = 132; - AclActionData action_dtel_drop_report_enable = 133; - AclActionData action_dtel_tail_drop_report_enable = 134; - AclActionData action_dtel_flow_sample_percent = 135; - AclActionData action_dtel_report_all_packets = 136; - AclActionData action_no_nat = 137; - AclActionData action_int_insert = 138; - AclActionData action_int_delete = 139; - AclActionData action_int_report_flow = 140; - AclActionData action_int_report_drops = 141; - AclActionData action_int_report_tail_drops = 142; - AclActionData action_tam_int_object = 143; - AclActionData action_set_isolation_group = 144; - AclActionData action_macsec_flow = 145; - AclActionData action_set_lag_hash_id = 146; - AclActionData action_set_ecmp_hash_id = 147; - AclActionData action_set_vrf = 148; - AclActionData action_set_forwarding_class = 149; + optional uint64 table_id = 1 [(attr_enum_value) = 1]; + optional uint32 priority = 2 [(attr_enum_value) = 2]; + optional bool admin_state = 3 [(attr_enum_value) = 3]; + optional AclFieldData field_src_ipv6 = 4 [(attr_enum_value) = 4]; + optional AclFieldData field_src_ipv6_word3 = 5 [(attr_enum_value) = 5]; + optional AclFieldData field_src_ipv6_word2 = 6 [(attr_enum_value) = 6]; + optional AclFieldData field_src_ipv6_word1 = 7 [(attr_enum_value) = 7]; + optional AclFieldData field_src_ipv6_word0 = 8 [(attr_enum_value) = 8]; + optional AclFieldData field_dst_ipv6 = 9 [(attr_enum_value) = 9]; + optional AclFieldData field_dst_ipv6_word3 = 10 [(attr_enum_value) = 10]; + optional AclFieldData field_dst_ipv6_word2 = 11 [(attr_enum_value) = 11]; + optional AclFieldData field_dst_ipv6_word1 = 12 [(attr_enum_value) = 12]; + optional AclFieldData field_dst_ipv6_word0 = 13 [(attr_enum_value) = 13]; + optional AclFieldData field_inner_src_ipv6 = 14 [(attr_enum_value) = 14]; + optional AclFieldData field_inner_dst_ipv6 = 15 [(attr_enum_value) = 15]; + optional AclFieldData field_src_mac = 16 [(attr_enum_value) = 16]; + optional AclFieldData field_dst_mac = 17 [(attr_enum_value) = 17]; + optional AclFieldData field_src_ip = 18 [(attr_enum_value) = 18]; + optional AclFieldData field_dst_ip = 19 [(attr_enum_value) = 19]; + optional AclFieldData field_inner_src_ip = 20 [(attr_enum_value) = 20]; + optional AclFieldData field_inner_dst_ip = 21 [(attr_enum_value) = 21]; + optional AclFieldData field_in_ports = 22 [(attr_enum_value) = 22]; + optional AclFieldData field_out_ports = 23 [(attr_enum_value) = 23]; + optional AclFieldData field_in_port = 24 [(attr_enum_value) = 24]; + optional AclFieldData field_out_port = 25 [(attr_enum_value) = 25]; + optional AclFieldData field_src_port = 26 [(attr_enum_value) = 26]; + optional AclFieldData field_outer_vlan_id = 27 [(attr_enum_value) = 27]; + optional AclFieldData field_outer_vlan_pri = 28 [(attr_enum_value) = 28]; + optional AclFieldData field_outer_vlan_cfi = 29 [(attr_enum_value) = 29]; + optional AclFieldData field_inner_vlan_id = 30 [(attr_enum_value) = 30]; + optional AclFieldData field_inner_vlan_pri = 31 [(attr_enum_value) = 31]; + optional AclFieldData field_inner_vlan_cfi = 32 [(attr_enum_value) = 32]; + optional AclFieldData field_l4_src_port = 33 [(attr_enum_value) = 33]; + optional AclFieldData field_l4_dst_port = 34 [(attr_enum_value) = 34]; + optional AclFieldData field_inner_l4_src_port = 35 [(attr_enum_value) = 35]; + optional AclFieldData field_inner_l4_dst_port = 36 [(attr_enum_value) = 36]; + optional AclFieldData field_ether_type = 37 [(attr_enum_value) = 37]; + optional AclFieldData field_inner_ether_type = 38 [(attr_enum_value) = 38]; + optional AclFieldData field_ip_protocol = 39 [(attr_enum_value) = 39]; + optional AclFieldData field_inner_ip_protocol = 40 [(attr_enum_value) = 40]; + optional AclFieldData field_ip_identification = 41 [(attr_enum_value) = 41]; + optional AclFieldData field_dscp = 42 [(attr_enum_value) = 42]; + optional AclFieldData field_ecn = 43 [(attr_enum_value) = 43]; + optional AclFieldData field_ttl = 44 [(attr_enum_value) = 44]; + optional AclFieldData field_tos = 45 [(attr_enum_value) = 45]; + optional AclFieldData field_ip_flags = 46 [(attr_enum_value) = 46]; + optional AclFieldData field_tcp_flags = 47 [(attr_enum_value) = 47]; + optional AclFieldData field_acl_ip_type = 48 [(attr_enum_value) = 48]; + optional AclFieldData field_acl_ip_frag = 49 [(attr_enum_value) = 49]; + optional AclFieldData field_ipv6_flow_label = 50 [(attr_enum_value) = 50]; + optional AclFieldData field_tc = 51 [(attr_enum_value) = 51]; + optional AclFieldData field_icmp_type = 52 [(attr_enum_value) = 52]; + optional AclFieldData field_icmp_code = 53 [(attr_enum_value) = 53]; + optional AclFieldData field_icmpv6_type = 54 [(attr_enum_value) = 54]; + optional AclFieldData field_icmpv6_code = 55 [(attr_enum_value) = 55]; + optional AclFieldData field_packet_vlan = 56 [(attr_enum_value) = 56]; + optional AclFieldData field_tunnel_vni = 57 [(attr_enum_value) = 57]; + optional AclFieldData field_has_vlan_tag = 58 [(attr_enum_value) = 58]; + optional AclFieldData field_macsec_sci = 59 [(attr_enum_value) = 59]; + optional AclFieldData field_mpls_label0_label = 60 [(attr_enum_value) = 60]; + optional AclFieldData field_mpls_label0_ttl = 61 [(attr_enum_value) = 61]; + optional AclFieldData field_mpls_label0_exp = 62 [(attr_enum_value) = 62]; + optional AclFieldData field_mpls_label0_bos = 63 [(attr_enum_value) = 63]; + optional AclFieldData field_mpls_label1_label = 64 [(attr_enum_value) = 64]; + optional AclFieldData field_mpls_label1_ttl = 65 [(attr_enum_value) = 65]; + optional AclFieldData field_mpls_label1_exp = 66 [(attr_enum_value) = 66]; + optional AclFieldData field_mpls_label1_bos = 67 [(attr_enum_value) = 67]; + optional AclFieldData field_mpls_label2_label = 68 [(attr_enum_value) = 68]; + optional AclFieldData field_mpls_label2_ttl = 69 [(attr_enum_value) = 69]; + optional AclFieldData field_mpls_label2_exp = 70 [(attr_enum_value) = 70]; + optional AclFieldData field_mpls_label2_bos = 71 [(attr_enum_value) = 71]; + optional AclFieldData field_mpls_label3_label = 72 [(attr_enum_value) = 72]; + optional AclFieldData field_mpls_label3_ttl = 73 [(attr_enum_value) = 73]; + optional AclFieldData field_mpls_label3_exp = 74 [(attr_enum_value) = 74]; + optional AclFieldData field_mpls_label3_bos = 75 [(attr_enum_value) = 75]; + optional AclFieldData field_mpls_label4_label = 76 [(attr_enum_value) = 76]; + optional AclFieldData field_mpls_label4_ttl = 77 [(attr_enum_value) = 77]; + optional AclFieldData field_mpls_label4_exp = 78 [(attr_enum_value) = 78]; + optional AclFieldData field_mpls_label4_bos = 79 [(attr_enum_value) = 79]; + optional AclFieldData field_fdb_dst_user_meta = 80 [(attr_enum_value) = 80]; + optional AclFieldData field_route_dst_user_meta = 81 [(attr_enum_value) = 81]; + optional AclFieldData field_neighbor_dst_user_meta = 82 + [(attr_enum_value) = 82]; + optional AclFieldData field_port_user_meta = 83 [(attr_enum_value) = 83]; + optional AclFieldData field_vlan_user_meta = 84 [(attr_enum_value) = 84]; + optional AclFieldData field_acl_user_meta = 85 [(attr_enum_value) = 85]; + optional AclFieldData field_fdb_npu_meta_dst_hit = 86 + [(attr_enum_value) = 86]; + optional AclFieldData field_neighbor_npu_meta_dst_hit = 87 + [(attr_enum_value) = 87]; + optional AclFieldData field_route_npu_meta_dst_hit = 88 + [(attr_enum_value) = 88]; + optional AclFieldData field_bth_opcode = 89 [(attr_enum_value) = 89]; + optional AclFieldData field_aeth_syndrome = 90 [(attr_enum_value) = 90]; + optional AclFieldData user_defined_field_group_min = 91 + [(attr_enum_value) = 91]; + optional AclFieldData user_defined_field_group_max = 92 + [(attr_enum_value) = 92]; + optional AclFieldData field_acl_range_type = 93 [(attr_enum_value) = 93]; + optional AclFieldData field_ipv6_next_header = 94 [(attr_enum_value) = 94]; + optional AclFieldData field_gre_key = 95 [(attr_enum_value) = 95]; + optional AclFieldData field_tam_int_type = 96 [(attr_enum_value) = 96]; + optional AclActionData action_redirect = 97 [(attr_enum_value) = 97]; + optional AclActionData action_endpoint_ip = 98 [(attr_enum_value) = 98]; + optional AclActionData action_redirect_list = 99 [(attr_enum_value) = 99]; + optional AclActionData action_packet_action = 100 [(attr_enum_value) = 100]; + optional AclActionData action_flood = 101 [(attr_enum_value) = 101]; + optional AclActionData action_counter = 102 [(attr_enum_value) = 102]; + optional AclActionData action_mirror_ingress = 103 [(attr_enum_value) = 103]; + optional AclActionData action_mirror_egress = 104 [(attr_enum_value) = 104]; + optional AclActionData action_set_policer = 105 [(attr_enum_value) = 105]; + optional AclActionData action_decrement_ttl = 106 [(attr_enum_value) = 106]; + optional AclActionData action_set_tc = 107 [(attr_enum_value) = 107]; + optional AclActionData action_set_packet_color = 108 + [(attr_enum_value) = 108]; + optional AclActionData action_set_inner_vlan_id = 109 + [(attr_enum_value) = 109]; + optional AclActionData action_set_inner_vlan_pri = 110 + [(attr_enum_value) = 110]; + optional AclActionData action_set_outer_vlan_id = 111 + [(attr_enum_value) = 111]; + optional AclActionData action_set_outer_vlan_pri = 112 + [(attr_enum_value) = 112]; + optional AclActionData action_add_vlan_id = 113 [(attr_enum_value) = 113]; + optional AclActionData action_add_vlan_pri = 114 [(attr_enum_value) = 114]; + optional AclActionData action_set_src_mac = 115 [(attr_enum_value) = 115]; + optional AclActionData action_set_dst_mac = 116 [(attr_enum_value) = 116]; + optional AclActionData action_set_src_ip = 117 [(attr_enum_value) = 117]; + optional AclActionData action_set_dst_ip = 118 [(attr_enum_value) = 118]; + optional AclActionData action_set_src_ipv6 = 119 [(attr_enum_value) = 119]; + optional AclActionData action_set_dst_ipv6 = 120 [(attr_enum_value) = 120]; + optional AclActionData action_set_dscp = 121 [(attr_enum_value) = 121]; + optional AclActionData action_set_ecn = 122 [(attr_enum_value) = 122]; + optional AclActionData action_set_l4_src_port = 123 [(attr_enum_value) = 123]; + optional AclActionData action_set_l4_dst_port = 124 [(attr_enum_value) = 124]; + optional AclActionData action_ingress_samplepacket_enable = 125 + [(attr_enum_value) = 125]; + optional AclActionData action_egress_samplepacket_enable = 126 + [(attr_enum_value) = 126]; + optional AclActionData action_set_acl_meta_data = 127 + [(attr_enum_value) = 127]; + optional AclActionData action_egress_block_port_list = 128 + [(attr_enum_value) = 128]; + optional AclActionData action_set_user_trap_id = 129 + [(attr_enum_value) = 129]; + optional AclActionData action_set_do_not_learn = 130 + [(attr_enum_value) = 130]; + optional AclActionData action_acl_dtel_flow_op = 131 + [(attr_enum_value) = 131]; + optional AclActionData action_dtel_int_session = 132 + [(attr_enum_value) = 132]; + optional AclActionData action_dtel_drop_report_enable = 133 + [(attr_enum_value) = 133]; + optional AclActionData action_dtel_tail_drop_report_enable = 134 + [(attr_enum_value) = 134]; + optional AclActionData action_dtel_flow_sample_percent = 135 + [(attr_enum_value) = 135]; + optional AclActionData action_dtel_report_all_packets = 136 + [(attr_enum_value) = 136]; + optional AclActionData action_no_nat = 137 [(attr_enum_value) = 137]; + optional AclActionData action_int_insert = 138 [(attr_enum_value) = 138]; + optional AclActionData action_int_delete = 139 [(attr_enum_value) = 139]; + optional AclActionData action_int_report_flow = 140 [(attr_enum_value) = 140]; + optional AclActionData action_int_report_drops = 141 + [(attr_enum_value) = 141]; + optional AclActionData action_int_report_tail_drops = 142 + [(attr_enum_value) = 142]; + optional AclActionData action_tam_int_object = 143 [(attr_enum_value) = 143]; + optional AclActionData action_set_isolation_group = 144 + [(attr_enum_value) = 144]; + optional AclActionData action_macsec_flow = 145 [(attr_enum_value) = 145]; + optional AclActionData action_set_lag_hash_id = 146 [(attr_enum_value) = 146]; + optional AclActionData action_set_ecmp_hash_id = 147 + [(attr_enum_value) = 147]; + optional AclActionData action_set_vrf = 148 [(attr_enum_value) = 148]; + optional AclActionData action_set_forwarding_class = 149 + [(attr_enum_value) = 149]; } message AclRangeAttribute { - AclRangeType type = 1; - Uint32Range limit = 2; -} - -message AclBindPointTypeList { - repeated AclBindPointType list = 1; -} - -message AclActionTypeList { - repeated AclActionType list = 1; -} - -message AclRangeTypeList { - repeated AclRangeType list = 1; -} - -message Uint64List { - repeated uint64 list = 1; + optional AclRangeType type = 1 [(attr_enum_value) = 1]; + optional Uint32Range limit = 2 [(attr_enum_value) = 2]; } message AclTableAttribute { - AclStage acl_stage = 1; - AclBindPointTypeList acl_bind_point_type_list = 2; - uint32 size = 3; - AclActionTypeList acl_action_type_list = 4; - bool field_src_ipv6 = 5; - bool field_src_ipv6_word3 = 6; - bool field_src_ipv6_word2 = 7; - bool field_src_ipv6_word1 = 8; - bool field_src_ipv6_word0 = 9; - bool field_dst_ipv6 = 10; - bool field_dst_ipv6_word3 = 11; - bool field_dst_ipv6_word2 = 12; - bool field_dst_ipv6_word1 = 13; - bool field_dst_ipv6_word0 = 14; - bool field_inner_src_ipv6 = 15; - bool field_inner_dst_ipv6 = 16; - bool field_src_mac = 17; - bool field_dst_mac = 18; - bool field_src_ip = 19; - bool field_dst_ip = 20; - bool field_inner_src_ip = 21; - bool field_inner_dst_ip = 22; - bool field_in_ports = 23; - bool field_out_ports = 24; - bool field_in_port = 25; - bool field_out_port = 26; - bool field_src_port = 27; - bool field_outer_vlan_id = 28; - bool field_outer_vlan_pri = 29; - bool field_outer_vlan_cfi = 30; - bool field_inner_vlan_id = 31; - bool field_inner_vlan_pri = 32; - bool field_inner_vlan_cfi = 33; - bool field_l4_src_port = 34; - bool field_l4_dst_port = 35; - bool field_inner_l4_src_port = 36; - bool field_inner_l4_dst_port = 37; - bool field_ether_type = 38; - bool field_inner_ether_type = 39; - bool field_ip_protocol = 40; - bool field_inner_ip_protocol = 41; - bool field_ip_identification = 42; - bool field_dscp = 43; - bool field_ecn = 44; - bool field_ttl = 45; - bool field_tos = 46; - bool field_ip_flags = 47; - bool field_tcp_flags = 48; - bool field_acl_ip_type = 49; - bool field_acl_ip_frag = 50; - bool field_ipv6_flow_label = 51; - bool field_tc = 52; - bool field_icmp_type = 53; - bool field_icmp_code = 54; - bool field_icmpv6_type = 55; - bool field_icmpv6_code = 56; - bool field_packet_vlan = 57; - bool field_tunnel_vni = 58; - bool field_has_vlan_tag = 59; - bool field_macsec_sci = 60; - bool field_mpls_label0_label = 61; - bool field_mpls_label0_ttl = 62; - bool field_mpls_label0_exp = 63; - bool field_mpls_label0_bos = 64; - bool field_mpls_label1_label = 65; - bool field_mpls_label1_ttl = 66; - bool field_mpls_label1_exp = 67; - bool field_mpls_label1_bos = 68; - bool field_mpls_label2_label = 69; - bool field_mpls_label2_ttl = 70; - bool field_mpls_label2_exp = 71; - bool field_mpls_label2_bos = 72; - bool field_mpls_label3_label = 73; - bool field_mpls_label3_ttl = 74; - bool field_mpls_label3_exp = 75; - bool field_mpls_label3_bos = 76; - bool field_mpls_label4_label = 77; - bool field_mpls_label4_ttl = 78; - bool field_mpls_label4_exp = 79; - bool field_mpls_label4_bos = 80; - bool field_fdb_dst_user_meta = 81; - bool field_route_dst_user_meta = 82; - bool field_neighbor_dst_user_meta = 83; - bool field_port_user_meta = 84; - bool field_vlan_user_meta = 85; - bool field_acl_user_meta = 86; - bool field_fdb_npu_meta_dst_hit = 87; - bool field_neighbor_npu_meta_dst_hit = 88; - bool field_route_npu_meta_dst_hit = 89; - bool field_bth_opcode = 90; - bool field_aeth_syndrome = 91; - uint64 user_defined_field_group_min = 92; - uint64 user_defined_field_group_max = 93; - AclRangeTypeList field_acl_range_type = 94; - bool field_ipv6_next_header = 95; - bool field_gre_key = 96; - bool field_tam_int_type = 97; - Uint64List entry_list = 98; - uint32 available_acl_entry = 99; - uint32 available_acl_counter = 100; + optional AclStage acl_stage = 1 [(attr_enum_value) = 1]; + repeated AclBindPointType acl_bind_point_type_list = 2 + [(attr_enum_value) = 2]; + optional uint32 size = 3 [(attr_enum_value) = 3]; + repeated AclActionType acl_action_type_list = 4 [(attr_enum_value) = 4]; + optional bool field_src_ipv6 = 5 [(attr_enum_value) = 5]; + optional bool field_src_ipv6_word3 = 6 [(attr_enum_value) = 6]; + optional bool field_src_ipv6_word2 = 7 [(attr_enum_value) = 7]; + optional bool field_src_ipv6_word1 = 8 [(attr_enum_value) = 8]; + optional bool field_src_ipv6_word0 = 9 [(attr_enum_value) = 9]; + optional bool field_dst_ipv6 = 10 [(attr_enum_value) = 10]; + optional bool field_dst_ipv6_word3 = 11 [(attr_enum_value) = 11]; + optional bool field_dst_ipv6_word2 = 12 [(attr_enum_value) = 12]; + optional bool field_dst_ipv6_word1 = 13 [(attr_enum_value) = 13]; + optional bool field_dst_ipv6_word0 = 14 [(attr_enum_value) = 14]; + optional bool field_inner_src_ipv6 = 15 [(attr_enum_value) = 15]; + optional bool field_inner_dst_ipv6 = 16 [(attr_enum_value) = 16]; + optional bool field_src_mac = 17 [(attr_enum_value) = 17]; + optional bool field_dst_mac = 18 [(attr_enum_value) = 18]; + optional bool field_src_ip = 19 [(attr_enum_value) = 19]; + optional bool field_dst_ip = 20 [(attr_enum_value) = 20]; + optional bool field_inner_src_ip = 21 [(attr_enum_value) = 21]; + optional bool field_inner_dst_ip = 22 [(attr_enum_value) = 22]; + optional bool field_in_ports = 23 [(attr_enum_value) = 23]; + optional bool field_out_ports = 24 [(attr_enum_value) = 24]; + optional bool field_in_port = 25 [(attr_enum_value) = 25]; + optional bool field_out_port = 26 [(attr_enum_value) = 26]; + optional bool field_src_port = 27 [(attr_enum_value) = 27]; + optional bool field_outer_vlan_id = 28 [(attr_enum_value) = 28]; + optional bool field_outer_vlan_pri = 29 [(attr_enum_value) = 29]; + optional bool field_outer_vlan_cfi = 30 [(attr_enum_value) = 30]; + optional bool field_inner_vlan_id = 31 [(attr_enum_value) = 31]; + optional bool field_inner_vlan_pri = 32 [(attr_enum_value) = 32]; + optional bool field_inner_vlan_cfi = 33 [(attr_enum_value) = 33]; + optional bool field_l4_src_port = 34 [(attr_enum_value) = 34]; + optional bool field_l4_dst_port = 35 [(attr_enum_value) = 35]; + optional bool field_inner_l4_src_port = 36 [(attr_enum_value) = 36]; + optional bool field_inner_l4_dst_port = 37 [(attr_enum_value) = 37]; + optional bool field_ether_type = 38 [(attr_enum_value) = 38]; + optional bool field_inner_ether_type = 39 [(attr_enum_value) = 39]; + optional bool field_ip_protocol = 40 [(attr_enum_value) = 40]; + optional bool field_inner_ip_protocol = 41 [(attr_enum_value) = 41]; + optional bool field_ip_identification = 42 [(attr_enum_value) = 42]; + optional bool field_dscp = 43 [(attr_enum_value) = 43]; + optional bool field_ecn = 44 [(attr_enum_value) = 44]; + optional bool field_ttl = 45 [(attr_enum_value) = 45]; + optional bool field_tos = 46 [(attr_enum_value) = 46]; + optional bool field_ip_flags = 47 [(attr_enum_value) = 47]; + optional bool field_tcp_flags = 48 [(attr_enum_value) = 48]; + optional bool field_acl_ip_type = 49 [(attr_enum_value) = 49]; + optional bool field_acl_ip_frag = 50 [(attr_enum_value) = 50]; + optional bool field_ipv6_flow_label = 51 [(attr_enum_value) = 51]; + optional bool field_tc = 52 [(attr_enum_value) = 52]; + optional bool field_icmp_type = 53 [(attr_enum_value) = 53]; + optional bool field_icmp_code = 54 [(attr_enum_value) = 54]; + optional bool field_icmpv6_type = 55 [(attr_enum_value) = 55]; + optional bool field_icmpv6_code = 56 [(attr_enum_value) = 56]; + optional bool field_packet_vlan = 57 [(attr_enum_value) = 57]; + optional bool field_tunnel_vni = 58 [(attr_enum_value) = 58]; + optional bool field_has_vlan_tag = 59 [(attr_enum_value) = 59]; + optional bool field_macsec_sci = 60 [(attr_enum_value) = 60]; + optional bool field_mpls_label0_label = 61 [(attr_enum_value) = 61]; + optional bool field_mpls_label0_ttl = 62 [(attr_enum_value) = 62]; + optional bool field_mpls_label0_exp = 63 [(attr_enum_value) = 63]; + optional bool field_mpls_label0_bos = 64 [(attr_enum_value) = 64]; + optional bool field_mpls_label1_label = 65 [(attr_enum_value) = 65]; + optional bool field_mpls_label1_ttl = 66 [(attr_enum_value) = 66]; + optional bool field_mpls_label1_exp = 67 [(attr_enum_value) = 67]; + optional bool field_mpls_label1_bos = 68 [(attr_enum_value) = 68]; + optional bool field_mpls_label2_label = 69 [(attr_enum_value) = 69]; + optional bool field_mpls_label2_ttl = 70 [(attr_enum_value) = 70]; + optional bool field_mpls_label2_exp = 71 [(attr_enum_value) = 71]; + optional bool field_mpls_label2_bos = 72 [(attr_enum_value) = 72]; + optional bool field_mpls_label3_label = 73 [(attr_enum_value) = 73]; + optional bool field_mpls_label3_ttl = 74 [(attr_enum_value) = 74]; + optional bool field_mpls_label3_exp = 75 [(attr_enum_value) = 75]; + optional bool field_mpls_label3_bos = 76 [(attr_enum_value) = 76]; + optional bool field_mpls_label4_label = 77 [(attr_enum_value) = 77]; + optional bool field_mpls_label4_ttl = 78 [(attr_enum_value) = 78]; + optional bool field_mpls_label4_exp = 79 [(attr_enum_value) = 79]; + optional bool field_mpls_label4_bos = 80 [(attr_enum_value) = 80]; + optional bool field_fdb_dst_user_meta = 81 [(attr_enum_value) = 81]; + optional bool field_route_dst_user_meta = 82 [(attr_enum_value) = 82]; + optional bool field_neighbor_dst_user_meta = 83 [(attr_enum_value) = 83]; + optional bool field_port_user_meta = 84 [(attr_enum_value) = 84]; + optional bool field_vlan_user_meta = 85 [(attr_enum_value) = 85]; + optional bool field_acl_user_meta = 86 [(attr_enum_value) = 86]; + optional bool field_fdb_npu_meta_dst_hit = 87 [(attr_enum_value) = 87]; + optional bool field_neighbor_npu_meta_dst_hit = 88 [(attr_enum_value) = 88]; + optional bool field_route_npu_meta_dst_hit = 89 [(attr_enum_value) = 89]; + optional bool field_bth_opcode = 90 [(attr_enum_value) = 90]; + optional bool field_aeth_syndrome = 91 [(attr_enum_value) = 91]; + optional uint64 user_defined_field_group_min = 92 [(attr_enum_value) = 92]; + optional uint64 user_defined_field_group_max = 93 [(attr_enum_value) = 93]; + repeated AclRangeType field_acl_range_type = 94 [(attr_enum_value) = 94]; + optional bool field_ipv6_next_header = 95 [(attr_enum_value) = 95]; + optional bool field_gre_key = 96 [(attr_enum_value) = 96]; + optional bool field_tam_int_type = 97 [(attr_enum_value) = 97]; + repeated uint64 entry_list = 98 [(attr_enum_value) = 98]; + optional uint32 available_acl_entry = 99 [(attr_enum_value) = 99]; + optional uint32 available_acl_counter = 100 [(attr_enum_value) = 100]; } message AclTableGroupAttribute { - AclStage acl_stage = 1; - AclBindPointTypeList acl_bind_point_type_list = 2; - AclTableGroupType type = 3; - Uint64List member_list = 4; + optional AclStage acl_stage = 1 [(attr_enum_value) = 1]; + repeated AclBindPointType acl_bind_point_type_list = 2 + [(attr_enum_value) = 2]; + optional AclTableGroupType type = 3 [(attr_enum_value) = 3]; + repeated uint64 member_list = 4 [(attr_enum_value) = 4]; } message AclTableGroupMemberAttribute { - uint64 acl_table_group_id = 1; - uint64 acl_table_id = 2; - uint32 priority = 3; + optional uint64 acl_table_group_id = 1 [(attr_enum_value) = 1]; + optional uint64 acl_table_id = 2 [(attr_enum_value) = 2]; + optional uint32 priority = 3 [(attr_enum_value) = 3]; } message BfdSessionAttribute { - BfdSessionType type = 1; - bool hw_lookup_valid = 2; - uint64 virtual_router = 3; - uint64 port = 4; - uint32 local_discriminator = 5; - uint32 remote_discriminator = 6; - uint32 udp_src_port = 7; - uint32 tc = 8; - uint32 vlan_tpid = 9; - uint32 vlan_id = 10; - uint32 vlan_pri = 11; - uint32 vlan_cfi = 12; - bool vlan_header_valid = 13; - BfdEncapsulationType bfd_encapsulation_type = 14; - uint32 iphdr_version = 15; - uint32 tos = 16; - uint32 ttl = 17; - bytes src_ip_address = 18; - bytes dst_ip_address = 19; - uint32 tunnel_tos = 20; - uint32 tunnel_ttl = 21; - bytes tunnel_src_ip_address = 22; - bytes tunnel_dst_ip_address = 23; - bytes src_mac_address = 24; - bytes dst_mac_address = 25; - bool echo_enable = 26; - bool multihop = 27; - bool cbit = 28; - uint32 min_tx = 29; - uint32 min_rx = 30; - uint32 multiplier = 31; - uint32 remote_min_tx = 32; - uint32 remote_min_rx = 33; - BfdSessionState state = 34; - BfdSessionOffloadType offload_type = 35; - uint32 negotiated_tx = 36; - uint32 negotiated_rx = 37; - uint32 local_diag = 38; - uint32 remote_diag = 39; - uint32 remote_multiplier = 40; + optional BfdSessionType type = 1 [(attr_enum_value) = 1]; + optional bool hw_lookup_valid = 2 [(attr_enum_value) = 2]; + optional uint64 virtual_router = 3 [(attr_enum_value) = 3]; + optional uint64 port = 4 [(attr_enum_value) = 4]; + optional uint32 local_discriminator = 5 [(attr_enum_value) = 5]; + optional uint32 remote_discriminator = 6 [(attr_enum_value) = 6]; + optional uint32 udp_src_port = 7 [(attr_enum_value) = 7]; + optional uint32 tc = 8 [(attr_enum_value) = 8]; + optional uint32 vlan_tpid = 9 [(attr_enum_value) = 9]; + optional uint32 vlan_id = 10 [(attr_enum_value) = 10]; + optional uint32 vlan_pri = 11 [(attr_enum_value) = 11]; + optional uint32 vlan_cfi = 12 [(attr_enum_value) = 12]; + optional bool vlan_header_valid = 13 [(attr_enum_value) = 13]; + optional BfdEncapsulationType bfd_encapsulation_type = 14 + [(attr_enum_value) = 14]; + optional uint32 iphdr_version = 15 [(attr_enum_value) = 15]; + optional uint32 tos = 16 [(attr_enum_value) = 16]; + optional uint32 ttl = 17 [(attr_enum_value) = 17]; + optional bytes src_ip_address = 18 [(attr_enum_value) = 18]; + optional bytes dst_ip_address = 19 [(attr_enum_value) = 19]; + optional uint32 tunnel_tos = 20 [(attr_enum_value) = 20]; + optional uint32 tunnel_ttl = 21 [(attr_enum_value) = 21]; + optional bytes tunnel_src_ip_address = 22 [(attr_enum_value) = 22]; + optional bytes tunnel_dst_ip_address = 23 [(attr_enum_value) = 23]; + optional bytes src_mac_address = 24 [(attr_enum_value) = 24]; + optional bytes dst_mac_address = 25 [(attr_enum_value) = 25]; + optional bool echo_enable = 26 [(attr_enum_value) = 26]; + optional bool multihop = 27 [(attr_enum_value) = 27]; + optional bool cbit = 28 [(attr_enum_value) = 28]; + optional uint32 min_tx = 29 [(attr_enum_value) = 29]; + optional uint32 min_rx = 30 [(attr_enum_value) = 30]; + optional uint32 multiplier = 31 [(attr_enum_value) = 31]; + optional uint32 remote_min_tx = 32 [(attr_enum_value) = 32]; + optional uint32 remote_min_rx = 33 [(attr_enum_value) = 33]; + optional BfdSessionState state = 34 [(attr_enum_value) = 34]; + optional BfdSessionOffloadType offload_type = 35 [(attr_enum_value) = 35]; + optional uint32 negotiated_tx = 36 [(attr_enum_value) = 36]; + optional uint32 negotiated_rx = 37 [(attr_enum_value) = 37]; + optional uint32 local_diag = 38 [(attr_enum_value) = 38]; + optional uint32 remote_diag = 39 [(attr_enum_value) = 39]; + optional uint32 remote_multiplier = 40 [(attr_enum_value) = 40]; } message BridgeAttribute { - BridgeType type = 1; - Uint64List port_list = 2; - uint32 max_learned_addresses = 3; - bool learn_disable = 4; - BridgeFloodControlType unknown_unicast_flood_control_type = 5; - uint64 unknown_unicast_flood_group = 6; - BridgeFloodControlType unknown_multicast_flood_control_type = 7; - uint64 unknown_multicast_flood_group = 8; - BridgeFloodControlType broadcast_flood_control_type = 9; - uint64 broadcast_flood_group = 10; + optional BridgeType type = 1 [(attr_enum_value) = 1]; + repeated uint64 port_list = 2 [(attr_enum_value) = 2]; + optional uint32 max_learned_addresses = 3 [(attr_enum_value) = 3]; + optional bool learn_disable = 4 [(attr_enum_value) = 4]; + optional BridgeFloodControlType unknown_unicast_flood_control_type = 5 + [(attr_enum_value) = 5]; + optional uint64 unknown_unicast_flood_group = 6 [(attr_enum_value) = 6]; + optional BridgeFloodControlType unknown_multicast_flood_control_type = 7 + [(attr_enum_value) = 7]; + optional uint64 unknown_multicast_flood_group = 8 [(attr_enum_value) = 8]; + optional BridgeFloodControlType broadcast_flood_control_type = 9 + [(attr_enum_value) = 9]; + optional uint64 broadcast_flood_group = 10 [(attr_enum_value) = 10]; } message BridgePortAttribute { - BridgePortType type = 1; - uint64 port_id = 2; - BridgePortTaggingMode tagging_mode = 3; - uint32 vlan_id = 4; - uint64 rif_id = 5; - uint64 tunnel_id = 6; - uint64 bridge_id = 7; - BridgePortFdbLearningMode fdb_learning_mode = 8; - uint32 max_learned_addresses = 9; - PacketAction fdb_learning_limit_violation_packet_action = 10; - bool admin_state = 11; - bool ingress_filtering = 12; - bool egress_filtering = 13; - uint64 isolation_group = 14; + optional BridgePortType type = 1 [(attr_enum_value) = 1]; + optional uint64 port_id = 2 [(attr_enum_value) = 2]; + optional BridgePortTaggingMode tagging_mode = 3 [(attr_enum_value) = 3]; + optional uint32 vlan_id = 4 [(attr_enum_value) = 4]; + optional uint64 rif_id = 5 [(attr_enum_value) = 5]; + optional uint64 tunnel_id = 6 [(attr_enum_value) = 6]; + optional uint64 bridge_id = 7 [(attr_enum_value) = 7]; + optional BridgePortFdbLearningMode fdb_learning_mode = 8 + [(attr_enum_value) = 8]; + optional uint32 max_learned_addresses = 9 [(attr_enum_value) = 9]; + optional PacketAction fdb_learning_limit_violation_packet_action = 10 + [(attr_enum_value) = 10]; + optional bool admin_state = 11 [(attr_enum_value) = 11]; + optional bool ingress_filtering = 12 [(attr_enum_value) = 12]; + optional bool egress_filtering = 13 [(attr_enum_value) = 13]; + optional uint64 isolation_group = 14 [(attr_enum_value) = 14]; } message BufferPoolAttribute { - uint64 shared_size = 1; - BufferPoolType type = 2; - uint64 size = 3; - BufferPoolThresholdMode threshold_mode = 4; - Uint64List tam = 5; - uint64 xoff_size = 6; - uint64 wred_profile_id = 7; + optional uint64 shared_size = 1 [(attr_enum_value) = 1]; + optional BufferPoolType type = 2 [(attr_enum_value) = 2]; + optional uint64 size = 3 [(attr_enum_value) = 3]; + optional BufferPoolThresholdMode threshold_mode = 4 [(attr_enum_value) = 4]; + repeated uint64 tam = 5 [(attr_enum_value) = 5]; + optional uint64 xoff_size = 6 [(attr_enum_value) = 6]; + optional uint64 wred_profile_id = 7 [(attr_enum_value) = 7]; } message BufferProfileAttribute { - uint64 pool_id = 1; - uint64 reserved_buffer_size = 2; - BufferProfileThresholdMode threshold_mode = 3; - int32 shared_dynamic_th = 4; - uint64 shared_static_th = 5; - uint64 xoff_th = 6; - uint64 xon_th = 7; - uint64 xon_offset_th = 8; + optional uint64 pool_id = 1 [(attr_enum_value) = 1]; + optional uint64 reserved_buffer_size = 2 [(attr_enum_value) = 2]; + optional BufferProfileThresholdMode threshold_mode = 3 + [(attr_enum_value) = 3]; + optional int32 shared_dynamic_th = 4 [(attr_enum_value) = 4]; + optional uint64 shared_static_th = 5 [(attr_enum_value) = 5]; + optional uint64 xoff_th = 6 [(attr_enum_value) = 6]; + optional uint64 xon_th = 7 [(attr_enum_value) = 7]; + optional uint64 xon_offset_th = 8 [(attr_enum_value) = 8]; } message CounterAttribute { - CounterType type = 1; -} - -message InDropReasonList { - repeated InDropReason list = 1; -} - -message OutDropReasonList { - repeated OutDropReason list = 1; + optional CounterType type = 1 [(attr_enum_value) = 1]; } message DebugCounterAttribute { - uint32 index = 1; - DebugCounterType type = 2; - DebugCounterBindMethod bind_method = 3; - InDropReasonList in_drop_reason_list = 4; - OutDropReasonList out_drop_reason_list = 5; + optional uint32 index = 1 [(attr_enum_value) = 1]; + optional DebugCounterType type = 2 [(attr_enum_value) = 2]; + optional DebugCounterBindMethod bind_method = 3 [(attr_enum_value) = 3]; + repeated InDropReason in_drop_reason_list = 4 [(attr_enum_value) = 4]; + repeated OutDropReason out_drop_reason_list = 5 [(attr_enum_value) = 5]; } message DtelAttribute { - bool int_endpoint_enable = 1; - bool int_transit_enable = 2; - bool postcard_enable = 3; - bool drop_report_enable = 4; - bool queue_report_enable = 5; - uint32 switch_id = 6; - uint32 flow_state_clear_cycle = 7; - uint32 latency_sensitivity = 8; - Uint64List sink_port_list = 9; - AclFieldData int_l4_dscp = 10; + optional bool int_endpoint_enable = 1 [(attr_enum_value) = 1]; + optional bool int_transit_enable = 2 [(attr_enum_value) = 2]; + optional bool postcard_enable = 3 [(attr_enum_value) = 3]; + optional bool drop_report_enable = 4 [(attr_enum_value) = 4]; + optional bool queue_report_enable = 5 [(attr_enum_value) = 5]; + optional uint32 switch_id = 6 [(attr_enum_value) = 6]; + optional uint32 flow_state_clear_cycle = 7 [(attr_enum_value) = 7]; + optional uint32 latency_sensitivity = 8 [(attr_enum_value) = 8]; + repeated uint64 sink_port_list = 9 [(attr_enum_value) = 9]; + optional AclFieldData int_l4_dscp = 10 [(attr_enum_value) = 10]; } message DtelEventAttribute { - DtelEventType type = 1; - uint64 report_session = 2; - uint32 dscp_value = 3; + optional DtelEventType type = 1 [(attr_enum_value) = 1]; + optional uint64 report_session = 2 [(attr_enum_value) = 2]; + optional uint32 dscp_value = 3 [(attr_enum_value) = 3]; } message DtelIntSessionAttribute { - uint32 max_hop_count = 1; - bool collect_switch_id = 2; - bool collect_switch_ports = 3; - bool collect_ingress_timestamp = 4; - bool collect_egress_timestamp = 5; - bool collect_queue_info = 6; + optional uint32 max_hop_count = 1 [(attr_enum_value) = 1]; + optional bool collect_switch_id = 2 [(attr_enum_value) = 2]; + optional bool collect_switch_ports = 3 [(attr_enum_value) = 3]; + optional bool collect_ingress_timestamp = 4 [(attr_enum_value) = 4]; + optional bool collect_egress_timestamp = 5 [(attr_enum_value) = 5]; + optional bool collect_queue_info = 6 [(attr_enum_value) = 6]; } message DtelQueueReportAttribute { - uint64 queue_id = 1; - uint32 depth_threshold = 2; - uint32 latency_threshold = 3; - uint32 breach_quota = 4; - bool tail_drop = 5; -} - -message BytesList { - repeated bytes list = 1; + optional uint64 queue_id = 1 [(attr_enum_value) = 1]; + optional uint32 depth_threshold = 2 [(attr_enum_value) = 2]; + optional uint32 latency_threshold = 3 [(attr_enum_value) = 3]; + optional uint32 breach_quota = 4 [(attr_enum_value) = 4]; + optional bool tail_drop = 5 [(attr_enum_value) = 5]; } message DtelReportSessionAttribute { - bytes src_ip = 1; - BytesList dst_ip_list = 2; - uint64 virtual_router_id = 3; - uint32 truncate_size = 4; - uint32 udp_dst_port = 5; + optional bytes src_ip = 1 [(attr_enum_value) = 1]; + repeated bytes dst_ip_list = 2 [(attr_enum_value) = 2]; + optional uint64 virtual_router_id = 3 [(attr_enum_value) = 3]; + optional uint32 truncate_size = 4 [(attr_enum_value) = 4]; + optional uint32 udp_dst_port = 5 [(attr_enum_value) = 5]; } message FdbEntryAttribute { - FdbEntryType type = 1; - PacketAction packet_action = 2; - uint64 user_trap_id = 3; - uint64 bridge_port_id = 4; - uint32 meta_data = 5; - bytes endpoint_ip = 6; - uint64 counter_id = 7; - bool allow_mac_move = 8; + optional FdbEntryType type = 1 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 2 [(attr_enum_value) = 2]; + optional uint64 user_trap_id = 3 [(attr_enum_value) = 3]; + optional uint64 bridge_port_id = 4 [(attr_enum_value) = 4]; + optional uint32 meta_data = 5 [(attr_enum_value) = 5]; + optional bytes endpoint_ip = 6 [(attr_enum_value) = 6]; + optional uint64 counter_id = 7 [(attr_enum_value) = 7]; + optional bool allow_mac_move = 8 [(attr_enum_value) = 8]; } message FdbFlushAttribute { - uint64 bridge_port_id = 1; - uint64 bv_id = 2; - FdbFlushEntryType entry_type = 3; + optional uint64 bridge_port_id = 1 [(attr_enum_value) = 1]; + optional uint64 bv_id = 2 [(attr_enum_value) = 2]; + optional FdbFlushEntryType entry_type = 3 [(attr_enum_value) = 3]; } message FineGrainedHashFieldAttribute { - NativeHashField native_hash_field = 1; - bytes ipv4_mask = 2; - bytes ipv6_mask = 3; - uint32 sequence_id = 4; -} - -message NativeHashFieldList { - repeated NativeHashField list = 1; + optional NativeHashField native_hash_field = 1 [(attr_enum_value) = 1]; + optional bytes ipv4_mask = 2 [(attr_enum_value) = 2]; + optional bytes ipv6_mask = 3 [(attr_enum_value) = 3]; + optional uint32 sequence_id = 4 [(attr_enum_value) = 4]; } message HashAttribute { - NativeHashFieldList native_hash_field_list = 1; - Uint64List udf_group_list = 2; - Uint64List fine_grained_hash_field_list = 3; + repeated NativeHashField native_hash_field_list = 1 [(attr_enum_value) = 1]; + repeated uint64 udf_group_list = 2 [(attr_enum_value) = 2]; + repeated uint64 fine_grained_hash_field_list = 3 [(attr_enum_value) = 3]; } message HostifAttribute { - HostifType type = 1; - uint64 obj_id = 2; - bytes name = 3; - bool oper_status = 4; - uint32 queue = 5; - HostifVlanTag vlan_tag = 6; - bytes genetlink_mcgrp_name = 7; + optional HostifType type = 1 [(attr_enum_value) = 1]; + optional uint64 obj_id = 2 [(attr_enum_value) = 2]; + optional bytes name = 3 [(attr_enum_value) = 3]; + optional bool oper_status = 4 [(attr_enum_value) = 4]; + optional uint32 queue = 5 [(attr_enum_value) = 5]; + optional HostifVlanTag vlan_tag = 6 [(attr_enum_value) = 6]; + optional bytes genetlink_mcgrp_name = 7 [(attr_enum_value) = 7]; } message HostifPacketAttribute { - uint64 hostif_trap_id = 1; - uint64 ingress_port = 2; - uint64 ingress_lag = 3; - HostifTxType hostif_tx_type = 4; - uint64 egress_port_or_lag = 5; - uint64 bridge_id = 6; - google.protobuf.Timestamp timestamp = 7; - uint32 egress_queue_index = 8; - bool zero_copy_tx = 9; + optional uint64 hostif_trap_id = 1 [(attr_enum_value) = 1]; + optional uint64 ingress_port = 2 [(attr_enum_value) = 2]; + optional uint64 ingress_lag = 3 [(attr_enum_value) = 3]; + optional HostifTxType hostif_tx_type = 4 [(attr_enum_value) = 4]; + optional uint64 egress_port_or_lag = 5 [(attr_enum_value) = 5]; + optional uint64 bridge_id = 6 [(attr_enum_value) = 6]; + optional google.protobuf.Timestamp timestamp = 7 [(attr_enum_value) = 7]; + optional uint32 egress_queue_index = 8 [(attr_enum_value) = 8]; + optional bool zero_copy_tx = 9 [(attr_enum_value) = 9]; } message HostifTableEntryAttribute { - HostifTableEntryType type = 1; - uint64 obj_id = 2; - uint64 trap_id = 3; - HostifTableEntryChannelType channel_type = 4; - uint64 host_if = 5; + optional HostifTableEntryType type = 1 [(attr_enum_value) = 1]; + optional uint64 obj_id = 2 [(attr_enum_value) = 2]; + optional uint64 trap_id = 3 [(attr_enum_value) = 3]; + optional HostifTableEntryChannelType channel_type = 4 [(attr_enum_value) = 4]; + optional uint64 host_if = 5 [(attr_enum_value) = 5]; } message HostifTrapAttribute { - HostifTrapType trap_type = 1; - PacketAction packet_action = 2; - uint32 trap_priority = 3; - Uint64List exclude_port_list = 4; - uint64 trap_group = 5; - Uint64List mirror_session = 6; - uint64 counter_id = 7; + optional HostifTrapType trap_type = 1 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 2 [(attr_enum_value) = 2]; + optional uint32 trap_priority = 3 [(attr_enum_value) = 3]; + repeated uint64 exclude_port_list = 4 [(attr_enum_value) = 4]; + optional uint64 trap_group = 5 [(attr_enum_value) = 5]; + repeated uint64 mirror_session = 6 [(attr_enum_value) = 6]; + optional uint64 counter_id = 7 [(attr_enum_value) = 7]; } message HostifTrapGroupAttribute { - bool admin_state = 1; - uint32 queue = 2; - uint64 policer = 3; + optional bool admin_state = 1 [(attr_enum_value) = 1]; + optional uint32 queue = 2 [(attr_enum_value) = 2]; + optional uint64 policer = 3 [(attr_enum_value) = 3]; } message HostifUserDefinedTrapAttribute { - HostifUserDefinedTrapType type = 1; - uint32 trap_priority = 2; - uint64 trap_group = 3; + optional HostifUserDefinedTrapType type = 1 [(attr_enum_value) = 1]; + optional uint32 trap_priority = 2 [(attr_enum_value) = 2]; + optional uint64 trap_group = 3 [(attr_enum_value) = 3]; } message IngressPriorityGroupAttribute { - uint64 buffer_profile = 1; - uint64 port = 2; - Uint64List tam = 3; - uint32 index = 4; + optional uint64 buffer_profile = 1 [(attr_enum_value) = 1]; + optional uint64 port = 2 [(attr_enum_value) = 2]; + repeated uint64 tam = 3 [(attr_enum_value) = 3]; + optional uint32 index = 4 [(attr_enum_value) = 4]; } message InsegEntryAttribute { - uint32 num_of_pop = 1; - PacketAction packet_action = 2; - uint32 trap_priority = 3; - uint64 next_hop_id = 4; - InsegEntryPscType psc_type = 5; - uint32 qos_tc = 6; - uint64 mpls_exp_to_tc_map = 7; - uint64 mpls_exp_to_color_map = 8; - InsegEntryPopTtlMode pop_ttl_mode = 9; - InsegEntryPopQosMode pop_qos_mode = 10; - uint64 counter_id = 11; + optional uint32 num_of_pop = 1 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 2 [(attr_enum_value) = 2]; + optional uint32 trap_priority = 3 [(attr_enum_value) = 3]; + optional uint64 next_hop_id = 4 [(attr_enum_value) = 4]; + optional InsegEntryPscType psc_type = 5 [(attr_enum_value) = 5]; + optional uint32 qos_tc = 6 [(attr_enum_value) = 6]; + optional uint64 mpls_exp_to_tc_map = 7 [(attr_enum_value) = 7]; + optional uint64 mpls_exp_to_color_map = 8 [(attr_enum_value) = 8]; + optional InsegEntryPopTtlMode pop_ttl_mode = 9 [(attr_enum_value) = 9]; + optional InsegEntryPopQosMode pop_qos_mode = 10 [(attr_enum_value) = 10]; + optional uint64 counter_id = 11 [(attr_enum_value) = 11]; } message IpmcEntryAttribute { - PacketAction packet_action = 1; - uint64 output_group_id = 2; - uint64 rpf_group_id = 3; + optional PacketAction packet_action = 1 [(attr_enum_value) = 1]; + optional uint64 output_group_id = 2 [(attr_enum_value) = 2]; + optional uint64 rpf_group_id = 3 [(attr_enum_value) = 3]; } message IpmcGroupAttribute { - uint32 ipmc_output_count = 1; - Uint64List ipmc_member_list = 2; + optional uint32 ipmc_output_count = 1 [(attr_enum_value) = 1]; + repeated uint64 ipmc_member_list = 2 [(attr_enum_value) = 2]; } message IpmcGroupMemberAttribute { - uint64 ipmc_group_id = 1; - uint64 ipmc_output_id = 2; -} - -message IpsecCipherList { - repeated IpsecCipher list = 1; + optional uint64 ipmc_group_id = 1 [(attr_enum_value) = 1]; + optional uint64 ipmc_output_id = 2 [(attr_enum_value) = 2]; } message IpsecAttribute { - bool term_remote_ip_match_supported = 1; - bool switching_mode_cut_through_supported = 2; - bool switching_mode_store_and_forward_supported = 3; - bool stats_mode_read_supported = 4; - bool stats_mode_read_clear_supported = 5; - bool sn_32bit_supported = 6; - bool esn_64bit_supported = 7; - IpsecCipherList supported_cipher_list = 8; - uint32 system_side_mtu = 9; - bool warm_boot_supported = 10; - bool warm_boot_enable = 11; - bool external_sa_index_enable = 12; - uint32 ctag_tpid = 13; - uint32 stag_tpid = 14; - uint32 max_vlan_tags_parsed = 15; - uint64 octet_count_high_watermark = 16; - uint64 octet_count_low_watermark = 17; - StatsMode stats_mode = 18; - uint32 available_ipsec_sa = 19; - Uint64List sa_list = 20; + optional bool term_remote_ip_match_supported = 1 [(attr_enum_value) = 1]; + optional bool switching_mode_cut_through_supported = 2 + [(attr_enum_value) = 2]; + optional bool switching_mode_store_and_forward_supported = 3 + [(attr_enum_value) = 3]; + optional bool stats_mode_read_supported = 4 [(attr_enum_value) = 4]; + optional bool stats_mode_read_clear_supported = 5 [(attr_enum_value) = 5]; + optional bool sn_32bit_supported = 6 [(attr_enum_value) = 6]; + optional bool esn_64bit_supported = 7 [(attr_enum_value) = 7]; + repeated IpsecCipher supported_cipher_list = 8 [(attr_enum_value) = 8]; + optional uint32 system_side_mtu = 9 [(attr_enum_value) = 9]; + optional bool warm_boot_supported = 10 [(attr_enum_value) = 10]; + optional bool warm_boot_enable = 11 [(attr_enum_value) = 11]; + optional bool external_sa_index_enable = 12 [(attr_enum_value) = 12]; + optional uint32 ctag_tpid = 13 [(attr_enum_value) = 13]; + optional uint32 stag_tpid = 14 [(attr_enum_value) = 14]; + optional uint32 max_vlan_tags_parsed = 15 [(attr_enum_value) = 15]; + optional uint64 octet_count_high_watermark = 16 [(attr_enum_value) = 16]; + optional uint64 octet_count_low_watermark = 17 [(attr_enum_value) = 17]; + optional StatsMode stats_mode = 18 [(attr_enum_value) = 18]; + optional uint32 available_ipsec_sa = 19 [(attr_enum_value) = 19]; + repeated uint64 sa_list = 20 [(attr_enum_value) = 20]; } message IpsecPortAttribute { - uint64 port_id = 1; - bool ctag_enable = 2; - bool stag_enable = 3; - uint32 native_vlan_id = 4; - bool vrf_from_packet_vlan_enable = 5; - SwitchSwitchingMode switch_switching_mode = 6; + optional uint64 port_id = 1 [(attr_enum_value) = 1]; + optional bool ctag_enable = 2 [(attr_enum_value) = 2]; + optional bool stag_enable = 3 [(attr_enum_value) = 3]; + optional uint32 native_vlan_id = 4 [(attr_enum_value) = 4]; + optional bool vrf_from_packet_vlan_enable = 5 [(attr_enum_value) = 5]; + optional SwitchSwitchingMode switch_switching_mode = 6 + [(attr_enum_value) = 6]; } message IpsecSaAttribute { - IpsecDirection ipsec_direction = 1; - uint64 ipsec_id = 2; - IpsecSaOctetCountStatus octet_count_status = 3; - uint32 external_sa_index = 4; - uint32 sa_index = 5; - Uint64List ipsec_port_list = 6; - uint32 ipsec_spi = 7; - bool ipsec_esn_enable = 8; - IpsecCipher ipsec_cipher = 9; - bytes encrypt_key = 10; - uint32 salt = 11; - bytes auth_key = 12; - bool ipsec_replay_protection_enable = 13; - uint32 ipsec_replay_protection_window = 14; - bytes term_dst_ip = 15; - bool term_vlan_id_enable = 16; - uint32 term_vlan_id = 17; - bool term_src_ip_enable = 18; - bytes term_src_ip = 19; - uint64 egress_esn = 20; - uint64 minimum_ingress_esn = 21; + optional IpsecDirection ipsec_direction = 1 [(attr_enum_value) = 1]; + optional uint64 ipsec_id = 2 [(attr_enum_value) = 2]; + optional IpsecSaOctetCountStatus octet_count_status = 3 + [(attr_enum_value) = 3]; + optional uint32 external_sa_index = 4 [(attr_enum_value) = 4]; + optional uint32 sa_index = 5 [(attr_enum_value) = 5]; + repeated uint64 ipsec_port_list = 6 [(attr_enum_value) = 6]; + optional uint32 ipsec_spi = 7 [(attr_enum_value) = 7]; + optional bool ipsec_esn_enable = 8 [(attr_enum_value) = 8]; + optional IpsecCipher ipsec_cipher = 9 [(attr_enum_value) = 9]; + optional bytes encrypt_key = 10 [(attr_enum_value) = 10]; + optional uint32 salt = 11 [(attr_enum_value) = 11]; + optional bytes auth_key = 12 [(attr_enum_value) = 12]; + optional bool ipsec_replay_protection_enable = 13 [(attr_enum_value) = 13]; + optional uint32 ipsec_replay_protection_window = 14 [(attr_enum_value) = 14]; + optional bytes term_dst_ip = 15 [(attr_enum_value) = 15]; + optional bool term_vlan_id_enable = 16 [(attr_enum_value) = 16]; + optional uint32 term_vlan_id = 17 [(attr_enum_value) = 17]; + optional bool term_src_ip_enable = 18 [(attr_enum_value) = 18]; + optional bytes term_src_ip = 19 [(attr_enum_value) = 19]; + optional uint64 egress_esn = 20 [(attr_enum_value) = 20]; + optional uint64 minimum_ingress_esn = 21 [(attr_enum_value) = 21]; } message IsolationGroupAttribute { - IsolationGroupType type = 1; - Uint64List isolation_member_list = 2; + optional IsolationGroupType type = 1 [(attr_enum_value) = 1]; + repeated uint64 isolation_member_list = 2 [(attr_enum_value) = 2]; } message IsolationGroupMemberAttribute { - uint64 isolation_group_id = 1; - uint64 isolation_object = 2; + optional uint64 isolation_group_id = 1 [(attr_enum_value) = 1]; + optional uint64 isolation_object = 2 [(attr_enum_value) = 2]; } message L2mcEntryAttribute { - PacketAction packet_action = 1; - uint64 output_group_id = 2; + optional PacketAction packet_action = 1 [(attr_enum_value) = 1]; + optional uint64 output_group_id = 2 [(attr_enum_value) = 2]; } message L2mcGroupAttribute { - uint32 l2mc_output_count = 1; - Uint64List l2mc_member_list = 2; + optional uint32 l2mc_output_count = 1 [(attr_enum_value) = 1]; + repeated uint64 l2mc_member_list = 2 [(attr_enum_value) = 2]; } message L2mcGroupMemberAttribute { - uint64 l2mc_group_id = 1; - uint64 l2mc_output_id = 2; - bytes l2mc_endpoint_ip = 3; + optional uint64 l2mc_group_id = 1 [(attr_enum_value) = 1]; + optional uint64 l2mc_output_id = 2 [(attr_enum_value) = 2]; + optional bytes l2mc_endpoint_ip = 3 [(attr_enum_value) = 3]; } message LagAttribute { - Uint64List port_list = 1; - uint64 ingress_acl = 2; - uint64 egress_acl = 3; - uint32 port_vlan_id = 4; - uint32 default_vlan_priority = 5; - bool drop_untagged = 6; - bool drop_tagged = 7; - uint32 tpid = 8; - uint32 system_port_aggregate_id = 9; - bytes label = 10; + repeated uint64 port_list = 1 [(attr_enum_value) = 1]; + optional uint64 ingress_acl = 2 [(attr_enum_value) = 2]; + optional uint64 egress_acl = 3 [(attr_enum_value) = 3]; + optional uint32 port_vlan_id = 4 [(attr_enum_value) = 4]; + optional uint32 default_vlan_priority = 5 [(attr_enum_value) = 5]; + optional bool drop_untagged = 6 [(attr_enum_value) = 6]; + optional bool drop_tagged = 7 [(attr_enum_value) = 7]; + optional uint32 tpid = 8 [(attr_enum_value) = 8]; + optional uint32 system_port_aggregate_id = 9 [(attr_enum_value) = 9]; + optional bytes label = 10 [(attr_enum_value) = 10]; } message LagMemberAttribute { - uint64 lag_id = 1; - uint64 port_id = 2; - bool egress_disable = 3; - bool ingress_disable = 4; -} - -message MacsecCipherSuiteList { - repeated MacsecCipherSuite list = 1; -} - -message Uint32List { - repeated uint32 list = 1; + optional uint64 lag_id = 1 [(attr_enum_value) = 1]; + optional uint64 port_id = 2 [(attr_enum_value) = 2]; + optional bool egress_disable = 3 [(attr_enum_value) = 3]; + optional bool ingress_disable = 4 [(attr_enum_value) = 4]; } message MacsecAttribute { - MacsecDirection direction = 1; - bool switching_mode_cut_through_supported = 2; - bool switching_mode_store_and_forward_supported = 3; - bool stats_mode_read_supported = 4; - bool stats_mode_read_clear_supported = 5; - bool sci_in_ingress_macsec_acl = 6; - MacsecCipherSuiteList supported_cipher_suite_list = 7; - bool pn_32bit_supported = 8; - bool xpn_64bit_supported = 9; - bool gcm_aes128_supported = 10; - bool gcm_aes256_supported = 11; - Uint32List sectag_offsets_supported = 12; - uint32 system_side_mtu = 13; - bool warm_boot_supported = 14; - bool warm_boot_enable = 15; - uint32 ctag_tpid = 16; - uint32 stag_tpid = 17; - uint32 max_vlan_tags_parsed = 18; - StatsMode stats_mode = 19; - bool physical_bypass_enable = 20; - Uint64List supported_port_list = 21; - uint32 available_macsec_flow = 22; - Uint64List flow_list = 23; - uint32 available_macsec_sc = 24; - uint32 available_macsec_sa = 25; + optional MacsecDirection direction = 1 [(attr_enum_value) = 1]; + optional bool switching_mode_cut_through_supported = 2 + [(attr_enum_value) = 2]; + optional bool switching_mode_store_and_forward_supported = 3 + [(attr_enum_value) = 3]; + optional bool stats_mode_read_supported = 4 [(attr_enum_value) = 4]; + optional bool stats_mode_read_clear_supported = 5 [(attr_enum_value) = 5]; + optional bool sci_in_ingress_macsec_acl = 6 [(attr_enum_value) = 6]; + repeated MacsecCipherSuite supported_cipher_suite_list = 7 + [(attr_enum_value) = 7]; + optional bool pn_32bit_supported = 8 [(attr_enum_value) = 8]; + optional bool xpn_64bit_supported = 9 [(attr_enum_value) = 9]; + optional bool gcm_aes128_supported = 10 [(attr_enum_value) = 10]; + optional bool gcm_aes256_supported = 11 [(attr_enum_value) = 11]; + repeated uint32 sectag_offsets_supported = 12 [(attr_enum_value) = 12]; + optional uint32 system_side_mtu = 13 [(attr_enum_value) = 13]; + optional bool warm_boot_supported = 14 [(attr_enum_value) = 14]; + optional bool warm_boot_enable = 15 [(attr_enum_value) = 15]; + optional uint32 ctag_tpid = 16 [(attr_enum_value) = 16]; + optional uint32 stag_tpid = 17 [(attr_enum_value) = 17]; + optional uint32 max_vlan_tags_parsed = 18 [(attr_enum_value) = 18]; + optional StatsMode stats_mode = 19 [(attr_enum_value) = 19]; + optional bool physical_bypass_enable = 20 [(attr_enum_value) = 20]; + repeated uint64 supported_port_list = 21 [(attr_enum_value) = 21]; + optional uint32 available_macsec_flow = 22 [(attr_enum_value) = 22]; + repeated uint64 flow_list = 23 [(attr_enum_value) = 23]; + optional uint32 available_macsec_sc = 24 [(attr_enum_value) = 24]; + optional uint32 available_macsec_sa = 25 [(attr_enum_value) = 25]; } message MacsecFlowAttribute { - MacsecDirection macsec_direction = 1; - Uint64List acl_entry_list = 2; - Uint64List sc_list = 3; + optional MacsecDirection macsec_direction = 1 [(attr_enum_value) = 1]; + repeated uint64 acl_entry_list = 2 [(attr_enum_value) = 2]; + repeated uint64 sc_list = 3 [(attr_enum_value) = 3]; } message MacsecPortAttribute { - MacsecDirection macsec_direction = 1; - uint64 port_id = 2; - bool ctag_enable = 3; - bool stag_enable = 4; - SwitchSwitchingMode switch_switching_mode = 5; + optional MacsecDirection macsec_direction = 1 [(attr_enum_value) = 1]; + optional uint64 port_id = 2 [(attr_enum_value) = 2]; + optional bool ctag_enable = 3 [(attr_enum_value) = 3]; + optional bool stag_enable = 4 [(attr_enum_value) = 4]; + optional SwitchSwitchingMode switch_switching_mode = 5 + [(attr_enum_value) = 5]; } message MacsecSaAttribute { - MacsecDirection macsec_direction = 1; - uint64 sc_id = 2; - uint32 an = 3; - bytes sak = 4; - bytes salt = 5; - bytes auth_key = 6; - uint64 configured_egress_xpn = 7; - uint64 current_xpn = 8; - uint64 minimum_ingress_xpn = 9; - uint32 macsec_ssci = 10; + optional MacsecDirection macsec_direction = 1 [(attr_enum_value) = 1]; + optional uint64 sc_id = 2 [(attr_enum_value) = 2]; + optional uint32 an = 3 [(attr_enum_value) = 3]; + optional bytes sak = 4 [(attr_enum_value) = 4]; + optional bytes salt = 5 [(attr_enum_value) = 5]; + optional bytes auth_key = 6 [(attr_enum_value) = 6]; + optional uint64 configured_egress_xpn = 7 [(attr_enum_value) = 7]; + optional uint64 current_xpn = 8 [(attr_enum_value) = 8]; + optional uint64 minimum_ingress_xpn = 9 [(attr_enum_value) = 9]; + optional uint32 macsec_ssci = 10 [(attr_enum_value) = 10]; } message MacsecScAttribute { - MacsecDirection macsec_direction = 1; - uint64 flow_id = 2; - uint64 macsec_sci = 3; - bool macsec_explicit_sci_enable = 4; - uint32 macsec_sectag_offset = 5; - uint64 active_egress_sa_id = 6; - bool macsec_replay_protection_enable = 7; - uint32 macsec_replay_protection_window = 8; - Uint64List sa_list = 9; - MacsecCipherSuite macsec_cipher_suite = 10; - bool encryption_enable = 11; + optional MacsecDirection macsec_direction = 1 [(attr_enum_value) = 1]; + optional uint64 flow_id = 2 [(attr_enum_value) = 2]; + optional uint64 macsec_sci = 3 [(attr_enum_value) = 3]; + optional bool macsec_explicit_sci_enable = 4 [(attr_enum_value) = 4]; + optional uint32 macsec_sectag_offset = 5 [(attr_enum_value) = 5]; + optional uint64 active_egress_sa_id = 6 [(attr_enum_value) = 6]; + optional bool macsec_replay_protection_enable = 7 [(attr_enum_value) = 7]; + optional uint32 macsec_replay_protection_window = 8 [(attr_enum_value) = 8]; + repeated uint64 sa_list = 9 [(attr_enum_value) = 9]; + optional MacsecCipherSuite macsec_cipher_suite = 10 [(attr_enum_value) = 10]; + optional bool encryption_enable = 11 [(attr_enum_value) = 11]; } message McastFdbEntryAttribute { - uint64 group_id = 1; - PacketAction packet_action = 2; - uint32 meta_data = 3; + optional uint64 group_id = 1 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 2 [(attr_enum_value) = 2]; + optional uint32 meta_data = 3 [(attr_enum_value) = 3]; } message MirrorSessionAttribute { - MirrorSessionType type = 1; - uint64 monitor_port = 2; - uint32 truncate_size = 3; - uint32 sample_rate = 4; - MirrorSessionCongestionMode congestion_mode = 5; - uint32 tc = 6; - uint32 vlan_tpid = 7; - uint32 vlan_id = 8; - uint32 vlan_pri = 9; - uint32 vlan_cfi = 10; - bool vlan_header_valid = 11; - ErspanEncapsulationType erspan_encapsulation_type = 12; - uint32 iphdr_version = 13; - uint32 tos = 14; - uint32 ttl = 15; - bytes src_ip_address = 16; - bytes dst_ip_address = 17; - bytes src_mac_address = 18; - bytes dst_mac_address = 19; - uint32 gre_protocol_type = 20; - bool monitor_portlist_valid = 21; - Uint64List monitor_portlist = 22; - uint64 policer = 23; - uint32 udp_src_port = 24; - uint32 udp_dst_port = 25; + optional MirrorSessionType type = 1 [(attr_enum_value) = 1]; + optional uint64 monitor_port = 2 [(attr_enum_value) = 2]; + optional uint32 truncate_size = 3 [(attr_enum_value) = 3]; + optional uint32 sample_rate = 4 [(attr_enum_value) = 4]; + optional MirrorSessionCongestionMode congestion_mode = 5 + [(attr_enum_value) = 5]; + optional uint32 tc = 6 [(attr_enum_value) = 6]; + optional uint32 vlan_tpid = 7 [(attr_enum_value) = 7]; + optional uint32 vlan_id = 8 [(attr_enum_value) = 8]; + optional uint32 vlan_pri = 9 [(attr_enum_value) = 9]; + optional uint32 vlan_cfi = 10 [(attr_enum_value) = 10]; + optional bool vlan_header_valid = 11 [(attr_enum_value) = 11]; + optional ErspanEncapsulationType erspan_encapsulation_type = 12 + [(attr_enum_value) = 12]; + optional uint32 iphdr_version = 13 [(attr_enum_value) = 13]; + optional uint32 tos = 14 [(attr_enum_value) = 14]; + optional uint32 ttl = 15 [(attr_enum_value) = 15]; + optional bytes src_ip_address = 16 [(attr_enum_value) = 16]; + optional bytes dst_ip_address = 17 [(attr_enum_value) = 17]; + optional bytes src_mac_address = 18 [(attr_enum_value) = 18]; + optional bytes dst_mac_address = 19 [(attr_enum_value) = 19]; + optional uint32 gre_protocol_type = 20 [(attr_enum_value) = 20]; + optional bool monitor_portlist_valid = 21 [(attr_enum_value) = 21]; + repeated uint64 monitor_portlist = 22 [(attr_enum_value) = 22]; + optional uint64 policer = 23 [(attr_enum_value) = 23]; + optional uint32 udp_src_port = 24 [(attr_enum_value) = 24]; + optional uint32 udp_dst_port = 25 [(attr_enum_value) = 25]; } message MyMacAttribute { - uint32 priority = 1; - uint64 port_id = 2; - uint32 vlan_id = 3; - bytes mac_address = 4; - bytes mac_address_mask = 5; + optional uint32 priority = 1 [(attr_enum_value) = 1]; + optional uint64 port_id = 2 [(attr_enum_value) = 2]; + optional uint32 vlan_id = 3 [(attr_enum_value) = 3]; + optional bytes mac_address = 4 [(attr_enum_value) = 4]; + optional bytes mac_address_mask = 5 [(attr_enum_value) = 5]; } message MySidEntryAttribute { - MySidEntryEndpointBehavior endpoint_behavior = 1; - MySidEntryEndpointBehaviorFlavor endpoint_behavior_flavor = 2; - PacketAction packet_action = 3; - uint32 trap_priority = 4; - uint64 next_hop_id = 5; - uint64 tunnel_id = 6; - uint64 vrf = 7; - uint64 counter_id = 8; + optional MySidEntryEndpointBehavior endpoint_behavior = 1 + [(attr_enum_value) = 1]; + optional MySidEntryEndpointBehaviorFlavor endpoint_behavior_flavor = 2 + [(attr_enum_value) = 2]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 3]; + optional uint32 trap_priority = 4 [(attr_enum_value) = 4]; + optional uint64 next_hop_id = 5 [(attr_enum_value) = 5]; + optional uint64 tunnel_id = 6 [(attr_enum_value) = 6]; + optional uint64 vrf = 7 [(attr_enum_value) = 7]; + optional uint64 counter_id = 8 [(attr_enum_value) = 8]; } message NatEntryAttribute { - NatType nat_type = 1; - bytes src_ip = 2; - bytes src_ip_mask = 3; - uint64 vr_id = 4; - bytes dst_ip = 5; - bytes dst_ip_mask = 6; - uint32 l4_src_port = 7; - uint32 l4_dst_port = 8; - bool enable_packet_count = 9; - uint64 packet_count = 10; - bool enable_byte_count = 11; - uint64 byte_count = 12; - bool hit_bit_cor = 13; - bool hit_bit = 14; + optional NatType nat_type = 1 [(attr_enum_value) = 1]; + optional bytes src_ip = 2 [(attr_enum_value) = 2]; + optional bytes src_ip_mask = 3 [(attr_enum_value) = 3]; + optional uint64 vr_id = 4 [(attr_enum_value) = 4]; + optional bytes dst_ip = 5 [(attr_enum_value) = 5]; + optional bytes dst_ip_mask = 6 [(attr_enum_value) = 6]; + optional uint32 l4_src_port = 7 [(attr_enum_value) = 7]; + optional uint32 l4_dst_port = 8 [(attr_enum_value) = 8]; + optional bool enable_packet_count = 9 [(attr_enum_value) = 9]; + optional uint64 packet_count = 10 [(attr_enum_value) = 10]; + optional bool enable_byte_count = 11 [(attr_enum_value) = 11]; + optional uint64 byte_count = 12 [(attr_enum_value) = 12]; + optional bool hit_bit_cor = 13 [(attr_enum_value) = 13]; + optional bool hit_bit = 14 [(attr_enum_value) = 14]; } message NatZoneCounterAttribute { - NatType nat_type = 1; - uint32 zone_id = 2; - bool enable_discard = 3; - uint64 discard_packet_count = 4; - bool enable_translation_needed = 5; - uint64 translation_needed_packet_count = 6; - bool enable_translations = 7; - uint64 translations_packet_count = 8; + optional NatType nat_type = 1 [(attr_enum_value) = 1]; + optional uint32 zone_id = 2 [(attr_enum_value) = 2]; + optional bool enable_discard = 3 [(attr_enum_value) = 3]; + optional uint64 discard_packet_count = 4 [(attr_enum_value) = 4]; + optional bool enable_translation_needed = 5 [(attr_enum_value) = 5]; + optional uint64 translation_needed_packet_count = 6 [(attr_enum_value) = 6]; + optional bool enable_translations = 7 [(attr_enum_value) = 7]; + optional uint64 translations_packet_count = 8 [(attr_enum_value) = 8]; } message NeighborEntryAttribute { - bytes dst_mac_address = 1; - PacketAction packet_action = 2; - uint64 user_trap_id = 3; - bool no_host_route = 4; - uint32 meta_data = 5; - uint64 counter_id = 6; - uint32 encap_index = 7; - bool encap_impose_index = 8; - bool is_local = 9; - IpAddrFamily ip_addr_family = 10; + optional bytes dst_mac_address = 1 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 2 [(attr_enum_value) = 2]; + optional uint64 user_trap_id = 3 [(attr_enum_value) = 3]; + optional bool no_host_route = 4 [(attr_enum_value) = 4]; + optional uint32 meta_data = 5 [(attr_enum_value) = 5]; + optional uint64 counter_id = 6 [(attr_enum_value) = 6]; + optional uint32 encap_index = 7 [(attr_enum_value) = 7]; + optional bool encap_impose_index = 8 [(attr_enum_value) = 8]; + optional bool is_local = 9 [(attr_enum_value) = 9]; + optional IpAddrFamily ip_addr_family = 10 [(attr_enum_value) = 10]; } message NextHopAttribute { - NextHopType type = 1; - bytes ip = 2; - uint64 router_interface_id = 3; - uint64 tunnel_id = 4; - uint32 tunnel_vni = 5; - bytes tunnel_mac = 6; - uint64 srv6_sidlist_id = 7; - Uint32List labelstack = 8; - uint64 counter_id = 9; - bool disable_decrement_ttl = 10; - OutsegType outseg_type = 11; - OutsegTtlMode outseg_ttl_mode = 12; - uint32 outseg_ttl_value = 13; - OutsegExpMode outseg_exp_mode = 14; - uint32 outseg_exp_value = 15; - uint64 qos_tc_and_color_to_mpls_exp_map = 16; + optional NextHopType type = 1 [(attr_enum_value) = 1]; + optional bytes ip = 2 [(attr_enum_value) = 2]; + optional uint64 router_interface_id = 3 [(attr_enum_value) = 3]; + optional uint64 tunnel_id = 4 [(attr_enum_value) = 4]; + optional uint32 tunnel_vni = 5 [(attr_enum_value) = 5]; + optional bytes tunnel_mac = 6 [(attr_enum_value) = 6]; + optional uint64 srv6_sidlist_id = 7 [(attr_enum_value) = 7]; + repeated uint32 labelstack = 8 [(attr_enum_value) = 8]; + optional uint64 counter_id = 9 [(attr_enum_value) = 9]; + optional bool disable_decrement_ttl = 10 [(attr_enum_value) = 10]; + optional OutsegType outseg_type = 11 [(attr_enum_value) = 11]; + optional OutsegTtlMode outseg_ttl_mode = 12 [(attr_enum_value) = 12]; + optional uint32 outseg_ttl_value = 13 [(attr_enum_value) = 13]; + optional OutsegExpMode outseg_exp_mode = 14 [(attr_enum_value) = 14]; + optional uint32 outseg_exp_value = 15 [(attr_enum_value) = 15]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 16 + [(attr_enum_value) = 16]; } message NextHopGroupAttribute { - uint32 next_hop_count = 1; - Uint64List next_hop_member_list = 2; - NextHopGroupType type = 3; - bool set_switchover = 4; - uint64 counter_id = 5; - uint32 configured_size = 6; - uint32 real_size = 7; - uint64 selection_map = 8; -} - -message UintMapList { - repeated UintMap list = 1; + optional uint32 next_hop_count = 1 [(attr_enum_value) = 1]; + repeated uint64 next_hop_member_list = 2 [(attr_enum_value) = 2]; + optional NextHopGroupType type = 3 [(attr_enum_value) = 3]; + optional bool set_switchover = 4 [(attr_enum_value) = 4]; + optional uint64 counter_id = 5 [(attr_enum_value) = 5]; + optional uint32 configured_size = 6 [(attr_enum_value) = 6]; + optional uint32 real_size = 7 [(attr_enum_value) = 7]; + optional uint64 selection_map = 8 [(attr_enum_value) = 8]; } message NextHopGroupMapAttribute { - NextHopGroupMapType type = 1; - UintMapList map_to_value_list = 2; + optional NextHopGroupMapType type = 1 [(attr_enum_value) = 1]; + repeated UintMap map_to_value_list = 2 [(attr_enum_value) = 2]; } message NextHopGroupMemberAttribute { - uint64 next_hop_group_id = 1; - uint64 next_hop_id = 2; - uint32 weight = 3; - NextHopGroupMemberConfiguredRole configured_role = 4; - NextHopGroupMemberObservedRole observed_role = 5; - uint64 monitored_object = 6; - uint32 index = 7; - uint32 sequence_id = 8; - uint64 counter_id = 9; -} - -message PacketActionList { - repeated PacketAction list = 1; + optional uint64 next_hop_group_id = 1 [(attr_enum_value) = 1]; + optional uint64 next_hop_id = 2 [(attr_enum_value) = 2]; + optional uint32 weight = 3 [(attr_enum_value) = 3]; + optional NextHopGroupMemberConfiguredRole configured_role = 4 + [(attr_enum_value) = 4]; + optional NextHopGroupMemberObservedRole observed_role = 5 + [(attr_enum_value) = 5]; + optional uint64 monitored_object = 6 [(attr_enum_value) = 6]; + optional uint32 index = 7 [(attr_enum_value) = 7]; + optional uint32 sequence_id = 8 [(attr_enum_value) = 8]; + optional uint64 counter_id = 9 [(attr_enum_value) = 9]; } message PolicerAttribute { - MeterType meter_type = 1; - PolicerMode mode = 2; - PolicerColorSource color_source = 3; - uint64 cbs = 4; - uint64 cir = 5; - uint64 pbs = 6; - uint64 pir = 7; - PacketAction green_packet_action = 8; - PacketAction yellow_packet_action = 9; - PacketAction red_packet_action = 10; - PacketActionList enable_counter_packet_action_list = 11; -} - -message PortBreakoutModeTypeList { - repeated PortBreakoutModeType list = 1; -} - -message PortFecModeList { - repeated PortFecMode list = 1; -} - -message PortFecModeExtendedList { - repeated PortFecModeExtended list = 1; -} - -message PortEyeValuesList { - repeated PortEyeValues list = 1; -} - -message PortInterfaceTypeList { - repeated PortInterfaceType list = 1; -} - -message PortErrStatusList { - repeated PortErrStatus list = 1; + optional MeterType meter_type = 1 [(attr_enum_value) = 1]; + optional PolicerMode mode = 2 [(attr_enum_value) = 2]; + optional PolicerColorSource color_source = 3 [(attr_enum_value) = 3]; + optional uint64 cbs = 4 [(attr_enum_value) = 4]; + optional uint64 cir = 5 [(attr_enum_value) = 5]; + optional uint64 pbs = 6 [(attr_enum_value) = 6]; + optional uint64 pir = 7 [(attr_enum_value) = 7]; + optional PacketAction green_packet_action = 8 [(attr_enum_value) = 8]; + optional PacketAction yellow_packet_action = 9 [(attr_enum_value) = 9]; + optional PacketAction red_packet_action = 10 [(attr_enum_value) = 10]; + repeated PacketAction enable_counter_packet_action_list = 11 + [(attr_enum_value) = 11]; } message PortAttribute { - PortType type = 1; - PortOperStatus oper_status = 2; - PortBreakoutModeTypeList supported_breakout_mode_type = 3; - PortBreakoutModeType current_breakout_mode_type = 4; - uint32 qos_number_of_queues = 5; - Uint64List qos_queue_list = 6; - uint32 qos_number_of_scheduler_groups = 7; - Uint64List qos_scheduler_group_list = 8; - uint32 qos_maximum_headroom_size = 9; - Uint32List supported_speed = 10; - PortFecModeList supported_fec_mode = 11; - PortFecModeExtendedList supported_fec_mode_extended = 12; - Uint32List supported_half_duplex_speed = 13; - bool supported_auto_neg_mode = 14; - PortFlowControlMode supported_flow_control_mode = 15; - bool supported_asymmetric_pause_mode = 16; - PortMediaType supported_media_type = 17; - Uint32List remote_advertised_speed = 18; - PortFecModeList remote_advertised_fec_mode = 19; - PortFecModeExtendedList remote_advertised_fec_mode_extended = 20; - Uint32List remote_advertised_half_duplex_speed = 21; - bool remote_advertised_auto_neg_mode = 22; - PortFlowControlMode remote_advertised_flow_control_mode = 23; - bool remote_advertised_asymmetric_pause_mode = 24; - PortMediaType remote_advertised_media_type = 25; - uint32 remote_advertised_oui_code = 26; - uint32 number_of_ingress_priority_groups = 27; - Uint64List ingress_priority_group_list = 28; - PortEyeValuesList eye_values = 29; - uint32 oper_speed = 30; - Uint32List hw_lane_list = 31; - uint32 speed = 32; - bool full_duplex_mode = 33; - bool auto_neg_mode = 34; - bool admin_state = 35; - PortMediaType media_type = 36; - Uint32List advertised_speed = 37; - PortFecModeList advertised_fec_mode = 38; - PortFecModeExtendedList advertised_fec_mode_extended = 39; - Uint32List advertised_half_duplex_speed = 40; - bool advertised_auto_neg_mode = 41; - PortFlowControlMode advertised_flow_control_mode = 42; - bool advertised_asymmetric_pause_mode = 43; - PortMediaType advertised_media_type = 44; - uint32 advertised_oui_code = 45; - uint32 port_vlan_id = 46; - uint32 default_vlan_priority = 47; - bool drop_untagged = 48; - bool drop_tagged = 49; - PortInternalLoopbackMode internal_loopback_mode = 50; - bool use_extended_fec = 51; - PortFecMode fec_mode = 52; - PortFecModeExtended fec_mode_extended = 53; - bool update_dscp = 54; - uint32 mtu = 55; - uint64 flood_storm_control_policer_id = 56; - uint64 broadcast_storm_control_policer_id = 57; - uint64 multicast_storm_control_policer_id = 58; - PortFlowControlMode global_flow_control_mode = 59; - uint64 ingress_acl = 60; - uint64 egress_acl = 61; - uint64 ingress_macsec_acl = 62; - uint64 egress_macsec_acl = 63; - Uint64List macsec_port_list = 64; - Uint64List ingress_mirror_session = 65; - Uint64List egress_mirror_session = 66; - uint64 ingress_samplepacket_enable = 67; - uint64 egress_samplepacket_enable = 68; - Uint64List ingress_sample_mirror_session = 69; - Uint64List egress_sample_mirror_session = 70; - uint64 policer_id = 71; - uint32 qos_default_tc = 72; - uint64 qos_dot1p_to_tc_map = 73; - uint64 qos_dot1p_to_color_map = 74; - uint64 qos_dscp_to_tc_map = 75; - uint64 qos_dscp_to_color_map = 76; - uint64 qos_tc_to_queue_map = 77; - uint64 qos_tc_and_color_to_dot1p_map = 78; - uint64 qos_tc_and_color_to_dscp_map = 79; - uint64 qos_tc_to_priority_group_map = 80; - uint64 qos_pfc_priority_to_priority_group_map = 81; - uint64 qos_pfc_priority_to_queue_map = 82; - uint64 qos_scheduler_profile_id = 83; - Uint64List qos_ingress_buffer_profile_list = 84; - Uint64List qos_egress_buffer_profile_list = 85; - PortPriorityFlowControlMode priority_flow_control_mode = 86; - uint32 priority_flow_control = 87; - uint32 priority_flow_control_rx = 88; - uint32 priority_flow_control_tx = 89; - uint32 meta_data = 90; - Uint64List egress_block_port_list = 91; - uint64 hw_profile_id = 92; - bool eee_enable = 93; - uint32 eee_idle_time = 94; - uint32 eee_wake_time = 95; - Uint64List port_pool_list = 96; - uint64 isolation_group = 97; - bool pkt_tx_enable = 98; - Uint64List tam_object = 99; - Uint32List serdes_preemphasis = 100; - Uint32List serdes_idriver = 101; - Uint32List serdes_ipredriver = 102; - bool link_training_enable = 103; - PortPtpMode ptp_mode = 104; - PortInterfaceType interface_type = 105; - PortInterfaceTypeList advertised_interface_type = 106; - uint64 reference_clock = 107; - uint32 prbs_polynomial = 108; - uint64 port_serdes_id = 109; - PortLinkTrainingFailureStatus link_training_failure_status = 110; - PortLinkTrainingRxStatus link_training_rx_status = 111; - PortPrbsConfig prbs_config = 112; - bool prbs_lock_status = 113; - bool prbs_lock_loss_status = 114; - PortPrbsRxStatus prbs_rx_status = 115; - PRBS_RXState prbs_rx_state = 116; - bool auto_neg_status = 117; - bool disable_decrement_ttl = 118; - uint64 qos_mpls_exp_to_tc_map = 119; - uint64 qos_mpls_exp_to_color_map = 120; - uint64 qos_tc_and_color_to_mpls_exp_map = 121; - uint32 tpid = 122; - PortErrStatusList err_status_list = 123; - bool fabric_attached = 124; - SwitchType fabric_attached_switch_type = 125; - uint32 fabric_attached_switch_id = 126; - uint32 fabric_attached_port_index = 127; - FabricPortReachability fabric_reachability = 128; - uint64 system_port = 129; - bool auto_neg_fec_mode_override = 130; - PortLoopbackMode loopback_mode = 131; - PortMdixModeStatus mdix_mode_status = 132; - PortMdixModeConfig mdix_mode_config = 133; - PortAutoNegConfigMode auto_neg_config_mode = 134; - bool _1000x_sgmii_slave_autodetect = 135; - PortModuleType module_type = 136; - PortDualMedia dual_media = 137; - PortFecModeExtended auto_neg_fec_mode_extended = 138; - uint32 ipg = 139; - bool global_flow_control_forward = 140; - bool priority_flow_control_forward = 141; - uint64 qos_dscp_to_forwarding_class_map = 142; - uint64 qos_mpls_exp_to_forwarding_class_map = 143; - uint64 ipsec_port = 144; + optional PortType type = 1 [(attr_enum_value) = 1]; + optional PortOperStatus oper_status = 2 [(attr_enum_value) = 2]; + repeated PortBreakoutModeType supported_breakout_mode_type = 3 + [(attr_enum_value) = 3]; + optional PortBreakoutModeType current_breakout_mode_type = 4 + [(attr_enum_value) = 4]; + optional uint32 qos_number_of_queues = 5 [(attr_enum_value) = 5]; + repeated uint64 qos_queue_list = 6 [(attr_enum_value) = 6]; + optional uint32 qos_number_of_scheduler_groups = 7 [(attr_enum_value) = 7]; + repeated uint64 qos_scheduler_group_list = 8 [(attr_enum_value) = 8]; + optional uint32 qos_maximum_headroom_size = 9 [(attr_enum_value) = 9]; + repeated uint32 supported_speed = 10 [(attr_enum_value) = 10]; + repeated PortFecMode supported_fec_mode = 11 [(attr_enum_value) = 11]; + repeated PortFecModeExtended supported_fec_mode_extended = 12 + [(attr_enum_value) = 12]; + repeated uint32 supported_half_duplex_speed = 13 [(attr_enum_value) = 13]; + optional bool supported_auto_neg_mode = 14 [(attr_enum_value) = 14]; + optional PortFlowControlMode supported_flow_control_mode = 15 + [(attr_enum_value) = 15]; + optional bool supported_asymmetric_pause_mode = 16 [(attr_enum_value) = 16]; + optional PortMediaType supported_media_type = 17 [(attr_enum_value) = 17]; + repeated uint32 remote_advertised_speed = 18 [(attr_enum_value) = 18]; + repeated PortFecMode remote_advertised_fec_mode = 19 [(attr_enum_value) = 19]; + repeated PortFecModeExtended remote_advertised_fec_mode_extended = 20 + [(attr_enum_value) = 20]; + repeated uint32 remote_advertised_half_duplex_speed = 21 + [(attr_enum_value) = 21]; + optional bool remote_advertised_auto_neg_mode = 22 [(attr_enum_value) = 22]; + optional PortFlowControlMode remote_advertised_flow_control_mode = 23 + [(attr_enum_value) = 23]; + optional bool remote_advertised_asymmetric_pause_mode = 24 + [(attr_enum_value) = 24]; + optional PortMediaType remote_advertised_media_type = 25 + [(attr_enum_value) = 25]; + optional uint32 remote_advertised_oui_code = 26 [(attr_enum_value) = 26]; + optional uint32 number_of_ingress_priority_groups = 27 + [(attr_enum_value) = 27]; + repeated uint64 ingress_priority_group_list = 28 [(attr_enum_value) = 28]; + repeated PortEyeValues eye_values = 29 [(attr_enum_value) = 29]; + optional uint32 oper_speed = 30 [(attr_enum_value) = 30]; + repeated uint32 hw_lane_list = 31 [(attr_enum_value) = 31]; + optional uint32 speed = 32 [(attr_enum_value) = 32]; + optional bool full_duplex_mode = 33 [(attr_enum_value) = 33]; + optional bool auto_neg_mode = 34 [(attr_enum_value) = 34]; + optional bool admin_state = 35 [(attr_enum_value) = 35]; + optional PortMediaType media_type = 36 [(attr_enum_value) = 36]; + repeated uint32 advertised_speed = 37 [(attr_enum_value) = 37]; + repeated PortFecMode advertised_fec_mode = 38 [(attr_enum_value) = 38]; + repeated PortFecModeExtended advertised_fec_mode_extended = 39 + [(attr_enum_value) = 39]; + repeated uint32 advertised_half_duplex_speed = 40 [(attr_enum_value) = 40]; + optional bool advertised_auto_neg_mode = 41 [(attr_enum_value) = 41]; + optional PortFlowControlMode advertised_flow_control_mode = 42 + [(attr_enum_value) = 42]; + optional bool advertised_asymmetric_pause_mode = 43 [(attr_enum_value) = 43]; + optional PortMediaType advertised_media_type = 44 [(attr_enum_value) = 44]; + optional uint32 advertised_oui_code = 45 [(attr_enum_value) = 45]; + optional uint32 port_vlan_id = 46 [(attr_enum_value) = 46]; + optional uint32 default_vlan_priority = 47 [(attr_enum_value) = 47]; + optional bool drop_untagged = 48 [(attr_enum_value) = 48]; + optional bool drop_tagged = 49 [(attr_enum_value) = 49]; + optional PortInternalLoopbackMode internal_loopback_mode = 50 + [(attr_enum_value) = 50]; + optional bool use_extended_fec = 51 [(attr_enum_value) = 51]; + optional PortFecMode fec_mode = 52 [(attr_enum_value) = 52]; + optional PortFecModeExtended fec_mode_extended = 53 [(attr_enum_value) = 53]; + optional bool update_dscp = 54 [(attr_enum_value) = 54]; + optional uint32 mtu = 55 [(attr_enum_value) = 55]; + optional uint64 flood_storm_control_policer_id = 56 [(attr_enum_value) = 56]; + optional uint64 broadcast_storm_control_policer_id = 57 + [(attr_enum_value) = 57]; + optional uint64 multicast_storm_control_policer_id = 58 + [(attr_enum_value) = 58]; + optional PortFlowControlMode global_flow_control_mode = 59 + [(attr_enum_value) = 59]; + optional uint64 ingress_acl = 60 [(attr_enum_value) = 60]; + optional uint64 egress_acl = 61 [(attr_enum_value) = 61]; + optional uint64 ingress_macsec_acl = 62 [(attr_enum_value) = 62]; + optional uint64 egress_macsec_acl = 63 [(attr_enum_value) = 63]; + repeated uint64 macsec_port_list = 64 [(attr_enum_value) = 64]; + repeated uint64 ingress_mirror_session = 65 [(attr_enum_value) = 65]; + repeated uint64 egress_mirror_session = 66 [(attr_enum_value) = 66]; + optional uint64 ingress_samplepacket_enable = 67 [(attr_enum_value) = 67]; + optional uint64 egress_samplepacket_enable = 68 [(attr_enum_value) = 68]; + repeated uint64 ingress_sample_mirror_session = 69 [(attr_enum_value) = 69]; + repeated uint64 egress_sample_mirror_session = 70 [(attr_enum_value) = 70]; + optional uint64 policer_id = 71 [(attr_enum_value) = 71]; + optional uint32 qos_default_tc = 72 [(attr_enum_value) = 72]; + optional uint64 qos_dot1p_to_tc_map = 73 [(attr_enum_value) = 73]; + optional uint64 qos_dot1p_to_color_map = 74 [(attr_enum_value) = 74]; + optional uint64 qos_dscp_to_tc_map = 75 [(attr_enum_value) = 75]; + optional uint64 qos_dscp_to_color_map = 76 [(attr_enum_value) = 76]; + optional uint64 qos_tc_to_queue_map = 77 [(attr_enum_value) = 77]; + optional uint64 qos_tc_and_color_to_dot1p_map = 78 [(attr_enum_value) = 78]; + optional uint64 qos_tc_and_color_to_dscp_map = 79 [(attr_enum_value) = 79]; + optional uint64 qos_tc_to_priority_group_map = 80 [(attr_enum_value) = 80]; + optional uint64 qos_pfc_priority_to_priority_group_map = 81 + [(attr_enum_value) = 81]; + optional uint64 qos_pfc_priority_to_queue_map = 82 [(attr_enum_value) = 82]; + optional uint64 qos_scheduler_profile_id = 83 [(attr_enum_value) = 83]; + repeated uint64 qos_ingress_buffer_profile_list = 84 [(attr_enum_value) = 84]; + repeated uint64 qos_egress_buffer_profile_list = 85 [(attr_enum_value) = 85]; + optional PortPriorityFlowControlMode priority_flow_control_mode = 86 + [(attr_enum_value) = 86]; + optional uint32 priority_flow_control = 87 [(attr_enum_value) = 87]; + optional uint32 priority_flow_control_rx = 88 [(attr_enum_value) = 88]; + optional uint32 priority_flow_control_tx = 89 [(attr_enum_value) = 89]; + optional uint32 meta_data = 90 [(attr_enum_value) = 90]; + repeated uint64 egress_block_port_list = 91 [(attr_enum_value) = 91]; + optional uint64 hw_profile_id = 92 [(attr_enum_value) = 92]; + optional bool eee_enable = 93 [(attr_enum_value) = 93]; + optional uint32 eee_idle_time = 94 [(attr_enum_value) = 94]; + optional uint32 eee_wake_time = 95 [(attr_enum_value) = 95]; + repeated uint64 port_pool_list = 96 [(attr_enum_value) = 96]; + optional uint64 isolation_group = 97 [(attr_enum_value) = 97]; + optional bool pkt_tx_enable = 98 [(attr_enum_value) = 98]; + repeated uint64 tam_object = 99 [(attr_enum_value) = 99]; + repeated uint32 serdes_preemphasis = 100 [(attr_enum_value) = 100]; + repeated uint32 serdes_idriver = 101 [(attr_enum_value) = 101]; + repeated uint32 serdes_ipredriver = 102 [(attr_enum_value) = 102]; + optional bool link_training_enable = 103 [(attr_enum_value) = 103]; + optional PortPtpMode ptp_mode = 104 [(attr_enum_value) = 104]; + optional PortInterfaceType interface_type = 105 [(attr_enum_value) = 105]; + repeated PortInterfaceType advertised_interface_type = 106 + [(attr_enum_value) = 106]; + optional uint64 reference_clock = 107 [(attr_enum_value) = 107]; + optional uint32 prbs_polynomial = 108 [(attr_enum_value) = 108]; + optional uint64 port_serdes_id = 109 [(attr_enum_value) = 109]; + optional PortLinkTrainingFailureStatus link_training_failure_status = 110 + [(attr_enum_value) = 110]; + optional PortLinkTrainingRxStatus link_training_rx_status = 111 + [(attr_enum_value) = 111]; + optional PortPrbsConfig prbs_config = 112 [(attr_enum_value) = 112]; + optional bool prbs_lock_status = 113 [(attr_enum_value) = 113]; + optional bool prbs_lock_loss_status = 114 [(attr_enum_value) = 114]; + optional PortPrbsRxStatus prbs_rx_status = 115 [(attr_enum_value) = 115]; + optional PRBS_RXState prbs_rx_state = 116 [(attr_enum_value) = 116]; + optional bool auto_neg_status = 117 [(attr_enum_value) = 117]; + optional bool disable_decrement_ttl = 118 [(attr_enum_value) = 118]; + optional uint64 qos_mpls_exp_to_tc_map = 119 [(attr_enum_value) = 119]; + optional uint64 qos_mpls_exp_to_color_map = 120 [(attr_enum_value) = 120]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 121 + [(attr_enum_value) = 121]; + optional uint32 tpid = 122 [(attr_enum_value) = 122]; + repeated PortErrStatus err_status_list = 123 [(attr_enum_value) = 123]; + optional bool fabric_attached = 124 [(attr_enum_value) = 124]; + optional SwitchType fabric_attached_switch_type = 125 + [(attr_enum_value) = 125]; + optional uint32 fabric_attached_switch_id = 126 [(attr_enum_value) = 126]; + optional uint32 fabric_attached_port_index = 127 [(attr_enum_value) = 127]; + optional FabricPortReachability fabric_reachability = 128 + [(attr_enum_value) = 128]; + optional uint64 system_port = 129 [(attr_enum_value) = 129]; + optional bool auto_neg_fec_mode_override = 130 [(attr_enum_value) = 130]; + optional PortLoopbackMode loopback_mode = 131 [(attr_enum_value) = 131]; + optional PortMdixModeStatus mdix_mode_status = 132 [(attr_enum_value) = 132]; + optional PortMdixModeConfig mdix_mode_config = 133 [(attr_enum_value) = 133]; + optional PortAutoNegConfigMode auto_neg_config_mode = 134 + [(attr_enum_value) = 134]; + optional bool _1000x_sgmii_slave_autodetect = 135 [(attr_enum_value) = 135]; + optional PortModuleType module_type = 136 [(attr_enum_value) = 136]; + optional PortDualMedia dual_media = 137 [(attr_enum_value) = 137]; + optional PortFecModeExtended auto_neg_fec_mode_extended = 138 + [(attr_enum_value) = 138]; + optional uint32 ipg = 139 [(attr_enum_value) = 139]; + optional bool global_flow_control_forward = 140 [(attr_enum_value) = 140]; + optional bool priority_flow_control_forward = 141 [(attr_enum_value) = 141]; + optional uint64 qos_dscp_to_forwarding_class_map = 142 + [(attr_enum_value) = 142]; + optional uint64 qos_mpls_exp_to_forwarding_class_map = 143 + [(attr_enum_value) = 143]; + optional uint64 ipsec_port = 144 [(attr_enum_value) = 144]; } message PortConnectorAttribute { - uint64 system_side_port_id = 1; - uint64 line_side_port_id = 2; - uint64 system_side_failover_port_id = 3; - uint64 line_side_failover_port_id = 4; - PortConnectorFailoverMode failover_mode = 5; + optional uint64 system_side_port_id = 1 [(attr_enum_value) = 1]; + optional uint64 line_side_port_id = 2 [(attr_enum_value) = 2]; + optional uint64 system_side_failover_port_id = 3 [(attr_enum_value) = 3]; + optional uint64 line_side_failover_port_id = 4 [(attr_enum_value) = 4]; + optional PortConnectorFailoverMode failover_mode = 5 [(attr_enum_value) = 5]; } message PortPoolAttribute { - uint64 port_id = 1; - uint64 buffer_pool_id = 2; - uint64 qos_wred_profile_id = 3; -} - -message Int32List { - repeated int32 list = 1; + optional uint64 port_id = 1 [(attr_enum_value) = 1]; + optional uint64 buffer_pool_id = 2 [(attr_enum_value) = 2]; + optional uint64 qos_wred_profile_id = 3 [(attr_enum_value) = 3]; } message PortSerdesAttribute { - uint64 port_id = 1; - Int32List preemphasis = 2; - Int32List idriver = 3; - Int32List ipredriver = 4; - Int32List tx_fir_pre1 = 5; - Int32List tx_fir_pre2 = 6; - Int32List tx_fir_pre3 = 7; - Int32List tx_fir_main = 8; - Int32List tx_fir_post1 = 9; - Int32List tx_fir_post2 = 10; - Int32List tx_fir_post3 = 11; - Int32List tx_fir_attn = 12; -} - -message QosMapList { - repeated QOSMap list = 1; + optional uint64 port_id = 1 [(attr_enum_value) = 1]; + repeated int32 preemphasis = 2 [(attr_enum_value) = 2]; + repeated int32 idriver = 3 [(attr_enum_value) = 3]; + repeated int32 ipredriver = 4 [(attr_enum_value) = 4]; + repeated int32 tx_fir_pre1 = 5 [(attr_enum_value) = 5]; + repeated int32 tx_fir_pre2 = 6 [(attr_enum_value) = 6]; + repeated int32 tx_fir_pre3 = 7 [(attr_enum_value) = 7]; + repeated int32 tx_fir_main = 8 [(attr_enum_value) = 8]; + repeated int32 tx_fir_post1 = 9 [(attr_enum_value) = 9]; + repeated int32 tx_fir_post2 = 10 [(attr_enum_value) = 10]; + repeated int32 tx_fir_post3 = 11 [(attr_enum_value) = 11]; + repeated int32 tx_fir_attn = 12 [(attr_enum_value) = 12]; } message QosMapAttribute { - QosMapType type = 1; - QosMapList map_to_value_list = 2; + optional QosMapType type = 1 [(attr_enum_value) = 1]; + repeated QOSMap map_to_value_list = 2 [(attr_enum_value) = 2]; } message QueueAttribute { - QueueType type = 1; - uint64 port = 2; - uint32 index = 3; - uint64 parent_scheduler_node = 4; - uint64 wred_profile_id = 5; - uint64 buffer_profile_id = 6; - uint64 scheduler_profile_id = 7; - bool pause_status = 8; - bool enable_pfc_dldr = 9; - bool pfc_dlr_init = 10; - Uint64List tam_object = 11; + optional QueueType type = 1 [(attr_enum_value) = 1]; + optional uint64 port = 2 [(attr_enum_value) = 2]; + optional uint32 index = 3 [(attr_enum_value) = 3]; + optional uint64 parent_scheduler_node = 4 [(attr_enum_value) = 4]; + optional uint64 wred_profile_id = 5 [(attr_enum_value) = 5]; + optional uint64 buffer_profile_id = 6 [(attr_enum_value) = 6]; + optional uint64 scheduler_profile_id = 7 [(attr_enum_value) = 7]; + optional bool pause_status = 8 [(attr_enum_value) = 8]; + optional bool enable_pfc_dldr = 9 [(attr_enum_value) = 9]; + optional bool pfc_dlr_init = 10 [(attr_enum_value) = 10]; + repeated uint64 tam_object = 11 [(attr_enum_value) = 11]; } message RouterInterfaceAttribute { - uint64 virtual_router_id = 1; - RouterInterfaceType type = 2; - uint64 port_id = 3; - uint64 vlan_id = 4; - uint32 outer_vlan_id = 5; - uint32 inner_vlan_id = 6; - uint64 bridge_id = 7; - bytes src_mac_address = 8; - bool admin_v4_state = 9; - bool admin_v6_state = 10; - uint32 mtu = 11; - uint64 ingress_acl = 12; - uint64 egress_acl = 13; - PacketAction neighbor_miss_packet_action = 14; - bool v4_mcast_enable = 15; - bool v6_mcast_enable = 16; - PacketAction loopback_packet_action = 17; - bool is_virtual = 18; - uint32 nat_zone_id = 19; - bool disable_decrement_ttl = 20; - bool admin_mpls_state = 21; + optional uint64 virtual_router_id = 1 [(attr_enum_value) = 1]; + optional RouterInterfaceType type = 2 [(attr_enum_value) = 2]; + optional uint64 port_id = 3 [(attr_enum_value) = 3]; + optional uint64 vlan_id = 4 [(attr_enum_value) = 4]; + optional uint32 outer_vlan_id = 5 [(attr_enum_value) = 5]; + optional uint32 inner_vlan_id = 6 [(attr_enum_value) = 6]; + optional uint64 bridge_id = 7 [(attr_enum_value) = 7]; + optional bytes src_mac_address = 8 [(attr_enum_value) = 8]; + optional bool admin_v4_state = 9 [(attr_enum_value) = 9]; + optional bool admin_v6_state = 10 [(attr_enum_value) = 10]; + optional uint32 mtu = 11 [(attr_enum_value) = 11]; + optional uint64 ingress_acl = 12 [(attr_enum_value) = 12]; + optional uint64 egress_acl = 13 [(attr_enum_value) = 13]; + optional PacketAction neighbor_miss_packet_action = 14 + [(attr_enum_value) = 14]; + optional bool v4_mcast_enable = 15 [(attr_enum_value) = 15]; + optional bool v6_mcast_enable = 16 [(attr_enum_value) = 16]; + optional PacketAction loopback_packet_action = 17 [(attr_enum_value) = 17]; + optional bool is_virtual = 18 [(attr_enum_value) = 18]; + optional uint32 nat_zone_id = 19 [(attr_enum_value) = 19]; + optional bool disable_decrement_ttl = 20 [(attr_enum_value) = 20]; + optional bool admin_mpls_state = 21 [(attr_enum_value) = 21]; } message RouteEntryAttribute { - PacketAction packet_action = 1; - uint64 user_trap_id = 2; - uint64 next_hop_id = 3; - uint32 meta_data = 4; - IpAddrFamily ip_addr_family = 5; - uint64 counter_id = 6; + optional PacketAction packet_action = 1 [(attr_enum_value) = 1]; + optional uint64 user_trap_id = 2 [(attr_enum_value) = 2]; + optional uint64 next_hop_id = 3 [(attr_enum_value) = 3]; + optional uint32 meta_data = 4 [(attr_enum_value) = 4]; + optional IpAddrFamily ip_addr_family = 5 [(attr_enum_value) = 5]; + optional uint64 counter_id = 6 [(attr_enum_value) = 6]; } message RpfGroupAttribute { - uint32 rpf_interface_count = 1; - Uint64List rpf_member_list = 2; + optional uint32 rpf_interface_count = 1 [(attr_enum_value) = 1]; + repeated uint64 rpf_member_list = 2 [(attr_enum_value) = 2]; } message RpfGroupMemberAttribute { - uint64 rpf_group_id = 1; - uint64 rpf_interface_id = 2; + optional uint64 rpf_group_id = 1 [(attr_enum_value) = 1]; + optional uint64 rpf_interface_id = 2 [(attr_enum_value) = 2]; } message SamplepacketAttribute { - uint32 sample_rate = 1; - SamplepacketType type = 2; - SamplepacketMode mode = 3; + optional uint32 sample_rate = 1 [(attr_enum_value) = 1]; + optional SamplepacketType type = 2 [(attr_enum_value) = 2]; + optional SamplepacketMode mode = 3 [(attr_enum_value) = 3]; } message SchedulerAttribute { - SchedulingType scheduling_type = 1; - uint32 scheduling_weight = 2; - MeterType meter_type = 3; - uint64 min_bandwidth_rate = 4; - uint64 min_bandwidth_burst_rate = 5; - uint64 max_bandwidth_rate = 6; - uint64 max_bandwidth_burst_rate = 7; + optional SchedulingType scheduling_type = 1 [(attr_enum_value) = 1]; + optional uint32 scheduling_weight = 2 [(attr_enum_value) = 2]; + optional MeterType meter_type = 3 [(attr_enum_value) = 3]; + optional uint64 min_bandwidth_rate = 4 [(attr_enum_value) = 4]; + optional uint64 min_bandwidth_burst_rate = 5 [(attr_enum_value) = 5]; + optional uint64 max_bandwidth_rate = 6 [(attr_enum_value) = 6]; + optional uint64 max_bandwidth_burst_rate = 7 [(attr_enum_value) = 7]; } message SchedulerGroupAttribute { - uint32 child_count = 1; - Uint64List child_list = 2; - uint64 port_id = 3; - uint32 level = 4; - uint32 max_childs = 5; - uint64 scheduler_profile_id = 6; - uint64 parent_node = 7; -} - -message TlvEntryList { - repeated TLVEntry list = 1; + optional uint32 child_count = 1 [(attr_enum_value) = 1]; + repeated uint64 child_list = 2 [(attr_enum_value) = 2]; + optional uint64 port_id = 3 [(attr_enum_value) = 3]; + optional uint32 level = 4 [(attr_enum_value) = 4]; + optional uint32 max_childs = 5 [(attr_enum_value) = 5]; + optional uint64 scheduler_profile_id = 6 [(attr_enum_value) = 6]; + optional uint64 parent_node = 7 [(attr_enum_value) = 7]; } message Srv6SidlistAttribute { - Srv6SidlistType type = 1; - TlvEntryList tlv_list = 2; - BytesList segment_list = 3; + optional Srv6SidlistType type = 1 [(attr_enum_value) = 1]; + repeated TLVEntry tlv_list = 2 [(attr_enum_value) = 2]; + repeated bytes segment_list = 3 [(attr_enum_value) = 3]; } message StpAttribute { - Uint32List vlan_list = 1; - uint64 bridge_id = 2; - Uint64List port_list = 3; + repeated uint32 vlan_list = 1 [(attr_enum_value) = 1]; + optional uint64 bridge_id = 2 [(attr_enum_value) = 2]; + repeated uint64 port_list = 3 [(attr_enum_value) = 3]; } message StpPortAttribute { - uint64 stp = 1; - uint64 bridge_port = 2; - StpPortState state = 3; -} - -message AclResourceList { - repeated ACLResource list = 1; -} - -message TlvTypeList { - repeated TlvType list = 1; -} - -message ObjectTypeList { - repeated ObjectType list = 1; -} - -message BfdSessionOffloadTypeList { - repeated BfdSessionOffloadType list = 1; -} - -message StatsModeList { - repeated StatsMode list = 1; -} - -message SystemPortConfigList { - repeated SystemPortConfig list = 1; + optional uint64 stp = 1 [(attr_enum_value) = 1]; + optional uint64 bridge_port = 2 [(attr_enum_value) = 2]; + optional StpPortState state = 3 [(attr_enum_value) = 3]; } message SwitchAttribute { - uint32 number_of_active_ports = 1; - uint32 max_number_of_supported_ports = 2; - Uint64List port_list = 3; - uint32 port_max_mtu = 4; - uint64 cpu_port = 5; - uint32 max_virtual_routers = 6; - uint32 fdb_table_size = 7; - uint32 l3_neighbor_table_size = 8; - uint32 l3_route_table_size = 9; - uint32 lag_members = 10; - uint32 number_of_lags = 11; - uint32 ecmp_members = 12; - uint32 number_of_ecmp_groups = 13; - uint32 number_of_unicast_queues = 14; - uint32 number_of_multicast_queues = 15; - uint32 number_of_queues = 16; - uint32 number_of_cpu_queues = 17; - bool on_link_route_supported = 18; - SwitchOperStatus oper_status = 19; - uint32 max_number_of_temp_sensors = 20; - Int32List temp_list = 21; - uint32 max_temp = 22; - uint32 average_temp = 23; - uint32 acl_table_minimum_priority = 24; - uint32 acl_table_maximum_priority = 25; - uint32 acl_entry_minimum_priority = 26; - uint32 acl_entry_maximum_priority = 27; - uint32 acl_table_group_minimum_priority = 28; - uint32 acl_table_group_maximum_priority = 29; - Uint32Range fdb_dst_user_meta_data_range = 30; - Uint32Range route_dst_user_meta_data_range = 31; - Uint32Range neighbor_dst_user_meta_data_range = 32; - Uint32Range port_user_meta_data_range = 33; - Uint32Range vlan_user_meta_data_range = 34; - Uint32Range acl_user_meta_data_range = 35; - Uint32Range acl_user_trap_id_range = 36; - uint64 default_vlan_id = 37; - uint64 default_stp_inst_id = 38; - uint32 max_stp_instance = 39; - uint64 default_virtual_router_id = 40; - uint64 default_override_virtual_router_id = 41; - uint64 default_1q_bridge_id = 42; - uint64 ingress_acl = 43; - uint64 egress_acl = 44; - uint32 qos_max_number_of_traffic_classes = 45; - uint32 qos_max_number_of_scheduler_group_hierarchy_levels = 46; - Uint32List qos_max_number_of_scheduler_groups_per_hierarchy_level = 47; - uint32 qos_max_number_of_childs_per_scheduler_group = 48; - uint64 total_buffer_size = 49; - uint32 ingress_buffer_pool_num = 50; - uint32 egress_buffer_pool_num = 51; - uint32 available_ipv4_route_entry = 52; - uint32 available_ipv6_route_entry = 53; - uint32 available_ipv4_nexthop_entry = 54; - uint32 available_ipv6_nexthop_entry = 55; - uint32 available_ipv4_neighbor_entry = 56; - uint32 available_ipv6_neighbor_entry = 57; - uint32 available_next_hop_group_entry = 58; - uint32 available_next_hop_group_member_entry = 59; - uint32 available_fdb_entry = 60; - uint32 available_l2mc_entry = 61; - uint32 available_ipmc_entry = 62; - uint32 available_snat_entry = 63; - uint32 available_dnat_entry = 64; - uint32 available_double_nat_entry = 65; - AclResourceList available_acl_table = 66; - AclResourceList available_acl_table_group = 67; - uint32 available_my_sid_entry = 68; - uint64 default_trap_group = 69; - uint64 ecmp_hash = 70; - uint64 lag_hash = 71; - bool restart_warm = 72; - bool warm_recover = 73; - SwitchRestartType restart_type = 74; - uint32 min_planned_restart_interval = 75; - uint64 nv_storage_size = 76; - uint32 max_acl_action_count = 77; - uint32 max_acl_range_count = 78; - ACLCapability acl_capability = 79; - SwitchMcastSnoopingCapability mcast_snooping_capability = 80; - SwitchSwitchingMode switching_mode = 81; - bool bcast_cpu_flood_enable = 82; - bool mcast_cpu_flood_enable = 83; - bytes src_mac_address = 84; - uint32 max_learned_addresses = 85; - uint32 fdb_aging_time = 86; - PacketAction fdb_unicast_miss_packet_action = 87; - PacketAction fdb_broadcast_miss_packet_action = 88; - PacketAction fdb_multicast_miss_packet_action = 89; - HashAlgorithm ecmp_default_hash_algorithm = 90; - uint32 ecmp_default_hash_seed = 91; - uint32 ecmp_default_hash_offset = 92; - bool ecmp_default_symmetric_hash = 93; - uint64 ecmp_hash_ipv4 = 94; - uint64 ecmp_hash_ipv4_in_ipv4 = 95; - uint64 ecmp_hash_ipv6 = 96; - HashAlgorithm lag_default_hash_algorithm = 97; - uint32 lag_default_hash_seed = 98; - uint32 lag_default_hash_offset = 99; - bool lag_default_symmetric_hash = 100; - uint64 lag_hash_ipv4 = 101; - uint64 lag_hash_ipv4_in_ipv4 = 102; - uint64 lag_hash_ipv6 = 103; - uint32 counter_refresh_interval = 104; - uint32 qos_default_tc = 105; - uint64 qos_dot1p_to_tc_map = 106; - uint64 qos_dot1p_to_color_map = 107; - uint64 qos_dscp_to_tc_map = 108; - uint64 qos_dscp_to_color_map = 109; - uint64 qos_tc_to_queue_map = 110; - uint64 qos_tc_and_color_to_dot1p_map = 111; - uint64 qos_tc_and_color_to_dscp_map = 112; - bool switch_shell_enable = 113; - uint32 switch_profile_id = 114; - Int32List switch_hardware_info = 115; - Int32List firmware_path_name = 116; - bool init_switch = 117; - bool fast_api_enable = 118; - uint32 mirror_tc = 119; - ACLCapability acl_stage_ingress = 120; - ACLCapability acl_stage_egress = 121; - uint32 srv6_max_sid_depth = 122; - TlvTypeList srv6_tlv_type = 123; - uint32 qos_num_lossless_queues = 124; - PacketAction pfc_dlr_packet_action = 125; - Uint32Range pfc_tc_dld_interval_range = 126; - UintMapList pfc_tc_dld_interval = 127; - Uint32Range pfc_tc_dlr_interval_range = 128; - UintMapList pfc_tc_dlr_interval = 129; - ObjectTypeList supported_protected_object_type = 130; - uint32 tpid_outer_vlan = 131; - uint32 tpid_inner_vlan = 132; - bool crc_check_enable = 133; - bool crc_recalculation_enable = 134; - uint32 number_of_bfd_session = 135; - uint32 max_bfd_session = 136; - BfdSessionOffloadTypeList supported_ipv4_bfd_session_offload_type = 137; - BfdSessionOffloadTypeList supported_ipv6_bfd_session_offload_type = 138; - uint32 min_bfd_rx = 139; - uint32 min_bfd_tx = 140; - bool ecn_ect_threshold_enable = 141; - bytes vxlan_default_router_mac = 142; - uint32 vxlan_default_port = 143; - uint32 max_mirror_session = 144; - uint32 max_sampled_mirror_session = 145; - StatsModeList supported_extended_stats_mode = 146; - bool uninit_data_plane_on_removal = 147; - Uint64List tam_object_id = 148; - ObjectTypeList supported_object_type_list = 149; - bool pre_shutdown = 150; - uint64 nat_zone_counter_object_id = 151; - bool nat_enable = 152; - SwitchHardwareAccessBus hardware_access_bus = 153; - uint64 platfrom_context = 154; - bool firmware_download_broadcast = 155; - SwitchFirmwareLoadMethod firmware_load_method = 156; - SwitchFirmwareLoadType firmware_load_type = 157; - bool firmware_download_execute = 158; - bool firmware_broadcast_stop = 159; - bool firmware_verify_and_init_switch = 160; - bool firmware_status = 161; - uint32 firmware_major_version = 162; - uint32 firmware_minor_version = 163; - Uint64List port_connector_list = 164; - bool propogate_port_state_from_line_to_system_port_support = 165; - SwitchType type = 166; - Uint64List macsec_object_list = 167; - uint64 qos_mpls_exp_to_tc_map = 168; - uint64 qos_mpls_exp_to_color_map = 169; - uint64 qos_tc_and_color_to_mpls_exp_map = 170; - uint32 switch_id = 171; - uint32 max_system_cores = 172; - SystemPortConfigList system_port_config_list = 173; - uint32 number_of_system_ports = 174; - Uint64List system_port_list = 175; - uint32 number_of_fabric_ports = 176; - Uint64List fabric_port_list = 177; - uint32 packet_dma_memory_pool_size = 178; - SwitchFailoverConfigMode failover_config_mode = 179; - bool supported_failover_mode = 180; - Uint64List tunnel_objects_list = 181; - uint32 packet_available_dma_memory_pool_size = 182; - uint64 pre_ingress_acl = 183; - uint32 available_snapt_entry = 184; - uint32 available_dnapt_entry = 185; - uint32 available_double_napt_entry = 186; - Uint32List slave_mdio_addr_list = 187; - uint32 my_mac_table_minimum_priority = 188; - uint32 my_mac_table_maximum_priority = 189; - Uint64List my_mac_list = 190; - uint32 installed_my_mac_entries = 191; - uint32 available_my_mac_entries = 192; - uint32 max_number_of_forwarding_classes = 193; - uint64 qos_dscp_to_forwarding_class_map = 194; - uint64 qos_mpls_exp_to_forwarding_class_map = 195; - uint64 ipsec_object_id = 196; - uint32 ipsec_sa_tag_tpid = 197; + optional uint32 number_of_active_ports = 1 [(attr_enum_value) = 1]; + optional uint32 max_number_of_supported_ports = 2 [(attr_enum_value) = 2]; + repeated uint64 port_list = 3 [(attr_enum_value) = 3]; + optional uint32 port_max_mtu = 4 [(attr_enum_value) = 4]; + optional uint64 cpu_port = 5 [(attr_enum_value) = 5]; + optional uint32 max_virtual_routers = 6 [(attr_enum_value) = 6]; + optional uint32 fdb_table_size = 7 [(attr_enum_value) = 7]; + optional uint32 l3_neighbor_table_size = 8 [(attr_enum_value) = 8]; + optional uint32 l3_route_table_size = 9 [(attr_enum_value) = 9]; + optional uint32 lag_members = 10 [(attr_enum_value) = 10]; + optional uint32 number_of_lags = 11 [(attr_enum_value) = 11]; + optional uint32 ecmp_members = 12 [(attr_enum_value) = 12]; + optional uint32 number_of_ecmp_groups = 13 [(attr_enum_value) = 13]; + optional uint32 number_of_unicast_queues = 14 [(attr_enum_value) = 14]; + optional uint32 number_of_multicast_queues = 15 [(attr_enum_value) = 15]; + optional uint32 number_of_queues = 16 [(attr_enum_value) = 16]; + optional uint32 number_of_cpu_queues = 17 [(attr_enum_value) = 17]; + optional bool on_link_route_supported = 18 [(attr_enum_value) = 18]; + optional SwitchOperStatus oper_status = 19 [(attr_enum_value) = 19]; + optional uint32 max_number_of_temp_sensors = 20 [(attr_enum_value) = 20]; + repeated int32 temp_list = 21 [(attr_enum_value) = 21]; + optional uint32 max_temp = 22 [(attr_enum_value) = 22]; + optional uint32 average_temp = 23 [(attr_enum_value) = 23]; + optional uint32 acl_table_minimum_priority = 24 [(attr_enum_value) = 24]; + optional uint32 acl_table_maximum_priority = 25 [(attr_enum_value) = 25]; + optional uint32 acl_entry_minimum_priority = 26 [(attr_enum_value) = 26]; + optional uint32 acl_entry_maximum_priority = 27 [(attr_enum_value) = 27]; + optional uint32 acl_table_group_minimum_priority = 28 + [(attr_enum_value) = 28]; + optional uint32 acl_table_group_maximum_priority = 29 + [(attr_enum_value) = 29]; + optional Uint32Range fdb_dst_user_meta_data_range = 30 + [(attr_enum_value) = 30]; + optional Uint32Range route_dst_user_meta_data_range = 31 + [(attr_enum_value) = 31]; + optional Uint32Range neighbor_dst_user_meta_data_range = 32 + [(attr_enum_value) = 32]; + optional Uint32Range port_user_meta_data_range = 33 [(attr_enum_value) = 33]; + optional Uint32Range vlan_user_meta_data_range = 34 [(attr_enum_value) = 34]; + optional Uint32Range acl_user_meta_data_range = 35 [(attr_enum_value) = 35]; + optional Uint32Range acl_user_trap_id_range = 36 [(attr_enum_value) = 36]; + optional uint64 default_vlan_id = 37 [(attr_enum_value) = 37]; + optional uint64 default_stp_inst_id = 38 [(attr_enum_value) = 38]; + optional uint32 max_stp_instance = 39 [(attr_enum_value) = 39]; + optional uint64 default_virtual_router_id = 40 [(attr_enum_value) = 40]; + optional uint64 default_override_virtual_router_id = 41 + [(attr_enum_value) = 41]; + optional uint64 default_1q_bridge_id = 42 [(attr_enum_value) = 42]; + optional uint64 ingress_acl = 43 [(attr_enum_value) = 43]; + optional uint64 egress_acl = 44 [(attr_enum_value) = 44]; + optional uint32 qos_max_number_of_traffic_classes = 45 + [(attr_enum_value) = 45]; + optional uint32 qos_max_number_of_scheduler_group_hierarchy_levels = 46 + [(attr_enum_value) = 46]; + repeated uint32 qos_max_number_of_scheduler_groups_per_hierarchy_level = 47 + [(attr_enum_value) = 47]; + optional uint32 qos_max_number_of_childs_per_scheduler_group = 48 + [(attr_enum_value) = 48]; + optional uint64 total_buffer_size = 49 [(attr_enum_value) = 49]; + optional uint32 ingress_buffer_pool_num = 50 [(attr_enum_value) = 50]; + optional uint32 egress_buffer_pool_num = 51 [(attr_enum_value) = 51]; + optional uint32 available_ipv4_route_entry = 52 [(attr_enum_value) = 52]; + optional uint32 available_ipv6_route_entry = 53 [(attr_enum_value) = 53]; + optional uint32 available_ipv4_nexthop_entry = 54 [(attr_enum_value) = 54]; + optional uint32 available_ipv6_nexthop_entry = 55 [(attr_enum_value) = 55]; + optional uint32 available_ipv4_neighbor_entry = 56 [(attr_enum_value) = 56]; + optional uint32 available_ipv6_neighbor_entry = 57 [(attr_enum_value) = 57]; + optional uint32 available_next_hop_group_entry = 58 [(attr_enum_value) = 58]; + optional uint32 available_next_hop_group_member_entry = 59 + [(attr_enum_value) = 59]; + optional uint32 available_fdb_entry = 60 [(attr_enum_value) = 60]; + optional uint32 available_l2mc_entry = 61 [(attr_enum_value) = 61]; + optional uint32 available_ipmc_entry = 62 [(attr_enum_value) = 62]; + optional uint32 available_snat_entry = 63 [(attr_enum_value) = 63]; + optional uint32 available_dnat_entry = 64 [(attr_enum_value) = 64]; + optional uint32 available_double_nat_entry = 65 [(attr_enum_value) = 65]; + repeated ACLResource available_acl_table = 66 [(attr_enum_value) = 66]; + repeated ACLResource available_acl_table_group = 67 [(attr_enum_value) = 67]; + optional uint32 available_my_sid_entry = 68 [(attr_enum_value) = 68]; + optional uint64 default_trap_group = 69 [(attr_enum_value) = 69]; + optional uint64 ecmp_hash = 70 [(attr_enum_value) = 70]; + optional uint64 lag_hash = 71 [(attr_enum_value) = 71]; + optional bool restart_warm = 72 [(attr_enum_value) = 72]; + optional bool warm_recover = 73 [(attr_enum_value) = 73]; + optional SwitchRestartType restart_type = 74 [(attr_enum_value) = 74]; + optional uint32 min_planned_restart_interval = 75 [(attr_enum_value) = 75]; + optional uint64 nv_storage_size = 76 [(attr_enum_value) = 76]; + optional uint32 max_acl_action_count = 77 [(attr_enum_value) = 77]; + optional uint32 max_acl_range_count = 78 [(attr_enum_value) = 78]; + optional ACLCapability acl_capability = 79 [(attr_enum_value) = 79]; + optional SwitchMcastSnoopingCapability mcast_snooping_capability = 80 + [(attr_enum_value) = 80]; + optional SwitchSwitchingMode switching_mode = 81 [(attr_enum_value) = 81]; + optional bool bcast_cpu_flood_enable = 82 [(attr_enum_value) = 82]; + optional bool mcast_cpu_flood_enable = 83 [(attr_enum_value) = 83]; + optional bytes src_mac_address = 84 [(attr_enum_value) = 84]; + optional uint32 max_learned_addresses = 85 [(attr_enum_value) = 85]; + optional uint32 fdb_aging_time = 86 [(attr_enum_value) = 86]; + optional PacketAction fdb_unicast_miss_packet_action = 87 + [(attr_enum_value) = 87]; + optional PacketAction fdb_broadcast_miss_packet_action = 88 + [(attr_enum_value) = 88]; + optional PacketAction fdb_multicast_miss_packet_action = 89 + [(attr_enum_value) = 89]; + optional HashAlgorithm ecmp_default_hash_algorithm = 90 + [(attr_enum_value) = 90]; + optional uint32 ecmp_default_hash_seed = 91 [(attr_enum_value) = 91]; + optional uint32 ecmp_default_hash_offset = 92 [(attr_enum_value) = 92]; + optional bool ecmp_default_symmetric_hash = 93 [(attr_enum_value) = 93]; + optional uint64 ecmp_hash_ipv4 = 94 [(attr_enum_value) = 94]; + optional uint64 ecmp_hash_ipv4_in_ipv4 = 95 [(attr_enum_value) = 95]; + optional uint64 ecmp_hash_ipv6 = 96 [(attr_enum_value) = 96]; + optional HashAlgorithm lag_default_hash_algorithm = 97 + [(attr_enum_value) = 97]; + optional uint32 lag_default_hash_seed = 98 [(attr_enum_value) = 98]; + optional uint32 lag_default_hash_offset = 99 [(attr_enum_value) = 99]; + optional bool lag_default_symmetric_hash = 100 [(attr_enum_value) = 100]; + optional uint64 lag_hash_ipv4 = 101 [(attr_enum_value) = 101]; + optional uint64 lag_hash_ipv4_in_ipv4 = 102 [(attr_enum_value) = 102]; + optional uint64 lag_hash_ipv6 = 103 [(attr_enum_value) = 103]; + optional uint32 counter_refresh_interval = 104 [(attr_enum_value) = 104]; + optional uint32 qos_default_tc = 105 [(attr_enum_value) = 105]; + optional uint64 qos_dot1p_to_tc_map = 106 [(attr_enum_value) = 106]; + optional uint64 qos_dot1p_to_color_map = 107 [(attr_enum_value) = 107]; + optional uint64 qos_dscp_to_tc_map = 108 [(attr_enum_value) = 108]; + optional uint64 qos_dscp_to_color_map = 109 [(attr_enum_value) = 109]; + optional uint64 qos_tc_to_queue_map = 110 [(attr_enum_value) = 110]; + optional uint64 qos_tc_and_color_to_dot1p_map = 111 [(attr_enum_value) = 111]; + optional uint64 qos_tc_and_color_to_dscp_map = 112 [(attr_enum_value) = 112]; + optional bool switch_shell_enable = 113 [(attr_enum_value) = 113]; + optional uint32 switch_profile_id = 114 [(attr_enum_value) = 114]; + repeated int32 switch_hardware_info = 115 [(attr_enum_value) = 115]; + repeated int32 firmware_path_name = 116 [(attr_enum_value) = 116]; + optional bool init_switch = 117 [(attr_enum_value) = 117]; + optional bool fast_api_enable = 118 [(attr_enum_value) = 123]; + optional uint32 mirror_tc = 119 [(attr_enum_value) = 124]; + optional ACLCapability acl_stage_ingress = 120 [(attr_enum_value) = 125]; + optional ACLCapability acl_stage_egress = 121 [(attr_enum_value) = 126]; + optional uint32 srv6_max_sid_depth = 122 [(attr_enum_value) = 127]; + repeated TlvType srv6_tlv_type = 123 [(attr_enum_value) = 128]; + optional uint32 qos_num_lossless_queues = 124 [(attr_enum_value) = 129]; + optional PacketAction pfc_dlr_packet_action = 125 [(attr_enum_value) = 131]; + optional Uint32Range pfc_tc_dld_interval_range = 126 + [(attr_enum_value) = 132]; + repeated UintMap pfc_tc_dld_interval = 127 [(attr_enum_value) = 133]; + optional Uint32Range pfc_tc_dlr_interval_range = 128 + [(attr_enum_value) = 134]; + repeated UintMap pfc_tc_dlr_interval = 129 [(attr_enum_value) = 135]; + repeated ObjectType supported_protected_object_type = 130 + [(attr_enum_value) = 136]; + optional uint32 tpid_outer_vlan = 131 [(attr_enum_value) = 137]; + optional uint32 tpid_inner_vlan = 132 [(attr_enum_value) = 138]; + optional bool crc_check_enable = 133 [(attr_enum_value) = 139]; + optional bool crc_recalculation_enable = 134 [(attr_enum_value) = 140]; + optional uint32 number_of_bfd_session = 135 [(attr_enum_value) = 142]; + optional uint32 max_bfd_session = 136 [(attr_enum_value) = 143]; + repeated BfdSessionOffloadType supported_ipv4_bfd_session_offload_type = 137 + [(attr_enum_value) = 144]; + repeated BfdSessionOffloadType supported_ipv6_bfd_session_offload_type = 138 + [(attr_enum_value) = 145]; + optional uint32 min_bfd_rx = 139 [(attr_enum_value) = 146]; + optional uint32 min_bfd_tx = 140 [(attr_enum_value) = 147]; + optional bool ecn_ect_threshold_enable = 141 [(attr_enum_value) = 148]; + optional bytes vxlan_default_router_mac = 142 [(attr_enum_value) = 149]; + optional uint32 vxlan_default_port = 143 [(attr_enum_value) = 150]; + optional uint32 max_mirror_session = 144 [(attr_enum_value) = 151]; + optional uint32 max_sampled_mirror_session = 145 [(attr_enum_value) = 152]; + repeated StatsMode supported_extended_stats_mode = 146 + [(attr_enum_value) = 153]; + optional bool uninit_data_plane_on_removal = 147 [(attr_enum_value) = 154]; + repeated uint64 tam_object_id = 148 [(attr_enum_value) = 155]; + repeated ObjectType supported_object_type_list = 149 + [(attr_enum_value) = 157]; + optional bool pre_shutdown = 150 [(attr_enum_value) = 158]; + optional uint64 nat_zone_counter_object_id = 151 [(attr_enum_value) = 159]; + optional bool nat_enable = 152 [(attr_enum_value) = 160]; + optional SwitchHardwareAccessBus hardware_access_bus = 153 + [(attr_enum_value) = 161]; + optional uint64 platfrom_context = 154 [(attr_enum_value) = 162]; + optional bool firmware_download_broadcast = 155 [(attr_enum_value) = 165]; + optional SwitchFirmwareLoadMethod firmware_load_method = 156 + [(attr_enum_value) = 166]; + optional SwitchFirmwareLoadType firmware_load_type = 157 + [(attr_enum_value) = 167]; + optional bool firmware_download_execute = 158 [(attr_enum_value) = 168]; + optional bool firmware_broadcast_stop = 159 [(attr_enum_value) = 169]; + optional bool firmware_verify_and_init_switch = 160 [(attr_enum_value) = 170]; + optional bool firmware_status = 161 [(attr_enum_value) = 171]; + optional uint32 firmware_major_version = 162 [(attr_enum_value) = 172]; + optional uint32 firmware_minor_version = 163 [(attr_enum_value) = 173]; + repeated uint64 port_connector_list = 164 [(attr_enum_value) = 174]; + optional bool propogate_port_state_from_line_to_system_port_support = 165 + [(attr_enum_value) = 175]; + optional SwitchType type = 166 [(attr_enum_value) = 176]; + repeated uint64 macsec_object_list = 167 [(attr_enum_value) = 177]; + optional uint64 qos_mpls_exp_to_tc_map = 168 [(attr_enum_value) = 178]; + optional uint64 qos_mpls_exp_to_color_map = 169 [(attr_enum_value) = 179]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 170 + [(attr_enum_value) = 180]; + optional uint32 switch_id = 171 [(attr_enum_value) = 181]; + optional uint32 max_system_cores = 172 [(attr_enum_value) = 182]; + repeated SystemPortConfig system_port_config_list = 173 + [(attr_enum_value) = 183]; + optional uint32 number_of_system_ports = 174 [(attr_enum_value) = 184]; + repeated uint64 system_port_list = 175 [(attr_enum_value) = 185]; + optional uint32 number_of_fabric_ports = 176 [(attr_enum_value) = 186]; + repeated uint64 fabric_port_list = 177 [(attr_enum_value) = 187]; + optional uint32 packet_dma_memory_pool_size = 178 [(attr_enum_value) = 188]; + optional SwitchFailoverConfigMode failover_config_mode = 179 + [(attr_enum_value) = 189]; + optional bool supported_failover_mode = 180 [(attr_enum_value) = 190]; + repeated uint64 tunnel_objects_list = 181 [(attr_enum_value) = 191]; + optional uint32 packet_available_dma_memory_pool_size = 182 + [(attr_enum_value) = 192]; + optional uint64 pre_ingress_acl = 183 [(attr_enum_value) = 193]; + optional uint32 available_snapt_entry = 184 [(attr_enum_value) = 194]; + optional uint32 available_dnapt_entry = 185 [(attr_enum_value) = 195]; + optional uint32 available_double_napt_entry = 186 [(attr_enum_value) = 196]; + repeated uint32 slave_mdio_addr_list = 187 [(attr_enum_value) = 197]; + optional uint32 my_mac_table_minimum_priority = 188 [(attr_enum_value) = 198]; + optional uint32 my_mac_table_maximum_priority = 189 [(attr_enum_value) = 199]; + repeated uint64 my_mac_list = 190 [(attr_enum_value) = 200]; + optional uint32 installed_my_mac_entries = 191 [(attr_enum_value) = 201]; + optional uint32 available_my_mac_entries = 192 [(attr_enum_value) = 202]; + optional uint32 max_number_of_forwarding_classes = 193 + [(attr_enum_value) = 203]; + optional uint64 qos_dscp_to_forwarding_class_map = 194 + [(attr_enum_value) = 204]; + optional uint64 qos_mpls_exp_to_forwarding_class_map = 195 + [(attr_enum_value) = 205]; + optional uint64 ipsec_object_id = 196 [(attr_enum_value) = 206]; + optional uint32 ipsec_sa_tag_tpid = 197 [(attr_enum_value) = 207]; } message SwitchTunnelAttribute { - TunnelType tunnel_type = 1; - PacketAction loopback_packet_action = 2; - TunnelEncapEcnMode tunnel_encap_ecn_mode = 3; - Uint64List encap_mappers = 4; - TunnelDecapEcnMode tunnel_decap_ecn_mode = 5; - Uint64List decap_mappers = 6; - TunnelVxlanUdpSportMode tunnel_vxlan_udp_sport_mode = 7; - uint32 vxlan_udp_sport = 8; - uint32 vxlan_udp_sport_mask = 9; + optional TunnelType tunnel_type = 1 [(attr_enum_value) = 1]; + optional PacketAction loopback_packet_action = 2 [(attr_enum_value) = 2]; + optional TunnelEncapEcnMode tunnel_encap_ecn_mode = 3 [(attr_enum_value) = 3]; + repeated uint64 encap_mappers = 4 [(attr_enum_value) = 4]; + optional TunnelDecapEcnMode tunnel_decap_ecn_mode = 5 [(attr_enum_value) = 5]; + repeated uint64 decap_mappers = 6 [(attr_enum_value) = 6]; + optional TunnelVxlanUdpSportMode tunnel_vxlan_udp_sport_mode = 7 + [(attr_enum_value) = 7]; + optional uint32 vxlan_udp_sport = 8 [(attr_enum_value) = 8]; + optional uint32 vxlan_udp_sport_mask = 9 [(attr_enum_value) = 9]; } message SystemPortAttribute { - SystemPortType type = 1; - uint32 qos_number_of_voqs = 2; - Uint64List qos_voq_list = 3; - uint64 port = 4; - bool admin_state = 5; - SystemPortConfig config_info = 6; - uint64 qos_tc_to_queue_map = 7; -} - -message TamBindPointTypeList { - repeated TamBindPointType list = 1; + optional SystemPortType type = 1 [(attr_enum_value) = 1]; + optional uint32 qos_number_of_voqs = 2 [(attr_enum_value) = 2]; + repeated uint64 qos_voq_list = 3 [(attr_enum_value) = 3]; + optional uint64 port = 4 [(attr_enum_value) = 4]; + optional bool admin_state = 5 [(attr_enum_value) = 5]; + optional SystemPortConfig config_info = 6 [(attr_enum_value) = 6]; + optional uint64 qos_tc_to_queue_map = 7 [(attr_enum_value) = 7]; } message TamAttribute { - Uint64List telemetry_objects_list = 1; - Uint64List event_objects_list = 2; - Uint64List int_objects_list = 3; - TamBindPointTypeList tam_bind_point_type_list = 4; + repeated uint64 telemetry_objects_list = 1 [(attr_enum_value) = 1]; + repeated uint64 event_objects_list = 2 [(attr_enum_value) = 2]; + repeated uint64 int_objects_list = 3 [(attr_enum_value) = 3]; + repeated TamBindPointType tam_bind_point_type_list = 4 + [(attr_enum_value) = 4]; } message TamCollectorAttribute { - bytes src_ip = 1; - bytes dst_ip = 2; - bool localhost = 3; - uint64 virtual_router_id = 4; - uint32 truncate_size = 5; - uint64 transport = 6; - uint32 dscp_value = 7; + optional bytes src_ip = 1 [(attr_enum_value) = 1]; + optional bytes dst_ip = 2 [(attr_enum_value) = 2]; + optional bool localhost = 3 [(attr_enum_value) = 3]; + optional uint64 virtual_router_id = 4 [(attr_enum_value) = 4]; + optional uint32 truncate_size = 5 [(attr_enum_value) = 5]; + optional uint64 transport = 6 [(attr_enum_value) = 6]; + optional uint32 dscp_value = 7 [(attr_enum_value) = 7]; } message TamEventAttribute { - TamEventType type = 1; - Uint64List action_list = 2; - Uint64List collector_list = 3; - uint64 threshold = 4; - uint32 dscp_value = 5; + optional TamEventType type = 1 [(attr_enum_value) = 1]; + repeated uint64 action_list = 2 [(attr_enum_value) = 2]; + repeated uint64 collector_list = 3 [(attr_enum_value) = 3]; + optional uint64 threshold = 4 [(attr_enum_value) = 4]; + optional uint32 dscp_value = 5 [(attr_enum_value) = 5]; } message TamEventActionAttribute { - uint64 report_type = 1; - uint32 qos_action_type = 2; + optional uint64 report_type = 1 [(attr_enum_value) = 1]; + optional uint32 qos_action_type = 2 [(attr_enum_value) = 2]; } message TamEventThresholdAttribute { - uint32 high_watermark = 1; - uint32 low_watermark = 2; - uint32 latency = 3; - uint32 rate = 4; - uint32 abs_value = 5; - TamEventThresholdUnit unit = 6; + optional uint32 high_watermark = 1 [(attr_enum_value) = 1]; + optional uint32 low_watermark = 2 [(attr_enum_value) = 2]; + optional uint32 latency = 3 [(attr_enum_value) = 3]; + optional uint32 rate = 4 [(attr_enum_value) = 4]; + optional uint32 abs_value = 5 [(attr_enum_value) = 5]; + optional TamEventThresholdUnit unit = 6 [(attr_enum_value) = 6]; } message TamIntAttribute { - TamIntType type = 1; - uint32 device_id = 2; - uint32 ioam_trace_type = 3; - TamIntPresenceType int_presence_type = 4; - uint32 int_presence_pb1 = 5; - uint32 int_presence_pb2 = 6; - uint32 int_presence_dscp_value = 7; - bool inline = 8; - uint32 int_presence_l3_protocol = 9; - uint32 trace_vector = 10; - uint32 action_vector = 11; - uint32 p4_int_instruction_bitmap = 12; - bool metadata_fragment_enable = 13; - bool metadata_checksum_enable = 14; - bool report_all_packets = 15; - uint32 flow_liveness_period = 16; - uint32 latency_sensitivity = 17; - uint64 acl_group = 18; - uint32 max_hop_count = 19; - uint32 max_length = 20; - uint32 name_space_id = 21; - bool name_space_id_global = 22; - uint64 ingress_samplepacket_enable = 23; - Uint64List collector_list = 24; - uint64 math_func = 25; - uint64 report_id = 26; + optional TamIntType type = 1 [(attr_enum_value) = 1]; + optional uint32 device_id = 2 [(attr_enum_value) = 2]; + optional uint32 ioam_trace_type = 3 [(attr_enum_value) = 3]; + optional TamIntPresenceType int_presence_type = 4 [(attr_enum_value) = 4]; + optional uint32 int_presence_pb1 = 5 [(attr_enum_value) = 5]; + optional uint32 int_presence_pb2 = 6 [(attr_enum_value) = 6]; + optional uint32 int_presence_dscp_value = 7 [(attr_enum_value) = 7]; + optional bool inline = 8 [(attr_enum_value) = 8]; + optional uint32 int_presence_l3_protocol = 9 [(attr_enum_value) = 9]; + optional uint32 trace_vector = 10 [(attr_enum_value) = 10]; + optional uint32 action_vector = 11 [(attr_enum_value) = 11]; + optional uint32 p4_int_instruction_bitmap = 12 [(attr_enum_value) = 12]; + optional bool metadata_fragment_enable = 13 [(attr_enum_value) = 13]; + optional bool metadata_checksum_enable = 14 [(attr_enum_value) = 14]; + optional bool report_all_packets = 15 [(attr_enum_value) = 15]; + optional uint32 flow_liveness_period = 16 [(attr_enum_value) = 16]; + optional uint32 latency_sensitivity = 17 [(attr_enum_value) = 17]; + optional uint64 acl_group = 18 [(attr_enum_value) = 18]; + optional uint32 max_hop_count = 19 [(attr_enum_value) = 19]; + optional uint32 max_length = 20 [(attr_enum_value) = 20]; + optional uint32 name_space_id = 21 [(attr_enum_value) = 21]; + optional bool name_space_id_global = 22 [(attr_enum_value) = 22]; + optional uint64 ingress_samplepacket_enable = 23 [(attr_enum_value) = 23]; + repeated uint64 collector_list = 24 [(attr_enum_value) = 24]; + optional uint64 math_func = 25 [(attr_enum_value) = 25]; + optional uint64 report_id = 26 [(attr_enum_value) = 26]; } message TamMathFuncAttribute { - TamTelMathFuncType tam_tel_math_func_type = 1; + optional TamTelMathFuncType tam_tel_math_func_type = 1 + [(attr_enum_value) = 1]; } message TamReportAttribute { - TamReportType type = 1; - uint32 histogram_number_of_bins = 2; - Uint32List histogram_bin_boundary = 3; - uint32 quota = 4; - TamReportMode report_mode = 5; - uint32 report_interval = 6; - uint32 enterprise_number = 7; + optional TamReportType type = 1 [(attr_enum_value) = 1]; + optional uint32 histogram_number_of_bins = 2 [(attr_enum_value) = 2]; + repeated uint32 histogram_bin_boundary = 3 [(attr_enum_value) = 3]; + optional uint32 quota = 4 [(attr_enum_value) = 4]; + optional TamReportMode report_mode = 5 [(attr_enum_value) = 5]; + optional uint32 report_interval = 6 [(attr_enum_value) = 6]; + optional uint32 enterprise_number = 7 [(attr_enum_value) = 7]; } message TamTelemetryAttribute { - Uint64List tam_type_list = 1; - Uint64List collector_list = 2; - TamReportingUnit tam_reporting_unit = 3; - uint32 reporting_interval = 4; + repeated uint64 tam_type_list = 1 [(attr_enum_value) = 1]; + repeated uint64 collector_list = 2 [(attr_enum_value) = 2]; + optional TamReportingUnit tam_reporting_unit = 3 [(attr_enum_value) = 3]; + optional uint32 reporting_interval = 4 [(attr_enum_value) = 4]; } message TamTelTypeAttribute { - TamTelemetryType tam_telemetry_type = 1; - uint32 int_switch_identifier = 2; - bool switch_enable_port_stats = 3; - bool switch_enable_port_stats_ingress = 4; - bool switch_enable_port_stats_egress = 5; - bool switch_enable_virtual_queue_stats = 6; - bool switch_enable_output_queue_stats = 7; - bool switch_enable_mmu_stats = 8; - bool switch_enable_fabric_stats = 9; - bool switch_enable_filter_stats = 10; - bool switch_enable_resource_utilization_stats = 11; - bool fabric_q = 12; - bool ne_enable = 13; - uint32 dscp_value = 14; - uint64 math_func = 15; - uint64 report_id = 16; + optional TamTelemetryType tam_telemetry_type = 1 [(attr_enum_value) = 1]; + optional uint32 int_switch_identifier = 2 [(attr_enum_value) = 2]; + optional bool switch_enable_port_stats = 3 [(attr_enum_value) = 3]; + optional bool switch_enable_port_stats_ingress = 4 [(attr_enum_value) = 4]; + optional bool switch_enable_port_stats_egress = 5 [(attr_enum_value) = 5]; + optional bool switch_enable_virtual_queue_stats = 6 [(attr_enum_value) = 6]; + optional bool switch_enable_output_queue_stats = 7 [(attr_enum_value) = 7]; + optional bool switch_enable_mmu_stats = 8 [(attr_enum_value) = 8]; + optional bool switch_enable_fabric_stats = 9 [(attr_enum_value) = 9]; + optional bool switch_enable_filter_stats = 10 [(attr_enum_value) = 10]; + optional bool switch_enable_resource_utilization_stats = 11 + [(attr_enum_value) = 11]; + optional bool fabric_q = 12 [(attr_enum_value) = 12]; + optional bool ne_enable = 13 [(attr_enum_value) = 13]; + optional uint32 dscp_value = 14 [(attr_enum_value) = 14]; + optional uint64 math_func = 15 [(attr_enum_value) = 15]; + optional uint64 report_id = 16 [(attr_enum_value) = 16]; } message TamTransportAttribute { - TamTransportType transport_type = 1; - uint32 src_port = 2; - uint32 dst_port = 3; - TamTransportAuthType transport_auth_type = 4; - uint32 mtu = 5; + optional TamTransportType transport_type = 1 [(attr_enum_value) = 1]; + optional uint32 src_port = 2 [(attr_enum_value) = 2]; + optional uint32 dst_port = 3 [(attr_enum_value) = 3]; + optional TamTransportAuthType transport_auth_type = 4 [(attr_enum_value) = 4]; + optional uint32 mtu = 5 [(attr_enum_value) = 5]; } message TunnelAttribute { - TunnelType type = 1; - uint64 underlay_interface = 2; - uint64 overlay_interface = 3; - TunnelPeerMode peer_mode = 4; - bytes encap_src_ip = 5; - bytes encap_dst_ip = 6; - TunnelTtlMode encap_ttl_mode = 7; - uint32 encap_ttl_val = 8; - TunnelDscpMode encap_dscp_mode = 9; - uint32 encap_dscp_val = 10; - bool encap_gre_key_valid = 11; - uint32 encap_gre_key = 12; - TunnelEncapEcnMode encap_ecn_mode = 13; - Uint64List encap_mappers = 14; - TunnelDecapEcnMode decap_ecn_mode = 15; - Uint64List decap_mappers = 16; - TunnelTtlMode decap_ttl_mode = 17; - TunnelDscpMode decap_dscp_mode = 18; - Uint64List term_table_entry_list = 19; - PacketAction loopback_packet_action = 20; - TunnelVxlanUdpSportMode vxlan_udp_sport_mode = 21; - uint32 vxlan_udp_sport = 22; - uint32 vxlan_udp_sport_mask = 23; - uint32 sa_index = 24; - Uint64List ipsec_sa_port_list = 25; + optional TunnelType type = 1 [(attr_enum_value) = 1]; + optional uint64 underlay_interface = 2 [(attr_enum_value) = 2]; + optional uint64 overlay_interface = 3 [(attr_enum_value) = 3]; + optional TunnelPeerMode peer_mode = 4 [(attr_enum_value) = 4]; + optional bytes encap_src_ip = 5 [(attr_enum_value) = 5]; + optional bytes encap_dst_ip = 6 [(attr_enum_value) = 6]; + optional TunnelTtlMode encap_ttl_mode = 7 [(attr_enum_value) = 7]; + optional uint32 encap_ttl_val = 8 [(attr_enum_value) = 8]; + optional TunnelDscpMode encap_dscp_mode = 9 [(attr_enum_value) = 9]; + optional uint32 encap_dscp_val = 10 [(attr_enum_value) = 10]; + optional bool encap_gre_key_valid = 11 [(attr_enum_value) = 11]; + optional uint32 encap_gre_key = 12 [(attr_enum_value) = 12]; + optional TunnelEncapEcnMode encap_ecn_mode = 13 [(attr_enum_value) = 13]; + repeated uint64 encap_mappers = 14 [(attr_enum_value) = 14]; + optional TunnelDecapEcnMode decap_ecn_mode = 15 [(attr_enum_value) = 15]; + repeated uint64 decap_mappers = 16 [(attr_enum_value) = 16]; + optional TunnelTtlMode decap_ttl_mode = 17 [(attr_enum_value) = 17]; + optional TunnelDscpMode decap_dscp_mode = 18 [(attr_enum_value) = 18]; + repeated uint64 term_table_entry_list = 19 [(attr_enum_value) = 19]; + optional PacketAction loopback_packet_action = 20 [(attr_enum_value) = 20]; + optional TunnelVxlanUdpSportMode vxlan_udp_sport_mode = 21 + [(attr_enum_value) = 21]; + optional uint32 vxlan_udp_sport = 22 [(attr_enum_value) = 22]; + optional uint32 vxlan_udp_sport_mask = 23 [(attr_enum_value) = 23]; + optional uint32 sa_index = 24 [(attr_enum_value) = 24]; + repeated uint64 ipsec_sa_port_list = 25 [(attr_enum_value) = 25]; } message TunnelMapAttribute { - TunnelMapType type = 1; - Uint64List entry_list = 2; + optional TunnelMapType type = 1 [(attr_enum_value) = 1]; + repeated uint64 entry_list = 2 [(attr_enum_value) = 2]; } message TunnelMapEntryAttribute { - TunnelMapType tunnel_map_type = 1; - uint64 tunnel_map = 2; - uint32 oecn_key = 3; - uint32 oecn_value = 4; - uint32 uecn_key = 5; - uint32 uecn_value = 6; - uint32 vlan_id_key = 7; - uint32 vlan_id_value = 8; - uint32 vni_id_key = 9; - uint32 vni_id_value = 10; - uint64 bridge_id_key = 11; - uint64 bridge_id_value = 12; - uint64 virtual_router_id_key = 13; - uint64 virtual_router_id_value = 14; - uint32 vsid_id_key = 15; - uint32 vsid_id_value = 16; + optional TunnelMapType tunnel_map_type = 1 [(attr_enum_value) = 1]; + optional uint64 tunnel_map = 2 [(attr_enum_value) = 2]; + optional uint32 oecn_key = 3 [(attr_enum_value) = 3]; + optional uint32 oecn_value = 4 [(attr_enum_value) = 4]; + optional uint32 uecn_key = 5 [(attr_enum_value) = 5]; + optional uint32 uecn_value = 6 [(attr_enum_value) = 6]; + optional uint32 vlan_id_key = 7 [(attr_enum_value) = 7]; + optional uint32 vlan_id_value = 8 [(attr_enum_value) = 8]; + optional uint32 vni_id_key = 9 [(attr_enum_value) = 9]; + optional uint32 vni_id_value = 10 [(attr_enum_value) = 10]; + optional uint64 bridge_id_key = 11 [(attr_enum_value) = 11]; + optional uint64 bridge_id_value = 12 [(attr_enum_value) = 12]; + optional uint64 virtual_router_id_key = 13 [(attr_enum_value) = 13]; + optional uint64 virtual_router_id_value = 14 [(attr_enum_value) = 14]; + optional uint32 vsid_id_key = 15 [(attr_enum_value) = 15]; + optional uint32 vsid_id_value = 16 [(attr_enum_value) = 16]; } message TunnelTermTableEntryAttribute { - uint64 vr_id = 1; - TunnelTermTableEntryType type = 2; - bytes dst_ip = 3; - bytes dst_ip_mask = 4; - bytes src_ip = 5; - bytes src_ip_mask = 6; - TunnelType tunnel_type = 7; - uint64 action_tunnel_id = 8; - IpAddrFamily ip_addr_family = 9; - bool ipsec_verified = 10; + optional uint64 vr_id = 1 [(attr_enum_value) = 1]; + optional TunnelTermTableEntryType type = 2 [(attr_enum_value) = 2]; + optional bytes dst_ip = 3 [(attr_enum_value) = 3]; + optional bytes dst_ip_mask = 4 [(attr_enum_value) = 4]; + optional bytes src_ip = 5 [(attr_enum_value) = 5]; + optional bytes src_ip_mask = 6 [(attr_enum_value) = 6]; + optional TunnelType tunnel_type = 7 [(attr_enum_value) = 7]; + optional uint64 action_tunnel_id = 8 [(attr_enum_value) = 8]; + optional IpAddrFamily ip_addr_family = 9 [(attr_enum_value) = 9]; + optional bool ipsec_verified = 10 [(attr_enum_value) = 10]; } message UdfAttribute { - uint64 match_id = 1; - uint64 group_id = 2; - UdfBase base = 3; - uint32 offset = 4; - Uint32List hash_mask = 5; + optional uint64 match_id = 1 [(attr_enum_value) = 1]; + optional uint64 group_id = 2 [(attr_enum_value) = 2]; + optional UdfBase base = 3 [(attr_enum_value) = 3]; + optional uint32 offset = 4 [(attr_enum_value) = 4]; + repeated uint32 hash_mask = 5 [(attr_enum_value) = 5]; } message UdfGroupAttribute { - Uint64List udf_list = 1; - UdfGroupType type = 2; - uint32 length = 3; + repeated uint64 udf_list = 1 [(attr_enum_value) = 1]; + optional UdfGroupType type = 2 [(attr_enum_value) = 2]; + optional uint32 length = 3 [(attr_enum_value) = 3]; } message UdfMatchAttribute { - AclFieldData l2_type = 1; - AclFieldData l3_type = 2; - AclFieldData gre_type = 3; - uint32 priority = 4; + optional AclFieldData l2_type = 1 [(attr_enum_value) = 1]; + optional AclFieldData l3_type = 2 [(attr_enum_value) = 2]; + optional AclFieldData gre_type = 3 [(attr_enum_value) = 3]; + optional uint32 priority = 4 [(attr_enum_value) = 4]; } message VirtualRouterAttribute { - bool admin_v4_state = 1; - bool admin_v6_state = 2; - bytes src_mac_address = 3; - PacketAction violation_ttl1_packet_action = 4; - PacketAction violation_ip_options_packet_action = 5; - PacketAction unknown_l3_multicast_packet_action = 6; - bytes label = 7; + optional bool admin_v4_state = 1 [(attr_enum_value) = 1]; + optional bool admin_v6_state = 2 [(attr_enum_value) = 2]; + optional bytes src_mac_address = 3 [(attr_enum_value) = 3]; + optional PacketAction violation_ttl1_packet_action = 4 + [(attr_enum_value) = 4]; + optional PacketAction violation_ip_options_packet_action = 5 + [(attr_enum_value) = 5]; + optional PacketAction unknown_l3_multicast_packet_action = 6 + [(attr_enum_value) = 6]; + optional bytes label = 7 [(attr_enum_value) = 7]; } message VlanAttribute { - uint32 vlan_id = 1; - Uint64List member_list = 2; - uint32 max_learned_addresses = 3; - uint64 stp_instance = 4; - bool learn_disable = 5; - VlanMcastLookupKeyType ipv4_mcast_lookup_key_type = 6; - VlanMcastLookupKeyType ipv6_mcast_lookup_key_type = 7; - uint64 unknown_non_ip_mcast_output_group_id = 8; - uint64 unknown_ipv4_mcast_output_group_id = 9; - uint64 unknown_ipv6_mcast_output_group_id = 10; - uint64 unknown_linklocal_mcast_output_group_id = 11; - uint64 ingress_acl = 12; - uint64 egress_acl = 13; - uint32 meta_data = 14; - VlanFloodControlType unknown_unicast_flood_control_type = 15; - uint64 unknown_unicast_flood_group = 16; - VlanFloodControlType unknown_multicast_flood_control_type = 17; - uint64 unknown_multicast_flood_group = 18; - VlanFloodControlType broadcast_flood_control_type = 19; - uint64 broadcast_flood_group = 20; - bool custom_igmp_snooping_enable = 21; - Uint64List tam_object = 22; + optional uint32 vlan_id = 1 [(attr_enum_value) = 1]; + repeated uint64 member_list = 2 [(attr_enum_value) = 2]; + optional uint32 max_learned_addresses = 3 [(attr_enum_value) = 3]; + optional uint64 stp_instance = 4 [(attr_enum_value) = 4]; + optional bool learn_disable = 5 [(attr_enum_value) = 5]; + optional VlanMcastLookupKeyType ipv4_mcast_lookup_key_type = 6 + [(attr_enum_value) = 6]; + optional VlanMcastLookupKeyType ipv6_mcast_lookup_key_type = 7 + [(attr_enum_value) = 7]; + optional uint64 unknown_non_ip_mcast_output_group_id = 8 + [(attr_enum_value) = 8]; + optional uint64 unknown_ipv4_mcast_output_group_id = 9 + [(attr_enum_value) = 9]; + optional uint64 unknown_ipv6_mcast_output_group_id = 10 + [(attr_enum_value) = 10]; + optional uint64 unknown_linklocal_mcast_output_group_id = 11 + [(attr_enum_value) = 11]; + optional uint64 ingress_acl = 12 [(attr_enum_value) = 12]; + optional uint64 egress_acl = 13 [(attr_enum_value) = 13]; + optional uint32 meta_data = 14 [(attr_enum_value) = 14]; + optional VlanFloodControlType unknown_unicast_flood_control_type = 15 + [(attr_enum_value) = 15]; + optional uint64 unknown_unicast_flood_group = 16 [(attr_enum_value) = 16]; + optional VlanFloodControlType unknown_multicast_flood_control_type = 17 + [(attr_enum_value) = 17]; + optional uint64 unknown_multicast_flood_group = 18 [(attr_enum_value) = 18]; + optional VlanFloodControlType broadcast_flood_control_type = 19 + [(attr_enum_value) = 19]; + optional uint64 broadcast_flood_group = 20 [(attr_enum_value) = 20]; + optional bool custom_igmp_snooping_enable = 21 [(attr_enum_value) = 21]; + repeated uint64 tam_object = 22 [(attr_enum_value) = 22]; } message VlanMemberAttribute { - uint64 vlan_id = 1; - uint64 bridge_port_id = 2; - VlanTaggingMode vlan_tagging_mode = 3; + optional uint64 vlan_id = 1 [(attr_enum_value) = 1]; + optional uint64 bridge_port_id = 2 [(attr_enum_value) = 2]; + optional VlanTaggingMode vlan_tagging_mode = 3 [(attr_enum_value) = 3]; } message WredAttribute { - bool green_enable = 1; - uint32 green_min_threshold = 2; - uint32 green_max_threshold = 3; - uint32 green_drop_probability = 4; - bool yellow_enable = 5; - uint32 yellow_min_threshold = 6; - uint32 yellow_max_threshold = 7; - uint32 yellow_drop_probability = 8; - bool red_enable = 9; - uint32 red_min_threshold = 10; - uint32 red_max_threshold = 11; - uint32 red_drop_probability = 12; - uint32 weight = 13; - EcnMarkMode ecn_mark_mode = 14; - uint32 ecn_green_min_threshold = 15; - uint32 ecn_green_max_threshold = 16; - uint32 ecn_green_mark_probability = 17; - uint32 ecn_yellow_min_threshold = 18; - uint32 ecn_yellow_max_threshold = 19; - uint32 ecn_yellow_mark_probability = 20; - uint32 ecn_red_min_threshold = 21; - uint32 ecn_red_max_threshold = 22; - uint32 ecn_red_mark_probability = 23; - uint32 ecn_color_unaware_min_threshold = 24; - uint32 ecn_color_unaware_max_threshold = 25; - uint32 ecn_color_unaware_mark_probability = 26; + optional bool green_enable = 1 [(attr_enum_value) = 1]; + optional uint32 green_min_threshold = 2 [(attr_enum_value) = 2]; + optional uint32 green_max_threshold = 3 [(attr_enum_value) = 3]; + optional uint32 green_drop_probability = 4 [(attr_enum_value) = 4]; + optional bool yellow_enable = 5 [(attr_enum_value) = 5]; + optional uint32 yellow_min_threshold = 6 [(attr_enum_value) = 6]; + optional uint32 yellow_max_threshold = 7 [(attr_enum_value) = 7]; + optional uint32 yellow_drop_probability = 8 [(attr_enum_value) = 8]; + optional bool red_enable = 9 [(attr_enum_value) = 9]; + optional uint32 red_min_threshold = 10 [(attr_enum_value) = 10]; + optional uint32 red_max_threshold = 11 [(attr_enum_value) = 11]; + optional uint32 red_drop_probability = 12 [(attr_enum_value) = 12]; + optional uint32 weight = 13 [(attr_enum_value) = 13]; + optional EcnMarkMode ecn_mark_mode = 14 [(attr_enum_value) = 14]; + optional uint32 ecn_green_min_threshold = 15 [(attr_enum_value) = 15]; + optional uint32 ecn_green_max_threshold = 16 [(attr_enum_value) = 16]; + optional uint32 ecn_green_mark_probability = 17 [(attr_enum_value) = 17]; + optional uint32 ecn_yellow_min_threshold = 18 [(attr_enum_value) = 18]; + optional uint32 ecn_yellow_max_threshold = 19 [(attr_enum_value) = 19]; + optional uint32 ecn_yellow_mark_probability = 20 [(attr_enum_value) = 20]; + optional uint32 ecn_red_min_threshold = 21 [(attr_enum_value) = 21]; + optional uint32 ecn_red_max_threshold = 22 [(attr_enum_value) = 22]; + optional uint32 ecn_red_mark_probability = 23 [(attr_enum_value) = 23]; + optional uint32 ecn_color_unaware_min_threshold = 24 [(attr_enum_value) = 24]; + optional uint32 ecn_color_unaware_max_threshold = 25 [(attr_enum_value) = 25]; + optional uint32 ecn_color_unaware_mark_probability = 26 + [(attr_enum_value) = 26]; } diff --git a/dataplane/standalone/proto/counter.pb.go b/dataplane/standalone/proto/counter.pb.go index dd24371e..c42420aa 100755 --- a/dataplane/standalone/proto/counter.pb.go +++ b/dataplane/standalone/proto/counter.pb.go @@ -75,8 +75,8 @@ type CreateCounterRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type CounterType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.CounterType" json:"type,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *CounterType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.CounterType,oneof" json:"type,omitempty"` } func (x *CreateCounterRequest) Reset() { @@ -119,8 +119,8 @@ func (x *CreateCounterRequest) GetSwitch() uint64 { } func (x *CreateCounterRequest) GetType() CounterType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return CounterType_COUNTER_TYPE_UNSPECIFIED } @@ -317,7 +317,7 @@ type GetCounterAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*CounterAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *CounterAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetCounterAttributeResponse) Reset() { @@ -352,7 +352,7 @@ func (*GetCounterAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_counter_proto_rawDescGZIP(), []int{5} } -func (x *GetCounterAttributeResponse) GetAttr() []*CounterAttribute { +func (x *GetCounterAttributeResponse) GetAttr() *CounterAttribute { if x != nil { return x.Attr } @@ -368,64 +368,66 @@ var file_dataplane_standalone_proto_counter_proto_rawDesc = []byte{ 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x66, 0x0a, 0x14, 0x43, 0x72, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x28, 0x0a, - 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x42, 0x0a, - 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x18, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, - 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x01, 0x32, 0xe5, 0x02, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x6c, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2b, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x2a, 0x42, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, + 0x0a, 0x11, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x10, 0x01, 0x32, 0xe5, 0x02, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x6c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x6c, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, + 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, + 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -550,6 +552,7 @@ func file_dataplane_standalone_proto_counter_proto_init() { } } } + file_dataplane_standalone_proto_counter_proto_msgTypes[0].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/counter.proto b/dataplane/standalone/proto/counter.proto index 18972155..3ea317b1 100644 --- a/dataplane/standalone/proto/counter.proto +++ b/dataplane/standalone/proto/counter.proto @@ -7,52 +7,38 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum CounterAttr { - COUNTER_ATTR_UNSPECIFIED = 0; - COUNTER_ATTR_TYPE = 1; + COUNTER_ATTR_UNSPECIFIED = 0; + COUNTER_ATTR_TYPE = 1; } message CreateCounterRequest { - uint64 switch = 1; - - CounterType type = 2; - + uint64 switch = 1; + optional CounterType type = 2 [(attr_enum_value) = 1]; } message CreateCounterResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveCounterRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveCounterResponse { - - -} +message RemoveCounterResponse {} message GetCounterAttributeRequest { - uint64 oid = 1; - repeated CounterAttr attr_type = 2; - - + uint64 oid = 1; + repeated CounterAttr attr_type = 2; } message GetCounterAttributeResponse { - repeated CounterAttribute attr = 1; - - + CounterAttribute attr = 1; } - service Counter { - rpc CreateCounter (CreateCounterRequest) returns (CreateCounterResponse) {} - rpc RemoveCounter (RemoveCounterRequest) returns (RemoveCounterResponse) {} - rpc GetCounterAttribute (GetCounterAttributeRequest) returns (GetCounterAttributeResponse) {} + rpc CreateCounter(CreateCounterRequest) returns (CreateCounterResponse) {} + rpc RemoveCounter(RemoveCounterRequest) returns (RemoveCounterResponse) {} + rpc GetCounterAttribute(GetCounterAttributeRequest) + returns (GetCounterAttributeResponse) {} } diff --git a/dataplane/standalone/proto/debug_counter.pb.go b/dataplane/standalone/proto/debug_counter.pb.go index 10a58a2d..015a4836 100755 --- a/dataplane/standalone/proto/debug_counter.pb.go +++ b/dataplane/standalone/proto/debug_counter.pb.go @@ -87,11 +87,11 @@ type CreateDebugCounterRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type DebugCounterType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.DebugCounterType" json:"type,omitempty"` - BindMethod DebugCounterBindMethod `protobuf:"varint,3,opt,name=bind_method,json=bindMethod,proto3,enum=lemming.dataplane.sai.DebugCounterBindMethod" json:"bind_method,omitempty"` - InDropReasonList []InDropReason `protobuf:"varint,4,rep,packed,name=in_drop_reason_list,json=inDropReasonList,proto3,enum=lemming.dataplane.sai.InDropReason" json:"in_drop_reason_list,omitempty"` - OutDropReasonList []OutDropReason `protobuf:"varint,5,rep,packed,name=out_drop_reason_list,json=outDropReasonList,proto3,enum=lemming.dataplane.sai.OutDropReason" json:"out_drop_reason_list,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *DebugCounterType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.DebugCounterType,oneof" json:"type,omitempty"` + BindMethod *DebugCounterBindMethod `protobuf:"varint,3,opt,name=bind_method,json=bindMethod,proto3,enum=lemming.dataplane.sai.DebugCounterBindMethod,oneof" json:"bind_method,omitempty"` + InDropReasonList []InDropReason `protobuf:"varint,4,rep,packed,name=in_drop_reason_list,json=inDropReasonList,proto3,enum=lemming.dataplane.sai.InDropReason" json:"in_drop_reason_list,omitempty"` + OutDropReasonList []OutDropReason `protobuf:"varint,5,rep,packed,name=out_drop_reason_list,json=outDropReasonList,proto3,enum=lemming.dataplane.sai.OutDropReason" json:"out_drop_reason_list,omitempty"` } func (x *CreateDebugCounterRequest) Reset() { @@ -134,15 +134,15 @@ func (x *CreateDebugCounterRequest) GetSwitch() uint64 { } func (x *CreateDebugCounterRequest) GetType() DebugCounterType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return DebugCounterType_DEBUG_COUNTER_TYPE_UNSPECIFIED } func (x *CreateDebugCounterRequest) GetBindMethod() DebugCounterBindMethod { - if x != nil { - return x.BindMethod + if x != nil && x.BindMethod != nil { + return *x.BindMethod } return DebugCounterBindMethod_DEBUG_COUNTER_BIND_METHOD_UNSPECIFIED } @@ -298,12 +298,9 @@ type SetDebugCounterAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetDebugCounterAttributeRequest_InDropReasonList - // *SetDebugCounterAttributeRequest_OutDropReasonList - Attr isSetDebugCounterAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + InDropReasonList []InDropReason `protobuf:"varint,2,rep,packed,name=in_drop_reason_list,json=inDropReasonList,proto3,enum=lemming.dataplane.sai.InDropReason" json:"in_drop_reason_list,omitempty"` + OutDropReasonList []OutDropReason `protobuf:"varint,3,rep,packed,name=out_drop_reason_list,json=outDropReasonList,proto3,enum=lemming.dataplane.sai.OutDropReason" json:"out_drop_reason_list,omitempty"` } func (x *SetDebugCounterAttributeRequest) Reset() { @@ -345,43 +342,20 @@ func (x *SetDebugCounterAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetDebugCounterAttributeRequest) GetAttr() isSetDebugCounterAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - -func (x *SetDebugCounterAttributeRequest) GetInDropReasonList() *InDropReasonList { - if x, ok := x.GetAttr().(*SetDebugCounterAttributeRequest_InDropReasonList); ok { +func (x *SetDebugCounterAttributeRequest) GetInDropReasonList() []InDropReason { + if x != nil { return x.InDropReasonList } return nil } -func (x *SetDebugCounterAttributeRequest) GetOutDropReasonList() *OutDropReasonList { - if x, ok := x.GetAttr().(*SetDebugCounterAttributeRequest_OutDropReasonList); ok { +func (x *SetDebugCounterAttributeRequest) GetOutDropReasonList() []OutDropReason { + if x != nil { return x.OutDropReasonList } return nil } -type isSetDebugCounterAttributeRequest_Attr interface { - isSetDebugCounterAttributeRequest_Attr() -} - -type SetDebugCounterAttributeRequest_InDropReasonList struct { - InDropReasonList *InDropReasonList `protobuf:"bytes,2,opt,name=in_drop_reason_list,json=inDropReasonList,proto3,oneof"` -} - -type SetDebugCounterAttributeRequest_OutDropReasonList struct { - OutDropReasonList *OutDropReasonList `protobuf:"bytes,3,opt,name=out_drop_reason_list,json=outDropReasonList,proto3,oneof"` -} - -func (*SetDebugCounterAttributeRequest_InDropReasonList) isSetDebugCounterAttributeRequest_Attr() {} - -func (*SetDebugCounterAttributeRequest_OutDropReasonList) isSetDebugCounterAttributeRequest_Attr() {} - type SetDebugCounterAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -480,7 +454,7 @@ type GetDebugCounterAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*DebugCounterAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *DebugCounterAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetDebugCounterAttributeResponse) Reset() { @@ -515,7 +489,7 @@ func (*GetDebugCounterAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_debug_counter_proto_rawDescGZIP(), []int{7} } -func (x *GetDebugCounterAttributeResponse) GetAttr() []*DebugCounterAttribute { +func (x *GetDebugCounterAttributeResponse) GetAttr() *DebugCounterAttribute { if x != nil { return x.Attr } @@ -532,123 +506,126 @@ var file_dataplane_standalone_proto_debug_counter_proto_rawDesc = []byte{ 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xeb, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x22, 0xa6, 0x03, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, - 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x4e, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x69, 0x6e, - 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x12, 0x52, 0x0a, 0x13, 0x69, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x10, 0x69, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x5f, 0x64, - 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, - 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x11, 0x6f, 0x75, 0x74, - 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x2e, - 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2d, - 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1c, 0x0a, - 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf2, 0x01, 0x0a, 0x1f, - 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x58, 0x0a, 0x13, 0x69, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x44, 0x72, 0x6f, - 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x14, 0x6f, - 0x75, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x59, + 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x64, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x13, 0x69, 0x6e, 0x5f, + 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, + 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x52, 0x10, 0x69, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x6f, + 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x52, 0x11, 0x6f, + 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x62, 0x69, + 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x58, 0x0a, 0x13, + 0x69, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, + 0x69, 0x2e, 0x49, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x52, 0x10, 0x69, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, + 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, + 0x52, 0x11, 0x6f, 0x75, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xee, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x45, - 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, - 0x0a, 0x18, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xee, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, + 0x1e, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, + 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x01, 0x12, + 0x1b, 0x0a, 0x17, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x45, 0x42, - 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x03, 0x12, 0x2a, 0x0a, - 0x26, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x45, 0x42, - 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x4c, 0x49, 0x53, 0x54, 0x10, 0x05, 0x32, 0xa8, 0x04, 0x0a, 0x0c, 0x44, 0x65, 0x62, 0x75, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x54, 0x52, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x03, + 0x12, 0x2a, 0x0a, 0x26, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, + 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, + 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x05, 0x32, 0xa8, 0x04, 0x0a, 0x0c, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x62, 0x75, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, - 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, - 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -679,19 +656,17 @@ var file_dataplane_standalone_proto_debug_counter_proto_goTypes = []interface{}{ (DebugCounterBindMethod)(0), // 10: lemming.dataplane.sai.DebugCounterBindMethod (InDropReason)(0), // 11: lemming.dataplane.sai.InDropReason (OutDropReason)(0), // 12: lemming.dataplane.sai.OutDropReason - (*InDropReasonList)(nil), // 13: lemming.dataplane.sai.InDropReasonList - (*OutDropReasonList)(nil), // 14: lemming.dataplane.sai.OutDropReasonList - (*DebugCounterAttribute)(nil), // 15: lemming.dataplane.sai.DebugCounterAttribute + (*DebugCounterAttribute)(nil), // 13: lemming.dataplane.sai.DebugCounterAttribute } var file_dataplane_standalone_proto_debug_counter_proto_depIdxs = []int32{ 9, // 0: lemming.dataplane.sai.CreateDebugCounterRequest.type:type_name -> lemming.dataplane.sai.DebugCounterType 10, // 1: lemming.dataplane.sai.CreateDebugCounterRequest.bind_method:type_name -> lemming.dataplane.sai.DebugCounterBindMethod 11, // 2: lemming.dataplane.sai.CreateDebugCounterRequest.in_drop_reason_list:type_name -> lemming.dataplane.sai.InDropReason 12, // 3: lemming.dataplane.sai.CreateDebugCounterRequest.out_drop_reason_list:type_name -> lemming.dataplane.sai.OutDropReason - 13, // 4: lemming.dataplane.sai.SetDebugCounterAttributeRequest.in_drop_reason_list:type_name -> lemming.dataplane.sai.InDropReasonList - 14, // 5: lemming.dataplane.sai.SetDebugCounterAttributeRequest.out_drop_reason_list:type_name -> lemming.dataplane.sai.OutDropReasonList + 11, // 4: lemming.dataplane.sai.SetDebugCounterAttributeRequest.in_drop_reason_list:type_name -> lemming.dataplane.sai.InDropReason + 12, // 5: lemming.dataplane.sai.SetDebugCounterAttributeRequest.out_drop_reason_list:type_name -> lemming.dataplane.sai.OutDropReason 0, // 6: lemming.dataplane.sai.GetDebugCounterAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DebugCounterAttr - 15, // 7: lemming.dataplane.sai.GetDebugCounterAttributeResponse.attr:type_name -> lemming.dataplane.sai.DebugCounterAttribute + 13, // 7: lemming.dataplane.sai.GetDebugCounterAttributeResponse.attr:type_name -> lemming.dataplane.sai.DebugCounterAttribute 1, // 8: lemming.dataplane.sai.DebugCounter.CreateDebugCounter:input_type -> lemming.dataplane.sai.CreateDebugCounterRequest 3, // 9: lemming.dataplane.sai.DebugCounter.RemoveDebugCounter:input_type -> lemming.dataplane.sai.RemoveDebugCounterRequest 5, // 10: lemming.dataplane.sai.DebugCounter.SetDebugCounterAttribute:input_type -> lemming.dataplane.sai.SetDebugCounterAttributeRequest @@ -811,10 +786,7 @@ func file_dataplane_standalone_proto_debug_counter_proto_init() { } } } - file_dataplane_standalone_proto_debug_counter_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetDebugCounterAttributeRequest_InDropReasonList)(nil), - (*SetDebugCounterAttributeRequest_OutDropReasonList)(nil), - } + file_dataplane_standalone_proto_debug_counter_proto_msgTypes[0].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/debug_counter.proto b/dataplane/standalone/proto/debug_counter.proto index c9d9df8b..fbf09e71 100644 --- a/dataplane/standalone/proto/debug_counter.proto +++ b/dataplane/standalone/proto/debug_counter.proto @@ -7,73 +7,57 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum DebugCounterAttr { - DEBUG_COUNTER_ATTR_UNSPECIFIED = 0; - DEBUG_COUNTER_ATTR_INDEX = 1; - DEBUG_COUNTER_ATTR_TYPE = 2; - DEBUG_COUNTER_ATTR_BIND_METHOD = 3; - DEBUG_COUNTER_ATTR_IN_DROP_REASON_LIST = 4; - DEBUG_COUNTER_ATTR_OUT_DROP_REASON_LIST = 5; + DEBUG_COUNTER_ATTR_UNSPECIFIED = 0; + DEBUG_COUNTER_ATTR_INDEX = 1; + DEBUG_COUNTER_ATTR_TYPE = 2; + DEBUG_COUNTER_ATTR_BIND_METHOD = 3; + DEBUG_COUNTER_ATTR_IN_DROP_REASON_LIST = 4; + DEBUG_COUNTER_ATTR_OUT_DROP_REASON_LIST = 5; } message CreateDebugCounterRequest { - uint64 switch = 1; - - DebugCounterType type = 2; - DebugCounterBindMethod bind_method = 3; - repeated InDropReason in_drop_reason_list = 4; - repeated OutDropReason out_drop_reason_list = 5; - + uint64 switch = 1; + optional DebugCounterType type = 2 [(attr_enum_value) = 2]; + optional DebugCounterBindMethod bind_method = 3 [(attr_enum_value) = 3]; + repeated InDropReason in_drop_reason_list = 4 [(attr_enum_value) = 4]; + repeated OutDropReason out_drop_reason_list = 5 [(attr_enum_value) = 5]; } message CreateDebugCounterResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveDebugCounterRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveDebugCounterResponse { - - -} +message RemoveDebugCounterResponse {} message SetDebugCounterAttributeRequest { - uint64 oid = 1; - oneof attr { - InDropReasonList in_drop_reason_list = 2; - OutDropReasonList out_drop_reason_list = 3; - } + uint64 oid = 1; + repeated InDropReason in_drop_reason_list = 2 [(attr_enum_value) = 4]; + repeated OutDropReason out_drop_reason_list = 3 [(attr_enum_value) = 5]; } -message SetDebugCounterAttributeResponse { - - -} +message SetDebugCounterAttributeResponse {} message GetDebugCounterAttributeRequest { - uint64 oid = 1; - repeated DebugCounterAttr attr_type = 2; - - + uint64 oid = 1; + repeated DebugCounterAttr attr_type = 2; } message GetDebugCounterAttributeResponse { - repeated DebugCounterAttribute attr = 1; - - + DebugCounterAttribute attr = 1; } - service DebugCounter { - rpc CreateDebugCounter (CreateDebugCounterRequest) returns (CreateDebugCounterResponse) {} - rpc RemoveDebugCounter (RemoveDebugCounterRequest) returns (RemoveDebugCounterResponse) {} - rpc SetDebugCounterAttribute (SetDebugCounterAttributeRequest) returns (SetDebugCounterAttributeResponse) {} - rpc GetDebugCounterAttribute (GetDebugCounterAttributeRequest) returns (GetDebugCounterAttributeResponse) {} + rpc CreateDebugCounter(CreateDebugCounterRequest) + returns (CreateDebugCounterResponse) {} + rpc RemoveDebugCounter(RemoveDebugCounterRequest) + returns (RemoveDebugCounterResponse) {} + rpc SetDebugCounterAttribute(SetDebugCounterAttributeRequest) + returns (SetDebugCounterAttributeResponse) {} + rpc GetDebugCounterAttribute(GetDebugCounterAttributeRequest) + returns (GetDebugCounterAttributeResponse) {} } diff --git a/dataplane/standalone/proto/dtel.pb.go b/dataplane/standalone/proto/dtel.pb.go index b388ce7e..bfc732d6 100755 --- a/dataplane/standalone/proto/dtel.pb.go +++ b/dataplane/standalone/proto/dtel.pb.go @@ -332,16 +332,16 @@ type CreateDtelRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - IntEndpointEnable bool `protobuf:"varint,2,opt,name=int_endpoint_enable,json=intEndpointEnable,proto3" json:"int_endpoint_enable,omitempty"` - IntTransitEnable bool `protobuf:"varint,3,opt,name=int_transit_enable,json=intTransitEnable,proto3" json:"int_transit_enable,omitempty"` - PostcardEnable bool `protobuf:"varint,4,opt,name=postcard_enable,json=postcardEnable,proto3" json:"postcard_enable,omitempty"` - DropReportEnable bool `protobuf:"varint,5,opt,name=drop_report_enable,json=dropReportEnable,proto3" json:"drop_report_enable,omitempty"` - QueueReportEnable bool `protobuf:"varint,6,opt,name=queue_report_enable,json=queueReportEnable,proto3" json:"queue_report_enable,omitempty"` - SwitchId uint32 `protobuf:"varint,7,opt,name=switch_id,json=switchId,proto3" json:"switch_id,omitempty"` - FlowStateClearCycle uint32 `protobuf:"varint,8,opt,name=flow_state_clear_cycle,json=flowStateClearCycle,proto3" json:"flow_state_clear_cycle,omitempty"` - LatencySensitivity uint32 `protobuf:"varint,9,opt,name=latency_sensitivity,json=latencySensitivity,proto3" json:"latency_sensitivity,omitempty"` + IntEndpointEnable *bool `protobuf:"varint,2,opt,name=int_endpoint_enable,json=intEndpointEnable,proto3,oneof" json:"int_endpoint_enable,omitempty"` + IntTransitEnable *bool `protobuf:"varint,3,opt,name=int_transit_enable,json=intTransitEnable,proto3,oneof" json:"int_transit_enable,omitempty"` + PostcardEnable *bool `protobuf:"varint,4,opt,name=postcard_enable,json=postcardEnable,proto3,oneof" json:"postcard_enable,omitempty"` + DropReportEnable *bool `protobuf:"varint,5,opt,name=drop_report_enable,json=dropReportEnable,proto3,oneof" json:"drop_report_enable,omitempty"` + QueueReportEnable *bool `protobuf:"varint,6,opt,name=queue_report_enable,json=queueReportEnable,proto3,oneof" json:"queue_report_enable,omitempty"` + SwitchId *uint32 `protobuf:"varint,7,opt,name=switch_id,json=switchId,proto3,oneof" json:"switch_id,omitempty"` + FlowStateClearCycle *uint32 `protobuf:"varint,8,opt,name=flow_state_clear_cycle,json=flowStateClearCycle,proto3,oneof" json:"flow_state_clear_cycle,omitempty"` + LatencySensitivity *uint32 `protobuf:"varint,9,opt,name=latency_sensitivity,json=latencySensitivity,proto3,oneof" json:"latency_sensitivity,omitempty"` SinkPortList []uint64 `protobuf:"varint,10,rep,packed,name=sink_port_list,json=sinkPortList,proto3" json:"sink_port_list,omitempty"` - IntL4Dscp *AclFieldData `protobuf:"bytes,11,opt,name=int_l4_dscp,json=intL4Dscp,proto3" json:"int_l4_dscp,omitempty"` + IntL4Dscp *AclFieldData `protobuf:"bytes,11,opt,name=int_l4_dscp,json=intL4Dscp,proto3,oneof" json:"int_l4_dscp,omitempty"` } func (x *CreateDtelRequest) Reset() { @@ -384,57 +384,57 @@ func (x *CreateDtelRequest) GetSwitch() uint64 { } func (x *CreateDtelRequest) GetIntEndpointEnable() bool { - if x != nil { - return x.IntEndpointEnable + if x != nil && x.IntEndpointEnable != nil { + return *x.IntEndpointEnable } return false } func (x *CreateDtelRequest) GetIntTransitEnable() bool { - if x != nil { - return x.IntTransitEnable + if x != nil && x.IntTransitEnable != nil { + return *x.IntTransitEnable } return false } func (x *CreateDtelRequest) GetPostcardEnable() bool { - if x != nil { - return x.PostcardEnable + if x != nil && x.PostcardEnable != nil { + return *x.PostcardEnable } return false } func (x *CreateDtelRequest) GetDropReportEnable() bool { - if x != nil { - return x.DropReportEnable + if x != nil && x.DropReportEnable != nil { + return *x.DropReportEnable } return false } func (x *CreateDtelRequest) GetQueueReportEnable() bool { - if x != nil { - return x.QueueReportEnable + if x != nil && x.QueueReportEnable != nil { + return *x.QueueReportEnable } return false } func (x *CreateDtelRequest) GetSwitchId() uint32 { - if x != nil { - return x.SwitchId + if x != nil && x.SwitchId != nil { + return *x.SwitchId } return 0 } func (x *CreateDtelRequest) GetFlowStateClearCycle() uint32 { - if x != nil { - return x.FlowStateClearCycle + if x != nil && x.FlowStateClearCycle != nil { + return *x.FlowStateClearCycle } return 0 } func (x *CreateDtelRequest) GetLatencySensitivity() uint32 { - if x != nil { - return x.LatencySensitivity + if x != nil && x.LatencySensitivity != nil { + return *x.LatencySensitivity } return 0 } @@ -590,20 +590,17 @@ type SetDtelAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetDtelAttributeRequest_IntEndpointEnable - // *SetDtelAttributeRequest_IntTransitEnable - // *SetDtelAttributeRequest_PostcardEnable - // *SetDtelAttributeRequest_DropReportEnable - // *SetDtelAttributeRequest_QueueReportEnable - // *SetDtelAttributeRequest_SwitchId - // *SetDtelAttributeRequest_FlowStateClearCycle - // *SetDtelAttributeRequest_LatencySensitivity - // *SetDtelAttributeRequest_SinkPortList - // *SetDtelAttributeRequest_IntL4Dscp - Attr isSetDtelAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + IntEndpointEnable *bool `protobuf:"varint,2,opt,name=int_endpoint_enable,json=intEndpointEnable,proto3,oneof" json:"int_endpoint_enable,omitempty"` + IntTransitEnable *bool `protobuf:"varint,3,opt,name=int_transit_enable,json=intTransitEnable,proto3,oneof" json:"int_transit_enable,omitempty"` + PostcardEnable *bool `protobuf:"varint,4,opt,name=postcard_enable,json=postcardEnable,proto3,oneof" json:"postcard_enable,omitempty"` + DropReportEnable *bool `protobuf:"varint,5,opt,name=drop_report_enable,json=dropReportEnable,proto3,oneof" json:"drop_report_enable,omitempty"` + QueueReportEnable *bool `protobuf:"varint,6,opt,name=queue_report_enable,json=queueReportEnable,proto3,oneof" json:"queue_report_enable,omitempty"` + SwitchId *uint32 `protobuf:"varint,7,opt,name=switch_id,json=switchId,proto3,oneof" json:"switch_id,omitempty"` + FlowStateClearCycle *uint32 `protobuf:"varint,8,opt,name=flow_state_clear_cycle,json=flowStateClearCycle,proto3,oneof" json:"flow_state_clear_cycle,omitempty"` + LatencySensitivity *uint32 `protobuf:"varint,9,opt,name=latency_sensitivity,json=latencySensitivity,proto3,oneof" json:"latency_sensitivity,omitempty"` + SinkPortList []uint64 `protobuf:"varint,10,rep,packed,name=sink_port_list,json=sinkPortList,proto3" json:"sink_port_list,omitempty"` + IntL4Dscp *AclFieldData `protobuf:"bytes,11,opt,name=int_l4_dscp,json=intL4Dscp,proto3,oneof" json:"int_l4_dscp,omitempty"` } func (x *SetDtelAttributeRequest) Reset() { @@ -645,147 +642,76 @@ func (x *SetDtelAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetDtelAttributeRequest) GetAttr() isSetDtelAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetDtelAttributeRequest) GetIntEndpointEnable() bool { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_IntEndpointEnable); ok { - return x.IntEndpointEnable + if x != nil && x.IntEndpointEnable != nil { + return *x.IntEndpointEnable } return false } func (x *SetDtelAttributeRequest) GetIntTransitEnable() bool { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_IntTransitEnable); ok { - return x.IntTransitEnable + if x != nil && x.IntTransitEnable != nil { + return *x.IntTransitEnable } return false } func (x *SetDtelAttributeRequest) GetPostcardEnable() bool { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_PostcardEnable); ok { - return x.PostcardEnable + if x != nil && x.PostcardEnable != nil { + return *x.PostcardEnable } return false } func (x *SetDtelAttributeRequest) GetDropReportEnable() bool { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_DropReportEnable); ok { - return x.DropReportEnable + if x != nil && x.DropReportEnable != nil { + return *x.DropReportEnable } return false } func (x *SetDtelAttributeRequest) GetQueueReportEnable() bool { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_QueueReportEnable); ok { - return x.QueueReportEnable + if x != nil && x.QueueReportEnable != nil { + return *x.QueueReportEnable } return false } func (x *SetDtelAttributeRequest) GetSwitchId() uint32 { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_SwitchId); ok { - return x.SwitchId + if x != nil && x.SwitchId != nil { + return *x.SwitchId } return 0 } func (x *SetDtelAttributeRequest) GetFlowStateClearCycle() uint32 { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_FlowStateClearCycle); ok { - return x.FlowStateClearCycle + if x != nil && x.FlowStateClearCycle != nil { + return *x.FlowStateClearCycle } return 0 } func (x *SetDtelAttributeRequest) GetLatencySensitivity() uint32 { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_LatencySensitivity); ok { - return x.LatencySensitivity + if x != nil && x.LatencySensitivity != nil { + return *x.LatencySensitivity } return 0 } -func (x *SetDtelAttributeRequest) GetSinkPortList() *Uint64List { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_SinkPortList); ok { +func (x *SetDtelAttributeRequest) GetSinkPortList() []uint64 { + if x != nil { return x.SinkPortList } return nil } func (x *SetDtelAttributeRequest) GetIntL4Dscp() *AclFieldData { - if x, ok := x.GetAttr().(*SetDtelAttributeRequest_IntL4Dscp); ok { + if x != nil { return x.IntL4Dscp } return nil } -type isSetDtelAttributeRequest_Attr interface { - isSetDtelAttributeRequest_Attr() -} - -type SetDtelAttributeRequest_IntEndpointEnable struct { - IntEndpointEnable bool `protobuf:"varint,2,opt,name=int_endpoint_enable,json=intEndpointEnable,proto3,oneof"` -} - -type SetDtelAttributeRequest_IntTransitEnable struct { - IntTransitEnable bool `protobuf:"varint,3,opt,name=int_transit_enable,json=intTransitEnable,proto3,oneof"` -} - -type SetDtelAttributeRequest_PostcardEnable struct { - PostcardEnable bool `protobuf:"varint,4,opt,name=postcard_enable,json=postcardEnable,proto3,oneof"` -} - -type SetDtelAttributeRequest_DropReportEnable struct { - DropReportEnable bool `protobuf:"varint,5,opt,name=drop_report_enable,json=dropReportEnable,proto3,oneof"` -} - -type SetDtelAttributeRequest_QueueReportEnable struct { - QueueReportEnable bool `protobuf:"varint,6,opt,name=queue_report_enable,json=queueReportEnable,proto3,oneof"` -} - -type SetDtelAttributeRequest_SwitchId struct { - SwitchId uint32 `protobuf:"varint,7,opt,name=switch_id,json=switchId,proto3,oneof"` -} - -type SetDtelAttributeRequest_FlowStateClearCycle struct { - FlowStateClearCycle uint32 `protobuf:"varint,8,opt,name=flow_state_clear_cycle,json=flowStateClearCycle,proto3,oneof"` -} - -type SetDtelAttributeRequest_LatencySensitivity struct { - LatencySensitivity uint32 `protobuf:"varint,9,opt,name=latency_sensitivity,json=latencySensitivity,proto3,oneof"` -} - -type SetDtelAttributeRequest_SinkPortList struct { - SinkPortList *Uint64List `protobuf:"bytes,10,opt,name=sink_port_list,json=sinkPortList,proto3,oneof"` -} - -type SetDtelAttributeRequest_IntL4Dscp struct { - IntL4Dscp *AclFieldData `protobuf:"bytes,11,opt,name=int_l4_dscp,json=intL4Dscp,proto3,oneof"` -} - -func (*SetDtelAttributeRequest_IntEndpointEnable) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_IntTransitEnable) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_PostcardEnable) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_DropReportEnable) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_QueueReportEnable) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_SwitchId) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_FlowStateClearCycle) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_LatencySensitivity) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_SinkPortList) isSetDtelAttributeRequest_Attr() {} - -func (*SetDtelAttributeRequest_IntL4Dscp) isSetDtelAttributeRequest_Attr() {} - type SetDtelAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -884,7 +810,7 @@ type GetDtelAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*DtelAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *DtelAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetDtelAttributeResponse) Reset() { @@ -919,7 +845,7 @@ func (*GetDtelAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_dtel_proto_rawDescGZIP(), []int{7} } -func (x *GetDtelAttributeResponse) GetAttr() []*DtelAttribute { +func (x *GetDtelAttributeResponse) GetAttr() *DtelAttribute { if x != nil { return x.Attr } @@ -931,12 +857,12 @@ type CreateDtelQueueReportRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - QueueId uint64 `protobuf:"varint,2,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` - DepthThreshold uint32 `protobuf:"varint,3,opt,name=depth_threshold,json=depthThreshold,proto3" json:"depth_threshold,omitempty"` - LatencyThreshold uint32 `protobuf:"varint,4,opt,name=latency_threshold,json=latencyThreshold,proto3" json:"latency_threshold,omitempty"` - BreachQuota uint32 `protobuf:"varint,5,opt,name=breach_quota,json=breachQuota,proto3" json:"breach_quota,omitempty"` - TailDrop bool `protobuf:"varint,6,opt,name=tail_drop,json=tailDrop,proto3" json:"tail_drop,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + QueueId *uint64 `protobuf:"varint,2,opt,name=queue_id,json=queueId,proto3,oneof" json:"queue_id,omitempty"` + DepthThreshold *uint32 `protobuf:"varint,3,opt,name=depth_threshold,json=depthThreshold,proto3,oneof" json:"depth_threshold,omitempty"` + LatencyThreshold *uint32 `protobuf:"varint,4,opt,name=latency_threshold,json=latencyThreshold,proto3,oneof" json:"latency_threshold,omitempty"` + BreachQuota *uint32 `protobuf:"varint,5,opt,name=breach_quota,json=breachQuota,proto3,oneof" json:"breach_quota,omitempty"` + TailDrop *bool `protobuf:"varint,6,opt,name=tail_drop,json=tailDrop,proto3,oneof" json:"tail_drop,omitempty"` } func (x *CreateDtelQueueReportRequest) Reset() { @@ -979,36 +905,36 @@ func (x *CreateDtelQueueReportRequest) GetSwitch() uint64 { } func (x *CreateDtelQueueReportRequest) GetQueueId() uint64 { - if x != nil { - return x.QueueId + if x != nil && x.QueueId != nil { + return *x.QueueId } return 0 } func (x *CreateDtelQueueReportRequest) GetDepthThreshold() uint32 { - if x != nil { - return x.DepthThreshold + if x != nil && x.DepthThreshold != nil { + return *x.DepthThreshold } return 0 } func (x *CreateDtelQueueReportRequest) GetLatencyThreshold() uint32 { - if x != nil { - return x.LatencyThreshold + if x != nil && x.LatencyThreshold != nil { + return *x.LatencyThreshold } return 0 } func (x *CreateDtelQueueReportRequest) GetBreachQuota() uint32 { - if x != nil { - return x.BreachQuota + if x != nil && x.BreachQuota != nil { + return *x.BreachQuota } return 0 } func (x *CreateDtelQueueReportRequest) GetTailDrop() bool { - if x != nil { - return x.TailDrop + if x != nil && x.TailDrop != nil { + return *x.TailDrop } return false } @@ -1150,14 +1076,11 @@ type SetDtelQueueReportAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetDtelQueueReportAttributeRequest_DepthThreshold - // *SetDtelQueueReportAttributeRequest_LatencyThreshold - // *SetDtelQueueReportAttributeRequest_BreachQuota - // *SetDtelQueueReportAttributeRequest_TailDrop - Attr isSetDtelQueueReportAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + DepthThreshold *uint32 `protobuf:"varint,2,opt,name=depth_threshold,json=depthThreshold,proto3,oneof" json:"depth_threshold,omitempty"` + LatencyThreshold *uint32 `protobuf:"varint,3,opt,name=latency_threshold,json=latencyThreshold,proto3,oneof" json:"latency_threshold,omitempty"` + BreachQuota *uint32 `protobuf:"varint,4,opt,name=breach_quota,json=breachQuota,proto3,oneof" json:"breach_quota,omitempty"` + TailDrop *bool `protobuf:"varint,5,opt,name=tail_drop,json=tailDrop,proto3,oneof" json:"tail_drop,omitempty"` } func (x *SetDtelQueueReportAttributeRequest) Reset() { @@ -1199,71 +1122,34 @@ func (x *SetDtelQueueReportAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetDtelQueueReportAttributeRequest) GetAttr() isSetDtelQueueReportAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetDtelQueueReportAttributeRequest) GetDepthThreshold() uint32 { - if x, ok := x.GetAttr().(*SetDtelQueueReportAttributeRequest_DepthThreshold); ok { - return x.DepthThreshold + if x != nil && x.DepthThreshold != nil { + return *x.DepthThreshold } return 0 } func (x *SetDtelQueueReportAttributeRequest) GetLatencyThreshold() uint32 { - if x, ok := x.GetAttr().(*SetDtelQueueReportAttributeRequest_LatencyThreshold); ok { - return x.LatencyThreshold + if x != nil && x.LatencyThreshold != nil { + return *x.LatencyThreshold } return 0 } func (x *SetDtelQueueReportAttributeRequest) GetBreachQuota() uint32 { - if x, ok := x.GetAttr().(*SetDtelQueueReportAttributeRequest_BreachQuota); ok { - return x.BreachQuota + if x != nil && x.BreachQuota != nil { + return *x.BreachQuota } return 0 } func (x *SetDtelQueueReportAttributeRequest) GetTailDrop() bool { - if x, ok := x.GetAttr().(*SetDtelQueueReportAttributeRequest_TailDrop); ok { - return x.TailDrop + if x != nil && x.TailDrop != nil { + return *x.TailDrop } return false } -type isSetDtelQueueReportAttributeRequest_Attr interface { - isSetDtelQueueReportAttributeRequest_Attr() -} - -type SetDtelQueueReportAttributeRequest_DepthThreshold struct { - DepthThreshold uint32 `protobuf:"varint,2,opt,name=depth_threshold,json=depthThreshold,proto3,oneof"` -} - -type SetDtelQueueReportAttributeRequest_LatencyThreshold struct { - LatencyThreshold uint32 `protobuf:"varint,3,opt,name=latency_threshold,json=latencyThreshold,proto3,oneof"` -} - -type SetDtelQueueReportAttributeRequest_BreachQuota struct { - BreachQuota uint32 `protobuf:"varint,4,opt,name=breach_quota,json=breachQuota,proto3,oneof"` -} - -type SetDtelQueueReportAttributeRequest_TailDrop struct { - TailDrop bool `protobuf:"varint,5,opt,name=tail_drop,json=tailDrop,proto3,oneof"` -} - -func (*SetDtelQueueReportAttributeRequest_DepthThreshold) isSetDtelQueueReportAttributeRequest_Attr() { -} - -func (*SetDtelQueueReportAttributeRequest_LatencyThreshold) isSetDtelQueueReportAttributeRequest_Attr() { -} - -func (*SetDtelQueueReportAttributeRequest_BreachQuota) isSetDtelQueueReportAttributeRequest_Attr() {} - -func (*SetDtelQueueReportAttributeRequest_TailDrop) isSetDtelQueueReportAttributeRequest_Attr() {} - type SetDtelQueueReportAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1362,7 +1248,7 @@ type GetDtelQueueReportAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*DtelQueueReportAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *DtelQueueReportAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetDtelQueueReportAttributeResponse) Reset() { @@ -1397,7 +1283,7 @@ func (*GetDtelQueueReportAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_dtel_proto_rawDescGZIP(), []int{15} } -func (x *GetDtelQueueReportAttributeResponse) GetAttr() []*DtelQueueReportAttribute { +func (x *GetDtelQueueReportAttributeResponse) GetAttr() *DtelQueueReportAttribute { if x != nil { return x.Attr } @@ -1409,13 +1295,13 @@ type CreateDtelIntSessionRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - MaxHopCount uint32 `protobuf:"varint,2,opt,name=max_hop_count,json=maxHopCount,proto3" json:"max_hop_count,omitempty"` - CollectSwitchId bool `protobuf:"varint,3,opt,name=collect_switch_id,json=collectSwitchId,proto3" json:"collect_switch_id,omitempty"` - CollectSwitchPorts bool `protobuf:"varint,4,opt,name=collect_switch_ports,json=collectSwitchPorts,proto3" json:"collect_switch_ports,omitempty"` - CollectIngressTimestamp bool `protobuf:"varint,5,opt,name=collect_ingress_timestamp,json=collectIngressTimestamp,proto3" json:"collect_ingress_timestamp,omitempty"` - CollectEgressTimestamp bool `protobuf:"varint,6,opt,name=collect_egress_timestamp,json=collectEgressTimestamp,proto3" json:"collect_egress_timestamp,omitempty"` - CollectQueueInfo bool `protobuf:"varint,7,opt,name=collect_queue_info,json=collectQueueInfo,proto3" json:"collect_queue_info,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + MaxHopCount *uint32 `protobuf:"varint,2,opt,name=max_hop_count,json=maxHopCount,proto3,oneof" json:"max_hop_count,omitempty"` + CollectSwitchId *bool `protobuf:"varint,3,opt,name=collect_switch_id,json=collectSwitchId,proto3,oneof" json:"collect_switch_id,omitempty"` + CollectSwitchPorts *bool `protobuf:"varint,4,opt,name=collect_switch_ports,json=collectSwitchPorts,proto3,oneof" json:"collect_switch_ports,omitempty"` + CollectIngressTimestamp *bool `protobuf:"varint,5,opt,name=collect_ingress_timestamp,json=collectIngressTimestamp,proto3,oneof" json:"collect_ingress_timestamp,omitempty"` + CollectEgressTimestamp *bool `protobuf:"varint,6,opt,name=collect_egress_timestamp,json=collectEgressTimestamp,proto3,oneof" json:"collect_egress_timestamp,omitempty"` + CollectQueueInfo *bool `protobuf:"varint,7,opt,name=collect_queue_info,json=collectQueueInfo,proto3,oneof" json:"collect_queue_info,omitempty"` } func (x *CreateDtelIntSessionRequest) Reset() { @@ -1458,43 +1344,43 @@ func (x *CreateDtelIntSessionRequest) GetSwitch() uint64 { } func (x *CreateDtelIntSessionRequest) GetMaxHopCount() uint32 { - if x != nil { - return x.MaxHopCount + if x != nil && x.MaxHopCount != nil { + return *x.MaxHopCount } return 0 } func (x *CreateDtelIntSessionRequest) GetCollectSwitchId() bool { - if x != nil { - return x.CollectSwitchId + if x != nil && x.CollectSwitchId != nil { + return *x.CollectSwitchId } return false } func (x *CreateDtelIntSessionRequest) GetCollectSwitchPorts() bool { - if x != nil { - return x.CollectSwitchPorts + if x != nil && x.CollectSwitchPorts != nil { + return *x.CollectSwitchPorts } return false } func (x *CreateDtelIntSessionRequest) GetCollectIngressTimestamp() bool { - if x != nil { - return x.CollectIngressTimestamp + if x != nil && x.CollectIngressTimestamp != nil { + return *x.CollectIngressTimestamp } return false } func (x *CreateDtelIntSessionRequest) GetCollectEgressTimestamp() bool { - if x != nil { - return x.CollectEgressTimestamp + if x != nil && x.CollectEgressTimestamp != nil { + return *x.CollectEgressTimestamp } return false } func (x *CreateDtelIntSessionRequest) GetCollectQueueInfo() bool { - if x != nil { - return x.CollectQueueInfo + if x != nil && x.CollectQueueInfo != nil { + return *x.CollectQueueInfo } return false } @@ -1636,16 +1522,13 @@ type SetDtelIntSessionAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetDtelIntSessionAttributeRequest_MaxHopCount - // *SetDtelIntSessionAttributeRequest_CollectSwitchId - // *SetDtelIntSessionAttributeRequest_CollectSwitchPorts - // *SetDtelIntSessionAttributeRequest_CollectIngressTimestamp - // *SetDtelIntSessionAttributeRequest_CollectEgressTimestamp - // *SetDtelIntSessionAttributeRequest_CollectQueueInfo - Attr isSetDtelIntSessionAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + MaxHopCount *uint32 `protobuf:"varint,2,opt,name=max_hop_count,json=maxHopCount,proto3,oneof" json:"max_hop_count,omitempty"` + CollectSwitchId *bool `protobuf:"varint,3,opt,name=collect_switch_id,json=collectSwitchId,proto3,oneof" json:"collect_switch_id,omitempty"` + CollectSwitchPorts *bool `protobuf:"varint,4,opt,name=collect_switch_ports,json=collectSwitchPorts,proto3,oneof" json:"collect_switch_ports,omitempty"` + CollectIngressTimestamp *bool `protobuf:"varint,5,opt,name=collect_ingress_timestamp,json=collectIngressTimestamp,proto3,oneof" json:"collect_ingress_timestamp,omitempty"` + CollectEgressTimestamp *bool `protobuf:"varint,6,opt,name=collect_egress_timestamp,json=collectEgressTimestamp,proto3,oneof" json:"collect_egress_timestamp,omitempty"` + CollectQueueInfo *bool `protobuf:"varint,7,opt,name=collect_queue_info,json=collectQueueInfo,proto3,oneof" json:"collect_queue_info,omitempty"` } func (x *SetDtelIntSessionAttributeRequest) Reset() { @@ -1687,100 +1570,48 @@ func (x *SetDtelIntSessionAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetDtelIntSessionAttributeRequest) GetAttr() isSetDtelIntSessionAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetDtelIntSessionAttributeRequest) GetMaxHopCount() uint32 { - if x, ok := x.GetAttr().(*SetDtelIntSessionAttributeRequest_MaxHopCount); ok { - return x.MaxHopCount + if x != nil && x.MaxHopCount != nil { + return *x.MaxHopCount } return 0 } func (x *SetDtelIntSessionAttributeRequest) GetCollectSwitchId() bool { - if x, ok := x.GetAttr().(*SetDtelIntSessionAttributeRequest_CollectSwitchId); ok { - return x.CollectSwitchId + if x != nil && x.CollectSwitchId != nil { + return *x.CollectSwitchId } return false } func (x *SetDtelIntSessionAttributeRequest) GetCollectSwitchPorts() bool { - if x, ok := x.GetAttr().(*SetDtelIntSessionAttributeRequest_CollectSwitchPorts); ok { - return x.CollectSwitchPorts + if x != nil && x.CollectSwitchPorts != nil { + return *x.CollectSwitchPorts } return false } func (x *SetDtelIntSessionAttributeRequest) GetCollectIngressTimestamp() bool { - if x, ok := x.GetAttr().(*SetDtelIntSessionAttributeRequest_CollectIngressTimestamp); ok { - return x.CollectIngressTimestamp + if x != nil && x.CollectIngressTimestamp != nil { + return *x.CollectIngressTimestamp } return false } func (x *SetDtelIntSessionAttributeRequest) GetCollectEgressTimestamp() bool { - if x, ok := x.GetAttr().(*SetDtelIntSessionAttributeRequest_CollectEgressTimestamp); ok { - return x.CollectEgressTimestamp + if x != nil && x.CollectEgressTimestamp != nil { + return *x.CollectEgressTimestamp } return false } func (x *SetDtelIntSessionAttributeRequest) GetCollectQueueInfo() bool { - if x, ok := x.GetAttr().(*SetDtelIntSessionAttributeRequest_CollectQueueInfo); ok { - return x.CollectQueueInfo + if x != nil && x.CollectQueueInfo != nil { + return *x.CollectQueueInfo } return false } -type isSetDtelIntSessionAttributeRequest_Attr interface { - isSetDtelIntSessionAttributeRequest_Attr() -} - -type SetDtelIntSessionAttributeRequest_MaxHopCount struct { - MaxHopCount uint32 `protobuf:"varint,2,opt,name=max_hop_count,json=maxHopCount,proto3,oneof"` -} - -type SetDtelIntSessionAttributeRequest_CollectSwitchId struct { - CollectSwitchId bool `protobuf:"varint,3,opt,name=collect_switch_id,json=collectSwitchId,proto3,oneof"` -} - -type SetDtelIntSessionAttributeRequest_CollectSwitchPorts struct { - CollectSwitchPorts bool `protobuf:"varint,4,opt,name=collect_switch_ports,json=collectSwitchPorts,proto3,oneof"` -} - -type SetDtelIntSessionAttributeRequest_CollectIngressTimestamp struct { - CollectIngressTimestamp bool `protobuf:"varint,5,opt,name=collect_ingress_timestamp,json=collectIngressTimestamp,proto3,oneof"` -} - -type SetDtelIntSessionAttributeRequest_CollectEgressTimestamp struct { - CollectEgressTimestamp bool `protobuf:"varint,6,opt,name=collect_egress_timestamp,json=collectEgressTimestamp,proto3,oneof"` -} - -type SetDtelIntSessionAttributeRequest_CollectQueueInfo struct { - CollectQueueInfo bool `protobuf:"varint,7,opt,name=collect_queue_info,json=collectQueueInfo,proto3,oneof"` -} - -func (*SetDtelIntSessionAttributeRequest_MaxHopCount) isSetDtelIntSessionAttributeRequest_Attr() {} - -func (*SetDtelIntSessionAttributeRequest_CollectSwitchId) isSetDtelIntSessionAttributeRequest_Attr() { -} - -func (*SetDtelIntSessionAttributeRequest_CollectSwitchPorts) isSetDtelIntSessionAttributeRequest_Attr() { -} - -func (*SetDtelIntSessionAttributeRequest_CollectIngressTimestamp) isSetDtelIntSessionAttributeRequest_Attr() { -} - -func (*SetDtelIntSessionAttributeRequest_CollectEgressTimestamp) isSetDtelIntSessionAttributeRequest_Attr() { -} - -func (*SetDtelIntSessionAttributeRequest_CollectQueueInfo) isSetDtelIntSessionAttributeRequest_Attr() { -} - type SetDtelIntSessionAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1879,7 +1710,7 @@ type GetDtelIntSessionAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*DtelIntSessionAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *DtelIntSessionAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetDtelIntSessionAttributeResponse) Reset() { @@ -1914,7 +1745,7 @@ func (*GetDtelIntSessionAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_dtel_proto_rawDescGZIP(), []int{23} } -func (x *GetDtelIntSessionAttributeResponse) GetAttr() []*DtelIntSessionAttribute { +func (x *GetDtelIntSessionAttributeResponse) GetAttr() *DtelIntSessionAttribute { if x != nil { return x.Attr } @@ -1927,11 +1758,11 @@ type CreateDtelReportSessionRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` + SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` DstIpList [][]byte `protobuf:"bytes,3,rep,name=dst_ip_list,json=dstIpList,proto3" json:"dst_ip_list,omitempty"` - VirtualRouterId uint64 `protobuf:"varint,4,opt,name=virtual_router_id,json=virtualRouterId,proto3" json:"virtual_router_id,omitempty"` - TruncateSize uint32 `protobuf:"varint,5,opt,name=truncate_size,json=truncateSize,proto3" json:"truncate_size,omitempty"` - UdpDstPort uint32 `protobuf:"varint,6,opt,name=udp_dst_port,json=udpDstPort,proto3" json:"udp_dst_port,omitempty"` + VirtualRouterId *uint64 `protobuf:"varint,4,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof" json:"virtual_router_id,omitempty"` + TruncateSize *uint32 `protobuf:"varint,5,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + UdpDstPort *uint32 `protobuf:"varint,6,opt,name=udp_dst_port,json=udpDstPort,proto3,oneof" json:"udp_dst_port,omitempty"` } func (x *CreateDtelReportSessionRequest) Reset() { @@ -1988,22 +1819,22 @@ func (x *CreateDtelReportSessionRequest) GetDstIpList() [][]byte { } func (x *CreateDtelReportSessionRequest) GetVirtualRouterId() uint64 { - if x != nil { - return x.VirtualRouterId + if x != nil && x.VirtualRouterId != nil { + return *x.VirtualRouterId } return 0 } func (x *CreateDtelReportSessionRequest) GetTruncateSize() uint32 { - if x != nil { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *CreateDtelReportSessionRequest) GetUdpDstPort() uint32 { - if x != nil { - return x.UdpDstPort + if x != nil && x.UdpDstPort != nil { + return *x.UdpDstPort } return 0 } @@ -2145,15 +1976,12 @@ type SetDtelReportSessionAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetDtelReportSessionAttributeRequest_SrcIp - // *SetDtelReportSessionAttributeRequest_DstIpList - // *SetDtelReportSessionAttributeRequest_VirtualRouterId - // *SetDtelReportSessionAttributeRequest_TruncateSize - // *SetDtelReportSessionAttributeRequest_UdpDstPort - Attr isSetDtelReportSessionAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + DstIpList [][]byte `protobuf:"bytes,3,rep,name=dst_ip_list,json=dstIpList,proto3" json:"dst_ip_list,omitempty"` + VirtualRouterId *uint64 `protobuf:"varint,4,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof" json:"virtual_router_id,omitempty"` + TruncateSize *uint32 `protobuf:"varint,5,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + UdpDstPort *uint32 `protobuf:"varint,6,opt,name=udp_dst_port,json=udpDstPort,proto3,oneof" json:"udp_dst_port,omitempty"` } func (x *SetDtelReportSessionAttributeRequest) Reset() { @@ -2195,86 +2023,41 @@ func (x *SetDtelReportSessionAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetDtelReportSessionAttributeRequest) GetAttr() isSetDtelReportSessionAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetDtelReportSessionAttributeRequest) GetSrcIp() []byte { - if x, ok := x.GetAttr().(*SetDtelReportSessionAttributeRequest_SrcIp); ok { + if x != nil { return x.SrcIp } return nil } -func (x *SetDtelReportSessionAttributeRequest) GetDstIpList() *BytesList { - if x, ok := x.GetAttr().(*SetDtelReportSessionAttributeRequest_DstIpList); ok { +func (x *SetDtelReportSessionAttributeRequest) GetDstIpList() [][]byte { + if x != nil { return x.DstIpList } return nil } func (x *SetDtelReportSessionAttributeRequest) GetVirtualRouterId() uint64 { - if x, ok := x.GetAttr().(*SetDtelReportSessionAttributeRequest_VirtualRouterId); ok { - return x.VirtualRouterId + if x != nil && x.VirtualRouterId != nil { + return *x.VirtualRouterId } return 0 } func (x *SetDtelReportSessionAttributeRequest) GetTruncateSize() uint32 { - if x, ok := x.GetAttr().(*SetDtelReportSessionAttributeRequest_TruncateSize); ok { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *SetDtelReportSessionAttributeRequest) GetUdpDstPort() uint32 { - if x, ok := x.GetAttr().(*SetDtelReportSessionAttributeRequest_UdpDstPort); ok { - return x.UdpDstPort + if x != nil && x.UdpDstPort != nil { + return *x.UdpDstPort } return 0 } -type isSetDtelReportSessionAttributeRequest_Attr interface { - isSetDtelReportSessionAttributeRequest_Attr() -} - -type SetDtelReportSessionAttributeRequest_SrcIp struct { - SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3,oneof"` -} - -type SetDtelReportSessionAttributeRequest_DstIpList struct { - DstIpList *BytesList `protobuf:"bytes,3,opt,name=dst_ip_list,json=dstIpList,proto3,oneof"` -} - -type SetDtelReportSessionAttributeRequest_VirtualRouterId struct { - VirtualRouterId uint64 `protobuf:"varint,4,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof"` -} - -type SetDtelReportSessionAttributeRequest_TruncateSize struct { - TruncateSize uint32 `protobuf:"varint,5,opt,name=truncate_size,json=truncateSize,proto3,oneof"` -} - -type SetDtelReportSessionAttributeRequest_UdpDstPort struct { - UdpDstPort uint32 `protobuf:"varint,6,opt,name=udp_dst_port,json=udpDstPort,proto3,oneof"` -} - -func (*SetDtelReportSessionAttributeRequest_SrcIp) isSetDtelReportSessionAttributeRequest_Attr() {} - -func (*SetDtelReportSessionAttributeRequest_DstIpList) isSetDtelReportSessionAttributeRequest_Attr() { -} - -func (*SetDtelReportSessionAttributeRequest_VirtualRouterId) isSetDtelReportSessionAttributeRequest_Attr() { -} - -func (*SetDtelReportSessionAttributeRequest_TruncateSize) isSetDtelReportSessionAttributeRequest_Attr() { -} - -func (*SetDtelReportSessionAttributeRequest_UdpDstPort) isSetDtelReportSessionAttributeRequest_Attr() { -} - type SetDtelReportSessionAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2373,7 +2156,7 @@ type GetDtelReportSessionAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*DtelReportSessionAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *DtelReportSessionAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetDtelReportSessionAttributeResponse) Reset() { @@ -2408,7 +2191,7 @@ func (*GetDtelReportSessionAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_dtel_proto_rawDescGZIP(), []int{31} } -func (x *GetDtelReportSessionAttributeResponse) GetAttr() []*DtelReportSessionAttribute { +func (x *GetDtelReportSessionAttributeResponse) GetAttr() *DtelReportSessionAttribute { if x != nil { return x.Attr } @@ -2420,10 +2203,10 @@ type CreateDtelEventRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type DtelEventType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.DtelEventType" json:"type,omitempty"` - ReportSession uint64 `protobuf:"varint,3,opt,name=report_session,json=reportSession,proto3" json:"report_session,omitempty"` - DscpValue uint32 `protobuf:"varint,4,opt,name=dscp_value,json=dscpValue,proto3" json:"dscp_value,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *DtelEventType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.DtelEventType,oneof" json:"type,omitempty"` + ReportSession *uint64 `protobuf:"varint,3,opt,name=report_session,json=reportSession,proto3,oneof" json:"report_session,omitempty"` + DscpValue *uint32 `protobuf:"varint,4,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *CreateDtelEventRequest) Reset() { @@ -2466,22 +2249,22 @@ func (x *CreateDtelEventRequest) GetSwitch() uint64 { } func (x *CreateDtelEventRequest) GetType() DtelEventType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return DtelEventType_DTEL_EVENT_TYPE_UNSPECIFIED } func (x *CreateDtelEventRequest) GetReportSession() uint64 { - if x != nil { - return x.ReportSession + if x != nil && x.ReportSession != nil { + return *x.ReportSession } return 0 } func (x *CreateDtelEventRequest) GetDscpValue() uint32 { - if x != nil { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } @@ -2623,12 +2406,9 @@ type SetDtelEventAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetDtelEventAttributeRequest_ReportSession - // *SetDtelEventAttributeRequest_DscpValue - Attr isSetDtelEventAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + ReportSession *uint64 `protobuf:"varint,2,opt,name=report_session,json=reportSession,proto3,oneof" json:"report_session,omitempty"` + DscpValue *uint32 `protobuf:"varint,3,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *SetDtelEventAttributeRequest) Reset() { @@ -2670,43 +2450,20 @@ func (x *SetDtelEventAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetDtelEventAttributeRequest) GetAttr() isSetDtelEventAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetDtelEventAttributeRequest) GetReportSession() uint64 { - if x, ok := x.GetAttr().(*SetDtelEventAttributeRequest_ReportSession); ok { - return x.ReportSession + if x != nil && x.ReportSession != nil { + return *x.ReportSession } return 0 } func (x *SetDtelEventAttributeRequest) GetDscpValue() uint32 { - if x, ok := x.GetAttr().(*SetDtelEventAttributeRequest_DscpValue); ok { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } -type isSetDtelEventAttributeRequest_Attr interface { - isSetDtelEventAttributeRequest_Attr() -} - -type SetDtelEventAttributeRequest_ReportSession struct { - ReportSession uint64 `protobuf:"varint,2,opt,name=report_session,json=reportSession,proto3,oneof"` -} - -type SetDtelEventAttributeRequest_DscpValue struct { - DscpValue uint32 `protobuf:"varint,3,opt,name=dscp_value,json=dscpValue,proto3,oneof"` -} - -func (*SetDtelEventAttributeRequest_ReportSession) isSetDtelEventAttributeRequest_Attr() {} - -func (*SetDtelEventAttributeRequest_DscpValue) isSetDtelEventAttributeRequest_Attr() {} - type SetDtelEventAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2805,7 +2562,7 @@ type GetDtelEventAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*DtelEventAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *DtelEventAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetDtelEventAttributeResponse) Reset() { @@ -2840,7 +2597,7 @@ func (*GetDtelEventAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_dtel_proto_rawDescGZIP(), []int{39} } -func (x *GetDtelEventAttributeResponse) GetAttr() []*DtelEventAttribute { +func (x *GetDtelEventAttributeResponse) GetAttr() *DtelEventAttribute { if x != nil { return x.Attr } @@ -2856,171 +2613,233 @@ var file_dataplane_standalone_proto_dtel_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfe, 0x03, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x06, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x39, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x6f, - 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, - 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x71, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x16, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x79, 0x63, 0x6c, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x13, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x24, 0x0a, - 0x0e, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, - 0x63, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x69, - 0x6e, 0x74, 0x4c, 0x34, 0x44, 0x73, 0x63, 0x70, 0x22, 0x26, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x70, 0x6f, 0x73, + 0x74, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, + 0x63, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x12, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x03, 0x52, 0x10, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x11, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x08, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x79, + 0x63, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x06, 0x52, 0x13, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x65, 0x61, + 0x72, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x12, + 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x63, 0x70, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, + 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0a, 0x48, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x4c, 0x34, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, + 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x34, 0x5f, + 0x64, 0x73, 0x63, 0x70, 0x22, 0x26, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, + 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x25, 0x0a, 0x11, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x06, 0x0a, 0x17, 0x53, 0x65, + 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbd, 0x04, - 0x0a, 0x17, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x69, - 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, - 0x12, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, - 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x63, 0x61, - 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x72, 0x6f, 0x70, - 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x75, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x5f, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x11, 0x69, 0x6e, + 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x70, + 0x6f, 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0e, 0x70, 0x6f, + 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x12, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x03, 0x52, 0x10, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x71, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x16, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x79, - 0x63, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x13, 0x66, 0x6c, 0x6f, - 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x79, 0x63, 0x6c, 0x65, - 0x12, 0x31, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, - 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, - 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x4c, - 0x34, 0x44, 0x73, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1a, 0x0a, - 0x18, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x38, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xe7, 0x01, 0x0a, 0x1c, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x12, 0x27, - 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x71, - 0x75, 0x6f, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x69, 0x6c, 0x5f, - 0x64, 0x72, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x61, 0x69, 0x6c, - 0x44, 0x72, 0x6f, 0x70, 0x22, 0x31, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, - 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x11, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x08, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, + 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x06, 0x52, 0x13, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, + 0x65, 0x61, 0x72, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, + 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x6b, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, + 0x63, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x4c, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x72, 0x64, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x5f, 0x69, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x6c, + 0x34, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, + 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x3c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x41, + 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x22, 0xf4, 0x02, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, + 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x08, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, + 0x0a, 0x0c, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0b, 0x62, 0x72, + 0x65, 0x61, 0x63, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, + 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, + 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, + 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x22, 0x31, 0x0a, 0x1d, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, 0x0a, + 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xc1, 0x02, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdc, 0x01, 0x0a, 0x22, 0x53, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x0f, 0x64, 0x65, 0x70, + 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x74, + 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x11, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, + 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, + 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x02, 0x52, 0x0b, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x08, + 0x74, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x5f, + 0x64, 0x72, 0x6f, 0x70, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, - 0x64, 0x65, 0x70, 0x74, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2d, - 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x61, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x23, 0x0a, - 0x0c, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x51, 0x75, 0x6f, - 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x09, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x72, 0x6f, - 0x70, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x65, 0x74, - 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x7f, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x6a, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x6f, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xdb, 0x02, - 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, - 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x18, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2c, 0x0a, - 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x30, 0x0a, 0x1c, 0x43, + 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x23, + 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xb0, 0x04, 0x0a, 0x1b, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x12, 0x2d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x35, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x12, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x19, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x17, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x04, 0x52, 0x16, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2f, 0x0a, @@ -3028,409 +2847,440 @@ var file_dataplane_standalone_proto_dtel_proto_rawDesc = []byte{ 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xef, - 0x02, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb0, + 0x04, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, - 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x3c, - 0x0a, 0x19, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3a, 0x0a, 0x18, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x16, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x22, 0x24, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x02, 0x52, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x19, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x03, 0x52, 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x18, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x16, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, + 0x1c, 0x0a, 0x1a, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x44, 0x74, + 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x46, + 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, + 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x46, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, - 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, - 0xe2, 0x01, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x22, 0xd8, 0x02, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x06, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, + 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, + 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x64, + 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x75, + 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, + 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x33, 0x0a, 0x1f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x32, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, - 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, - 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x22, 0x33, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x1e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x21, 0x0a, - 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x96, 0x02, 0x0a, 0x24, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x73, - 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x72, 0x63, 0x49, 0x70, 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x64, - 0x73, 0x74, 0x49, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x27, 0x0a, 0x25, 0x53, 0x65, 0x74, - 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x49, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, - 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6e, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x44, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x24, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x45, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xb0, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x38, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, - 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, 0x0a, 0x17, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, - 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x82, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0a, 0x64, - 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, + 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x11, 0x76, 0x69, + 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x0f, 0x76, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, + 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, + 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x69, + 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x22, 0x27, 0x0a, 0x25, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x24, + 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x6e, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x61, 0x74, + 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, + 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, + 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, + 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, + 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, - 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe9, 0x02, 0x0a, 0x08, 0x44, - 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x54, 0x45, 0x4c, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x49, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x41, - 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x5f, 0x45, - 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x54, 0x45, 0x4c, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, 0x4e, - 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x54, 0x45, 0x4c, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x44, - 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x49, 0x44, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x45, - 0x41, 0x52, 0x5f, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x54, - 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, - 0x53, 0x45, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x10, 0x08, 0x12, 0x1c, 0x0a, - 0x18, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x09, 0x12, 0x19, 0x0a, 0x15, 0x44, - 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x4c, 0x34, 0x5f, - 0x44, 0x53, 0x43, 0x50, 0x10, 0x0a, 0x2a, 0x8b, 0x02, 0x0a, 0x13, 0x44, 0x74, 0x65, 0x6c, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x26, - 0x0a, 0x22, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x44, - 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x50, 0x54, 0x48, 0x5f, 0x54, 0x48, 0x52, 0x45, - 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x02, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x54, 0x45, 0x4c, 0x5f, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe9, 0x02, 0x0a, 0x08, + 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x54, 0x45, 0x4c, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x54, 0x45, 0x4c, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x54, 0x45, 0x4c, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x54, 0x45, + 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, + 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4c, + 0x45, 0x41, 0x52, 0x5f, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, 0x44, + 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, 0x43, 0x59, + 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x10, 0x08, 0x12, 0x1c, + 0x0a, 0x18, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x49, 0x4e, 0x4b, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x09, 0x12, 0x19, 0x0a, 0x15, + 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x4c, 0x34, + 0x5f, 0x44, 0x53, 0x43, 0x50, 0x10, 0x0a, 0x2a, 0x8b, 0x02, 0x0a, 0x13, 0x44, 0x74, 0x65, 0x6c, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, + 0x26, 0x0a, 0x22, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, - 0x4f, 0x4c, 0x44, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, - 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x42, 0x52, 0x45, 0x41, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x10, 0x04, 0x12, 0x24, - 0x0a, 0x20, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, 0x52, - 0x4f, 0x50, 0x10, 0x05, 0x2a, 0xd8, 0x02, 0x0a, 0x12, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x44, - 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, - 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, - 0x48, 0x4f, 0x50, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x44, - 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x2e, 0x0a, 0x2a, 0x44, 0x54, 0x45, 0x4c, - 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x03, 0x12, 0x33, 0x0a, 0x2f, 0x44, 0x54, 0x45, 0x4c, - 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, - 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x04, 0x12, 0x32, 0x0a, - 0x2e, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x45, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, - 0x05, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, - 0x43, 0x54, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x06, 0x2a, - 0x97, 0x02, 0x0a, 0x15, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x54, 0x45, - 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x52, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, + 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x50, 0x54, 0x48, 0x5f, 0x54, 0x48, 0x52, + 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x02, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x54, 0x45, 0x4c, + 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, + 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, + 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x42, 0x52, 0x45, 0x41, 0x43, 0x48, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x10, 0x04, 0x12, + 0x24, 0x0a, 0x20, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x49, 0x4c, 0x5f, 0x44, + 0x52, 0x4f, 0x50, 0x10, 0x05, 0x2a, 0xd8, 0x02, 0x0a, 0x12, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x25, 0x0a, 0x21, + 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, + 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, + 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, + 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x2e, 0x0a, 0x2a, 0x44, 0x54, 0x45, + 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x03, 0x12, 0x33, 0x0a, 0x2f, 0x44, 0x54, 0x45, + 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x04, 0x12, 0x32, + 0x0a, 0x2e, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, + 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, + 0x10, 0x05, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, + 0x45, 0x43, 0x54, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x06, + 0x2a, 0x97, 0x02, 0x0a, 0x15, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x54, + 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x54, 0x45, + 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0x02, 0x12, 0x2e, 0x0a, 0x2a, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, + 0x44, 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x54, 0x45, 0x4c, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4c, 0x49, 0x53, 0x54, - 0x10, 0x02, 0x12, 0x2e, 0x0a, 0x2a, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, - 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, - 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, - 0x52, 0x55, 0x4e, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x04, 0x12, 0x29, - 0x0a, 0x25, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x44, - 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x05, 0x2a, 0x8e, 0x01, 0x0a, 0x0d, 0x44, 0x74, - 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x44, - 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, + 0x54, 0x52, 0x55, 0x4e, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x04, 0x12, + 0x29, 0x0a, 0x25, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x50, 0x5f, + 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x05, 0x2a, 0x8e, 0x01, 0x0a, 0x0d, 0x44, + 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x54, - 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, - 0x43, 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x03, 0x32, 0x80, 0x15, 0x0a, 0x04, 0x44, - 0x74, 0x65, 0x6c, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, - 0x6c, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, - 0x74, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, - 0x10, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, - 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, - 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, - 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x2e, 0x6c, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, + 0x14, 0x44, 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x54, 0x45, 0x4c, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x44, + 0x54, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, + 0x53, 0x43, 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x03, 0x32, 0x80, 0x15, 0x0a, 0x04, + 0x44, 0x74, 0x65, 0x6c, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, + 0x65, 0x6c, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x53, 0x65, - 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, + 0x0a, 0x10, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, + 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, + 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, - 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, + 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x53, + 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, + 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, + 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, - 0x65, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, + 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, + 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, - 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, + 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, + 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, + 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, + 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x49, - 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, - 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, - 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, + 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, + 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x1d, 0x53, + 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, - 0x65, 0x6c, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x8a, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, - 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, - 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x1d, 0x53, 0x65, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, - 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, + 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, - 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x74, 0x65, 0x6c, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x74, - 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, - 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, - 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, + 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x74, 0x65, + 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x74, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, + 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, + 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -3494,76 +3344,72 @@ var file_dataplane_standalone_proto_dtel_proto_goTypes = []interface{}{ (*GetDtelEventAttributeRequest)(nil), // 43: lemming.dataplane.sai.GetDtelEventAttributeRequest (*GetDtelEventAttributeResponse)(nil), // 44: lemming.dataplane.sai.GetDtelEventAttributeResponse (*AclFieldData)(nil), // 45: lemming.dataplane.sai.AclFieldData - (*Uint64List)(nil), // 46: lemming.dataplane.sai.Uint64List - (*DtelAttribute)(nil), // 47: lemming.dataplane.sai.DtelAttribute - (*DtelQueueReportAttribute)(nil), // 48: lemming.dataplane.sai.DtelQueueReportAttribute - (*DtelIntSessionAttribute)(nil), // 49: lemming.dataplane.sai.DtelIntSessionAttribute - (*BytesList)(nil), // 50: lemming.dataplane.sai.BytesList - (*DtelReportSessionAttribute)(nil), // 51: lemming.dataplane.sai.DtelReportSessionAttribute - (DtelEventType)(0), // 52: lemming.dataplane.sai.DtelEventType - (*DtelEventAttribute)(nil), // 53: lemming.dataplane.sai.DtelEventAttribute + (*DtelAttribute)(nil), // 46: lemming.dataplane.sai.DtelAttribute + (*DtelQueueReportAttribute)(nil), // 47: lemming.dataplane.sai.DtelQueueReportAttribute + (*DtelIntSessionAttribute)(nil), // 48: lemming.dataplane.sai.DtelIntSessionAttribute + (*DtelReportSessionAttribute)(nil), // 49: lemming.dataplane.sai.DtelReportSessionAttribute + (DtelEventType)(0), // 50: lemming.dataplane.sai.DtelEventType + (*DtelEventAttribute)(nil), // 51: lemming.dataplane.sai.DtelEventAttribute } var file_dataplane_standalone_proto_dtel_proto_depIdxs = []int32{ 45, // 0: lemming.dataplane.sai.CreateDtelRequest.int_l4_dscp:type_name -> lemming.dataplane.sai.AclFieldData - 46, // 1: lemming.dataplane.sai.SetDtelAttributeRequest.sink_port_list:type_name -> lemming.dataplane.sai.Uint64List - 45, // 2: lemming.dataplane.sai.SetDtelAttributeRequest.int_l4_dscp:type_name -> lemming.dataplane.sai.AclFieldData - 0, // 3: lemming.dataplane.sai.GetDtelAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelAttr - 47, // 4: lemming.dataplane.sai.GetDtelAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelAttribute - 1, // 5: lemming.dataplane.sai.GetDtelQueueReportAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelQueueReportAttr - 48, // 6: lemming.dataplane.sai.GetDtelQueueReportAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelQueueReportAttribute - 2, // 7: lemming.dataplane.sai.GetDtelIntSessionAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelIntSessionAttr - 49, // 8: lemming.dataplane.sai.GetDtelIntSessionAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelIntSessionAttribute - 50, // 9: lemming.dataplane.sai.SetDtelReportSessionAttributeRequest.dst_ip_list:type_name -> lemming.dataplane.sai.BytesList - 3, // 10: lemming.dataplane.sai.GetDtelReportSessionAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelReportSessionAttr - 51, // 11: lemming.dataplane.sai.GetDtelReportSessionAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelReportSessionAttribute - 52, // 12: lemming.dataplane.sai.CreateDtelEventRequest.type:type_name -> lemming.dataplane.sai.DtelEventType - 4, // 13: lemming.dataplane.sai.GetDtelEventAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelEventAttr - 53, // 14: lemming.dataplane.sai.GetDtelEventAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelEventAttribute - 5, // 15: lemming.dataplane.sai.Dtel.CreateDtel:input_type -> lemming.dataplane.sai.CreateDtelRequest - 7, // 16: lemming.dataplane.sai.Dtel.RemoveDtel:input_type -> lemming.dataplane.sai.RemoveDtelRequest - 9, // 17: lemming.dataplane.sai.Dtel.SetDtelAttribute:input_type -> lemming.dataplane.sai.SetDtelAttributeRequest - 11, // 18: lemming.dataplane.sai.Dtel.GetDtelAttribute:input_type -> lemming.dataplane.sai.GetDtelAttributeRequest - 13, // 19: lemming.dataplane.sai.Dtel.CreateDtelQueueReport:input_type -> lemming.dataplane.sai.CreateDtelQueueReportRequest - 15, // 20: lemming.dataplane.sai.Dtel.RemoveDtelQueueReport:input_type -> lemming.dataplane.sai.RemoveDtelQueueReportRequest - 17, // 21: lemming.dataplane.sai.Dtel.SetDtelQueueReportAttribute:input_type -> lemming.dataplane.sai.SetDtelQueueReportAttributeRequest - 19, // 22: lemming.dataplane.sai.Dtel.GetDtelQueueReportAttribute:input_type -> lemming.dataplane.sai.GetDtelQueueReportAttributeRequest - 21, // 23: lemming.dataplane.sai.Dtel.CreateDtelIntSession:input_type -> lemming.dataplane.sai.CreateDtelIntSessionRequest - 23, // 24: lemming.dataplane.sai.Dtel.RemoveDtelIntSession:input_type -> lemming.dataplane.sai.RemoveDtelIntSessionRequest - 25, // 25: lemming.dataplane.sai.Dtel.SetDtelIntSessionAttribute:input_type -> lemming.dataplane.sai.SetDtelIntSessionAttributeRequest - 27, // 26: lemming.dataplane.sai.Dtel.GetDtelIntSessionAttribute:input_type -> lemming.dataplane.sai.GetDtelIntSessionAttributeRequest - 29, // 27: lemming.dataplane.sai.Dtel.CreateDtelReportSession:input_type -> lemming.dataplane.sai.CreateDtelReportSessionRequest - 31, // 28: lemming.dataplane.sai.Dtel.RemoveDtelReportSession:input_type -> lemming.dataplane.sai.RemoveDtelReportSessionRequest - 33, // 29: lemming.dataplane.sai.Dtel.SetDtelReportSessionAttribute:input_type -> lemming.dataplane.sai.SetDtelReportSessionAttributeRequest - 35, // 30: lemming.dataplane.sai.Dtel.GetDtelReportSessionAttribute:input_type -> lemming.dataplane.sai.GetDtelReportSessionAttributeRequest - 37, // 31: lemming.dataplane.sai.Dtel.CreateDtelEvent:input_type -> lemming.dataplane.sai.CreateDtelEventRequest - 39, // 32: lemming.dataplane.sai.Dtel.RemoveDtelEvent:input_type -> lemming.dataplane.sai.RemoveDtelEventRequest - 41, // 33: lemming.dataplane.sai.Dtel.SetDtelEventAttribute:input_type -> lemming.dataplane.sai.SetDtelEventAttributeRequest - 43, // 34: lemming.dataplane.sai.Dtel.GetDtelEventAttribute:input_type -> lemming.dataplane.sai.GetDtelEventAttributeRequest - 6, // 35: lemming.dataplane.sai.Dtel.CreateDtel:output_type -> lemming.dataplane.sai.CreateDtelResponse - 8, // 36: lemming.dataplane.sai.Dtel.RemoveDtel:output_type -> lemming.dataplane.sai.RemoveDtelResponse - 10, // 37: lemming.dataplane.sai.Dtel.SetDtelAttribute:output_type -> lemming.dataplane.sai.SetDtelAttributeResponse - 12, // 38: lemming.dataplane.sai.Dtel.GetDtelAttribute:output_type -> lemming.dataplane.sai.GetDtelAttributeResponse - 14, // 39: lemming.dataplane.sai.Dtel.CreateDtelQueueReport:output_type -> lemming.dataplane.sai.CreateDtelQueueReportResponse - 16, // 40: lemming.dataplane.sai.Dtel.RemoveDtelQueueReport:output_type -> lemming.dataplane.sai.RemoveDtelQueueReportResponse - 18, // 41: lemming.dataplane.sai.Dtel.SetDtelQueueReportAttribute:output_type -> lemming.dataplane.sai.SetDtelQueueReportAttributeResponse - 20, // 42: lemming.dataplane.sai.Dtel.GetDtelQueueReportAttribute:output_type -> lemming.dataplane.sai.GetDtelQueueReportAttributeResponse - 22, // 43: lemming.dataplane.sai.Dtel.CreateDtelIntSession:output_type -> lemming.dataplane.sai.CreateDtelIntSessionResponse - 24, // 44: lemming.dataplane.sai.Dtel.RemoveDtelIntSession:output_type -> lemming.dataplane.sai.RemoveDtelIntSessionResponse - 26, // 45: lemming.dataplane.sai.Dtel.SetDtelIntSessionAttribute:output_type -> lemming.dataplane.sai.SetDtelIntSessionAttributeResponse - 28, // 46: lemming.dataplane.sai.Dtel.GetDtelIntSessionAttribute:output_type -> lemming.dataplane.sai.GetDtelIntSessionAttributeResponse - 30, // 47: lemming.dataplane.sai.Dtel.CreateDtelReportSession:output_type -> lemming.dataplane.sai.CreateDtelReportSessionResponse - 32, // 48: lemming.dataplane.sai.Dtel.RemoveDtelReportSession:output_type -> lemming.dataplane.sai.RemoveDtelReportSessionResponse - 34, // 49: lemming.dataplane.sai.Dtel.SetDtelReportSessionAttribute:output_type -> lemming.dataplane.sai.SetDtelReportSessionAttributeResponse - 36, // 50: lemming.dataplane.sai.Dtel.GetDtelReportSessionAttribute:output_type -> lemming.dataplane.sai.GetDtelReportSessionAttributeResponse - 38, // 51: lemming.dataplane.sai.Dtel.CreateDtelEvent:output_type -> lemming.dataplane.sai.CreateDtelEventResponse - 40, // 52: lemming.dataplane.sai.Dtel.RemoveDtelEvent:output_type -> lemming.dataplane.sai.RemoveDtelEventResponse - 42, // 53: lemming.dataplane.sai.Dtel.SetDtelEventAttribute:output_type -> lemming.dataplane.sai.SetDtelEventAttributeResponse - 44, // 54: lemming.dataplane.sai.Dtel.GetDtelEventAttribute:output_type -> lemming.dataplane.sai.GetDtelEventAttributeResponse - 35, // [35:55] is the sub-list for method output_type - 15, // [15:35] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 45, // 1: lemming.dataplane.sai.SetDtelAttributeRequest.int_l4_dscp:type_name -> lemming.dataplane.sai.AclFieldData + 0, // 2: lemming.dataplane.sai.GetDtelAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelAttr + 46, // 3: lemming.dataplane.sai.GetDtelAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelAttribute + 1, // 4: lemming.dataplane.sai.GetDtelQueueReportAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelQueueReportAttr + 47, // 5: lemming.dataplane.sai.GetDtelQueueReportAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelQueueReportAttribute + 2, // 6: lemming.dataplane.sai.GetDtelIntSessionAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelIntSessionAttr + 48, // 7: lemming.dataplane.sai.GetDtelIntSessionAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelIntSessionAttribute + 3, // 8: lemming.dataplane.sai.GetDtelReportSessionAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelReportSessionAttr + 49, // 9: lemming.dataplane.sai.GetDtelReportSessionAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelReportSessionAttribute + 50, // 10: lemming.dataplane.sai.CreateDtelEventRequest.type:type_name -> lemming.dataplane.sai.DtelEventType + 4, // 11: lemming.dataplane.sai.GetDtelEventAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.DtelEventAttr + 51, // 12: lemming.dataplane.sai.GetDtelEventAttributeResponse.attr:type_name -> lemming.dataplane.sai.DtelEventAttribute + 5, // 13: lemming.dataplane.sai.Dtel.CreateDtel:input_type -> lemming.dataplane.sai.CreateDtelRequest + 7, // 14: lemming.dataplane.sai.Dtel.RemoveDtel:input_type -> lemming.dataplane.sai.RemoveDtelRequest + 9, // 15: lemming.dataplane.sai.Dtel.SetDtelAttribute:input_type -> lemming.dataplane.sai.SetDtelAttributeRequest + 11, // 16: lemming.dataplane.sai.Dtel.GetDtelAttribute:input_type -> lemming.dataplane.sai.GetDtelAttributeRequest + 13, // 17: lemming.dataplane.sai.Dtel.CreateDtelQueueReport:input_type -> lemming.dataplane.sai.CreateDtelQueueReportRequest + 15, // 18: lemming.dataplane.sai.Dtel.RemoveDtelQueueReport:input_type -> lemming.dataplane.sai.RemoveDtelQueueReportRequest + 17, // 19: lemming.dataplane.sai.Dtel.SetDtelQueueReportAttribute:input_type -> lemming.dataplane.sai.SetDtelQueueReportAttributeRequest + 19, // 20: lemming.dataplane.sai.Dtel.GetDtelQueueReportAttribute:input_type -> lemming.dataplane.sai.GetDtelQueueReportAttributeRequest + 21, // 21: lemming.dataplane.sai.Dtel.CreateDtelIntSession:input_type -> lemming.dataplane.sai.CreateDtelIntSessionRequest + 23, // 22: lemming.dataplane.sai.Dtel.RemoveDtelIntSession:input_type -> lemming.dataplane.sai.RemoveDtelIntSessionRequest + 25, // 23: lemming.dataplane.sai.Dtel.SetDtelIntSessionAttribute:input_type -> lemming.dataplane.sai.SetDtelIntSessionAttributeRequest + 27, // 24: lemming.dataplane.sai.Dtel.GetDtelIntSessionAttribute:input_type -> lemming.dataplane.sai.GetDtelIntSessionAttributeRequest + 29, // 25: lemming.dataplane.sai.Dtel.CreateDtelReportSession:input_type -> lemming.dataplane.sai.CreateDtelReportSessionRequest + 31, // 26: lemming.dataplane.sai.Dtel.RemoveDtelReportSession:input_type -> lemming.dataplane.sai.RemoveDtelReportSessionRequest + 33, // 27: lemming.dataplane.sai.Dtel.SetDtelReportSessionAttribute:input_type -> lemming.dataplane.sai.SetDtelReportSessionAttributeRequest + 35, // 28: lemming.dataplane.sai.Dtel.GetDtelReportSessionAttribute:input_type -> lemming.dataplane.sai.GetDtelReportSessionAttributeRequest + 37, // 29: lemming.dataplane.sai.Dtel.CreateDtelEvent:input_type -> lemming.dataplane.sai.CreateDtelEventRequest + 39, // 30: lemming.dataplane.sai.Dtel.RemoveDtelEvent:input_type -> lemming.dataplane.sai.RemoveDtelEventRequest + 41, // 31: lemming.dataplane.sai.Dtel.SetDtelEventAttribute:input_type -> lemming.dataplane.sai.SetDtelEventAttributeRequest + 43, // 32: lemming.dataplane.sai.Dtel.GetDtelEventAttribute:input_type -> lemming.dataplane.sai.GetDtelEventAttributeRequest + 6, // 33: lemming.dataplane.sai.Dtel.CreateDtel:output_type -> lemming.dataplane.sai.CreateDtelResponse + 8, // 34: lemming.dataplane.sai.Dtel.RemoveDtel:output_type -> lemming.dataplane.sai.RemoveDtelResponse + 10, // 35: lemming.dataplane.sai.Dtel.SetDtelAttribute:output_type -> lemming.dataplane.sai.SetDtelAttributeResponse + 12, // 36: lemming.dataplane.sai.Dtel.GetDtelAttribute:output_type -> lemming.dataplane.sai.GetDtelAttributeResponse + 14, // 37: lemming.dataplane.sai.Dtel.CreateDtelQueueReport:output_type -> lemming.dataplane.sai.CreateDtelQueueReportResponse + 16, // 38: lemming.dataplane.sai.Dtel.RemoveDtelQueueReport:output_type -> lemming.dataplane.sai.RemoveDtelQueueReportResponse + 18, // 39: lemming.dataplane.sai.Dtel.SetDtelQueueReportAttribute:output_type -> lemming.dataplane.sai.SetDtelQueueReportAttributeResponse + 20, // 40: lemming.dataplane.sai.Dtel.GetDtelQueueReportAttribute:output_type -> lemming.dataplane.sai.GetDtelQueueReportAttributeResponse + 22, // 41: lemming.dataplane.sai.Dtel.CreateDtelIntSession:output_type -> lemming.dataplane.sai.CreateDtelIntSessionResponse + 24, // 42: lemming.dataplane.sai.Dtel.RemoveDtelIntSession:output_type -> lemming.dataplane.sai.RemoveDtelIntSessionResponse + 26, // 43: lemming.dataplane.sai.Dtel.SetDtelIntSessionAttribute:output_type -> lemming.dataplane.sai.SetDtelIntSessionAttributeResponse + 28, // 44: lemming.dataplane.sai.Dtel.GetDtelIntSessionAttribute:output_type -> lemming.dataplane.sai.GetDtelIntSessionAttributeResponse + 30, // 45: lemming.dataplane.sai.Dtel.CreateDtelReportSession:output_type -> lemming.dataplane.sai.CreateDtelReportSessionResponse + 32, // 46: lemming.dataplane.sai.Dtel.RemoveDtelReportSession:output_type -> lemming.dataplane.sai.RemoveDtelReportSessionResponse + 34, // 47: lemming.dataplane.sai.Dtel.SetDtelReportSessionAttribute:output_type -> lemming.dataplane.sai.SetDtelReportSessionAttributeResponse + 36, // 48: lemming.dataplane.sai.Dtel.GetDtelReportSessionAttribute:output_type -> lemming.dataplane.sai.GetDtelReportSessionAttributeResponse + 38, // 49: lemming.dataplane.sai.Dtel.CreateDtelEvent:output_type -> lemming.dataplane.sai.CreateDtelEventResponse + 40, // 50: lemming.dataplane.sai.Dtel.RemoveDtelEvent:output_type -> lemming.dataplane.sai.RemoveDtelEventResponse + 42, // 51: lemming.dataplane.sai.Dtel.SetDtelEventAttribute:output_type -> lemming.dataplane.sai.SetDtelEventAttributeResponse + 44, // 52: lemming.dataplane.sai.Dtel.GetDtelEventAttribute:output_type -> lemming.dataplane.sai.GetDtelEventAttributeResponse + 33, // [33:53] is the sub-list for method output_type + 13, // [13:33] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_dtel_proto_init() } @@ -4054,43 +3900,16 @@ func file_dataplane_standalone_proto_dtel_proto_init() { } } } - file_dataplane_standalone_proto_dtel_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetDtelAttributeRequest_IntEndpointEnable)(nil), - (*SetDtelAttributeRequest_IntTransitEnable)(nil), - (*SetDtelAttributeRequest_PostcardEnable)(nil), - (*SetDtelAttributeRequest_DropReportEnable)(nil), - (*SetDtelAttributeRequest_QueueReportEnable)(nil), - (*SetDtelAttributeRequest_SwitchId)(nil), - (*SetDtelAttributeRequest_FlowStateClearCycle)(nil), - (*SetDtelAttributeRequest_LatencySensitivity)(nil), - (*SetDtelAttributeRequest_SinkPortList)(nil), - (*SetDtelAttributeRequest_IntL4Dscp)(nil), - } - file_dataplane_standalone_proto_dtel_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetDtelQueueReportAttributeRequest_DepthThreshold)(nil), - (*SetDtelQueueReportAttributeRequest_LatencyThreshold)(nil), - (*SetDtelQueueReportAttributeRequest_BreachQuota)(nil), - (*SetDtelQueueReportAttributeRequest_TailDrop)(nil), - } - file_dataplane_standalone_proto_dtel_proto_msgTypes[20].OneofWrappers = []interface{}{ - (*SetDtelIntSessionAttributeRequest_MaxHopCount)(nil), - (*SetDtelIntSessionAttributeRequest_CollectSwitchId)(nil), - (*SetDtelIntSessionAttributeRequest_CollectSwitchPorts)(nil), - (*SetDtelIntSessionAttributeRequest_CollectIngressTimestamp)(nil), - (*SetDtelIntSessionAttributeRequest_CollectEgressTimestamp)(nil), - (*SetDtelIntSessionAttributeRequest_CollectQueueInfo)(nil), - } - file_dataplane_standalone_proto_dtel_proto_msgTypes[28].OneofWrappers = []interface{}{ - (*SetDtelReportSessionAttributeRequest_SrcIp)(nil), - (*SetDtelReportSessionAttributeRequest_DstIpList)(nil), - (*SetDtelReportSessionAttributeRequest_VirtualRouterId)(nil), - (*SetDtelReportSessionAttributeRequest_TruncateSize)(nil), - (*SetDtelReportSessionAttributeRequest_UdpDstPort)(nil), - } - file_dataplane_standalone_proto_dtel_proto_msgTypes[36].OneofWrappers = []interface{}{ - (*SetDtelEventAttributeRequest_ReportSession)(nil), - (*SetDtelEventAttributeRequest_DscpValue)(nil), - } + file_dataplane_standalone_proto_dtel_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[32].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_dtel_proto_msgTypes[36].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/dtel.proto b/dataplane/standalone/proto/dtel.proto index ba141201..f750aeed 100644 --- a/dataplane/standalone/proto/dtel.proto +++ b/dataplane/standalone/proto/dtel.proto @@ -7,367 +7,293 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum DtelAttr { - DTEL_ATTR_UNSPECIFIED = 0; - DTEL_ATTR_INT_ENDPOINT_ENABLE = 1; - DTEL_ATTR_INT_TRANSIT_ENABLE = 2; - DTEL_ATTR_POSTCARD_ENABLE = 3; - DTEL_ATTR_DROP_REPORT_ENABLE = 4; - DTEL_ATTR_QUEUE_REPORT_ENABLE = 5; - DTEL_ATTR_SWITCH_ID = 6; - DTEL_ATTR_FLOW_STATE_CLEAR_CYCLE = 7; - DTEL_ATTR_LATENCY_SENSITIVITY = 8; - DTEL_ATTR_SINK_PORT_LIST = 9; - DTEL_ATTR_INT_L4_DSCP = 10; + DTEL_ATTR_UNSPECIFIED = 0; + DTEL_ATTR_INT_ENDPOINT_ENABLE = 1; + DTEL_ATTR_INT_TRANSIT_ENABLE = 2; + DTEL_ATTR_POSTCARD_ENABLE = 3; + DTEL_ATTR_DROP_REPORT_ENABLE = 4; + DTEL_ATTR_QUEUE_REPORT_ENABLE = 5; + DTEL_ATTR_SWITCH_ID = 6; + DTEL_ATTR_FLOW_STATE_CLEAR_CYCLE = 7; + DTEL_ATTR_LATENCY_SENSITIVITY = 8; + DTEL_ATTR_SINK_PORT_LIST = 9; + DTEL_ATTR_INT_L4_DSCP = 10; } enum DtelQueueReportAttr { - DTEL_QUEUE_REPORT_ATTR_UNSPECIFIED = 0; - DTEL_QUEUE_REPORT_ATTR_QUEUE_ID = 1; - DTEL_QUEUE_REPORT_ATTR_DEPTH_THRESHOLD = 2; - DTEL_QUEUE_REPORT_ATTR_LATENCY_THRESHOLD = 3; - DTEL_QUEUE_REPORT_ATTR_BREACH_QUOTA = 4; - DTEL_QUEUE_REPORT_ATTR_TAIL_DROP = 5; + DTEL_QUEUE_REPORT_ATTR_UNSPECIFIED = 0; + DTEL_QUEUE_REPORT_ATTR_QUEUE_ID = 1; + DTEL_QUEUE_REPORT_ATTR_DEPTH_THRESHOLD = 2; + DTEL_QUEUE_REPORT_ATTR_LATENCY_THRESHOLD = 3; + DTEL_QUEUE_REPORT_ATTR_BREACH_QUOTA = 4; + DTEL_QUEUE_REPORT_ATTR_TAIL_DROP = 5; } enum DtelIntSessionAttr { - DTEL_INT_SESSION_ATTR_UNSPECIFIED = 0; - DTEL_INT_SESSION_ATTR_MAX_HOP_COUNT = 1; - DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_ID = 2; - DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_PORTS = 3; - DTEL_INT_SESSION_ATTR_COLLECT_INGRESS_TIMESTAMP = 4; - DTEL_INT_SESSION_ATTR_COLLECT_EGRESS_TIMESTAMP = 5; - DTEL_INT_SESSION_ATTR_COLLECT_QUEUE_INFO = 6; + DTEL_INT_SESSION_ATTR_UNSPECIFIED = 0; + DTEL_INT_SESSION_ATTR_MAX_HOP_COUNT = 1; + DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_ID = 2; + DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_PORTS = 3; + DTEL_INT_SESSION_ATTR_COLLECT_INGRESS_TIMESTAMP = 4; + DTEL_INT_SESSION_ATTR_COLLECT_EGRESS_TIMESTAMP = 5; + DTEL_INT_SESSION_ATTR_COLLECT_QUEUE_INFO = 6; } enum DtelReportSessionAttr { - DTEL_REPORT_SESSION_ATTR_UNSPECIFIED = 0; - DTEL_REPORT_SESSION_ATTR_SRC_IP = 1; - DTEL_REPORT_SESSION_ATTR_DST_IP_LIST = 2; - DTEL_REPORT_SESSION_ATTR_VIRTUAL_ROUTER_ID = 3; - DTEL_REPORT_SESSION_ATTR_TRUNCATE_SIZE = 4; - DTEL_REPORT_SESSION_ATTR_UDP_DST_PORT = 5; + DTEL_REPORT_SESSION_ATTR_UNSPECIFIED = 0; + DTEL_REPORT_SESSION_ATTR_SRC_IP = 1; + DTEL_REPORT_SESSION_ATTR_DST_IP_LIST = 2; + DTEL_REPORT_SESSION_ATTR_VIRTUAL_ROUTER_ID = 3; + DTEL_REPORT_SESSION_ATTR_TRUNCATE_SIZE = 4; + DTEL_REPORT_SESSION_ATTR_UDP_DST_PORT = 5; } enum DtelEventAttr { - DTEL_EVENT_ATTR_UNSPECIFIED = 0; - DTEL_EVENT_ATTR_TYPE = 1; - DTEL_EVENT_ATTR_REPORT_SESSION = 2; - DTEL_EVENT_ATTR_DSCP_VALUE = 3; + DTEL_EVENT_ATTR_UNSPECIFIED = 0; + DTEL_EVENT_ATTR_TYPE = 1; + DTEL_EVENT_ATTR_REPORT_SESSION = 2; + DTEL_EVENT_ATTR_DSCP_VALUE = 3; } message CreateDtelRequest { - uint64 switch = 1; - - bool int_endpoint_enable = 2; - bool int_transit_enable = 3; - bool postcard_enable = 4; - bool drop_report_enable = 5; - bool queue_report_enable = 6; - uint32 switch_id = 7; - uint32 flow_state_clear_cycle = 8; - uint32 latency_sensitivity = 9; - repeated uint64 sink_port_list = 10; - AclFieldData int_l4_dscp = 11; - + uint64 switch = 1; + optional bool int_endpoint_enable = 2 [(attr_enum_value) = 1]; + optional bool int_transit_enable = 3 [(attr_enum_value) = 2]; + optional bool postcard_enable = 4 [(attr_enum_value) = 3]; + optional bool drop_report_enable = 5 [(attr_enum_value) = 4]; + optional bool queue_report_enable = 6 [(attr_enum_value) = 5]; + optional uint32 switch_id = 7 [(attr_enum_value) = 6]; + optional uint32 flow_state_clear_cycle = 8 [(attr_enum_value) = 7]; + optional uint32 latency_sensitivity = 9 [(attr_enum_value) = 8]; + repeated uint64 sink_port_list = 10 [(attr_enum_value) = 9]; + optional AclFieldData int_l4_dscp = 11 [(attr_enum_value) = 10]; } message CreateDtelResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveDtelRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveDtelResponse { - - -} +message RemoveDtelResponse {} message SetDtelAttributeRequest { - uint64 oid = 1; - oneof attr { - bool int_endpoint_enable = 2; - bool int_transit_enable = 3; - bool postcard_enable = 4; - bool drop_report_enable = 5; - bool queue_report_enable = 6; - uint32 switch_id = 7; - uint32 flow_state_clear_cycle = 8; - uint32 latency_sensitivity = 9; - Uint64List sink_port_list = 10; - AclFieldData int_l4_dscp = 11; - } -} - -message SetDtelAttributeResponse { - - + uint64 oid = 1; + optional bool int_endpoint_enable = 2 [(attr_enum_value) = 1]; + optional bool int_transit_enable = 3 [(attr_enum_value) = 2]; + optional bool postcard_enable = 4 [(attr_enum_value) = 3]; + optional bool drop_report_enable = 5 [(attr_enum_value) = 4]; + optional bool queue_report_enable = 6 [(attr_enum_value) = 5]; + optional uint32 switch_id = 7 [(attr_enum_value) = 6]; + optional uint32 flow_state_clear_cycle = 8 [(attr_enum_value) = 7]; + optional uint32 latency_sensitivity = 9 [(attr_enum_value) = 8]; + repeated uint64 sink_port_list = 10 [(attr_enum_value) = 9]; + optional AclFieldData int_l4_dscp = 11 [(attr_enum_value) = 10]; } +message SetDtelAttributeResponse {} + message GetDtelAttributeRequest { - uint64 oid = 1; - repeated DtelAttr attr_type = 2; - - + uint64 oid = 1; + repeated DtelAttr attr_type = 2; } message GetDtelAttributeResponse { - repeated DtelAttribute attr = 1; - - + DtelAttribute attr = 1; } message CreateDtelQueueReportRequest { - uint64 switch = 1; - - uint64 queue_id = 2; - uint32 depth_threshold = 3; - uint32 latency_threshold = 4; - uint32 breach_quota = 5; - bool tail_drop = 6; - + uint64 switch = 1; + optional uint64 queue_id = 2 [(attr_enum_value) = 1]; + optional uint32 depth_threshold = 3 [(attr_enum_value) = 2]; + optional uint32 latency_threshold = 4 [(attr_enum_value) = 3]; + optional uint32 breach_quota = 5 [(attr_enum_value) = 4]; + optional bool tail_drop = 6 [(attr_enum_value) = 5]; } message CreateDtelQueueReportResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveDtelQueueReportRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveDtelQueueReportResponse { - - -} +message RemoveDtelQueueReportResponse {} message SetDtelQueueReportAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 depth_threshold = 2; - uint32 latency_threshold = 3; - uint32 breach_quota = 4; - bool tail_drop = 5; - } + uint64 oid = 1; + optional uint32 depth_threshold = 2 [(attr_enum_value) = 2]; + optional uint32 latency_threshold = 3 [(attr_enum_value) = 3]; + optional uint32 breach_quota = 4 [(attr_enum_value) = 4]; + optional bool tail_drop = 5 [(attr_enum_value) = 5]; } -message SetDtelQueueReportAttributeResponse { - - -} +message SetDtelQueueReportAttributeResponse {} message GetDtelQueueReportAttributeRequest { - uint64 oid = 1; - repeated DtelQueueReportAttr attr_type = 2; - - + uint64 oid = 1; + repeated DtelQueueReportAttr attr_type = 2; } message GetDtelQueueReportAttributeResponse { - repeated DtelQueueReportAttribute attr = 1; - - + DtelQueueReportAttribute attr = 1; } message CreateDtelIntSessionRequest { - uint64 switch = 1; - - uint32 max_hop_count = 2; - bool collect_switch_id = 3; - bool collect_switch_ports = 4; - bool collect_ingress_timestamp = 5; - bool collect_egress_timestamp = 6; - bool collect_queue_info = 7; - + uint64 switch = 1; + optional uint32 max_hop_count = 2 [(attr_enum_value) = 1]; + optional bool collect_switch_id = 3 [(attr_enum_value) = 2]; + optional bool collect_switch_ports = 4 [(attr_enum_value) = 3]; + optional bool collect_ingress_timestamp = 5 [(attr_enum_value) = 4]; + optional bool collect_egress_timestamp = 6 [(attr_enum_value) = 5]; + optional bool collect_queue_info = 7 [(attr_enum_value) = 6]; } message CreateDtelIntSessionResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveDtelIntSessionRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveDtelIntSessionResponse { - - -} +message RemoveDtelIntSessionResponse {} message SetDtelIntSessionAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 max_hop_count = 2; - bool collect_switch_id = 3; - bool collect_switch_ports = 4; - bool collect_ingress_timestamp = 5; - bool collect_egress_timestamp = 6; - bool collect_queue_info = 7; - } + uint64 oid = 1; + optional uint32 max_hop_count = 2 [(attr_enum_value) = 1]; + optional bool collect_switch_id = 3 [(attr_enum_value) = 2]; + optional bool collect_switch_ports = 4 [(attr_enum_value) = 3]; + optional bool collect_ingress_timestamp = 5 [(attr_enum_value) = 4]; + optional bool collect_egress_timestamp = 6 [(attr_enum_value) = 5]; + optional bool collect_queue_info = 7 [(attr_enum_value) = 6]; } -message SetDtelIntSessionAttributeResponse { - - -} +message SetDtelIntSessionAttributeResponse {} message GetDtelIntSessionAttributeRequest { - uint64 oid = 1; - repeated DtelIntSessionAttr attr_type = 2; - - + uint64 oid = 1; + repeated DtelIntSessionAttr attr_type = 2; } message GetDtelIntSessionAttributeResponse { - repeated DtelIntSessionAttribute attr = 1; - - + DtelIntSessionAttribute attr = 1; } message CreateDtelReportSessionRequest { - uint64 switch = 1; - - bytes src_ip = 2; - repeated bytes dst_ip_list = 3; - uint64 virtual_router_id = 4; - uint32 truncate_size = 5; - uint32 udp_dst_port = 6; - + uint64 switch = 1; + optional bytes src_ip = 2 [(attr_enum_value) = 1]; + repeated bytes dst_ip_list = 3 [(attr_enum_value) = 2]; + optional uint64 virtual_router_id = 4 [(attr_enum_value) = 3]; + optional uint32 truncate_size = 5 [(attr_enum_value) = 4]; + optional uint32 udp_dst_port = 6 [(attr_enum_value) = 5]; } message CreateDtelReportSessionResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveDtelReportSessionRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveDtelReportSessionResponse { - - -} +message RemoveDtelReportSessionResponse {} message SetDtelReportSessionAttributeRequest { - uint64 oid = 1; - oneof attr { - bytes src_ip = 2; - BytesList dst_ip_list = 3; - uint64 virtual_router_id = 4; - uint32 truncate_size = 5; - uint32 udp_dst_port = 6; - } + uint64 oid = 1; + optional bytes src_ip = 2 [(attr_enum_value) = 1]; + repeated bytes dst_ip_list = 3 [(attr_enum_value) = 2]; + optional uint64 virtual_router_id = 4 [(attr_enum_value) = 3]; + optional uint32 truncate_size = 5 [(attr_enum_value) = 4]; + optional uint32 udp_dst_port = 6 [(attr_enum_value) = 5]; } -message SetDtelReportSessionAttributeResponse { - - -} +message SetDtelReportSessionAttributeResponse {} message GetDtelReportSessionAttributeRequest { - uint64 oid = 1; - repeated DtelReportSessionAttr attr_type = 2; - - + uint64 oid = 1; + repeated DtelReportSessionAttr attr_type = 2; } message GetDtelReportSessionAttributeResponse { - repeated DtelReportSessionAttribute attr = 1; - - + DtelReportSessionAttribute attr = 1; } message CreateDtelEventRequest { - uint64 switch = 1; - - DtelEventType type = 2; - uint64 report_session = 3; - uint32 dscp_value = 4; - + uint64 switch = 1; + optional DtelEventType type = 2 [(attr_enum_value) = 1]; + optional uint64 report_session = 3 [(attr_enum_value) = 2]; + optional uint32 dscp_value = 4 [(attr_enum_value) = 3]; } message CreateDtelEventResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveDtelEventRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveDtelEventResponse { - - -} +message RemoveDtelEventResponse {} message SetDtelEventAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 report_session = 2; - uint32 dscp_value = 3; - } + uint64 oid = 1; + optional uint64 report_session = 2 [(attr_enum_value) = 2]; + optional uint32 dscp_value = 3 [(attr_enum_value) = 3]; } -message SetDtelEventAttributeResponse { - - -} +message SetDtelEventAttributeResponse {} message GetDtelEventAttributeRequest { - uint64 oid = 1; - repeated DtelEventAttr attr_type = 2; - - + uint64 oid = 1; + repeated DtelEventAttr attr_type = 2; } message GetDtelEventAttributeResponse { - repeated DtelEventAttribute attr = 1; - - + DtelEventAttribute attr = 1; } - service Dtel { - rpc CreateDtel (CreateDtelRequest) returns (CreateDtelResponse) {} - rpc RemoveDtel (RemoveDtelRequest) returns (RemoveDtelResponse) {} - rpc SetDtelAttribute (SetDtelAttributeRequest) returns (SetDtelAttributeResponse) {} - rpc GetDtelAttribute (GetDtelAttributeRequest) returns (GetDtelAttributeResponse) {} - rpc CreateDtelQueueReport (CreateDtelQueueReportRequest) returns (CreateDtelQueueReportResponse) {} - rpc RemoveDtelQueueReport (RemoveDtelQueueReportRequest) returns (RemoveDtelQueueReportResponse) {} - rpc SetDtelQueueReportAttribute (SetDtelQueueReportAttributeRequest) returns (SetDtelQueueReportAttributeResponse) {} - rpc GetDtelQueueReportAttribute (GetDtelQueueReportAttributeRequest) returns (GetDtelQueueReportAttributeResponse) {} - rpc CreateDtelIntSession (CreateDtelIntSessionRequest) returns (CreateDtelIntSessionResponse) {} - rpc RemoveDtelIntSession (RemoveDtelIntSessionRequest) returns (RemoveDtelIntSessionResponse) {} - rpc SetDtelIntSessionAttribute (SetDtelIntSessionAttributeRequest) returns (SetDtelIntSessionAttributeResponse) {} - rpc GetDtelIntSessionAttribute (GetDtelIntSessionAttributeRequest) returns (GetDtelIntSessionAttributeResponse) {} - rpc CreateDtelReportSession (CreateDtelReportSessionRequest) returns (CreateDtelReportSessionResponse) {} - rpc RemoveDtelReportSession (RemoveDtelReportSessionRequest) returns (RemoveDtelReportSessionResponse) {} - rpc SetDtelReportSessionAttribute (SetDtelReportSessionAttributeRequest) returns (SetDtelReportSessionAttributeResponse) {} - rpc GetDtelReportSessionAttribute (GetDtelReportSessionAttributeRequest) returns (GetDtelReportSessionAttributeResponse) {} - rpc CreateDtelEvent (CreateDtelEventRequest) returns (CreateDtelEventResponse) {} - rpc RemoveDtelEvent (RemoveDtelEventRequest) returns (RemoveDtelEventResponse) {} - rpc SetDtelEventAttribute (SetDtelEventAttributeRequest) returns (SetDtelEventAttributeResponse) {} - rpc GetDtelEventAttribute (GetDtelEventAttributeRequest) returns (GetDtelEventAttributeResponse) {} + rpc CreateDtel(CreateDtelRequest) returns (CreateDtelResponse) {} + rpc RemoveDtel(RemoveDtelRequest) returns (RemoveDtelResponse) {} + rpc SetDtelAttribute(SetDtelAttributeRequest) + returns (SetDtelAttributeResponse) {} + rpc GetDtelAttribute(GetDtelAttributeRequest) + returns (GetDtelAttributeResponse) {} + rpc CreateDtelQueueReport(CreateDtelQueueReportRequest) + returns (CreateDtelQueueReportResponse) {} + rpc RemoveDtelQueueReport(RemoveDtelQueueReportRequest) + returns (RemoveDtelQueueReportResponse) {} + rpc SetDtelQueueReportAttribute(SetDtelQueueReportAttributeRequest) + returns (SetDtelQueueReportAttributeResponse) {} + rpc GetDtelQueueReportAttribute(GetDtelQueueReportAttributeRequest) + returns (GetDtelQueueReportAttributeResponse) {} + rpc CreateDtelIntSession(CreateDtelIntSessionRequest) + returns (CreateDtelIntSessionResponse) {} + rpc RemoveDtelIntSession(RemoveDtelIntSessionRequest) + returns (RemoveDtelIntSessionResponse) {} + rpc SetDtelIntSessionAttribute(SetDtelIntSessionAttributeRequest) + returns (SetDtelIntSessionAttributeResponse) {} + rpc GetDtelIntSessionAttribute(GetDtelIntSessionAttributeRequest) + returns (GetDtelIntSessionAttributeResponse) {} + rpc CreateDtelReportSession(CreateDtelReportSessionRequest) + returns (CreateDtelReportSessionResponse) {} + rpc RemoveDtelReportSession(RemoveDtelReportSessionRequest) + returns (RemoveDtelReportSessionResponse) {} + rpc SetDtelReportSessionAttribute(SetDtelReportSessionAttributeRequest) + returns (SetDtelReportSessionAttributeResponse) {} + rpc GetDtelReportSessionAttribute(GetDtelReportSessionAttributeRequest) + returns (GetDtelReportSessionAttributeResponse) {} + rpc CreateDtelEvent(CreateDtelEventRequest) + returns (CreateDtelEventResponse) {} + rpc RemoveDtelEvent(RemoveDtelEventRequest) + returns (RemoveDtelEventResponse) {} + rpc SetDtelEventAttribute(SetDtelEventAttributeRequest) + returns (SetDtelEventAttributeResponse) {} + rpc GetDtelEventAttribute(GetDtelEventAttributeRequest) + returns (GetDtelEventAttributeResponse) {} } diff --git a/dataplane/standalone/proto/fdb.pb.go b/dataplane/standalone/proto/fdb.pb.go index fe2082fa..1051f8f8 100755 --- a/dataplane/standalone/proto/fdb.pb.go +++ b/dataplane/standalone/proto/fdb.pb.go @@ -96,15 +96,15 @@ type CreateFdbEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *FdbEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - Type FdbEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.FdbEntryType" json:"type,omitempty"` - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - UserTrapId uint64 `protobuf:"varint,4,opt,name=user_trap_id,json=userTrapId,proto3" json:"user_trap_id,omitempty"` - BridgePortId uint64 `protobuf:"varint,5,opt,name=bridge_port_id,json=bridgePortId,proto3" json:"bridge_port_id,omitempty"` - MetaData uint32 `protobuf:"varint,6,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - EndpointIp []byte `protobuf:"bytes,7,opt,name=endpoint_ip,json=endpointIp,proto3" json:"endpoint_ip,omitempty"` - CounterId uint64 `protobuf:"varint,8,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` - AllowMacMove bool `protobuf:"varint,9,opt,name=allow_mac_move,json=allowMacMove,proto3" json:"allow_mac_move,omitempty"` + Entry *FdbEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + Type *FdbEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.FdbEntryType,oneof" json:"type,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,4,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + BridgePortId *uint64 `protobuf:"varint,5,opt,name=bridge_port_id,json=bridgePortId,proto3,oneof" json:"bridge_port_id,omitempty"` + MetaData *uint32 `protobuf:"varint,6,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + EndpointIp []byte `protobuf:"bytes,7,opt,name=endpoint_ip,json=endpointIp,proto3,oneof" json:"endpoint_ip,omitempty"` + CounterId *uint64 `protobuf:"varint,8,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + AllowMacMove *bool `protobuf:"varint,9,opt,name=allow_mac_move,json=allowMacMove,proto3,oneof" json:"allow_mac_move,omitempty"` } func (x *CreateFdbEntryRequest) Reset() { @@ -147,36 +147,36 @@ func (x *CreateFdbEntryRequest) GetEntry() *FdbEntry { } func (x *CreateFdbEntryRequest) GetType() FdbEntryType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return FdbEntryType_FDB_ENTRY_TYPE_UNSPECIFIED } func (x *CreateFdbEntryRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateFdbEntryRequest) GetUserTrapId() uint64 { - if x != nil { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *CreateFdbEntryRequest) GetBridgePortId() uint64 { - if x != nil { - return x.BridgePortId + if x != nil && x.BridgePortId != nil { + return *x.BridgePortId } return 0 } func (x *CreateFdbEntryRequest) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } @@ -189,15 +189,15 @@ func (x *CreateFdbEntryRequest) GetEndpointIp() []byte { } func (x *CreateFdbEntryRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *CreateFdbEntryRequest) GetAllowMacMove() bool { - if x != nil { - return x.AllowMacMove + if x != nil && x.AllowMacMove != nil { + return *x.AllowMacMove } return false } @@ -330,18 +330,15 @@ type SetFdbEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *FdbEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetFdbEntryAttributeRequest_Type - // *SetFdbEntryAttributeRequest_PacketAction - // *SetFdbEntryAttributeRequest_UserTrapId - // *SetFdbEntryAttributeRequest_BridgePortId - // *SetFdbEntryAttributeRequest_MetaData - // *SetFdbEntryAttributeRequest_EndpointIp - // *SetFdbEntryAttributeRequest_CounterId - // *SetFdbEntryAttributeRequest_AllowMacMove - Attr isSetFdbEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *FdbEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + Type *FdbEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.FdbEntryType,oneof" json:"type,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,4,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + BridgePortId *uint64 `protobuf:"varint,5,opt,name=bridge_port_id,json=bridgePortId,proto3,oneof" json:"bridge_port_id,omitempty"` + MetaData *uint32 `protobuf:"varint,6,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + EndpointIp []byte `protobuf:"bytes,7,opt,name=endpoint_ip,json=endpointIp,proto3,oneof" json:"endpoint_ip,omitempty"` + CounterId *uint64 `protobuf:"varint,8,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + AllowMacMove *bool `protobuf:"varint,9,opt,name=allow_mac_move,json=allowMacMove,proto3,oneof" json:"allow_mac_move,omitempty"` } func (x *SetFdbEntryAttributeRequest) Reset() { @@ -383,121 +380,62 @@ func (x *SetFdbEntryAttributeRequest) GetEntry() *FdbEntry { return nil } -func (m *SetFdbEntryAttributeRequest) GetAttr() isSetFdbEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetFdbEntryAttributeRequest) GetType() FdbEntryType { - if x, ok := x.GetAttr().(*SetFdbEntryAttributeRequest_Type); ok { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return FdbEntryType_FDB_ENTRY_TYPE_UNSPECIFIED } func (x *SetFdbEntryAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetFdbEntryAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetFdbEntryAttributeRequest) GetUserTrapId() uint64 { - if x, ok := x.GetAttr().(*SetFdbEntryAttributeRequest_UserTrapId); ok { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *SetFdbEntryAttributeRequest) GetBridgePortId() uint64 { - if x, ok := x.GetAttr().(*SetFdbEntryAttributeRequest_BridgePortId); ok { - return x.BridgePortId + if x != nil && x.BridgePortId != nil { + return *x.BridgePortId } return 0 } func (x *SetFdbEntryAttributeRequest) GetMetaData() uint32 { - if x, ok := x.GetAttr().(*SetFdbEntryAttributeRequest_MetaData); ok { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *SetFdbEntryAttributeRequest) GetEndpointIp() []byte { - if x, ok := x.GetAttr().(*SetFdbEntryAttributeRequest_EndpointIp); ok { + if x != nil { return x.EndpointIp } return nil } func (x *SetFdbEntryAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetFdbEntryAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *SetFdbEntryAttributeRequest) GetAllowMacMove() bool { - if x, ok := x.GetAttr().(*SetFdbEntryAttributeRequest_AllowMacMove); ok { - return x.AllowMacMove + if x != nil && x.AllowMacMove != nil { + return *x.AllowMacMove } return false } -type isSetFdbEntryAttributeRequest_Attr interface { - isSetFdbEntryAttributeRequest_Attr() -} - -type SetFdbEntryAttributeRequest_Type struct { - Type FdbEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.FdbEntryType,oneof"` -} - -type SetFdbEntryAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetFdbEntryAttributeRequest_UserTrapId struct { - UserTrapId uint64 `protobuf:"varint,4,opt,name=user_trap_id,json=userTrapId,proto3,oneof"` -} - -type SetFdbEntryAttributeRequest_BridgePortId struct { - BridgePortId uint64 `protobuf:"varint,5,opt,name=bridge_port_id,json=bridgePortId,proto3,oneof"` -} - -type SetFdbEntryAttributeRequest_MetaData struct { - MetaData uint32 `protobuf:"varint,6,opt,name=meta_data,json=metaData,proto3,oneof"` -} - -type SetFdbEntryAttributeRequest_EndpointIp struct { - EndpointIp []byte `protobuf:"bytes,7,opt,name=endpoint_ip,json=endpointIp,proto3,oneof"` -} - -type SetFdbEntryAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,8,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -type SetFdbEntryAttributeRequest_AllowMacMove struct { - AllowMacMove bool `protobuf:"varint,9,opt,name=allow_mac_move,json=allowMacMove,proto3,oneof"` -} - -func (*SetFdbEntryAttributeRequest_Type) isSetFdbEntryAttributeRequest_Attr() {} - -func (*SetFdbEntryAttributeRequest_PacketAction) isSetFdbEntryAttributeRequest_Attr() {} - -func (*SetFdbEntryAttributeRequest_UserTrapId) isSetFdbEntryAttributeRequest_Attr() {} - -func (*SetFdbEntryAttributeRequest_BridgePortId) isSetFdbEntryAttributeRequest_Attr() {} - -func (*SetFdbEntryAttributeRequest_MetaData) isSetFdbEntryAttributeRequest_Attr() {} - -func (*SetFdbEntryAttributeRequest_EndpointIp) isSetFdbEntryAttributeRequest_Attr() {} - -func (*SetFdbEntryAttributeRequest_CounterId) isSetFdbEntryAttributeRequest_Attr() {} - -func (*SetFdbEntryAttributeRequest_AllowMacMove) isSetFdbEntryAttributeRequest_Attr() {} - type SetFdbEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -596,7 +534,7 @@ type GetFdbEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*FdbEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *FdbEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetFdbEntryAttributeResponse) Reset() { @@ -631,7 +569,7 @@ func (*GetFdbEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_fdb_proto_rawDescGZIP(), []int{7} } -func (x *GetFdbEntryAttributeResponse) GetAttr() []*FdbEntryAttribute { +func (x *GetFdbEntryAttributeResponse) GetAttr() *FdbEntryAttribute { if x != nil { return x.Attr } @@ -647,141 +585,166 @@ var file_dataplane_standalone_proto_fdb_proto_rawDesc = []byte{ 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9c, 0x03, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x04, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, - 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x24, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6d, 0x6f, 0x76, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, - 0x63, 0x4d, 0x6f, 0x76, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, - 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x4e, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, - 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x03, 0x0a, 0x1b, 0x53, 0x65, - 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x0d, 0x70, + 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, - 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, - 0x6d, 0x61, 0x63, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x63, 0x4d, 0x6f, 0x76, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x46, 0x64, 0x62, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x64, - 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, + 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0c, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x09, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0c, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x63, 0x4d, 0x6f, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x18, 0x0a, 0x16, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xf9, 0x04, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, - 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x40, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, + 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0c, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x09, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0c, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x63, 0x4d, 0x6f, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x1e, 0x0a, 0x1c, + 0x53, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x0a, + 0x1b, 0x47, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x05, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, + 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x2a, 0xad, 0x02, 0x0a, 0x0c, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, + 0x1c, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, + 0x1f, 0x0a, 0x1b, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x03, + 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, + 0x44, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, + 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x50, 0x10, + 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x07, + 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x4d, 0x4f, 0x56, + 0x45, 0x10, 0x08, 0x32, 0xef, 0x03, 0x0a, 0x03, 0x46, 0x64, 0x62, 0x12, 0x6f, 0x0a, 0x0e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xad, 0x02, - 0x0a, 0x0c, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, - 0x0a, 0x1a, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, - 0x0a, 0x13, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x44, 0x42, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, - 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x44, - 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, - 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x1c, 0x0a, - 0x18, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x46, - 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, - 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x46, - 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, - 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x44, - 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x4c, 0x4c, - 0x4f, 0x57, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x08, 0x32, 0xef, 0x03, - 0x0a, 0x03, 0x46, 0x64, 0x62, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, - 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x46, - 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, - 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, - 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x64, 0x62, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x64, 0x62, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x64, 0x62, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, + 0x0a, 0x14, 0x53, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -943,16 +906,8 @@ func file_dataplane_standalone_proto_fdb_proto_init() { } } } - file_dataplane_standalone_proto_fdb_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetFdbEntryAttributeRequest_Type)(nil), - (*SetFdbEntryAttributeRequest_PacketAction)(nil), - (*SetFdbEntryAttributeRequest_UserTrapId)(nil), - (*SetFdbEntryAttributeRequest_BridgePortId)(nil), - (*SetFdbEntryAttributeRequest_MetaData)(nil), - (*SetFdbEntryAttributeRequest_EndpointIp)(nil), - (*SetFdbEntryAttributeRequest_CounterId)(nil), - (*SetFdbEntryAttributeRequest_AllowMacMove)(nil), - } + file_dataplane_standalone_proto_fdb_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_fdb_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/fdb.proto b/dataplane/standalone/proto/fdb.proto index c877ac95..18081f79 100644 --- a/dataplane/standalone/proto/fdb.proto +++ b/dataplane/standalone/proto/fdb.proto @@ -7,85 +7,66 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum FdbEntryAttr { - FDB_ENTRY_ATTR_UNSPECIFIED = 0; - FDB_ENTRY_ATTR_TYPE = 1; - FDB_ENTRY_ATTR_PACKET_ACTION = 2; - FDB_ENTRY_ATTR_USER_TRAP_ID = 3; - FDB_ENTRY_ATTR_BRIDGE_PORT_ID = 4; - FDB_ENTRY_ATTR_META_DATA = 5; - FDB_ENTRY_ATTR_ENDPOINT_IP = 6; - FDB_ENTRY_ATTR_COUNTER_ID = 7; - FDB_ENTRY_ATTR_ALLOW_MAC_MOVE = 8; + FDB_ENTRY_ATTR_UNSPECIFIED = 0; + FDB_ENTRY_ATTR_TYPE = 1; + FDB_ENTRY_ATTR_PACKET_ACTION = 2; + FDB_ENTRY_ATTR_USER_TRAP_ID = 3; + FDB_ENTRY_ATTR_BRIDGE_PORT_ID = 4; + FDB_ENTRY_ATTR_META_DATA = 5; + FDB_ENTRY_ATTR_ENDPOINT_IP = 6; + FDB_ENTRY_ATTR_COUNTER_ID = 7; + FDB_ENTRY_ATTR_ALLOW_MAC_MOVE = 8; } message CreateFdbEntryRequest { - FdbEntry entry = 1; - - FdbEntryType type = 2; - PacketAction packet_action = 3; - uint64 user_trap_id = 4; - uint64 bridge_port_id = 5; - uint32 meta_data = 6; - bytes endpoint_ip = 7; - uint64 counter_id = 8; - bool allow_mac_move = 9; - + FdbEntry entry = 1; + optional FdbEntryType type = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint64 user_trap_id = 4 [(attr_enum_value) = 3]; + optional uint64 bridge_port_id = 5 [(attr_enum_value) = 4]; + optional uint32 meta_data = 6 [(attr_enum_value) = 5]; + optional bytes endpoint_ip = 7 [(attr_enum_value) = 6]; + optional uint64 counter_id = 8 [(attr_enum_value) = 7]; + optional bool allow_mac_move = 9 [(attr_enum_value) = 8]; } -message CreateFdbEntryResponse { - - -} +message CreateFdbEntryResponse {} message RemoveFdbEntryRequest { - FdbEntry entry = 1; - - + FdbEntry entry = 1; } -message RemoveFdbEntryResponse { - - -} +message RemoveFdbEntryResponse {} message SetFdbEntryAttributeRequest { - FdbEntry entry = 1; - oneof attr { - FdbEntryType type = 2; - PacketAction packet_action = 3; - uint64 user_trap_id = 4; - uint64 bridge_port_id = 5; - uint32 meta_data = 6; - bytes endpoint_ip = 7; - uint64 counter_id = 8; - bool allow_mac_move = 9; - } + FdbEntry entry = 1; + optional FdbEntryType type = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint64 user_trap_id = 4 [(attr_enum_value) = 3]; + optional uint64 bridge_port_id = 5 [(attr_enum_value) = 4]; + optional uint32 meta_data = 6 [(attr_enum_value) = 5]; + optional bytes endpoint_ip = 7 [(attr_enum_value) = 6]; + optional uint64 counter_id = 8 [(attr_enum_value) = 7]; + optional bool allow_mac_move = 9 [(attr_enum_value) = 8]; } -message SetFdbEntryAttributeResponse { - - -} +message SetFdbEntryAttributeResponse {} message GetFdbEntryAttributeRequest { - FdbEntry entry = 1; - repeated FdbEntryAttr attr_type = 2; - - + FdbEntry entry = 1; + repeated FdbEntryAttr attr_type = 2; } message GetFdbEntryAttributeResponse { - repeated FdbEntryAttribute attr = 1; - - + FdbEntryAttribute attr = 1; } - service Fdb { - rpc CreateFdbEntry (CreateFdbEntryRequest) returns (CreateFdbEntryResponse) {} - rpc RemoveFdbEntry (RemoveFdbEntryRequest) returns (RemoveFdbEntryResponse) {} - rpc SetFdbEntryAttribute (SetFdbEntryAttributeRequest) returns (SetFdbEntryAttributeResponse) {} - rpc GetFdbEntryAttribute (GetFdbEntryAttributeRequest) returns (GetFdbEntryAttributeResponse) {} + rpc CreateFdbEntry(CreateFdbEntryRequest) returns (CreateFdbEntryResponse) {} + rpc RemoveFdbEntry(RemoveFdbEntryRequest) returns (RemoveFdbEntryResponse) {} + rpc SetFdbEntryAttribute(SetFdbEntryAttributeRequest) + returns (SetFdbEntryAttributeResponse) {} + rpc GetFdbEntryAttribute(GetFdbEntryAttributeRequest) + returns (GetFdbEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/hash.pb.go b/dataplane/standalone/proto/hash.pb.go index 4c89b60d..a0a99ddb 100755 --- a/dataplane/standalone/proto/hash.pb.go +++ b/dataplane/standalone/proto/hash.pb.go @@ -339,13 +339,10 @@ type SetHashAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetHashAttributeRequest_NativeHashFieldList - // *SetHashAttributeRequest_UdfGroupList - // *SetHashAttributeRequest_FineGrainedHashFieldList - Attr isSetHashAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + NativeHashFieldList []NativeHashField `protobuf:"varint,2,rep,packed,name=native_hash_field_list,json=nativeHashFieldList,proto3,enum=lemming.dataplane.sai.NativeHashField" json:"native_hash_field_list,omitempty"` + UdfGroupList []uint64 `protobuf:"varint,3,rep,packed,name=udf_group_list,json=udfGroupList,proto3" json:"udf_group_list,omitempty"` + FineGrainedHashFieldList []uint64 `protobuf:"varint,4,rep,packed,name=fine_grained_hash_field_list,json=fineGrainedHashFieldList,proto3" json:"fine_grained_hash_field_list,omitempty"` } func (x *SetHashAttributeRequest) Reset() { @@ -387,56 +384,27 @@ func (x *SetHashAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetHashAttributeRequest) GetAttr() isSetHashAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - -func (x *SetHashAttributeRequest) GetNativeHashFieldList() *NativeHashFieldList { - if x, ok := x.GetAttr().(*SetHashAttributeRequest_NativeHashFieldList); ok { +func (x *SetHashAttributeRequest) GetNativeHashFieldList() []NativeHashField { + if x != nil { return x.NativeHashFieldList } return nil } -func (x *SetHashAttributeRequest) GetUdfGroupList() *Uint64List { - if x, ok := x.GetAttr().(*SetHashAttributeRequest_UdfGroupList); ok { +func (x *SetHashAttributeRequest) GetUdfGroupList() []uint64 { + if x != nil { return x.UdfGroupList } return nil } -func (x *SetHashAttributeRequest) GetFineGrainedHashFieldList() *Uint64List { - if x, ok := x.GetAttr().(*SetHashAttributeRequest_FineGrainedHashFieldList); ok { +func (x *SetHashAttributeRequest) GetFineGrainedHashFieldList() []uint64 { + if x != nil { return x.FineGrainedHashFieldList } return nil } -type isSetHashAttributeRequest_Attr interface { - isSetHashAttributeRequest_Attr() -} - -type SetHashAttributeRequest_NativeHashFieldList struct { - NativeHashFieldList *NativeHashFieldList `protobuf:"bytes,2,opt,name=native_hash_field_list,json=nativeHashFieldList,proto3,oneof"` -} - -type SetHashAttributeRequest_UdfGroupList struct { - UdfGroupList *Uint64List `protobuf:"bytes,3,opt,name=udf_group_list,json=udfGroupList,proto3,oneof"` -} - -type SetHashAttributeRequest_FineGrainedHashFieldList struct { - FineGrainedHashFieldList *Uint64List `protobuf:"bytes,4,opt,name=fine_grained_hash_field_list,json=fineGrainedHashFieldList,proto3,oneof"` -} - -func (*SetHashAttributeRequest_NativeHashFieldList) isSetHashAttributeRequest_Attr() {} - -func (*SetHashAttributeRequest_UdfGroupList) isSetHashAttributeRequest_Attr() {} - -func (*SetHashAttributeRequest_FineGrainedHashFieldList) isSetHashAttributeRequest_Attr() {} - type SetHashAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -535,7 +503,7 @@ type GetHashAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*HashAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *HashAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetHashAttributeResponse) Reset() { @@ -570,7 +538,7 @@ func (*GetHashAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_hash_proto_rawDescGZIP(), []int{7} } -func (x *GetHashAttributeResponse) GetAttr() []*HashAttribute { +func (x *GetHashAttributeResponse) GetAttr() *HashAttribute { if x != nil { return x.Attr } @@ -582,11 +550,11 @@ type CreateFineGrainedHashFieldRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - NativeHashField NativeHashField `protobuf:"varint,2,opt,name=native_hash_field,json=nativeHashField,proto3,enum=lemming.dataplane.sai.NativeHashField" json:"native_hash_field,omitempty"` - Ipv4Mask []byte `protobuf:"bytes,3,opt,name=ipv4_mask,json=ipv4Mask,proto3" json:"ipv4_mask,omitempty"` - Ipv6Mask []byte `protobuf:"bytes,4,opt,name=ipv6_mask,json=ipv6Mask,proto3" json:"ipv6_mask,omitempty"` - SequenceId uint32 `protobuf:"varint,5,opt,name=sequence_id,json=sequenceId,proto3" json:"sequence_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + NativeHashField *NativeHashField `protobuf:"varint,2,opt,name=native_hash_field,json=nativeHashField,proto3,enum=lemming.dataplane.sai.NativeHashField,oneof" json:"native_hash_field,omitempty"` + Ipv4Mask []byte `protobuf:"bytes,3,opt,name=ipv4_mask,json=ipv4Mask,proto3,oneof" json:"ipv4_mask,omitempty"` + Ipv6Mask []byte `protobuf:"bytes,4,opt,name=ipv6_mask,json=ipv6Mask,proto3,oneof" json:"ipv6_mask,omitempty"` + SequenceId *uint32 `protobuf:"varint,5,opt,name=sequence_id,json=sequenceId,proto3,oneof" json:"sequence_id,omitempty"` } func (x *CreateFineGrainedHashFieldRequest) Reset() { @@ -629,8 +597,8 @@ func (x *CreateFineGrainedHashFieldRequest) GetSwitch() uint64 { } func (x *CreateFineGrainedHashFieldRequest) GetNativeHashField() NativeHashField { - if x != nil { - return x.NativeHashField + if x != nil && x.NativeHashField != nil { + return *x.NativeHashField } return NativeHashField_NATIVE_HASH_FIELD_UNSPECIFIED } @@ -650,8 +618,8 @@ func (x *CreateFineGrainedHashFieldRequest) GetIpv6Mask() []byte { } func (x *CreateFineGrainedHashFieldRequest) GetSequenceId() uint32 { - if x != nil { - return x.SequenceId + if x != nil && x.SequenceId != nil { + return *x.SequenceId } return 0 } @@ -848,7 +816,7 @@ type GetFineGrainedHashFieldAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*FineGrainedHashFieldAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *FineGrainedHashFieldAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetFineGrainedHashFieldAttributeResponse) Reset() { @@ -883,7 +851,7 @@ func (*GetFineGrainedHashFieldAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_hash_proto_rawDescGZIP(), []int{13} } -func (x *GetFineGrainedHashFieldAttributeResponse) GetAttr() []*FineGrainedHashFieldAttribute { +func (x *GetFineGrainedHashFieldAttributeResponse) GetAttr() *FineGrainedHashFieldAttribute { if x != nil { return x.Attr } @@ -899,190 +867,194 @@ var file_dataplane_standalone_proto_hash_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xee, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x5b, 0x0a, 0x16, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x61, 0x0a, 0x16, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x13, 0x6e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x64, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x64, 0x66, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x1c, 0x66, 0x69, 0x6e, 0x65, - 0x5f, 0x67, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x18, - 0x66, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x26, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc6, 0x02, - 0x0a, 0x17, 0x53, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x52, 0x13, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x75, 0x64, 0x66, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0c, 0x75, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x1c, 0x66, 0x69, 0x6e, 0x65, 0x5f, 0x67, 0x72, 0x61, + 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x52, 0x18, 0x66, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, + 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x26, 0x0a, 0x12, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x80, 0x02, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x61, 0x0a, + 0x16, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, 0x13, 0x6e, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x2a, 0x0a, 0x0e, 0x75, 0x64, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0c, + 0x75, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x1c, + 0x66, 0x69, 0x6e, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x18, 0x66, 0x69, 0x6e, 0x65, 0x47, 0x72, + 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x61, 0x0a, 0x16, 0x6e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x6e, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, - 0x0a, 0x0e, 0x75, 0x64, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x64, 0x66, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x63, 0x0a, 0x1c, 0x66, 0x69, 0x6e, - 0x65, 0x5f, 0x67, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x18, 0x66, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, - 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x06, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, - 0x3c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, - 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x22, 0xea, 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, - 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x52, 0x0a, 0x11, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x61, - 0x73, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x61, 0x73, 0x6b, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, - 0x22, 0x36, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x09, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x52, + 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, + 0xd8, 0x02, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x35, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, - 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x24, 0x0a, 0x22, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, - 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, - 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, - 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x74, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, - 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, - 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x95, 0x01, 0x0a, 0x08, 0x48, 0x61, 0x73, 0x68, - 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x24, 0x0a, 0x20, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, - 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, - 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x49, 0x53, - 0x54, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, - 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x2a, - 0x82, 0x02, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, - 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2c, 0x0a, 0x28, - 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, - 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x46, 0x49, - 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, - 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x2a, - 0x0a, 0x26, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, - 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, - 0x50, 0x56, 0x34, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x46, 0x49, - 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, - 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x03, 0x12, 0x2c, 0x0a, 0x28, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x5d, 0x0a, + 0x11, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x61, 0x73, + 0x6b, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, + 0x08, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x36, 0x0a, 0x22, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, + 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x35, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x65, + 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, + 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x89, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, + 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4c, 0x0a, + 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, + 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x28, 0x47, + 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, + 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x69, + 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x2a, 0x95, 0x01, 0x0a, 0x08, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, + 0x0a, 0x15, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x41, 0x53, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, + 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, + 0x1c, 0x0a, 0x18, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x46, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x2a, 0x0a, + 0x26, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x4e, 0x45, 0x5f, + 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x2a, 0x82, 0x02, 0x0a, 0x18, 0x46, 0x69, + 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2c, 0x0a, 0x28, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, - 0x49, 0x44, 0x10, 0x04, 0x32, 0x92, 0x07, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x63, 0x0a, - 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, + 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x46, 0x49, 0x4e, 0x45, + 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4d, 0x41, + 0x53, 0x4b, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, + 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x03, + 0x12, 0x2c, 0x0a, 0x28, 0x46, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, + 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x32, 0x92, + 0x07, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, + 0x65, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x61, + 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, - 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x75, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x93, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, + 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, - 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, - 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, + 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, - 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0xa5, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, - 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, - 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, - 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, + 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa5, 0x01, 0x0a, 0x20, + 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, + 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x3e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, + 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x65, + 0x47, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1117,40 +1089,36 @@ var file_dataplane_standalone_proto_hash_proto_goTypes = []interface{}{ (*GetFineGrainedHashFieldAttributeRequest)(nil), // 14: lemming.dataplane.sai.GetFineGrainedHashFieldAttributeRequest (*GetFineGrainedHashFieldAttributeResponse)(nil), // 15: lemming.dataplane.sai.GetFineGrainedHashFieldAttributeResponse (NativeHashField)(0), // 16: lemming.dataplane.sai.NativeHashField - (*NativeHashFieldList)(nil), // 17: lemming.dataplane.sai.NativeHashFieldList - (*Uint64List)(nil), // 18: lemming.dataplane.sai.Uint64List - (*HashAttribute)(nil), // 19: lemming.dataplane.sai.HashAttribute - (*FineGrainedHashFieldAttribute)(nil), // 20: lemming.dataplane.sai.FineGrainedHashFieldAttribute + (*HashAttribute)(nil), // 17: lemming.dataplane.sai.HashAttribute + (*FineGrainedHashFieldAttribute)(nil), // 18: lemming.dataplane.sai.FineGrainedHashFieldAttribute } var file_dataplane_standalone_proto_hash_proto_depIdxs = []int32{ 16, // 0: lemming.dataplane.sai.CreateHashRequest.native_hash_field_list:type_name -> lemming.dataplane.sai.NativeHashField - 17, // 1: lemming.dataplane.sai.SetHashAttributeRequest.native_hash_field_list:type_name -> lemming.dataplane.sai.NativeHashFieldList - 18, // 2: lemming.dataplane.sai.SetHashAttributeRequest.udf_group_list:type_name -> lemming.dataplane.sai.Uint64List - 18, // 3: lemming.dataplane.sai.SetHashAttributeRequest.fine_grained_hash_field_list:type_name -> lemming.dataplane.sai.Uint64List - 0, // 4: lemming.dataplane.sai.GetHashAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.HashAttr - 19, // 5: lemming.dataplane.sai.GetHashAttributeResponse.attr:type_name -> lemming.dataplane.sai.HashAttribute - 16, // 6: lemming.dataplane.sai.CreateFineGrainedHashFieldRequest.native_hash_field:type_name -> lemming.dataplane.sai.NativeHashField - 1, // 7: lemming.dataplane.sai.GetFineGrainedHashFieldAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.FineGrainedHashFieldAttr - 20, // 8: lemming.dataplane.sai.GetFineGrainedHashFieldAttributeResponse.attr:type_name -> lemming.dataplane.sai.FineGrainedHashFieldAttribute - 2, // 9: lemming.dataplane.sai.Hash.CreateHash:input_type -> lemming.dataplane.sai.CreateHashRequest - 4, // 10: lemming.dataplane.sai.Hash.RemoveHash:input_type -> lemming.dataplane.sai.RemoveHashRequest - 6, // 11: lemming.dataplane.sai.Hash.SetHashAttribute:input_type -> lemming.dataplane.sai.SetHashAttributeRequest - 8, // 12: lemming.dataplane.sai.Hash.GetHashAttribute:input_type -> lemming.dataplane.sai.GetHashAttributeRequest - 10, // 13: lemming.dataplane.sai.Hash.CreateFineGrainedHashField:input_type -> lemming.dataplane.sai.CreateFineGrainedHashFieldRequest - 12, // 14: lemming.dataplane.sai.Hash.RemoveFineGrainedHashField:input_type -> lemming.dataplane.sai.RemoveFineGrainedHashFieldRequest - 14, // 15: lemming.dataplane.sai.Hash.GetFineGrainedHashFieldAttribute:input_type -> lemming.dataplane.sai.GetFineGrainedHashFieldAttributeRequest - 3, // 16: lemming.dataplane.sai.Hash.CreateHash:output_type -> lemming.dataplane.sai.CreateHashResponse - 5, // 17: lemming.dataplane.sai.Hash.RemoveHash:output_type -> lemming.dataplane.sai.RemoveHashResponse - 7, // 18: lemming.dataplane.sai.Hash.SetHashAttribute:output_type -> lemming.dataplane.sai.SetHashAttributeResponse - 9, // 19: lemming.dataplane.sai.Hash.GetHashAttribute:output_type -> lemming.dataplane.sai.GetHashAttributeResponse - 11, // 20: lemming.dataplane.sai.Hash.CreateFineGrainedHashField:output_type -> lemming.dataplane.sai.CreateFineGrainedHashFieldResponse - 13, // 21: lemming.dataplane.sai.Hash.RemoveFineGrainedHashField:output_type -> lemming.dataplane.sai.RemoveFineGrainedHashFieldResponse - 15, // 22: lemming.dataplane.sai.Hash.GetFineGrainedHashFieldAttribute:output_type -> lemming.dataplane.sai.GetFineGrainedHashFieldAttributeResponse - 16, // [16:23] is the sub-list for method output_type - 9, // [9:16] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 16, // 1: lemming.dataplane.sai.SetHashAttributeRequest.native_hash_field_list:type_name -> lemming.dataplane.sai.NativeHashField + 0, // 2: lemming.dataplane.sai.GetHashAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.HashAttr + 17, // 3: lemming.dataplane.sai.GetHashAttributeResponse.attr:type_name -> lemming.dataplane.sai.HashAttribute + 16, // 4: lemming.dataplane.sai.CreateFineGrainedHashFieldRequest.native_hash_field:type_name -> lemming.dataplane.sai.NativeHashField + 1, // 5: lemming.dataplane.sai.GetFineGrainedHashFieldAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.FineGrainedHashFieldAttr + 18, // 6: lemming.dataplane.sai.GetFineGrainedHashFieldAttributeResponse.attr:type_name -> lemming.dataplane.sai.FineGrainedHashFieldAttribute + 2, // 7: lemming.dataplane.sai.Hash.CreateHash:input_type -> lemming.dataplane.sai.CreateHashRequest + 4, // 8: lemming.dataplane.sai.Hash.RemoveHash:input_type -> lemming.dataplane.sai.RemoveHashRequest + 6, // 9: lemming.dataplane.sai.Hash.SetHashAttribute:input_type -> lemming.dataplane.sai.SetHashAttributeRequest + 8, // 10: lemming.dataplane.sai.Hash.GetHashAttribute:input_type -> lemming.dataplane.sai.GetHashAttributeRequest + 10, // 11: lemming.dataplane.sai.Hash.CreateFineGrainedHashField:input_type -> lemming.dataplane.sai.CreateFineGrainedHashFieldRequest + 12, // 12: lemming.dataplane.sai.Hash.RemoveFineGrainedHashField:input_type -> lemming.dataplane.sai.RemoveFineGrainedHashFieldRequest + 14, // 13: lemming.dataplane.sai.Hash.GetFineGrainedHashFieldAttribute:input_type -> lemming.dataplane.sai.GetFineGrainedHashFieldAttributeRequest + 3, // 14: lemming.dataplane.sai.Hash.CreateHash:output_type -> lemming.dataplane.sai.CreateHashResponse + 5, // 15: lemming.dataplane.sai.Hash.RemoveHash:output_type -> lemming.dataplane.sai.RemoveHashResponse + 7, // 16: lemming.dataplane.sai.Hash.SetHashAttribute:output_type -> lemming.dataplane.sai.SetHashAttributeResponse + 9, // 17: lemming.dataplane.sai.Hash.GetHashAttribute:output_type -> lemming.dataplane.sai.GetHashAttributeResponse + 11, // 18: lemming.dataplane.sai.Hash.CreateFineGrainedHashField:output_type -> lemming.dataplane.sai.CreateFineGrainedHashFieldResponse + 13, // 19: lemming.dataplane.sai.Hash.RemoveFineGrainedHashField:output_type -> lemming.dataplane.sai.RemoveFineGrainedHashFieldResponse + 15, // 20: lemming.dataplane.sai.Hash.GetFineGrainedHashFieldAttribute:output_type -> lemming.dataplane.sai.GetFineGrainedHashFieldAttributeResponse + 14, // [14:21] is the sub-list for method output_type + 7, // [7:14] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_hash_proto_init() } @@ -1329,11 +1297,7 @@ func file_dataplane_standalone_proto_hash_proto_init() { } } } - file_dataplane_standalone_proto_hash_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetHashAttributeRequest_NativeHashFieldList)(nil), - (*SetHashAttributeRequest_UdfGroupList)(nil), - (*SetHashAttributeRequest_FineGrainedHashFieldList)(nil), - } + file_dataplane_standalone_proto_hash_proto_msgTypes[8].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/hash.proto b/dataplane/standalone/proto/hash.proto index 8bcc8013..290a43ac 100644 --- a/dataplane/standalone/proto/hash.proto +++ b/dataplane/standalone/proto/hash.proto @@ -7,122 +7,94 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum HashAttr { - HASH_ATTR_UNSPECIFIED = 0; - HASH_ATTR_NATIVE_HASH_FIELD_LIST = 1; - HASH_ATTR_UDF_GROUP_LIST = 2; - HASH_ATTR_FINE_GRAINED_HASH_FIELD_LIST = 3; + HASH_ATTR_UNSPECIFIED = 0; + HASH_ATTR_NATIVE_HASH_FIELD_LIST = 1; + HASH_ATTR_UDF_GROUP_LIST = 2; + HASH_ATTR_FINE_GRAINED_HASH_FIELD_LIST = 3; } enum FineGrainedHashFieldAttr { - FINE_GRAINED_HASH_FIELD_ATTR_UNSPECIFIED = 0; - FINE_GRAINED_HASH_FIELD_ATTR_NATIVE_HASH_FIELD = 1; - FINE_GRAINED_HASH_FIELD_ATTR_IPV4_MASK = 2; - FINE_GRAINED_HASH_FIELD_ATTR_IPV6_MASK = 3; - FINE_GRAINED_HASH_FIELD_ATTR_SEQUENCE_ID = 4; + FINE_GRAINED_HASH_FIELD_ATTR_UNSPECIFIED = 0; + FINE_GRAINED_HASH_FIELD_ATTR_NATIVE_HASH_FIELD = 1; + FINE_GRAINED_HASH_FIELD_ATTR_IPV4_MASK = 2; + FINE_GRAINED_HASH_FIELD_ATTR_IPV6_MASK = 3; + FINE_GRAINED_HASH_FIELD_ATTR_SEQUENCE_ID = 4; } message CreateHashRequest { - uint64 switch = 1; - - repeated NativeHashField native_hash_field_list = 2; - repeated uint64 udf_group_list = 3; - repeated uint64 fine_grained_hash_field_list = 4; - + uint64 switch = 1; + repeated NativeHashField native_hash_field_list = 2 [(attr_enum_value) = 1]; + repeated uint64 udf_group_list = 3 [(attr_enum_value) = 2]; + repeated uint64 fine_grained_hash_field_list = 4 [(attr_enum_value) = 3]; } message CreateHashResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveHashRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveHashResponse { - - -} +message RemoveHashResponse {} message SetHashAttributeRequest { - uint64 oid = 1; - oneof attr { - NativeHashFieldList native_hash_field_list = 2; - Uint64List udf_group_list = 3; - Uint64List fine_grained_hash_field_list = 4; - } + uint64 oid = 1; + repeated NativeHashField native_hash_field_list = 2 [(attr_enum_value) = 1]; + repeated uint64 udf_group_list = 3 [(attr_enum_value) = 2]; + repeated uint64 fine_grained_hash_field_list = 4 [(attr_enum_value) = 3]; } -message SetHashAttributeResponse { - - -} +message SetHashAttributeResponse {} message GetHashAttributeRequest { - uint64 oid = 1; - repeated HashAttr attr_type = 2; - - + uint64 oid = 1; + repeated HashAttr attr_type = 2; } message GetHashAttributeResponse { - repeated HashAttribute attr = 1; - - + HashAttribute attr = 1; } message CreateFineGrainedHashFieldRequest { - uint64 switch = 1; - - NativeHashField native_hash_field = 2; - bytes ipv4_mask = 3; - bytes ipv6_mask = 4; - uint32 sequence_id = 5; - + uint64 switch = 1; + optional NativeHashField native_hash_field = 2 [(attr_enum_value) = 1]; + optional bytes ipv4_mask = 3 [(attr_enum_value) = 2]; + optional bytes ipv6_mask = 4 [(attr_enum_value) = 3]; + optional uint32 sequence_id = 5 [(attr_enum_value) = 4]; } message CreateFineGrainedHashFieldResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveFineGrainedHashFieldRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveFineGrainedHashFieldResponse { - - -} +message RemoveFineGrainedHashFieldResponse {} message GetFineGrainedHashFieldAttributeRequest { - uint64 oid = 1; - repeated FineGrainedHashFieldAttr attr_type = 2; - - + uint64 oid = 1; + repeated FineGrainedHashFieldAttr attr_type = 2; } message GetFineGrainedHashFieldAttributeResponse { - repeated FineGrainedHashFieldAttribute attr = 1; - - + FineGrainedHashFieldAttribute attr = 1; } - service Hash { - rpc CreateHash (CreateHashRequest) returns (CreateHashResponse) {} - rpc RemoveHash (RemoveHashRequest) returns (RemoveHashResponse) {} - rpc SetHashAttribute (SetHashAttributeRequest) returns (SetHashAttributeResponse) {} - rpc GetHashAttribute (GetHashAttributeRequest) returns (GetHashAttributeResponse) {} - rpc CreateFineGrainedHashField (CreateFineGrainedHashFieldRequest) returns (CreateFineGrainedHashFieldResponse) {} - rpc RemoveFineGrainedHashField (RemoveFineGrainedHashFieldRequest) returns (RemoveFineGrainedHashFieldResponse) {} - rpc GetFineGrainedHashFieldAttribute (GetFineGrainedHashFieldAttributeRequest) returns (GetFineGrainedHashFieldAttributeResponse) {} + rpc CreateHash(CreateHashRequest) returns (CreateHashResponse) {} + rpc RemoveHash(RemoveHashRequest) returns (RemoveHashResponse) {} + rpc SetHashAttribute(SetHashAttributeRequest) + returns (SetHashAttributeResponse) {} + rpc GetHashAttribute(GetHashAttributeRequest) + returns (GetHashAttributeResponse) {} + rpc CreateFineGrainedHashField(CreateFineGrainedHashFieldRequest) + returns (CreateFineGrainedHashFieldResponse) {} + rpc RemoveFineGrainedHashField(RemoveFineGrainedHashFieldRequest) + returns (RemoveFineGrainedHashFieldResponse) {} + rpc GetFineGrainedHashFieldAttribute(GetFineGrainedHashFieldAttributeRequest) + returns (GetFineGrainedHashFieldAttributeResponse) {} } diff --git a/dataplane/standalone/proto/hostif.pb.go b/dataplane/standalone/proto/hostif.pb.go index 4eac2cc1..ddd71175 100755 --- a/dataplane/standalone/proto/hostif.pb.go +++ b/dataplane/standalone/proto/hostif.pb.go @@ -319,14 +319,14 @@ type CreateHostifRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type HostifType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifType" json:"type,omitempty"` - ObjId uint64 `protobuf:"varint,3,opt,name=obj_id,json=objId,proto3" json:"obj_id,omitempty"` - Name []byte `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - OperStatus bool `protobuf:"varint,5,opt,name=oper_status,json=operStatus,proto3" json:"oper_status,omitempty"` - Queue uint32 `protobuf:"varint,6,opt,name=queue,proto3" json:"queue,omitempty"` - VlanTag HostifVlanTag `protobuf:"varint,7,opt,name=vlan_tag,json=vlanTag,proto3,enum=lemming.dataplane.sai.HostifVlanTag" json:"vlan_tag,omitempty"` - GenetlinkMcgrpName []byte `protobuf:"bytes,8,opt,name=genetlink_mcgrp_name,json=genetlinkMcgrpName,proto3" json:"genetlink_mcgrp_name,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *HostifType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifType,oneof" json:"type,omitempty"` + ObjId *uint64 `protobuf:"varint,3,opt,name=obj_id,json=objId,proto3,oneof" json:"obj_id,omitempty"` + Name []byte `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` + OperStatus *bool `protobuf:"varint,5,opt,name=oper_status,json=operStatus,proto3,oneof" json:"oper_status,omitempty"` + Queue *uint32 `protobuf:"varint,6,opt,name=queue,proto3,oneof" json:"queue,omitempty"` + VlanTag *HostifVlanTag `protobuf:"varint,7,opt,name=vlan_tag,json=vlanTag,proto3,enum=lemming.dataplane.sai.HostifVlanTag,oneof" json:"vlan_tag,omitempty"` + GenetlinkMcgrpName []byte `protobuf:"bytes,8,opt,name=genetlink_mcgrp_name,json=genetlinkMcgrpName,proto3,oneof" json:"genetlink_mcgrp_name,omitempty"` } func (x *CreateHostifRequest) Reset() { @@ -369,15 +369,15 @@ func (x *CreateHostifRequest) GetSwitch() uint64 { } func (x *CreateHostifRequest) GetType() HostifType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return HostifType_HOSTIF_TYPE_UNSPECIFIED } func (x *CreateHostifRequest) GetObjId() uint64 { - if x != nil { - return x.ObjId + if x != nil && x.ObjId != nil { + return *x.ObjId } return 0 } @@ -390,22 +390,22 @@ func (x *CreateHostifRequest) GetName() []byte { } func (x *CreateHostifRequest) GetOperStatus() bool { - if x != nil { - return x.OperStatus + if x != nil && x.OperStatus != nil { + return *x.OperStatus } return false } func (x *CreateHostifRequest) GetQueue() uint32 { - if x != nil { - return x.Queue + if x != nil && x.Queue != nil { + return *x.Queue } return 0 } func (x *CreateHostifRequest) GetVlanTag() HostifVlanTag { - if x != nil { - return x.VlanTag + if x != nil && x.VlanTag != nil { + return *x.VlanTag } return HostifVlanTag_HOSTIF_VLAN_TAG_UNSPECIFIED } @@ -554,13 +554,10 @@ type SetHostifAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetHostifAttributeRequest_OperStatus - // *SetHostifAttributeRequest_Queue - // *SetHostifAttributeRequest_VlanTag - Attr isSetHostifAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + OperStatus *bool `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,oneof" json:"oper_status,omitempty"` + Queue *uint32 `protobuf:"varint,3,opt,name=queue,proto3,oneof" json:"queue,omitempty"` + VlanTag *HostifVlanTag `protobuf:"varint,4,opt,name=vlan_tag,json=vlanTag,proto3,enum=lemming.dataplane.sai.HostifVlanTag,oneof" json:"vlan_tag,omitempty"` } func (x *SetHostifAttributeRequest) Reset() { @@ -602,56 +599,27 @@ func (x *SetHostifAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetHostifAttributeRequest) GetAttr() isSetHostifAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetHostifAttributeRequest) GetOperStatus() bool { - if x, ok := x.GetAttr().(*SetHostifAttributeRequest_OperStatus); ok { - return x.OperStatus + if x != nil && x.OperStatus != nil { + return *x.OperStatus } return false } func (x *SetHostifAttributeRequest) GetQueue() uint32 { - if x, ok := x.GetAttr().(*SetHostifAttributeRequest_Queue); ok { - return x.Queue + if x != nil && x.Queue != nil { + return *x.Queue } return 0 } func (x *SetHostifAttributeRequest) GetVlanTag() HostifVlanTag { - if x, ok := x.GetAttr().(*SetHostifAttributeRequest_VlanTag); ok { - return x.VlanTag + if x != nil && x.VlanTag != nil { + return *x.VlanTag } return HostifVlanTag_HOSTIF_VLAN_TAG_UNSPECIFIED } -type isSetHostifAttributeRequest_Attr interface { - isSetHostifAttributeRequest_Attr() -} - -type SetHostifAttributeRequest_OperStatus struct { - OperStatus bool `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,oneof"` -} - -type SetHostifAttributeRequest_Queue struct { - Queue uint32 `protobuf:"varint,3,opt,name=queue,proto3,oneof"` -} - -type SetHostifAttributeRequest_VlanTag struct { - VlanTag HostifVlanTag `protobuf:"varint,4,opt,name=vlan_tag,json=vlanTag,proto3,enum=lemming.dataplane.sai.HostifVlanTag,oneof"` -} - -func (*SetHostifAttributeRequest_OperStatus) isSetHostifAttributeRequest_Attr() {} - -func (*SetHostifAttributeRequest_Queue) isSetHostifAttributeRequest_Attr() {} - -func (*SetHostifAttributeRequest_VlanTag) isSetHostifAttributeRequest_Attr() {} - type SetHostifAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -750,7 +718,7 @@ type GetHostifAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*HostifAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *HostifAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetHostifAttributeResponse) Reset() { @@ -785,7 +753,7 @@ func (*GetHostifAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_hostif_proto_rawDescGZIP(), []int{7} } -func (x *GetHostifAttributeResponse) GetAttr() []*HostifAttribute { +func (x *GetHostifAttributeResponse) GetAttr() *HostifAttribute { if x != nil { return x.Attr } @@ -797,12 +765,12 @@ type CreateHostifTableEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type HostifTableEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifTableEntryType" json:"type,omitempty"` - ObjId uint64 `protobuf:"varint,3,opt,name=obj_id,json=objId,proto3" json:"obj_id,omitempty"` - TrapId uint64 `protobuf:"varint,4,opt,name=trap_id,json=trapId,proto3" json:"trap_id,omitempty"` - ChannelType HostifTableEntryChannelType `protobuf:"varint,5,opt,name=channel_type,json=channelType,proto3,enum=lemming.dataplane.sai.HostifTableEntryChannelType" json:"channel_type,omitempty"` - HostIf uint64 `protobuf:"varint,6,opt,name=host_if,json=hostIf,proto3" json:"host_if,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *HostifTableEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifTableEntryType,oneof" json:"type,omitempty"` + ObjId *uint64 `protobuf:"varint,3,opt,name=obj_id,json=objId,proto3,oneof" json:"obj_id,omitempty"` + TrapId *uint64 `protobuf:"varint,4,opt,name=trap_id,json=trapId,proto3,oneof" json:"trap_id,omitempty"` + ChannelType *HostifTableEntryChannelType `protobuf:"varint,5,opt,name=channel_type,json=channelType,proto3,enum=lemming.dataplane.sai.HostifTableEntryChannelType,oneof" json:"channel_type,omitempty"` + HostIf *uint64 `protobuf:"varint,6,opt,name=host_if,json=hostIf,proto3,oneof" json:"host_if,omitempty"` } func (x *CreateHostifTableEntryRequest) Reset() { @@ -845,36 +813,36 @@ func (x *CreateHostifTableEntryRequest) GetSwitch() uint64 { } func (x *CreateHostifTableEntryRequest) GetType() HostifTableEntryType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return HostifTableEntryType_HOSTIF_TABLE_ENTRY_TYPE_UNSPECIFIED } func (x *CreateHostifTableEntryRequest) GetObjId() uint64 { - if x != nil { - return x.ObjId + if x != nil && x.ObjId != nil { + return *x.ObjId } return 0 } func (x *CreateHostifTableEntryRequest) GetTrapId() uint64 { - if x != nil { - return x.TrapId + if x != nil && x.TrapId != nil { + return *x.TrapId } return 0 } func (x *CreateHostifTableEntryRequest) GetChannelType() HostifTableEntryChannelType { - if x != nil { - return x.ChannelType + if x != nil && x.ChannelType != nil { + return *x.ChannelType } return HostifTableEntryChannelType_HOSTIF_TABLE_ENTRY_CHANNEL_TYPE_UNSPECIFIED } func (x *CreateHostifTableEntryRequest) GetHostIf() uint64 { - if x != nil { - return x.HostIf + if x != nil && x.HostIf != nil { + return *x.HostIf } return 0 } @@ -1071,7 +1039,7 @@ type GetHostifTableEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*HostifTableEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *HostifTableEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetHostifTableEntryAttributeResponse) Reset() { @@ -1106,7 +1074,7 @@ func (*GetHostifTableEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_hostif_proto_rawDescGZIP(), []int{13} } -func (x *GetHostifTableEntryAttributeResponse) GetAttr() []*HostifTableEntryAttribute { +func (x *GetHostifTableEntryAttributeResponse) GetAttr() *HostifTableEntryAttribute { if x != nil { return x.Attr } @@ -1118,10 +1086,10 @@ type CreateHostifTrapGroupRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - AdminState bool `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - Queue uint32 `protobuf:"varint,3,opt,name=queue,proto3" json:"queue,omitempty"` - Policer uint64 `protobuf:"varint,4,opt,name=policer,proto3" json:"policer,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + AdminState *bool `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + Queue *uint32 `protobuf:"varint,3,opt,name=queue,proto3,oneof" json:"queue,omitempty"` + Policer *uint64 `protobuf:"varint,4,opt,name=policer,proto3,oneof" json:"policer,omitempty"` } func (x *CreateHostifTrapGroupRequest) Reset() { @@ -1164,22 +1132,22 @@ func (x *CreateHostifTrapGroupRequest) GetSwitch() uint64 { } func (x *CreateHostifTrapGroupRequest) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *CreateHostifTrapGroupRequest) GetQueue() uint32 { - if x != nil { - return x.Queue + if x != nil && x.Queue != nil { + return *x.Queue } return 0 } func (x *CreateHostifTrapGroupRequest) GetPolicer() uint64 { - if x != nil { - return x.Policer + if x != nil && x.Policer != nil { + return *x.Policer } return 0 } @@ -1321,13 +1289,10 @@ type SetHostifTrapGroupAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetHostifTrapGroupAttributeRequest_AdminState - // *SetHostifTrapGroupAttributeRequest_Queue - // *SetHostifTrapGroupAttributeRequest_Policer - Attr isSetHostifTrapGroupAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + AdminState *bool `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + Queue *uint32 `protobuf:"varint,3,opt,name=queue,proto3,oneof" json:"queue,omitempty"` + Policer *uint64 `protobuf:"varint,4,opt,name=policer,proto3,oneof" json:"policer,omitempty"` } func (x *SetHostifTrapGroupAttributeRequest) Reset() { @@ -1369,56 +1334,27 @@ func (x *SetHostifTrapGroupAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetHostifTrapGroupAttributeRequest) GetAttr() isSetHostifTrapGroupAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetHostifTrapGroupAttributeRequest) GetAdminState() bool { - if x, ok := x.GetAttr().(*SetHostifTrapGroupAttributeRequest_AdminState); ok { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *SetHostifTrapGroupAttributeRequest) GetQueue() uint32 { - if x, ok := x.GetAttr().(*SetHostifTrapGroupAttributeRequest_Queue); ok { - return x.Queue + if x != nil && x.Queue != nil { + return *x.Queue } return 0 } func (x *SetHostifTrapGroupAttributeRequest) GetPolicer() uint64 { - if x, ok := x.GetAttr().(*SetHostifTrapGroupAttributeRequest_Policer); ok { - return x.Policer + if x != nil && x.Policer != nil { + return *x.Policer } return 0 } -type isSetHostifTrapGroupAttributeRequest_Attr interface { - isSetHostifTrapGroupAttributeRequest_Attr() -} - -type SetHostifTrapGroupAttributeRequest_AdminState struct { - AdminState bool `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3,oneof"` -} - -type SetHostifTrapGroupAttributeRequest_Queue struct { - Queue uint32 `protobuf:"varint,3,opt,name=queue,proto3,oneof"` -} - -type SetHostifTrapGroupAttributeRequest_Policer struct { - Policer uint64 `protobuf:"varint,4,opt,name=policer,proto3,oneof"` -} - -func (*SetHostifTrapGroupAttributeRequest_AdminState) isSetHostifTrapGroupAttributeRequest_Attr() {} - -func (*SetHostifTrapGroupAttributeRequest_Queue) isSetHostifTrapGroupAttributeRequest_Attr() {} - -func (*SetHostifTrapGroupAttributeRequest_Policer) isSetHostifTrapGroupAttributeRequest_Attr() {} - type SetHostifTrapGroupAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1517,7 +1453,7 @@ type GetHostifTrapGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*HostifTrapGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *HostifTrapGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetHostifTrapGroupAttributeResponse) Reset() { @@ -1552,7 +1488,7 @@ func (*GetHostifTrapGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_hostif_proto_rawDescGZIP(), []int{21} } -func (x *GetHostifTrapGroupAttributeResponse) GetAttr() []*HostifTrapGroupAttribute { +func (x *GetHostifTrapGroupAttributeResponse) GetAttr() *HostifTrapGroupAttribute { if x != nil { return x.Attr } @@ -1564,14 +1500,14 @@ type CreateHostifTrapRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TrapType HostifTrapType `protobuf:"varint,2,opt,name=trap_type,json=trapType,proto3,enum=lemming.dataplane.sai.HostifTrapType" json:"trap_type,omitempty"` - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - TrapPriority uint32 `protobuf:"varint,4,opt,name=trap_priority,json=trapPriority,proto3" json:"trap_priority,omitempty"` - ExcludePortList []uint64 `protobuf:"varint,5,rep,packed,name=exclude_port_list,json=excludePortList,proto3" json:"exclude_port_list,omitempty"` - TrapGroup uint64 `protobuf:"varint,6,opt,name=trap_group,json=trapGroup,proto3" json:"trap_group,omitempty"` - MirrorSession []uint64 `protobuf:"varint,7,rep,packed,name=mirror_session,json=mirrorSession,proto3" json:"mirror_session,omitempty"` - CounterId uint64 `protobuf:"varint,8,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + TrapType *HostifTrapType `protobuf:"varint,2,opt,name=trap_type,json=trapType,proto3,enum=lemming.dataplane.sai.HostifTrapType,oneof" json:"trap_type,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,4,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + ExcludePortList []uint64 `protobuf:"varint,5,rep,packed,name=exclude_port_list,json=excludePortList,proto3" json:"exclude_port_list,omitempty"` + TrapGroup *uint64 `protobuf:"varint,6,opt,name=trap_group,json=trapGroup,proto3,oneof" json:"trap_group,omitempty"` + MirrorSession []uint64 `protobuf:"varint,7,rep,packed,name=mirror_session,json=mirrorSession,proto3" json:"mirror_session,omitempty"` + CounterId *uint64 `protobuf:"varint,8,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *CreateHostifTrapRequest) Reset() { @@ -1614,22 +1550,22 @@ func (x *CreateHostifTrapRequest) GetSwitch() uint64 { } func (x *CreateHostifTrapRequest) GetTrapType() HostifTrapType { - if x != nil { - return x.TrapType + if x != nil && x.TrapType != nil { + return *x.TrapType } return HostifTrapType_HOSTIF_TRAP_TYPE_UNSPECIFIED } func (x *CreateHostifTrapRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateHostifTrapRequest) GetTrapPriority() uint32 { - if x != nil { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } @@ -1642,8 +1578,8 @@ func (x *CreateHostifTrapRequest) GetExcludePortList() []uint64 { } func (x *CreateHostifTrapRequest) GetTrapGroup() uint64 { - if x != nil { - return x.TrapGroup + if x != nil && x.TrapGroup != nil { + return *x.TrapGroup } return 0 } @@ -1656,8 +1592,8 @@ func (x *CreateHostifTrapRequest) GetMirrorSession() []uint64 { } func (x *CreateHostifTrapRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -1799,16 +1735,13 @@ type SetHostifTrapAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetHostifTrapAttributeRequest_PacketAction - // *SetHostifTrapAttributeRequest_TrapPriority - // *SetHostifTrapAttributeRequest_ExcludePortList - // *SetHostifTrapAttributeRequest_TrapGroup - // *SetHostifTrapAttributeRequest_MirrorSession - // *SetHostifTrapAttributeRequest_CounterId - Attr isSetHostifTrapAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,3,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + ExcludePortList []uint64 `protobuf:"varint,4,rep,packed,name=exclude_port_list,json=excludePortList,proto3" json:"exclude_port_list,omitempty"` + TrapGroup *uint64 `protobuf:"varint,5,opt,name=trap_group,json=trapGroup,proto3,oneof" json:"trap_group,omitempty"` + MirrorSession []uint64 `protobuf:"varint,6,rep,packed,name=mirror_session,json=mirrorSession,proto3" json:"mirror_session,omitempty"` + CounterId *uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *SetHostifTrapAttributeRequest) Reset() { @@ -1850,95 +1783,48 @@ func (x *SetHostifTrapAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetHostifTrapAttributeRequest) GetAttr() isSetHostifTrapAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetHostifTrapAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetHostifTrapAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetHostifTrapAttributeRequest) GetTrapPriority() uint32 { - if x, ok := x.GetAttr().(*SetHostifTrapAttributeRequest_TrapPriority); ok { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } -func (x *SetHostifTrapAttributeRequest) GetExcludePortList() *Uint64List { - if x, ok := x.GetAttr().(*SetHostifTrapAttributeRequest_ExcludePortList); ok { +func (x *SetHostifTrapAttributeRequest) GetExcludePortList() []uint64 { + if x != nil { return x.ExcludePortList } return nil } func (x *SetHostifTrapAttributeRequest) GetTrapGroup() uint64 { - if x, ok := x.GetAttr().(*SetHostifTrapAttributeRequest_TrapGroup); ok { - return x.TrapGroup + if x != nil && x.TrapGroup != nil { + return *x.TrapGroup } return 0 } -func (x *SetHostifTrapAttributeRequest) GetMirrorSession() *Uint64List { - if x, ok := x.GetAttr().(*SetHostifTrapAttributeRequest_MirrorSession); ok { +func (x *SetHostifTrapAttributeRequest) GetMirrorSession() []uint64 { + if x != nil { return x.MirrorSession } return nil } func (x *SetHostifTrapAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetHostifTrapAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } -type isSetHostifTrapAttributeRequest_Attr interface { - isSetHostifTrapAttributeRequest_Attr() -} - -type SetHostifTrapAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetHostifTrapAttributeRequest_TrapPriority struct { - TrapPriority uint32 `protobuf:"varint,3,opt,name=trap_priority,json=trapPriority,proto3,oneof"` -} - -type SetHostifTrapAttributeRequest_ExcludePortList struct { - ExcludePortList *Uint64List `protobuf:"bytes,4,opt,name=exclude_port_list,json=excludePortList,proto3,oneof"` -} - -type SetHostifTrapAttributeRequest_TrapGroup struct { - TrapGroup uint64 `protobuf:"varint,5,opt,name=trap_group,json=trapGroup,proto3,oneof"` -} - -type SetHostifTrapAttributeRequest_MirrorSession struct { - MirrorSession *Uint64List `protobuf:"bytes,6,opt,name=mirror_session,json=mirrorSession,proto3,oneof"` -} - -type SetHostifTrapAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -func (*SetHostifTrapAttributeRequest_PacketAction) isSetHostifTrapAttributeRequest_Attr() {} - -func (*SetHostifTrapAttributeRequest_TrapPriority) isSetHostifTrapAttributeRequest_Attr() {} - -func (*SetHostifTrapAttributeRequest_ExcludePortList) isSetHostifTrapAttributeRequest_Attr() {} - -func (*SetHostifTrapAttributeRequest_TrapGroup) isSetHostifTrapAttributeRequest_Attr() {} - -func (*SetHostifTrapAttributeRequest_MirrorSession) isSetHostifTrapAttributeRequest_Attr() {} - -func (*SetHostifTrapAttributeRequest_CounterId) isSetHostifTrapAttributeRequest_Attr() {} - type SetHostifTrapAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2037,7 +1923,7 @@ type GetHostifTrapAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*HostifTrapAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *HostifTrapAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetHostifTrapAttributeResponse) Reset() { @@ -2072,7 +1958,7 @@ func (*GetHostifTrapAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_hostif_proto_rawDescGZIP(), []int{29} } -func (x *GetHostifTrapAttributeResponse) GetAttr() []*HostifTrapAttribute { +func (x *GetHostifTrapAttributeResponse) GetAttr() *HostifTrapAttribute { if x != nil { return x.Attr } @@ -2084,10 +1970,10 @@ type CreateHostifUserDefinedTrapRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type HostifUserDefinedTrapType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifUserDefinedTrapType" json:"type,omitempty"` - TrapPriority uint32 `protobuf:"varint,3,opt,name=trap_priority,json=trapPriority,proto3" json:"trap_priority,omitempty"` - TrapGroup uint64 `protobuf:"varint,4,opt,name=trap_group,json=trapGroup,proto3" json:"trap_group,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *HostifUserDefinedTrapType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.HostifUserDefinedTrapType,oneof" json:"type,omitempty"` + TrapPriority *uint32 `protobuf:"varint,3,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + TrapGroup *uint64 `protobuf:"varint,4,opt,name=trap_group,json=trapGroup,proto3,oneof" json:"trap_group,omitempty"` } func (x *CreateHostifUserDefinedTrapRequest) Reset() { @@ -2130,22 +2016,22 @@ func (x *CreateHostifUserDefinedTrapRequest) GetSwitch() uint64 { } func (x *CreateHostifUserDefinedTrapRequest) GetType() HostifUserDefinedTrapType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return HostifUserDefinedTrapType_HOSTIF_USER_DEFINED_TRAP_TYPE_UNSPECIFIED } func (x *CreateHostifUserDefinedTrapRequest) GetTrapPriority() uint32 { - if x != nil { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *CreateHostifUserDefinedTrapRequest) GetTrapGroup() uint64 { - if x != nil { - return x.TrapGroup + if x != nil && x.TrapGroup != nil { + return *x.TrapGroup } return 0 } @@ -2287,12 +2173,9 @@ type SetHostifUserDefinedTrapAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetHostifUserDefinedTrapAttributeRequest_TrapPriority - // *SetHostifUserDefinedTrapAttributeRequest_TrapGroup - Attr isSetHostifUserDefinedTrapAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + TrapPriority *uint32 `protobuf:"varint,2,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + TrapGroup *uint64 `protobuf:"varint,3,opt,name=trap_group,json=trapGroup,proto3,oneof" json:"trap_group,omitempty"` } func (x *SetHostifUserDefinedTrapAttributeRequest) Reset() { @@ -2334,45 +2217,20 @@ func (x *SetHostifUserDefinedTrapAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetHostifUserDefinedTrapAttributeRequest) GetAttr() isSetHostifUserDefinedTrapAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetHostifUserDefinedTrapAttributeRequest) GetTrapPriority() uint32 { - if x, ok := x.GetAttr().(*SetHostifUserDefinedTrapAttributeRequest_TrapPriority); ok { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *SetHostifUserDefinedTrapAttributeRequest) GetTrapGroup() uint64 { - if x, ok := x.GetAttr().(*SetHostifUserDefinedTrapAttributeRequest_TrapGroup); ok { - return x.TrapGroup + if x != nil && x.TrapGroup != nil { + return *x.TrapGroup } return 0 } -type isSetHostifUserDefinedTrapAttributeRequest_Attr interface { - isSetHostifUserDefinedTrapAttributeRequest_Attr() -} - -type SetHostifUserDefinedTrapAttributeRequest_TrapPriority struct { - TrapPriority uint32 `protobuf:"varint,2,opt,name=trap_priority,json=trapPriority,proto3,oneof"` -} - -type SetHostifUserDefinedTrapAttributeRequest_TrapGroup struct { - TrapGroup uint64 `protobuf:"varint,3,opt,name=trap_group,json=trapGroup,proto3,oneof"` -} - -func (*SetHostifUserDefinedTrapAttributeRequest_TrapPriority) isSetHostifUserDefinedTrapAttributeRequest_Attr() { -} - -func (*SetHostifUserDefinedTrapAttributeRequest_TrapGroup) isSetHostifUserDefinedTrapAttributeRequest_Attr() { -} - type SetHostifUserDefinedTrapAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2471,7 +2329,7 @@ type GetHostifUserDefinedTrapAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*HostifUserDefinedTrapAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *HostifUserDefinedTrapAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetHostifUserDefinedTrapAttributeResponse) Reset() { @@ -2506,7 +2364,7 @@ func (*GetHostifUserDefinedTrapAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_hostif_proto_rawDescGZIP(), []int{37} } -func (x *GetHostifUserDefinedTrapAttributeResponse) GetAttr() []*HostifUserDefinedTrapAttribute { +func (x *GetHostifUserDefinedTrapAttributeResponse) GetAttr() *HostifUserDefinedTrapAttribute { if x != nil { return x.Attr } @@ -2522,509 +2380,557 @@ var file_dataplane_standalone_proto_hostif_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb9, 0x02, 0x0a, 0x13, 0x43, 0x72, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe3, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, - 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, - 0x54, 0x61, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x6d, 0x63, 0x67, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x63, 0x67, 0x72, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xb3, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x56, 0x6c, 0x61, 0x6e, - 0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x42, 0x06, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, - 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6f, + 0x62, 0x6a, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, + 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x08, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, + 0x67, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x54, + 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x6d, 0x63, 0x67, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x12, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x63, 0x67, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x62, 0x6a, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x74, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x63, 0x67, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, + 0x69, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x19, 0x53, + 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x01, 0x52, 0x05, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x02, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, + 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x48, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, + 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x22, 0x8c, 0x03, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, + 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x4a, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x74, 0x72, 0x61, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x02, 0x52, 0x06, 0x74, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, + 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x22, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x66, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x62, 0x6a, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x61, 0x70, + 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x66, + 0x22, 0x32, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x23, 0x47, 0x65, + 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x6f, 0x69, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x98, 0x02, - 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, - 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x74, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x66, 0x22, 0x32, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x1d, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6c, 0x0a, + 0x24, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xce, 0x01, 0x0a, 0x1c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1f, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x22, 0x31, 0x0a, 0x1d, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x81, 0x01, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, + 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6c, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, - 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x22, 0x87, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, - 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x22, 0x31, 0x0a, - 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, - 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x22, 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x05, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x02, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x22, 0x47, 0x65, + 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, - 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, - 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x16, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x53, + 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, - 0xf5, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x42, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x74, - 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x88, 0x04, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x4d, 0x0a, 0x09, 0x74, + 0x72, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x04, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0d, 0x6d, 0x69, 0x72, 0x72, 0x6f, - 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, - 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, - 0x03, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x4a, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, - 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x4f, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x74, 0x72, - 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x4a, 0x0a, 0x0e, 0x6d, 0x69, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, - 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, - 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, - 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x74, + 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, + 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x6d, + 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x52, 0x0d, 0x6d, 0x69, 0x72, 0x72, 0x6f, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, + 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, + 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x03, 0x0a, 0x1d, 0x53, 0x65, + 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x53, 0x0a, + 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x04, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x02, + 0x52, 0x09, 0x74, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x0e, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x52, 0x0d, 0x6d, 0x69, + 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x03, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x72, + 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xc6, 0x01, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, + 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, + 0x74, 0x72, 0x22, 0x91, 0x02, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, - 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x22, 0x37, 0x0a, 0x23, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x36, 0x0a, 0x22, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x25, 0x0a, 0x23, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, - 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x28, 0x53, 0x65, 0x74, + 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x12, 0x4f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, + 0x74, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x72, 0x61, 0x70, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x37, 0x0a, 0x23, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x36, 0x0a, 0x22, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1f, - 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x74, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, - 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x2b, 0x0a, 0x29, 0x53, 0x65, 0x74, 0x48, 0x6f, - 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, - 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, - 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x76, 0x0a, 0x29, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x49, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x25, 0x0a, 0x23, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb7, + 0x01, 0x0a, 0x28, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe1, 0x01, 0x0a, 0x0a, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, - 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, - 0x49, 0x44, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, - 0x53, 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x4f, 0x53, 0x54, 0x49, - 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x05, 0x12, 0x18, - 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, - 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, 0x54, - 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x54, 0x4c, 0x49, 0x4e, - 0x4b, 0x5f, 0x4d, 0x43, 0x47, 0x52, 0x50, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x07, 0x2a, 0xf9, - 0x01, 0x0a, 0x14, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2e, 0x0a, + 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x72, + 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0a, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x09, 0x74, 0x72, 0x61, 0x70, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x72, + 0x61, 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2b, 0x0a, 0x29, 0x53, 0x65, 0x74, 0x48, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, + 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, + 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x76, 0x0a, 0x29, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x49, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe1, 0x01, 0x0a, 0x0a, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x4f, + 0x53, 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x4f, 0x53, 0x54, 0x49, + 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, + 0x12, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x42, 0x4a, + 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x48, + 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x4f, 0x53, 0x54, + 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x05, 0x12, + 0x18, 0x0a, 0x14, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x4f, 0x53, + 0x54, 0x49, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x54, 0x4c, 0x49, + 0x4e, 0x4b, 0x5f, 0x4d, 0x43, 0x47, 0x52, 0x50, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x07, 0x2a, + 0xf9, 0x01, 0x0a, 0x14, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x4f, 0x53, 0x54, + 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, + 0x42, 0x4a, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, - 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x42, - 0x4a, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, + 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, + 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x48, - 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x49, 0x46, 0x10, 0x05, 0x2a, 0xab, 0x01, 0x0a, 0x13, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, - 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, - 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, - 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, 0x45, - 0x55, 0x45, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, - 0x52, 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, - 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x10, 0x03, 0x2a, 0xa9, 0x02, 0x0a, 0x0e, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x48, - 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, - 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, - 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, - 0x49, 0x54, 0x59, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, - 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x44, - 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x1f, 0x0a, - 0x1b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x05, 0x12, 0x23, - 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, - 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, - 0x49, 0x44, 0x10, 0x07, 0x2a, 0xd1, 0x01, 0x0a, 0x19, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x49, 0x46, 0x10, 0x05, 0x2a, 0xab, 0x01, 0x0a, 0x13, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, + 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x48, + 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, + 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, + 0x54, 0x52, 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x10, 0x03, 0x2a, 0xa9, 0x02, 0x0a, 0x0e, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, + 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, + 0x0a, 0x1a, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, + 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, + 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x50, 0x52, 0x49, 0x4f, + 0x52, 0x49, 0x54, 0x59, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, + 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, + 0x44, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x1f, + 0x0a, 0x1b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x05, 0x12, + 0x23, 0x0a, 0x1f, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x54, + 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, + 0x5f, 0x49, 0x44, 0x10, 0x07, 0x2a, 0xd1, 0x01, 0x0a, 0x19, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x12, 0x2d, 0x0a, 0x29, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, - 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x2f, 0x0a, 0x2b, 0x48, 0x4f, 0x53, - 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, - 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, - 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x02, 0x12, 0x2c, 0x0a, 0x28, 0x48, 0x4f, + 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x2f, 0x0a, 0x2b, 0x48, 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x03, 0x32, 0xd2, 0x14, 0x0a, 0x06, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x02, 0x12, 0x2c, 0x0a, 0x28, 0x48, + 0x4f, 0x53, 0x54, 0x49, 0x46, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, + 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, + 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x03, 0x32, 0xd2, 0x14, 0x0a, 0x06, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x69, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x12, + 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x53, 0x65, + 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, + 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, + 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, - 0x73, 0x74, 0x69, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, - 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x12, 0x2a, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x53, 0x65, 0x74, - 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, - 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, - 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x34, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, + 0x01, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x99, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, - 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x99, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, - 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x33, 0x2e, + 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, - 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, - 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, - 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x47, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x12, + 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, + 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x12, 0x2e, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, - 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, - 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, - 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, - 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, 0x72, - 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x54, 0x72, 0x61, 0x70, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, - 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x12, 0x39, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, - 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x48, - 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3f, 0x2e, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x54, + 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x96, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x12, + 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, + 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, + 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x21, 0x53, 0x65, 0x74, + 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x40, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, + 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, + 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, - 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, - 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, + 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, + 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -3094,10 +3000,9 @@ var file_dataplane_standalone_proto_hostif_proto_goTypes = []interface{}{ (*HostifTrapGroupAttribute)(nil), // 49: lemming.dataplane.sai.HostifTrapGroupAttribute (HostifTrapType)(0), // 50: lemming.dataplane.sai.HostifTrapType (PacketAction)(0), // 51: lemming.dataplane.sai.PacketAction - (*Uint64List)(nil), // 52: lemming.dataplane.sai.Uint64List - (*HostifTrapAttribute)(nil), // 53: lemming.dataplane.sai.HostifTrapAttribute - (HostifUserDefinedTrapType)(0), // 54: lemming.dataplane.sai.HostifUserDefinedTrapType - (*HostifUserDefinedTrapAttribute)(nil), // 55: lemming.dataplane.sai.HostifUserDefinedTrapAttribute + (*HostifTrapAttribute)(nil), // 52: lemming.dataplane.sai.HostifTrapAttribute + (HostifUserDefinedTrapType)(0), // 53: lemming.dataplane.sai.HostifUserDefinedTrapType + (*HostifUserDefinedTrapAttribute)(nil), // 54: lemming.dataplane.sai.HostifUserDefinedTrapAttribute } var file_dataplane_standalone_proto_hostif_proto_depIdxs = []int32{ 43, // 0: lemming.dataplane.sai.CreateHostifRequest.type:type_name -> lemming.dataplane.sai.HostifType @@ -3114,56 +3019,54 @@ var file_dataplane_standalone_proto_hostif_proto_depIdxs = []int32{ 50, // 11: lemming.dataplane.sai.CreateHostifTrapRequest.trap_type:type_name -> lemming.dataplane.sai.HostifTrapType 51, // 12: lemming.dataplane.sai.CreateHostifTrapRequest.packet_action:type_name -> lemming.dataplane.sai.PacketAction 51, // 13: lemming.dataplane.sai.SetHostifTrapAttributeRequest.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 52, // 14: lemming.dataplane.sai.SetHostifTrapAttributeRequest.exclude_port_list:type_name -> lemming.dataplane.sai.Uint64List - 52, // 15: lemming.dataplane.sai.SetHostifTrapAttributeRequest.mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 3, // 16: lemming.dataplane.sai.GetHostifTrapAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.HostifTrapAttr - 53, // 17: lemming.dataplane.sai.GetHostifTrapAttributeResponse.attr:type_name -> lemming.dataplane.sai.HostifTrapAttribute - 54, // 18: lemming.dataplane.sai.CreateHostifUserDefinedTrapRequest.type:type_name -> lemming.dataplane.sai.HostifUserDefinedTrapType - 4, // 19: lemming.dataplane.sai.GetHostifUserDefinedTrapAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.HostifUserDefinedTrapAttr - 55, // 20: lemming.dataplane.sai.GetHostifUserDefinedTrapAttributeResponse.attr:type_name -> lemming.dataplane.sai.HostifUserDefinedTrapAttribute - 5, // 21: lemming.dataplane.sai.Hostif.CreateHostif:input_type -> lemming.dataplane.sai.CreateHostifRequest - 7, // 22: lemming.dataplane.sai.Hostif.RemoveHostif:input_type -> lemming.dataplane.sai.RemoveHostifRequest - 9, // 23: lemming.dataplane.sai.Hostif.SetHostifAttribute:input_type -> lemming.dataplane.sai.SetHostifAttributeRequest - 11, // 24: lemming.dataplane.sai.Hostif.GetHostifAttribute:input_type -> lemming.dataplane.sai.GetHostifAttributeRequest - 13, // 25: lemming.dataplane.sai.Hostif.CreateHostifTableEntry:input_type -> lemming.dataplane.sai.CreateHostifTableEntryRequest - 15, // 26: lemming.dataplane.sai.Hostif.RemoveHostifTableEntry:input_type -> lemming.dataplane.sai.RemoveHostifTableEntryRequest - 17, // 27: lemming.dataplane.sai.Hostif.GetHostifTableEntryAttribute:input_type -> lemming.dataplane.sai.GetHostifTableEntryAttributeRequest - 19, // 28: lemming.dataplane.sai.Hostif.CreateHostifTrapGroup:input_type -> lemming.dataplane.sai.CreateHostifTrapGroupRequest - 21, // 29: lemming.dataplane.sai.Hostif.RemoveHostifTrapGroup:input_type -> lemming.dataplane.sai.RemoveHostifTrapGroupRequest - 23, // 30: lemming.dataplane.sai.Hostif.SetHostifTrapGroupAttribute:input_type -> lemming.dataplane.sai.SetHostifTrapGroupAttributeRequest - 25, // 31: lemming.dataplane.sai.Hostif.GetHostifTrapGroupAttribute:input_type -> lemming.dataplane.sai.GetHostifTrapGroupAttributeRequest - 27, // 32: lemming.dataplane.sai.Hostif.CreateHostifTrap:input_type -> lemming.dataplane.sai.CreateHostifTrapRequest - 29, // 33: lemming.dataplane.sai.Hostif.RemoveHostifTrap:input_type -> lemming.dataplane.sai.RemoveHostifTrapRequest - 31, // 34: lemming.dataplane.sai.Hostif.SetHostifTrapAttribute:input_type -> lemming.dataplane.sai.SetHostifTrapAttributeRequest - 33, // 35: lemming.dataplane.sai.Hostif.GetHostifTrapAttribute:input_type -> lemming.dataplane.sai.GetHostifTrapAttributeRequest - 35, // 36: lemming.dataplane.sai.Hostif.CreateHostifUserDefinedTrap:input_type -> lemming.dataplane.sai.CreateHostifUserDefinedTrapRequest - 37, // 37: lemming.dataplane.sai.Hostif.RemoveHostifUserDefinedTrap:input_type -> lemming.dataplane.sai.RemoveHostifUserDefinedTrapRequest - 39, // 38: lemming.dataplane.sai.Hostif.SetHostifUserDefinedTrapAttribute:input_type -> lemming.dataplane.sai.SetHostifUserDefinedTrapAttributeRequest - 41, // 39: lemming.dataplane.sai.Hostif.GetHostifUserDefinedTrapAttribute:input_type -> lemming.dataplane.sai.GetHostifUserDefinedTrapAttributeRequest - 6, // 40: lemming.dataplane.sai.Hostif.CreateHostif:output_type -> lemming.dataplane.sai.CreateHostifResponse - 8, // 41: lemming.dataplane.sai.Hostif.RemoveHostif:output_type -> lemming.dataplane.sai.RemoveHostifResponse - 10, // 42: lemming.dataplane.sai.Hostif.SetHostifAttribute:output_type -> lemming.dataplane.sai.SetHostifAttributeResponse - 12, // 43: lemming.dataplane.sai.Hostif.GetHostifAttribute:output_type -> lemming.dataplane.sai.GetHostifAttributeResponse - 14, // 44: lemming.dataplane.sai.Hostif.CreateHostifTableEntry:output_type -> lemming.dataplane.sai.CreateHostifTableEntryResponse - 16, // 45: lemming.dataplane.sai.Hostif.RemoveHostifTableEntry:output_type -> lemming.dataplane.sai.RemoveHostifTableEntryResponse - 18, // 46: lemming.dataplane.sai.Hostif.GetHostifTableEntryAttribute:output_type -> lemming.dataplane.sai.GetHostifTableEntryAttributeResponse - 20, // 47: lemming.dataplane.sai.Hostif.CreateHostifTrapGroup:output_type -> lemming.dataplane.sai.CreateHostifTrapGroupResponse - 22, // 48: lemming.dataplane.sai.Hostif.RemoveHostifTrapGroup:output_type -> lemming.dataplane.sai.RemoveHostifTrapGroupResponse - 24, // 49: lemming.dataplane.sai.Hostif.SetHostifTrapGroupAttribute:output_type -> lemming.dataplane.sai.SetHostifTrapGroupAttributeResponse - 26, // 50: lemming.dataplane.sai.Hostif.GetHostifTrapGroupAttribute:output_type -> lemming.dataplane.sai.GetHostifTrapGroupAttributeResponse - 28, // 51: lemming.dataplane.sai.Hostif.CreateHostifTrap:output_type -> lemming.dataplane.sai.CreateHostifTrapResponse - 30, // 52: lemming.dataplane.sai.Hostif.RemoveHostifTrap:output_type -> lemming.dataplane.sai.RemoveHostifTrapResponse - 32, // 53: lemming.dataplane.sai.Hostif.SetHostifTrapAttribute:output_type -> lemming.dataplane.sai.SetHostifTrapAttributeResponse - 34, // 54: lemming.dataplane.sai.Hostif.GetHostifTrapAttribute:output_type -> lemming.dataplane.sai.GetHostifTrapAttributeResponse - 36, // 55: lemming.dataplane.sai.Hostif.CreateHostifUserDefinedTrap:output_type -> lemming.dataplane.sai.CreateHostifUserDefinedTrapResponse - 38, // 56: lemming.dataplane.sai.Hostif.RemoveHostifUserDefinedTrap:output_type -> lemming.dataplane.sai.RemoveHostifUserDefinedTrapResponse - 40, // 57: lemming.dataplane.sai.Hostif.SetHostifUserDefinedTrapAttribute:output_type -> lemming.dataplane.sai.SetHostifUserDefinedTrapAttributeResponse - 42, // 58: lemming.dataplane.sai.Hostif.GetHostifUserDefinedTrapAttribute:output_type -> lemming.dataplane.sai.GetHostifUserDefinedTrapAttributeResponse - 40, // [40:59] is the sub-list for method output_type - 21, // [21:40] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 3, // 14: lemming.dataplane.sai.GetHostifTrapAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.HostifTrapAttr + 52, // 15: lemming.dataplane.sai.GetHostifTrapAttributeResponse.attr:type_name -> lemming.dataplane.sai.HostifTrapAttribute + 53, // 16: lemming.dataplane.sai.CreateHostifUserDefinedTrapRequest.type:type_name -> lemming.dataplane.sai.HostifUserDefinedTrapType + 4, // 17: lemming.dataplane.sai.GetHostifUserDefinedTrapAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.HostifUserDefinedTrapAttr + 54, // 18: lemming.dataplane.sai.GetHostifUserDefinedTrapAttributeResponse.attr:type_name -> lemming.dataplane.sai.HostifUserDefinedTrapAttribute + 5, // 19: lemming.dataplane.sai.Hostif.CreateHostif:input_type -> lemming.dataplane.sai.CreateHostifRequest + 7, // 20: lemming.dataplane.sai.Hostif.RemoveHostif:input_type -> lemming.dataplane.sai.RemoveHostifRequest + 9, // 21: lemming.dataplane.sai.Hostif.SetHostifAttribute:input_type -> lemming.dataplane.sai.SetHostifAttributeRequest + 11, // 22: lemming.dataplane.sai.Hostif.GetHostifAttribute:input_type -> lemming.dataplane.sai.GetHostifAttributeRequest + 13, // 23: lemming.dataplane.sai.Hostif.CreateHostifTableEntry:input_type -> lemming.dataplane.sai.CreateHostifTableEntryRequest + 15, // 24: lemming.dataplane.sai.Hostif.RemoveHostifTableEntry:input_type -> lemming.dataplane.sai.RemoveHostifTableEntryRequest + 17, // 25: lemming.dataplane.sai.Hostif.GetHostifTableEntryAttribute:input_type -> lemming.dataplane.sai.GetHostifTableEntryAttributeRequest + 19, // 26: lemming.dataplane.sai.Hostif.CreateHostifTrapGroup:input_type -> lemming.dataplane.sai.CreateHostifTrapGroupRequest + 21, // 27: lemming.dataplane.sai.Hostif.RemoveHostifTrapGroup:input_type -> lemming.dataplane.sai.RemoveHostifTrapGroupRequest + 23, // 28: lemming.dataplane.sai.Hostif.SetHostifTrapGroupAttribute:input_type -> lemming.dataplane.sai.SetHostifTrapGroupAttributeRequest + 25, // 29: lemming.dataplane.sai.Hostif.GetHostifTrapGroupAttribute:input_type -> lemming.dataplane.sai.GetHostifTrapGroupAttributeRequest + 27, // 30: lemming.dataplane.sai.Hostif.CreateHostifTrap:input_type -> lemming.dataplane.sai.CreateHostifTrapRequest + 29, // 31: lemming.dataplane.sai.Hostif.RemoveHostifTrap:input_type -> lemming.dataplane.sai.RemoveHostifTrapRequest + 31, // 32: lemming.dataplane.sai.Hostif.SetHostifTrapAttribute:input_type -> lemming.dataplane.sai.SetHostifTrapAttributeRequest + 33, // 33: lemming.dataplane.sai.Hostif.GetHostifTrapAttribute:input_type -> lemming.dataplane.sai.GetHostifTrapAttributeRequest + 35, // 34: lemming.dataplane.sai.Hostif.CreateHostifUserDefinedTrap:input_type -> lemming.dataplane.sai.CreateHostifUserDefinedTrapRequest + 37, // 35: lemming.dataplane.sai.Hostif.RemoveHostifUserDefinedTrap:input_type -> lemming.dataplane.sai.RemoveHostifUserDefinedTrapRequest + 39, // 36: lemming.dataplane.sai.Hostif.SetHostifUserDefinedTrapAttribute:input_type -> lemming.dataplane.sai.SetHostifUserDefinedTrapAttributeRequest + 41, // 37: lemming.dataplane.sai.Hostif.GetHostifUserDefinedTrapAttribute:input_type -> lemming.dataplane.sai.GetHostifUserDefinedTrapAttributeRequest + 6, // 38: lemming.dataplane.sai.Hostif.CreateHostif:output_type -> lemming.dataplane.sai.CreateHostifResponse + 8, // 39: lemming.dataplane.sai.Hostif.RemoveHostif:output_type -> lemming.dataplane.sai.RemoveHostifResponse + 10, // 40: lemming.dataplane.sai.Hostif.SetHostifAttribute:output_type -> lemming.dataplane.sai.SetHostifAttributeResponse + 12, // 41: lemming.dataplane.sai.Hostif.GetHostifAttribute:output_type -> lemming.dataplane.sai.GetHostifAttributeResponse + 14, // 42: lemming.dataplane.sai.Hostif.CreateHostifTableEntry:output_type -> lemming.dataplane.sai.CreateHostifTableEntryResponse + 16, // 43: lemming.dataplane.sai.Hostif.RemoveHostifTableEntry:output_type -> lemming.dataplane.sai.RemoveHostifTableEntryResponse + 18, // 44: lemming.dataplane.sai.Hostif.GetHostifTableEntryAttribute:output_type -> lemming.dataplane.sai.GetHostifTableEntryAttributeResponse + 20, // 45: lemming.dataplane.sai.Hostif.CreateHostifTrapGroup:output_type -> lemming.dataplane.sai.CreateHostifTrapGroupResponse + 22, // 46: lemming.dataplane.sai.Hostif.RemoveHostifTrapGroup:output_type -> lemming.dataplane.sai.RemoveHostifTrapGroupResponse + 24, // 47: lemming.dataplane.sai.Hostif.SetHostifTrapGroupAttribute:output_type -> lemming.dataplane.sai.SetHostifTrapGroupAttributeResponse + 26, // 48: lemming.dataplane.sai.Hostif.GetHostifTrapGroupAttribute:output_type -> lemming.dataplane.sai.GetHostifTrapGroupAttributeResponse + 28, // 49: lemming.dataplane.sai.Hostif.CreateHostifTrap:output_type -> lemming.dataplane.sai.CreateHostifTrapResponse + 30, // 50: lemming.dataplane.sai.Hostif.RemoveHostifTrap:output_type -> lemming.dataplane.sai.RemoveHostifTrapResponse + 32, // 51: lemming.dataplane.sai.Hostif.SetHostifTrapAttribute:output_type -> lemming.dataplane.sai.SetHostifTrapAttributeResponse + 34, // 52: lemming.dataplane.sai.Hostif.GetHostifTrapAttribute:output_type -> lemming.dataplane.sai.GetHostifTrapAttributeResponse + 36, // 53: lemming.dataplane.sai.Hostif.CreateHostifUserDefinedTrap:output_type -> lemming.dataplane.sai.CreateHostifUserDefinedTrapResponse + 38, // 54: lemming.dataplane.sai.Hostif.RemoveHostifUserDefinedTrap:output_type -> lemming.dataplane.sai.RemoveHostifUserDefinedTrapResponse + 40, // 55: lemming.dataplane.sai.Hostif.SetHostifUserDefinedTrapAttribute:output_type -> lemming.dataplane.sai.SetHostifUserDefinedTrapAttributeResponse + 42, // 56: lemming.dataplane.sai.Hostif.GetHostifUserDefinedTrapAttribute:output_type -> lemming.dataplane.sai.GetHostifUserDefinedTrapAttributeResponse + 38, // [38:57] is the sub-list for method output_type + 19, // [19:38] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_hostif_proto_init() } @@ -3630,28 +3533,15 @@ func file_dataplane_standalone_proto_hostif_proto_init() { } } } - file_dataplane_standalone_proto_hostif_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetHostifAttributeRequest_OperStatus)(nil), - (*SetHostifAttributeRequest_Queue)(nil), - (*SetHostifAttributeRequest_VlanTag)(nil), - } - file_dataplane_standalone_proto_hostif_proto_msgTypes[18].OneofWrappers = []interface{}{ - (*SetHostifTrapGroupAttributeRequest_AdminState)(nil), - (*SetHostifTrapGroupAttributeRequest_Queue)(nil), - (*SetHostifTrapGroupAttributeRequest_Policer)(nil), - } - file_dataplane_standalone_proto_hostif_proto_msgTypes[26].OneofWrappers = []interface{}{ - (*SetHostifTrapAttributeRequest_PacketAction)(nil), - (*SetHostifTrapAttributeRequest_TrapPriority)(nil), - (*SetHostifTrapAttributeRequest_ExcludePortList)(nil), - (*SetHostifTrapAttributeRequest_TrapGroup)(nil), - (*SetHostifTrapAttributeRequest_MirrorSession)(nil), - (*SetHostifTrapAttributeRequest_CounterId)(nil), - } - file_dataplane_standalone_proto_hostif_proto_msgTypes[34].OneofWrappers = []interface{}{ - (*SetHostifUserDefinedTrapAttributeRequest_TrapPriority)(nil), - (*SetHostifUserDefinedTrapAttributeRequest_TrapGroup)(nil), - } + file_dataplane_standalone_proto_hostif_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_hostif_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_hostif_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_hostif_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_hostif_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_hostif_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_hostif_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_hostif_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_hostif_proto_msgTypes[34].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/hostif.proto b/dataplane/standalone/proto/hostif.proto index 8557061d..3a20537e 100644 --- a/dataplane/standalone/proto/hostif.proto +++ b/dataplane/standalone/proto/hostif.proto @@ -7,334 +7,266 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum HostifAttr { - HOSTIF_ATTR_UNSPECIFIED = 0; - HOSTIF_ATTR_TYPE = 1; - HOSTIF_ATTR_OBJ_ID = 2; - HOSTIF_ATTR_NAME = 3; - HOSTIF_ATTR_OPER_STATUS = 4; - HOSTIF_ATTR_QUEUE = 5; - HOSTIF_ATTR_VLAN_TAG = 6; - HOSTIF_ATTR_GENETLINK_MCGRP_NAME = 7; + HOSTIF_ATTR_UNSPECIFIED = 0; + HOSTIF_ATTR_TYPE = 1; + HOSTIF_ATTR_OBJ_ID = 2; + HOSTIF_ATTR_NAME = 3; + HOSTIF_ATTR_OPER_STATUS = 4; + HOSTIF_ATTR_QUEUE = 5; + HOSTIF_ATTR_VLAN_TAG = 6; + HOSTIF_ATTR_GENETLINK_MCGRP_NAME = 7; } enum HostifTableEntryAttr { - HOSTIF_TABLE_ENTRY_ATTR_UNSPECIFIED = 0; - HOSTIF_TABLE_ENTRY_ATTR_TYPE = 1; - HOSTIF_TABLE_ENTRY_ATTR_OBJ_ID = 2; - HOSTIF_TABLE_ENTRY_ATTR_TRAP_ID = 3; - HOSTIF_TABLE_ENTRY_ATTR_CHANNEL_TYPE = 4; - HOSTIF_TABLE_ENTRY_ATTR_HOST_IF = 5; + HOSTIF_TABLE_ENTRY_ATTR_UNSPECIFIED = 0; + HOSTIF_TABLE_ENTRY_ATTR_TYPE = 1; + HOSTIF_TABLE_ENTRY_ATTR_OBJ_ID = 2; + HOSTIF_TABLE_ENTRY_ATTR_TRAP_ID = 3; + HOSTIF_TABLE_ENTRY_ATTR_CHANNEL_TYPE = 4; + HOSTIF_TABLE_ENTRY_ATTR_HOST_IF = 5; } enum HostifTrapGroupAttr { - HOSTIF_TRAP_GROUP_ATTR_UNSPECIFIED = 0; - HOSTIF_TRAP_GROUP_ATTR_ADMIN_STATE = 1; - HOSTIF_TRAP_GROUP_ATTR_QUEUE = 2; - HOSTIF_TRAP_GROUP_ATTR_POLICER = 3; + HOSTIF_TRAP_GROUP_ATTR_UNSPECIFIED = 0; + HOSTIF_TRAP_GROUP_ATTR_ADMIN_STATE = 1; + HOSTIF_TRAP_GROUP_ATTR_QUEUE = 2; + HOSTIF_TRAP_GROUP_ATTR_POLICER = 3; } enum HostifTrapAttr { - HOSTIF_TRAP_ATTR_UNSPECIFIED = 0; - HOSTIF_TRAP_ATTR_TRAP_TYPE = 1; - HOSTIF_TRAP_ATTR_PACKET_ACTION = 2; - HOSTIF_TRAP_ATTR_TRAP_PRIORITY = 3; - HOSTIF_TRAP_ATTR_EXCLUDE_PORT_LIST = 4; - HOSTIF_TRAP_ATTR_TRAP_GROUP = 5; - HOSTIF_TRAP_ATTR_MIRROR_SESSION = 6; - HOSTIF_TRAP_ATTR_COUNTER_ID = 7; + HOSTIF_TRAP_ATTR_UNSPECIFIED = 0; + HOSTIF_TRAP_ATTR_TRAP_TYPE = 1; + HOSTIF_TRAP_ATTR_PACKET_ACTION = 2; + HOSTIF_TRAP_ATTR_TRAP_PRIORITY = 3; + HOSTIF_TRAP_ATTR_EXCLUDE_PORT_LIST = 4; + HOSTIF_TRAP_ATTR_TRAP_GROUP = 5; + HOSTIF_TRAP_ATTR_MIRROR_SESSION = 6; + HOSTIF_TRAP_ATTR_COUNTER_ID = 7; } enum HostifUserDefinedTrapAttr { - HOSTIF_USER_DEFINED_TRAP_ATTR_UNSPECIFIED = 0; - HOSTIF_USER_DEFINED_TRAP_ATTR_TYPE = 1; - HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_PRIORITY = 2; - HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_GROUP = 3; + HOSTIF_USER_DEFINED_TRAP_ATTR_UNSPECIFIED = 0; + HOSTIF_USER_DEFINED_TRAP_ATTR_TYPE = 1; + HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_PRIORITY = 2; + HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_GROUP = 3; } message CreateHostifRequest { - uint64 switch = 1; - - HostifType type = 2; - uint64 obj_id = 3; - bytes name = 4; - bool oper_status = 5; - uint32 queue = 6; - HostifVlanTag vlan_tag = 7; - bytes genetlink_mcgrp_name = 8; - + uint64 switch = 1; + optional HostifType type = 2 [(attr_enum_value) = 1]; + optional uint64 obj_id = 3 [(attr_enum_value) = 2]; + optional bytes name = 4 [(attr_enum_value) = 3]; + optional bool oper_status = 5 [(attr_enum_value) = 4]; + optional uint32 queue = 6 [(attr_enum_value) = 5]; + optional HostifVlanTag vlan_tag = 7 [(attr_enum_value) = 6]; + optional bytes genetlink_mcgrp_name = 8 [(attr_enum_value) = 7]; } message CreateHostifResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveHostifRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveHostifResponse { - - -} +message RemoveHostifResponse {} message SetHostifAttributeRequest { - uint64 oid = 1; - oneof attr { - bool oper_status = 2; - uint32 queue = 3; - HostifVlanTag vlan_tag = 4; - } + uint64 oid = 1; + optional bool oper_status = 2 [(attr_enum_value) = 4]; + optional uint32 queue = 3 [(attr_enum_value) = 5]; + optional HostifVlanTag vlan_tag = 4 [(attr_enum_value) = 6]; } -message SetHostifAttributeResponse { - - -} +message SetHostifAttributeResponse {} message GetHostifAttributeRequest { - uint64 oid = 1; - repeated HostifAttr attr_type = 2; - - + uint64 oid = 1; + repeated HostifAttr attr_type = 2; } message GetHostifAttributeResponse { - repeated HostifAttribute attr = 1; - - + HostifAttribute attr = 1; } message CreateHostifTableEntryRequest { - uint64 switch = 1; - - HostifTableEntryType type = 2; - uint64 obj_id = 3; - uint64 trap_id = 4; - HostifTableEntryChannelType channel_type = 5; - uint64 host_if = 6; - + uint64 switch = 1; + optional HostifTableEntryType type = 2 [(attr_enum_value) = 1]; + optional uint64 obj_id = 3 [(attr_enum_value) = 2]; + optional uint64 trap_id = 4 [(attr_enum_value) = 3]; + optional HostifTableEntryChannelType channel_type = 5 [(attr_enum_value) = 4]; + optional uint64 host_if = 6 [(attr_enum_value) = 5]; } message CreateHostifTableEntryResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveHostifTableEntryRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveHostifTableEntryResponse { - - -} +message RemoveHostifTableEntryResponse {} message GetHostifTableEntryAttributeRequest { - uint64 oid = 1; - repeated HostifTableEntryAttr attr_type = 2; - - + uint64 oid = 1; + repeated HostifTableEntryAttr attr_type = 2; } message GetHostifTableEntryAttributeResponse { - repeated HostifTableEntryAttribute attr = 1; - - + HostifTableEntryAttribute attr = 1; } message CreateHostifTrapGroupRequest { - uint64 switch = 1; - - bool admin_state = 2; - uint32 queue = 3; - uint64 policer = 4; - + uint64 switch = 1; + optional bool admin_state = 2 [(attr_enum_value) = 1]; + optional uint32 queue = 3 [(attr_enum_value) = 2]; + optional uint64 policer = 4 [(attr_enum_value) = 3]; } message CreateHostifTrapGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveHostifTrapGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveHostifTrapGroupResponse { - - -} +message RemoveHostifTrapGroupResponse {} message SetHostifTrapGroupAttributeRequest { - uint64 oid = 1; - oneof attr { - bool admin_state = 2; - uint32 queue = 3; - uint64 policer = 4; - } + uint64 oid = 1; + optional bool admin_state = 2 [(attr_enum_value) = 1]; + optional uint32 queue = 3 [(attr_enum_value) = 2]; + optional uint64 policer = 4 [(attr_enum_value) = 3]; } -message SetHostifTrapGroupAttributeResponse { - - -} +message SetHostifTrapGroupAttributeResponse {} message GetHostifTrapGroupAttributeRequest { - uint64 oid = 1; - repeated HostifTrapGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated HostifTrapGroupAttr attr_type = 2; } message GetHostifTrapGroupAttributeResponse { - repeated HostifTrapGroupAttribute attr = 1; - - + HostifTrapGroupAttribute attr = 1; } message CreateHostifTrapRequest { - uint64 switch = 1; - - HostifTrapType trap_type = 2; - PacketAction packet_action = 3; - uint32 trap_priority = 4; - repeated uint64 exclude_port_list = 5; - uint64 trap_group = 6; - repeated uint64 mirror_session = 7; - uint64 counter_id = 8; - + uint64 switch = 1; + optional HostifTrapType trap_type = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint32 trap_priority = 4 [(attr_enum_value) = 3]; + repeated uint64 exclude_port_list = 5 [(attr_enum_value) = 4]; + optional uint64 trap_group = 6 [(attr_enum_value) = 5]; + repeated uint64 mirror_session = 7 [(attr_enum_value) = 6]; + optional uint64 counter_id = 8 [(attr_enum_value) = 7]; } message CreateHostifTrapResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveHostifTrapRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveHostifTrapResponse { - - -} +message RemoveHostifTrapResponse {} message SetHostifTrapAttributeRequest { - uint64 oid = 1; - oneof attr { - PacketAction packet_action = 2; - uint32 trap_priority = 3; - Uint64List exclude_port_list = 4; - uint64 trap_group = 5; - Uint64List mirror_session = 6; - uint64 counter_id = 7; - } + uint64 oid = 1; + optional PacketAction packet_action = 2 [(attr_enum_value) = 2]; + optional uint32 trap_priority = 3 [(attr_enum_value) = 3]; + repeated uint64 exclude_port_list = 4 [(attr_enum_value) = 4]; + optional uint64 trap_group = 5 [(attr_enum_value) = 5]; + repeated uint64 mirror_session = 6 [(attr_enum_value) = 6]; + optional uint64 counter_id = 7 [(attr_enum_value) = 7]; } -message SetHostifTrapAttributeResponse { - - -} +message SetHostifTrapAttributeResponse {} message GetHostifTrapAttributeRequest { - uint64 oid = 1; - repeated HostifTrapAttr attr_type = 2; - - + uint64 oid = 1; + repeated HostifTrapAttr attr_type = 2; } message GetHostifTrapAttributeResponse { - repeated HostifTrapAttribute attr = 1; - - + HostifTrapAttribute attr = 1; } message CreateHostifUserDefinedTrapRequest { - uint64 switch = 1; - - HostifUserDefinedTrapType type = 2; - uint32 trap_priority = 3; - uint64 trap_group = 4; - + uint64 switch = 1; + optional HostifUserDefinedTrapType type = 2 [(attr_enum_value) = 1]; + optional uint32 trap_priority = 3 [(attr_enum_value) = 2]; + optional uint64 trap_group = 4 [(attr_enum_value) = 3]; } message CreateHostifUserDefinedTrapResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveHostifUserDefinedTrapRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveHostifUserDefinedTrapResponse { - - -} +message RemoveHostifUserDefinedTrapResponse {} message SetHostifUserDefinedTrapAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 trap_priority = 2; - uint64 trap_group = 3; - } + uint64 oid = 1; + optional uint32 trap_priority = 2 [(attr_enum_value) = 2]; + optional uint64 trap_group = 3 [(attr_enum_value) = 3]; } -message SetHostifUserDefinedTrapAttributeResponse { - - -} +message SetHostifUserDefinedTrapAttributeResponse {} message GetHostifUserDefinedTrapAttributeRequest { - uint64 oid = 1; - repeated HostifUserDefinedTrapAttr attr_type = 2; - - + uint64 oid = 1; + repeated HostifUserDefinedTrapAttr attr_type = 2; } message GetHostifUserDefinedTrapAttributeResponse { - repeated HostifUserDefinedTrapAttribute attr = 1; - - + HostifUserDefinedTrapAttribute attr = 1; } - service Hostif { - rpc CreateHostif (CreateHostifRequest) returns (CreateHostifResponse) {} - rpc RemoveHostif (RemoveHostifRequest) returns (RemoveHostifResponse) {} - rpc SetHostifAttribute (SetHostifAttributeRequest) returns (SetHostifAttributeResponse) {} - rpc GetHostifAttribute (GetHostifAttributeRequest) returns (GetHostifAttributeResponse) {} - rpc CreateHostifTableEntry (CreateHostifTableEntryRequest) returns (CreateHostifTableEntryResponse) {} - rpc RemoveHostifTableEntry (RemoveHostifTableEntryRequest) returns (RemoveHostifTableEntryResponse) {} - rpc GetHostifTableEntryAttribute (GetHostifTableEntryAttributeRequest) returns (GetHostifTableEntryAttributeResponse) {} - rpc CreateHostifTrapGroup (CreateHostifTrapGroupRequest) returns (CreateHostifTrapGroupResponse) {} - rpc RemoveHostifTrapGroup (RemoveHostifTrapGroupRequest) returns (RemoveHostifTrapGroupResponse) {} - rpc SetHostifTrapGroupAttribute (SetHostifTrapGroupAttributeRequest) returns (SetHostifTrapGroupAttributeResponse) {} - rpc GetHostifTrapGroupAttribute (GetHostifTrapGroupAttributeRequest) returns (GetHostifTrapGroupAttributeResponse) {} - rpc CreateHostifTrap (CreateHostifTrapRequest) returns (CreateHostifTrapResponse) {} - rpc RemoveHostifTrap (RemoveHostifTrapRequest) returns (RemoveHostifTrapResponse) {} - rpc SetHostifTrapAttribute (SetHostifTrapAttributeRequest) returns (SetHostifTrapAttributeResponse) {} - rpc GetHostifTrapAttribute (GetHostifTrapAttributeRequest) returns (GetHostifTrapAttributeResponse) {} - rpc CreateHostifUserDefinedTrap (CreateHostifUserDefinedTrapRequest) returns (CreateHostifUserDefinedTrapResponse) {} - rpc RemoveHostifUserDefinedTrap (RemoveHostifUserDefinedTrapRequest) returns (RemoveHostifUserDefinedTrapResponse) {} - rpc SetHostifUserDefinedTrapAttribute (SetHostifUserDefinedTrapAttributeRequest) returns (SetHostifUserDefinedTrapAttributeResponse) {} - rpc GetHostifUserDefinedTrapAttribute (GetHostifUserDefinedTrapAttributeRequest) returns (GetHostifUserDefinedTrapAttributeResponse) {} + rpc CreateHostif(CreateHostifRequest) returns (CreateHostifResponse) {} + rpc RemoveHostif(RemoveHostifRequest) returns (RemoveHostifResponse) {} + rpc SetHostifAttribute(SetHostifAttributeRequest) + returns (SetHostifAttributeResponse) {} + rpc GetHostifAttribute(GetHostifAttributeRequest) + returns (GetHostifAttributeResponse) {} + rpc CreateHostifTableEntry(CreateHostifTableEntryRequest) + returns (CreateHostifTableEntryResponse) {} + rpc RemoveHostifTableEntry(RemoveHostifTableEntryRequest) + returns (RemoveHostifTableEntryResponse) {} + rpc GetHostifTableEntryAttribute(GetHostifTableEntryAttributeRequest) + returns (GetHostifTableEntryAttributeResponse) {} + rpc CreateHostifTrapGroup(CreateHostifTrapGroupRequest) + returns (CreateHostifTrapGroupResponse) {} + rpc RemoveHostifTrapGroup(RemoveHostifTrapGroupRequest) + returns (RemoveHostifTrapGroupResponse) {} + rpc SetHostifTrapGroupAttribute(SetHostifTrapGroupAttributeRequest) + returns (SetHostifTrapGroupAttributeResponse) {} + rpc GetHostifTrapGroupAttribute(GetHostifTrapGroupAttributeRequest) + returns (GetHostifTrapGroupAttributeResponse) {} + rpc CreateHostifTrap(CreateHostifTrapRequest) + returns (CreateHostifTrapResponse) {} + rpc RemoveHostifTrap(RemoveHostifTrapRequest) + returns (RemoveHostifTrapResponse) {} + rpc SetHostifTrapAttribute(SetHostifTrapAttributeRequest) + returns (SetHostifTrapAttributeResponse) {} + rpc GetHostifTrapAttribute(GetHostifTrapAttributeRequest) + returns (GetHostifTrapAttributeResponse) {} + rpc CreateHostifUserDefinedTrap(CreateHostifUserDefinedTrapRequest) + returns (CreateHostifUserDefinedTrapResponse) {} + rpc RemoveHostifUserDefinedTrap(RemoveHostifUserDefinedTrapRequest) + returns (RemoveHostifUserDefinedTrapResponse) {} + rpc SetHostifUserDefinedTrapAttribute( + SetHostifUserDefinedTrapAttributeRequest) + returns (SetHostifUserDefinedTrapAttributeResponse) {} + rpc GetHostifUserDefinedTrapAttribute( + GetHostifUserDefinedTrapAttributeRequest) + returns (GetHostifUserDefinedTrapAttributeResponse) {} } diff --git a/dataplane/standalone/proto/ipmc.pb.go b/dataplane/standalone/proto/ipmc.pb.go index 696fff8b..822447ca 100755 --- a/dataplane/standalone/proto/ipmc.pb.go +++ b/dataplane/standalone/proto/ipmc.pb.go @@ -81,10 +81,10 @@ type CreateIpmcEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *IpmcEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - OutputGroupId uint64 `protobuf:"varint,3,opt,name=output_group_id,json=outputGroupId,proto3" json:"output_group_id,omitempty"` - RpfGroupId uint64 `protobuf:"varint,4,opt,name=rpf_group_id,json=rpfGroupId,proto3" json:"rpf_group_id,omitempty"` + Entry *IpmcEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + OutputGroupId *uint64 `protobuf:"varint,3,opt,name=output_group_id,json=outputGroupId,proto3,oneof" json:"output_group_id,omitempty"` + RpfGroupId *uint64 `protobuf:"varint,4,opt,name=rpf_group_id,json=rpfGroupId,proto3,oneof" json:"rpf_group_id,omitempty"` } func (x *CreateIpmcEntryRequest) Reset() { @@ -127,22 +127,22 @@ func (x *CreateIpmcEntryRequest) GetEntry() *IpmcEntry { } func (x *CreateIpmcEntryRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateIpmcEntryRequest) GetOutputGroupId() uint64 { - if x != nil { - return x.OutputGroupId + if x != nil && x.OutputGroupId != nil { + return *x.OutputGroupId } return 0 } func (x *CreateIpmcEntryRequest) GetRpfGroupId() uint64 { - if x != nil { - return x.RpfGroupId + if x != nil && x.RpfGroupId != nil { + return *x.RpfGroupId } return 0 } @@ -275,13 +275,10 @@ type SetIpmcEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *IpmcEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetIpmcEntryAttributeRequest_PacketAction - // *SetIpmcEntryAttributeRequest_OutputGroupId - // *SetIpmcEntryAttributeRequest_RpfGroupId - Attr isSetIpmcEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *IpmcEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + OutputGroupId *uint64 `protobuf:"varint,3,opt,name=output_group_id,json=outputGroupId,proto3,oneof" json:"output_group_id,omitempty"` + RpfGroupId *uint64 `protobuf:"varint,4,opt,name=rpf_group_id,json=rpfGroupId,proto3,oneof" json:"rpf_group_id,omitempty"` } func (x *SetIpmcEntryAttributeRequest) Reset() { @@ -323,56 +320,27 @@ func (x *SetIpmcEntryAttributeRequest) GetEntry() *IpmcEntry { return nil } -func (m *SetIpmcEntryAttributeRequest) GetAttr() isSetIpmcEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetIpmcEntryAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetIpmcEntryAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetIpmcEntryAttributeRequest) GetOutputGroupId() uint64 { - if x, ok := x.GetAttr().(*SetIpmcEntryAttributeRequest_OutputGroupId); ok { - return x.OutputGroupId + if x != nil && x.OutputGroupId != nil { + return *x.OutputGroupId } return 0 } func (x *SetIpmcEntryAttributeRequest) GetRpfGroupId() uint64 { - if x, ok := x.GetAttr().(*SetIpmcEntryAttributeRequest_RpfGroupId); ok { - return x.RpfGroupId + if x != nil && x.RpfGroupId != nil { + return *x.RpfGroupId } return 0 } -type isSetIpmcEntryAttributeRequest_Attr interface { - isSetIpmcEntryAttributeRequest_Attr() -} - -type SetIpmcEntryAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetIpmcEntryAttributeRequest_OutputGroupId struct { - OutputGroupId uint64 `protobuf:"varint,3,opt,name=output_group_id,json=outputGroupId,proto3,oneof"` -} - -type SetIpmcEntryAttributeRequest_RpfGroupId struct { - RpfGroupId uint64 `protobuf:"varint,4,opt,name=rpf_group_id,json=rpfGroupId,proto3,oneof"` -} - -func (*SetIpmcEntryAttributeRequest_PacketAction) isSetIpmcEntryAttributeRequest_Attr() {} - -func (*SetIpmcEntryAttributeRequest_OutputGroupId) isSetIpmcEntryAttributeRequest_Attr() {} - -func (*SetIpmcEntryAttributeRequest_RpfGroupId) isSetIpmcEntryAttributeRequest_Attr() {} - type SetIpmcEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -471,7 +439,7 @@ type GetIpmcEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IpmcEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IpmcEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIpmcEntryAttributeResponse) Reset() { @@ -506,7 +474,7 @@ func (*GetIpmcEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_ipmc_proto_rawDescGZIP(), []int{7} } -func (x *GetIpmcEntryAttributeResponse) GetAttr() []*IpmcEntryAttribute { +func (x *GetIpmcEntryAttributeResponse) GetAttr() *IpmcEntryAttribute { if x != nil { return x.Attr } @@ -522,109 +490,119 @@ var file_dataplane_standalone_proto_ipmc_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe4, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbc, 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, + 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, - 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x72, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x19, - 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x0a, 0x16, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x19, 0x0a, 0x17, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x49, 0x70, - 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, - 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x4a, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x72, - 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x41, 0x0a, 0x09, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x0a, 0x72, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x50, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, + 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc2, + 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, - 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x9a, - 0x01, 0x0a, 0x0d, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x50, 0x4d, - 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x50, 0x46, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x32, 0xfc, 0x03, 0x0a, 0x04, - 0x49, 0x70, 0x6d, 0x63, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, - 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, - 0x15, 0x53, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0d, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2b, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x72, + 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x70, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, + 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x41, 0x0a, + 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, + 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x2a, 0x9a, 0x01, 0x0a, 0x0d, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x49, + 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, + 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x32, 0xfc, 0x03, + 0x0a, 0x04, 0x49, 0x70, 0x6d, 0x63, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, + 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, - 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, + 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x70, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, + 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -783,11 +761,8 @@ func file_dataplane_standalone_proto_ipmc_proto_init() { } } } - file_dataplane_standalone_proto_ipmc_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetIpmcEntryAttributeRequest_PacketAction)(nil), - (*SetIpmcEntryAttributeRequest_OutputGroupId)(nil), - (*SetIpmcEntryAttributeRequest_RpfGroupId)(nil), - } + file_dataplane_standalone_proto_ipmc_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_ipmc_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/ipmc.proto b/dataplane/standalone/proto/ipmc.proto index 8461bba8..6f1db34d 100644 --- a/dataplane/standalone/proto/ipmc.proto +++ b/dataplane/standalone/proto/ipmc.proto @@ -7,70 +7,53 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum IpmcEntryAttr { - IPMC_ENTRY_ATTR_UNSPECIFIED = 0; - IPMC_ENTRY_ATTR_PACKET_ACTION = 1; - IPMC_ENTRY_ATTR_OUTPUT_GROUP_ID = 2; - IPMC_ENTRY_ATTR_RPF_GROUP_ID = 3; + IPMC_ENTRY_ATTR_UNSPECIFIED = 0; + IPMC_ENTRY_ATTR_PACKET_ACTION = 1; + IPMC_ENTRY_ATTR_OUTPUT_GROUP_ID = 2; + IPMC_ENTRY_ATTR_RPF_GROUP_ID = 3; } message CreateIpmcEntryRequest { - IpmcEntry entry = 1; - - PacketAction packet_action = 2; - uint64 output_group_id = 3; - uint64 rpf_group_id = 4; - + IpmcEntry entry = 1; + optional PacketAction packet_action = 2 [(attr_enum_value) = 1]; + optional uint64 output_group_id = 3 [(attr_enum_value) = 2]; + optional uint64 rpf_group_id = 4 [(attr_enum_value) = 3]; } -message CreateIpmcEntryResponse { - - -} +message CreateIpmcEntryResponse {} message RemoveIpmcEntryRequest { - IpmcEntry entry = 1; - - + IpmcEntry entry = 1; } -message RemoveIpmcEntryResponse { - - -} +message RemoveIpmcEntryResponse {} message SetIpmcEntryAttributeRequest { - IpmcEntry entry = 1; - oneof attr { - PacketAction packet_action = 2; - uint64 output_group_id = 3; - uint64 rpf_group_id = 4; - } + IpmcEntry entry = 1; + optional PacketAction packet_action = 2 [(attr_enum_value) = 1]; + optional uint64 output_group_id = 3 [(attr_enum_value) = 2]; + optional uint64 rpf_group_id = 4 [(attr_enum_value) = 3]; } -message SetIpmcEntryAttributeResponse { - - -} +message SetIpmcEntryAttributeResponse {} message GetIpmcEntryAttributeRequest { - IpmcEntry entry = 1; - repeated IpmcEntryAttr attr_type = 2; - - + IpmcEntry entry = 1; + repeated IpmcEntryAttr attr_type = 2; } message GetIpmcEntryAttributeResponse { - repeated IpmcEntryAttribute attr = 1; - - + IpmcEntryAttribute attr = 1; } - service Ipmc { - rpc CreateIpmcEntry (CreateIpmcEntryRequest) returns (CreateIpmcEntryResponse) {} - rpc RemoveIpmcEntry (RemoveIpmcEntryRequest) returns (RemoveIpmcEntryResponse) {} - rpc SetIpmcEntryAttribute (SetIpmcEntryAttributeRequest) returns (SetIpmcEntryAttributeResponse) {} - rpc GetIpmcEntryAttribute (GetIpmcEntryAttributeRequest) returns (GetIpmcEntryAttributeResponse) {} + rpc CreateIpmcEntry(CreateIpmcEntryRequest) + returns (CreateIpmcEntryResponse) {} + rpc RemoveIpmcEntry(RemoveIpmcEntryRequest) + returns (RemoveIpmcEntryResponse) {} + rpc SetIpmcEntryAttribute(SetIpmcEntryAttributeRequest) + returns (SetIpmcEntryAttributeResponse) {} + rpc GetIpmcEntryAttribute(GetIpmcEntryAttributeRequest) + returns (GetIpmcEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/ipmc_group.pb.go b/dataplane/standalone/proto/ipmc_group.pb.go index d5345919..0565d6a5 100755 --- a/dataplane/standalone/proto/ipmc_group.pb.go +++ b/dataplane/standalone/proto/ipmc_group.pb.go @@ -361,7 +361,7 @@ type GetIpmcGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IpmcGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IpmcGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIpmcGroupAttributeResponse) Reset() { @@ -396,7 +396,7 @@ func (*GetIpmcGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_ipmc_group_proto_rawDescGZIP(), []int{5} } -func (x *GetIpmcGroupAttributeResponse) GetAttr() []*IpmcGroupAttribute { +func (x *GetIpmcGroupAttributeResponse) GetAttr() *IpmcGroupAttribute { if x != nil { return x.Attr } @@ -408,9 +408,9 @@ type CreateIpmcGroupMemberRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - IpmcGroupId uint64 `protobuf:"varint,2,opt,name=ipmc_group_id,json=ipmcGroupId,proto3" json:"ipmc_group_id,omitempty"` - IpmcOutputId uint64 `protobuf:"varint,3,opt,name=ipmc_output_id,json=ipmcOutputId,proto3" json:"ipmc_output_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + IpmcGroupId *uint64 `protobuf:"varint,2,opt,name=ipmc_group_id,json=ipmcGroupId,proto3,oneof" json:"ipmc_group_id,omitempty"` + IpmcOutputId *uint64 `protobuf:"varint,3,opt,name=ipmc_output_id,json=ipmcOutputId,proto3,oneof" json:"ipmc_output_id,omitempty"` } func (x *CreateIpmcGroupMemberRequest) Reset() { @@ -453,15 +453,15 @@ func (x *CreateIpmcGroupMemberRequest) GetSwitch() uint64 { } func (x *CreateIpmcGroupMemberRequest) GetIpmcGroupId() uint64 { - if x != nil { - return x.IpmcGroupId + if x != nil && x.IpmcGroupId != nil { + return *x.IpmcGroupId } return 0 } func (x *CreateIpmcGroupMemberRequest) GetIpmcOutputId() uint64 { - if x != nil { - return x.IpmcOutputId + if x != nil && x.IpmcOutputId != nil { + return *x.IpmcOutputId } return 0 } @@ -658,7 +658,7 @@ type GetIpmcGroupMemberAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IpmcGroupMemberAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IpmcGroupMemberAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIpmcGroupMemberAttributeResponse) Reset() { @@ -693,7 +693,7 @@ func (*GetIpmcGroupMemberAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_ipmc_group_proto_rawDescGZIP(), []int{11} } -func (x *GetIpmcGroupMemberAttributeResponse) GetAttr() []*IpmcGroupMemberAttribute { +func (x *GetIpmcGroupMemberAttributeResponse) GetAttr() *IpmcGroupMemberAttribute { if x != nil { return x.Attr } @@ -730,113 +730,117 @@ var file_dataplane_standalone_proto_ipmc_group_proto_rawDesc = []byte{ 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x80, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, + 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xbb, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x6d, 0x63, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, - 0x70, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x1d, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, - 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x7f, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x68, 0x12, 0x2d, 0x0a, 0x0d, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x0b, 0x69, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x0c, 0x69, 0x70, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x22, + 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x7d, - 0x0a, 0x0d, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x25, 0x0a, 0x21, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x4d, 0x43, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x2a, 0x92, 0x01, - 0x0a, 0x13, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, - 0x24, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, - 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x49, 0x50, 0x4d, 0x43, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x49, 0x44, - 0x10, 0x02, 0x32, 0xa1, 0x06, 0x0a, 0x09, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, - 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, + 0x23, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x6d, 0x63, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x7d, 0x0a, 0x0d, 0x49, 0x70, 0x6d, + 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, + 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x49, + 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, + 0x50, 0x4d, 0x43, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, + 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, + 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x2a, 0x92, 0x01, 0x0a, 0x13, 0x49, 0x70, 0x6d, + 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x12, 0x26, 0x0a, 0x22, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, + 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x49, 0x50, 0x4d, 0x43, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, + 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x4d, + 0x43, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x32, 0xa1, 0x06, + 0x0a, 0x09, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x72, 0x0a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, + 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x84, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x6d, - 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, - 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, + 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x70, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1047,6 +1051,7 @@ func file_dataplane_standalone_proto_ipmc_group_proto_init() { } } } + file_dataplane_standalone_proto_ipmc_group_proto_msgTypes[6].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/ipmc_group.proto b/dataplane/standalone/proto/ipmc_group.proto index aaaf20e6..04436183 100644 --- a/dataplane/standalone/proto/ipmc_group.proto +++ b/dataplane/standalone/proto/ipmc_group.proto @@ -7,99 +7,77 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum IpmcGroupAttr { - IPMC_GROUP_ATTR_UNSPECIFIED = 0; - IPMC_GROUP_ATTR_IPMC_OUTPUT_COUNT = 1; - IPMC_GROUP_ATTR_IPMC_MEMBER_LIST = 2; + IPMC_GROUP_ATTR_UNSPECIFIED = 0; + IPMC_GROUP_ATTR_IPMC_OUTPUT_COUNT = 1; + IPMC_GROUP_ATTR_IPMC_MEMBER_LIST = 2; } enum IpmcGroupMemberAttr { - IPMC_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; - IPMC_GROUP_MEMBER_ATTR_IPMC_GROUP_ID = 1; - IPMC_GROUP_MEMBER_ATTR_IPMC_OUTPUT_ID = 2; + IPMC_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; + IPMC_GROUP_MEMBER_ATTR_IPMC_GROUP_ID = 1; + IPMC_GROUP_MEMBER_ATTR_IPMC_OUTPUT_ID = 2; } message CreateIpmcGroupRequest { - uint64 switch = 1; - - + uint64 switch = 1; } message CreateIpmcGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveIpmcGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveIpmcGroupResponse { - - -} +message RemoveIpmcGroupResponse {} message GetIpmcGroupAttributeRequest { - uint64 oid = 1; - repeated IpmcGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated IpmcGroupAttr attr_type = 2; } message GetIpmcGroupAttributeResponse { - repeated IpmcGroupAttribute attr = 1; - - + IpmcGroupAttribute attr = 1; } message CreateIpmcGroupMemberRequest { - uint64 switch = 1; - - uint64 ipmc_group_id = 2; - uint64 ipmc_output_id = 3; - + uint64 switch = 1; + optional uint64 ipmc_group_id = 2 [(attr_enum_value) = 1]; + optional uint64 ipmc_output_id = 3 [(attr_enum_value) = 2]; } message CreateIpmcGroupMemberResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveIpmcGroupMemberRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveIpmcGroupMemberResponse { - - -} +message RemoveIpmcGroupMemberResponse {} message GetIpmcGroupMemberAttributeRequest { - uint64 oid = 1; - repeated IpmcGroupMemberAttr attr_type = 2; - - + uint64 oid = 1; + repeated IpmcGroupMemberAttr attr_type = 2; } message GetIpmcGroupMemberAttributeResponse { - repeated IpmcGroupMemberAttribute attr = 1; - - + IpmcGroupMemberAttribute attr = 1; } - service IpmcGroup { - rpc CreateIpmcGroup (CreateIpmcGroupRequest) returns (CreateIpmcGroupResponse) {} - rpc RemoveIpmcGroup (RemoveIpmcGroupRequest) returns (RemoveIpmcGroupResponse) {} - rpc GetIpmcGroupAttribute (GetIpmcGroupAttributeRequest) returns (GetIpmcGroupAttributeResponse) {} - rpc CreateIpmcGroupMember (CreateIpmcGroupMemberRequest) returns (CreateIpmcGroupMemberResponse) {} - rpc RemoveIpmcGroupMember (RemoveIpmcGroupMemberRequest) returns (RemoveIpmcGroupMemberResponse) {} - rpc GetIpmcGroupMemberAttribute (GetIpmcGroupMemberAttributeRequest) returns (GetIpmcGroupMemberAttributeResponse) {} + rpc CreateIpmcGroup(CreateIpmcGroupRequest) + returns (CreateIpmcGroupResponse) {} + rpc RemoveIpmcGroup(RemoveIpmcGroupRequest) + returns (RemoveIpmcGroupResponse) {} + rpc GetIpmcGroupAttribute(GetIpmcGroupAttributeRequest) + returns (GetIpmcGroupAttributeResponse) {} + rpc CreateIpmcGroupMember(CreateIpmcGroupMemberRequest) + returns (CreateIpmcGroupMemberResponse) {} + rpc RemoveIpmcGroupMember(RemoveIpmcGroupMemberRequest) + returns (RemoveIpmcGroupMemberResponse) {} + rpc GetIpmcGroupMemberAttribute(GetIpmcGroupMemberAttributeRequest) + returns (GetIpmcGroupMemberAttributeResponse) {} } diff --git a/dataplane/standalone/proto/ipsec.pb.go b/dataplane/standalone/proto/ipsec.pb.go index b9bf16a8..7a14eea3 100755 --- a/dataplane/standalone/proto/ipsec.pb.go +++ b/dataplane/standalone/proto/ipsec.pb.go @@ -299,15 +299,15 @@ type CreateIpsecRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - WarmBootEnable bool `protobuf:"varint,2,opt,name=warm_boot_enable,json=warmBootEnable,proto3" json:"warm_boot_enable,omitempty"` - ExternalSaIndexEnable bool `protobuf:"varint,3,opt,name=external_sa_index_enable,json=externalSaIndexEnable,proto3" json:"external_sa_index_enable,omitempty"` - CtagTpid uint32 `protobuf:"varint,4,opt,name=ctag_tpid,json=ctagTpid,proto3" json:"ctag_tpid,omitempty"` - StagTpid uint32 `protobuf:"varint,5,opt,name=stag_tpid,json=stagTpid,proto3" json:"stag_tpid,omitempty"` - MaxVlanTagsParsed uint32 `protobuf:"varint,6,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3" json:"max_vlan_tags_parsed,omitempty"` - OctetCountHighWatermark uint64 `protobuf:"varint,7,opt,name=octet_count_high_watermark,json=octetCountHighWatermark,proto3" json:"octet_count_high_watermark,omitempty"` - OctetCountLowWatermark uint64 `protobuf:"varint,8,opt,name=octet_count_low_watermark,json=octetCountLowWatermark,proto3" json:"octet_count_low_watermark,omitempty"` - StatsMode StatsMode `protobuf:"varint,9,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode" json:"stats_mode,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + WarmBootEnable *bool `protobuf:"varint,2,opt,name=warm_boot_enable,json=warmBootEnable,proto3,oneof" json:"warm_boot_enable,omitempty"` + ExternalSaIndexEnable *bool `protobuf:"varint,3,opt,name=external_sa_index_enable,json=externalSaIndexEnable,proto3,oneof" json:"external_sa_index_enable,omitempty"` + CtagTpid *uint32 `protobuf:"varint,4,opt,name=ctag_tpid,json=ctagTpid,proto3,oneof" json:"ctag_tpid,omitempty"` + StagTpid *uint32 `protobuf:"varint,5,opt,name=stag_tpid,json=stagTpid,proto3,oneof" json:"stag_tpid,omitempty"` + MaxVlanTagsParsed *uint32 `protobuf:"varint,6,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3,oneof" json:"max_vlan_tags_parsed,omitempty"` + OctetCountHighWatermark *uint64 `protobuf:"varint,7,opt,name=octet_count_high_watermark,json=octetCountHighWatermark,proto3,oneof" json:"octet_count_high_watermark,omitempty"` + OctetCountLowWatermark *uint64 `protobuf:"varint,8,opt,name=octet_count_low_watermark,json=octetCountLowWatermark,proto3,oneof" json:"octet_count_low_watermark,omitempty"` + StatsMode *StatsMode `protobuf:"varint,9,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode,oneof" json:"stats_mode,omitempty"` } func (x *CreateIpsecRequest) Reset() { @@ -350,57 +350,57 @@ func (x *CreateIpsecRequest) GetSwitch() uint64 { } func (x *CreateIpsecRequest) GetWarmBootEnable() bool { - if x != nil { - return x.WarmBootEnable + if x != nil && x.WarmBootEnable != nil { + return *x.WarmBootEnable } return false } func (x *CreateIpsecRequest) GetExternalSaIndexEnable() bool { - if x != nil { - return x.ExternalSaIndexEnable + if x != nil && x.ExternalSaIndexEnable != nil { + return *x.ExternalSaIndexEnable } return false } func (x *CreateIpsecRequest) GetCtagTpid() uint32 { - if x != nil { - return x.CtagTpid + if x != nil && x.CtagTpid != nil { + return *x.CtagTpid } return 0 } func (x *CreateIpsecRequest) GetStagTpid() uint32 { - if x != nil { - return x.StagTpid + if x != nil && x.StagTpid != nil { + return *x.StagTpid } return 0 } func (x *CreateIpsecRequest) GetMaxVlanTagsParsed() uint32 { - if x != nil { - return x.MaxVlanTagsParsed + if x != nil && x.MaxVlanTagsParsed != nil { + return *x.MaxVlanTagsParsed } return 0 } func (x *CreateIpsecRequest) GetOctetCountHighWatermark() uint64 { - if x != nil { - return x.OctetCountHighWatermark + if x != nil && x.OctetCountHighWatermark != nil { + return *x.OctetCountHighWatermark } return 0 } func (x *CreateIpsecRequest) GetOctetCountLowWatermark() uint64 { - if x != nil { - return x.OctetCountLowWatermark + if x != nil && x.OctetCountLowWatermark != nil { + return *x.OctetCountLowWatermark } return 0 } func (x *CreateIpsecRequest) GetStatsMode() StatsMode { - if x != nil { - return x.StatsMode + if x != nil && x.StatsMode != nil { + return *x.StatsMode } return StatsMode_STATS_MODE_UNSPECIFIED } @@ -542,17 +542,14 @@ type SetIpsecAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetIpsecAttributeRequest_WarmBootEnable - // *SetIpsecAttributeRequest_CtagTpid - // *SetIpsecAttributeRequest_StagTpid - // *SetIpsecAttributeRequest_MaxVlanTagsParsed - // *SetIpsecAttributeRequest_OctetCountHighWatermark - // *SetIpsecAttributeRequest_OctetCountLowWatermark - // *SetIpsecAttributeRequest_StatsMode - Attr isSetIpsecAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + WarmBootEnable *bool `protobuf:"varint,2,opt,name=warm_boot_enable,json=warmBootEnable,proto3,oneof" json:"warm_boot_enable,omitempty"` + CtagTpid *uint32 `protobuf:"varint,3,opt,name=ctag_tpid,json=ctagTpid,proto3,oneof" json:"ctag_tpid,omitempty"` + StagTpid *uint32 `protobuf:"varint,4,opt,name=stag_tpid,json=stagTpid,proto3,oneof" json:"stag_tpid,omitempty"` + MaxVlanTagsParsed *uint32 `protobuf:"varint,5,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3,oneof" json:"max_vlan_tags_parsed,omitempty"` + OctetCountHighWatermark *uint64 `protobuf:"varint,6,opt,name=octet_count_high_watermark,json=octetCountHighWatermark,proto3,oneof" json:"octet_count_high_watermark,omitempty"` + OctetCountLowWatermark *uint64 `protobuf:"varint,7,opt,name=octet_count_low_watermark,json=octetCountLowWatermark,proto3,oneof" json:"octet_count_low_watermark,omitempty"` + StatsMode *StatsMode `protobuf:"varint,8,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode,oneof" json:"stats_mode,omitempty"` } func (x *SetIpsecAttributeRequest) Reset() { @@ -594,108 +591,55 @@ func (x *SetIpsecAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetIpsecAttributeRequest) GetAttr() isSetIpsecAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetIpsecAttributeRequest) GetWarmBootEnable() bool { - if x, ok := x.GetAttr().(*SetIpsecAttributeRequest_WarmBootEnable); ok { - return x.WarmBootEnable + if x != nil && x.WarmBootEnable != nil { + return *x.WarmBootEnable } return false } func (x *SetIpsecAttributeRequest) GetCtagTpid() uint32 { - if x, ok := x.GetAttr().(*SetIpsecAttributeRequest_CtagTpid); ok { - return x.CtagTpid + if x != nil && x.CtagTpid != nil { + return *x.CtagTpid } return 0 } func (x *SetIpsecAttributeRequest) GetStagTpid() uint32 { - if x, ok := x.GetAttr().(*SetIpsecAttributeRequest_StagTpid); ok { - return x.StagTpid + if x != nil && x.StagTpid != nil { + return *x.StagTpid } return 0 } func (x *SetIpsecAttributeRequest) GetMaxVlanTagsParsed() uint32 { - if x, ok := x.GetAttr().(*SetIpsecAttributeRequest_MaxVlanTagsParsed); ok { - return x.MaxVlanTagsParsed + if x != nil && x.MaxVlanTagsParsed != nil { + return *x.MaxVlanTagsParsed } return 0 } func (x *SetIpsecAttributeRequest) GetOctetCountHighWatermark() uint64 { - if x, ok := x.GetAttr().(*SetIpsecAttributeRequest_OctetCountHighWatermark); ok { - return x.OctetCountHighWatermark + if x != nil && x.OctetCountHighWatermark != nil { + return *x.OctetCountHighWatermark } return 0 } func (x *SetIpsecAttributeRequest) GetOctetCountLowWatermark() uint64 { - if x, ok := x.GetAttr().(*SetIpsecAttributeRequest_OctetCountLowWatermark); ok { - return x.OctetCountLowWatermark + if x != nil && x.OctetCountLowWatermark != nil { + return *x.OctetCountLowWatermark } return 0 } func (x *SetIpsecAttributeRequest) GetStatsMode() StatsMode { - if x, ok := x.GetAttr().(*SetIpsecAttributeRequest_StatsMode); ok { - return x.StatsMode + if x != nil && x.StatsMode != nil { + return *x.StatsMode } return StatsMode_STATS_MODE_UNSPECIFIED } -type isSetIpsecAttributeRequest_Attr interface { - isSetIpsecAttributeRequest_Attr() -} - -type SetIpsecAttributeRequest_WarmBootEnable struct { - WarmBootEnable bool `protobuf:"varint,2,opt,name=warm_boot_enable,json=warmBootEnable,proto3,oneof"` -} - -type SetIpsecAttributeRequest_CtagTpid struct { - CtagTpid uint32 `protobuf:"varint,3,opt,name=ctag_tpid,json=ctagTpid,proto3,oneof"` -} - -type SetIpsecAttributeRequest_StagTpid struct { - StagTpid uint32 `protobuf:"varint,4,opt,name=stag_tpid,json=stagTpid,proto3,oneof"` -} - -type SetIpsecAttributeRequest_MaxVlanTagsParsed struct { - MaxVlanTagsParsed uint32 `protobuf:"varint,5,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3,oneof"` -} - -type SetIpsecAttributeRequest_OctetCountHighWatermark struct { - OctetCountHighWatermark uint64 `protobuf:"varint,6,opt,name=octet_count_high_watermark,json=octetCountHighWatermark,proto3,oneof"` -} - -type SetIpsecAttributeRequest_OctetCountLowWatermark struct { - OctetCountLowWatermark uint64 `protobuf:"varint,7,opt,name=octet_count_low_watermark,json=octetCountLowWatermark,proto3,oneof"` -} - -type SetIpsecAttributeRequest_StatsMode struct { - StatsMode StatsMode `protobuf:"varint,8,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode,oneof"` -} - -func (*SetIpsecAttributeRequest_WarmBootEnable) isSetIpsecAttributeRequest_Attr() {} - -func (*SetIpsecAttributeRequest_CtagTpid) isSetIpsecAttributeRequest_Attr() {} - -func (*SetIpsecAttributeRequest_StagTpid) isSetIpsecAttributeRequest_Attr() {} - -func (*SetIpsecAttributeRequest_MaxVlanTagsParsed) isSetIpsecAttributeRequest_Attr() {} - -func (*SetIpsecAttributeRequest_OctetCountHighWatermark) isSetIpsecAttributeRequest_Attr() {} - -func (*SetIpsecAttributeRequest_OctetCountLowWatermark) isSetIpsecAttributeRequest_Attr() {} - -func (*SetIpsecAttributeRequest_StatsMode) isSetIpsecAttributeRequest_Attr() {} - type SetIpsecAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -794,7 +738,7 @@ type GetIpsecAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IpsecAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IpsecAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIpsecAttributeResponse) Reset() { @@ -829,7 +773,7 @@ func (*GetIpsecAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_ipsec_proto_rawDescGZIP(), []int{7} } -func (x *GetIpsecAttributeResponse) GetAttr() []*IpsecAttribute { +func (x *GetIpsecAttributeResponse) GetAttr() *IpsecAttribute { if x != nil { return x.Attr } @@ -841,13 +785,13 @@ type CreateIpsecPortRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - PortId uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - CtagEnable bool `protobuf:"varint,3,opt,name=ctag_enable,json=ctagEnable,proto3" json:"ctag_enable,omitempty"` - StagEnable bool `protobuf:"varint,4,opt,name=stag_enable,json=stagEnable,proto3" json:"stag_enable,omitempty"` - NativeVlanId uint32 `protobuf:"varint,5,opt,name=native_vlan_id,json=nativeVlanId,proto3" json:"native_vlan_id,omitempty"` - VrfFromPacketVlanEnable bool `protobuf:"varint,6,opt,name=vrf_from_packet_vlan_enable,json=vrfFromPacketVlanEnable,proto3" json:"vrf_from_packet_vlan_enable,omitempty"` - SwitchSwitchingMode SwitchSwitchingMode `protobuf:"varint,7,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode" json:"switch_switching_mode,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + PortId *uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + CtagEnable *bool `protobuf:"varint,3,opt,name=ctag_enable,json=ctagEnable,proto3,oneof" json:"ctag_enable,omitempty"` + StagEnable *bool `protobuf:"varint,4,opt,name=stag_enable,json=stagEnable,proto3,oneof" json:"stag_enable,omitempty"` + NativeVlanId *uint32 `protobuf:"varint,5,opt,name=native_vlan_id,json=nativeVlanId,proto3,oneof" json:"native_vlan_id,omitempty"` + VrfFromPacketVlanEnable *bool `protobuf:"varint,6,opt,name=vrf_from_packet_vlan_enable,json=vrfFromPacketVlanEnable,proto3,oneof" json:"vrf_from_packet_vlan_enable,omitempty"` + SwitchSwitchingMode *SwitchSwitchingMode `protobuf:"varint,7,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switch_switching_mode,omitempty"` } func (x *CreateIpsecPortRequest) Reset() { @@ -890,43 +834,43 @@ func (x *CreateIpsecPortRequest) GetSwitch() uint64 { } func (x *CreateIpsecPortRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *CreateIpsecPortRequest) GetCtagEnable() bool { - if x != nil { - return x.CtagEnable + if x != nil && x.CtagEnable != nil { + return *x.CtagEnable } return false } func (x *CreateIpsecPortRequest) GetStagEnable() bool { - if x != nil { - return x.StagEnable + if x != nil && x.StagEnable != nil { + return *x.StagEnable } return false } func (x *CreateIpsecPortRequest) GetNativeVlanId() uint32 { - if x != nil { - return x.NativeVlanId + if x != nil && x.NativeVlanId != nil { + return *x.NativeVlanId } return 0 } func (x *CreateIpsecPortRequest) GetVrfFromPacketVlanEnable() bool { - if x != nil { - return x.VrfFromPacketVlanEnable + if x != nil && x.VrfFromPacketVlanEnable != nil { + return *x.VrfFromPacketVlanEnable } return false } func (x *CreateIpsecPortRequest) GetSwitchSwitchingMode() SwitchSwitchingMode { - if x != nil { - return x.SwitchSwitchingMode + if x != nil && x.SwitchSwitchingMode != nil { + return *x.SwitchSwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } @@ -1068,14 +1012,11 @@ type SetIpsecPortAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetIpsecPortAttributeRequest_CtagEnable - // *SetIpsecPortAttributeRequest_StagEnable - // *SetIpsecPortAttributeRequest_VrfFromPacketVlanEnable - // *SetIpsecPortAttributeRequest_SwitchSwitchingMode - Attr isSetIpsecPortAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + CtagEnable *bool `protobuf:"varint,2,opt,name=ctag_enable,json=ctagEnable,proto3,oneof" json:"ctag_enable,omitempty"` + StagEnable *bool `protobuf:"varint,3,opt,name=stag_enable,json=stagEnable,proto3,oneof" json:"stag_enable,omitempty"` + VrfFromPacketVlanEnable *bool `protobuf:"varint,4,opt,name=vrf_from_packet_vlan_enable,json=vrfFromPacketVlanEnable,proto3,oneof" json:"vrf_from_packet_vlan_enable,omitempty"` + SwitchSwitchingMode *SwitchSwitchingMode `protobuf:"varint,5,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switch_switching_mode,omitempty"` } func (x *SetIpsecPortAttributeRequest) Reset() { @@ -1117,69 +1058,34 @@ func (x *SetIpsecPortAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetIpsecPortAttributeRequest) GetAttr() isSetIpsecPortAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetIpsecPortAttributeRequest) GetCtagEnable() bool { - if x, ok := x.GetAttr().(*SetIpsecPortAttributeRequest_CtagEnable); ok { - return x.CtagEnable + if x != nil && x.CtagEnable != nil { + return *x.CtagEnable } return false } func (x *SetIpsecPortAttributeRequest) GetStagEnable() bool { - if x, ok := x.GetAttr().(*SetIpsecPortAttributeRequest_StagEnable); ok { - return x.StagEnable + if x != nil && x.StagEnable != nil { + return *x.StagEnable } return false } func (x *SetIpsecPortAttributeRequest) GetVrfFromPacketVlanEnable() bool { - if x, ok := x.GetAttr().(*SetIpsecPortAttributeRequest_VrfFromPacketVlanEnable); ok { - return x.VrfFromPacketVlanEnable + if x != nil && x.VrfFromPacketVlanEnable != nil { + return *x.VrfFromPacketVlanEnable } return false } func (x *SetIpsecPortAttributeRequest) GetSwitchSwitchingMode() SwitchSwitchingMode { - if x, ok := x.GetAttr().(*SetIpsecPortAttributeRequest_SwitchSwitchingMode); ok { - return x.SwitchSwitchingMode + if x != nil && x.SwitchSwitchingMode != nil { + return *x.SwitchSwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } -type isSetIpsecPortAttributeRequest_Attr interface { - isSetIpsecPortAttributeRequest_Attr() -} - -type SetIpsecPortAttributeRequest_CtagEnable struct { - CtagEnable bool `protobuf:"varint,2,opt,name=ctag_enable,json=ctagEnable,proto3,oneof"` -} - -type SetIpsecPortAttributeRequest_StagEnable struct { - StagEnable bool `protobuf:"varint,3,opt,name=stag_enable,json=stagEnable,proto3,oneof"` -} - -type SetIpsecPortAttributeRequest_VrfFromPacketVlanEnable struct { - VrfFromPacketVlanEnable bool `protobuf:"varint,4,opt,name=vrf_from_packet_vlan_enable,json=vrfFromPacketVlanEnable,proto3,oneof"` -} - -type SetIpsecPortAttributeRequest_SwitchSwitchingMode struct { - SwitchSwitchingMode SwitchSwitchingMode `protobuf:"varint,5,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof"` -} - -func (*SetIpsecPortAttributeRequest_CtagEnable) isSetIpsecPortAttributeRequest_Attr() {} - -func (*SetIpsecPortAttributeRequest_StagEnable) isSetIpsecPortAttributeRequest_Attr() {} - -func (*SetIpsecPortAttributeRequest_VrfFromPacketVlanEnable) isSetIpsecPortAttributeRequest_Attr() {} - -func (*SetIpsecPortAttributeRequest_SwitchSwitchingMode) isSetIpsecPortAttributeRequest_Attr() {} - type SetIpsecPortAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1278,7 +1184,7 @@ type GetIpsecPortAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IpsecPortAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IpsecPortAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIpsecPortAttributeResponse) Reset() { @@ -1313,7 +1219,7 @@ func (*GetIpsecPortAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_ipsec_proto_rawDescGZIP(), []int{15} } -func (x *GetIpsecPortAttributeResponse) GetAttr() []*IpsecPortAttribute { +func (x *GetIpsecPortAttributeResponse) GetAttr() *IpsecPortAttribute { if x != nil { return x.Attr } @@ -1325,26 +1231,26 @@ type CreateIpsecSaRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - IpsecDirection IpsecDirection `protobuf:"varint,2,opt,name=ipsec_direction,json=ipsecDirection,proto3,enum=lemming.dataplane.sai.IpsecDirection" json:"ipsec_direction,omitempty"` - IpsecId uint64 `protobuf:"varint,3,opt,name=ipsec_id,json=ipsecId,proto3" json:"ipsec_id,omitempty"` - ExternalSaIndex uint32 `protobuf:"varint,4,opt,name=external_sa_index,json=externalSaIndex,proto3" json:"external_sa_index,omitempty"` - IpsecPortList []uint64 `protobuf:"varint,5,rep,packed,name=ipsec_port_list,json=ipsecPortList,proto3" json:"ipsec_port_list,omitempty"` - IpsecSpi uint32 `protobuf:"varint,6,opt,name=ipsec_spi,json=ipsecSpi,proto3" json:"ipsec_spi,omitempty"` - IpsecEsnEnable bool `protobuf:"varint,7,opt,name=ipsec_esn_enable,json=ipsecEsnEnable,proto3" json:"ipsec_esn_enable,omitempty"` - IpsecCipher IpsecCipher `protobuf:"varint,8,opt,name=ipsec_cipher,json=ipsecCipher,proto3,enum=lemming.dataplane.sai.IpsecCipher" json:"ipsec_cipher,omitempty"` - EncryptKey []byte `protobuf:"bytes,9,opt,name=encrypt_key,json=encryptKey,proto3" json:"encrypt_key,omitempty"` - Salt uint32 `protobuf:"varint,10,opt,name=salt,proto3" json:"salt,omitempty"` - AuthKey []byte `protobuf:"bytes,11,opt,name=auth_key,json=authKey,proto3" json:"auth_key,omitempty"` - IpsecReplayProtectionEnable bool `protobuf:"varint,12,opt,name=ipsec_replay_protection_enable,json=ipsecReplayProtectionEnable,proto3" json:"ipsec_replay_protection_enable,omitempty"` - IpsecReplayProtectionWindow uint32 `protobuf:"varint,13,opt,name=ipsec_replay_protection_window,json=ipsecReplayProtectionWindow,proto3" json:"ipsec_replay_protection_window,omitempty"` - TermDstIp []byte `protobuf:"bytes,14,opt,name=term_dst_ip,json=termDstIp,proto3" json:"term_dst_ip,omitempty"` - TermVlanIdEnable bool `protobuf:"varint,15,opt,name=term_vlan_id_enable,json=termVlanIdEnable,proto3" json:"term_vlan_id_enable,omitempty"` - TermVlanId uint32 `protobuf:"varint,16,opt,name=term_vlan_id,json=termVlanId,proto3" json:"term_vlan_id,omitempty"` - TermSrcIpEnable bool `protobuf:"varint,17,opt,name=term_src_ip_enable,json=termSrcIpEnable,proto3" json:"term_src_ip_enable,omitempty"` - TermSrcIp []byte `protobuf:"bytes,18,opt,name=term_src_ip,json=termSrcIp,proto3" json:"term_src_ip,omitempty"` - EgressEsn uint64 `protobuf:"varint,19,opt,name=egress_esn,json=egressEsn,proto3" json:"egress_esn,omitempty"` - MinimumIngressEsn uint64 `protobuf:"varint,20,opt,name=minimum_ingress_esn,json=minimumIngressEsn,proto3" json:"minimum_ingress_esn,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + IpsecDirection *IpsecDirection `protobuf:"varint,2,opt,name=ipsec_direction,json=ipsecDirection,proto3,enum=lemming.dataplane.sai.IpsecDirection,oneof" json:"ipsec_direction,omitempty"` + IpsecId *uint64 `protobuf:"varint,3,opt,name=ipsec_id,json=ipsecId,proto3,oneof" json:"ipsec_id,omitempty"` + ExternalSaIndex *uint32 `protobuf:"varint,4,opt,name=external_sa_index,json=externalSaIndex,proto3,oneof" json:"external_sa_index,omitempty"` + IpsecPortList []uint64 `protobuf:"varint,5,rep,packed,name=ipsec_port_list,json=ipsecPortList,proto3" json:"ipsec_port_list,omitempty"` + IpsecSpi *uint32 `protobuf:"varint,6,opt,name=ipsec_spi,json=ipsecSpi,proto3,oneof" json:"ipsec_spi,omitempty"` + IpsecEsnEnable *bool `protobuf:"varint,7,opt,name=ipsec_esn_enable,json=ipsecEsnEnable,proto3,oneof" json:"ipsec_esn_enable,omitempty"` + IpsecCipher *IpsecCipher `protobuf:"varint,8,opt,name=ipsec_cipher,json=ipsecCipher,proto3,enum=lemming.dataplane.sai.IpsecCipher,oneof" json:"ipsec_cipher,omitempty"` + EncryptKey []byte `protobuf:"bytes,9,opt,name=encrypt_key,json=encryptKey,proto3,oneof" json:"encrypt_key,omitempty"` + Salt *uint32 `protobuf:"varint,10,opt,name=salt,proto3,oneof" json:"salt,omitempty"` + AuthKey []byte `protobuf:"bytes,11,opt,name=auth_key,json=authKey,proto3,oneof" json:"auth_key,omitempty"` + IpsecReplayProtectionEnable *bool `protobuf:"varint,12,opt,name=ipsec_replay_protection_enable,json=ipsecReplayProtectionEnable,proto3,oneof" json:"ipsec_replay_protection_enable,omitempty"` + IpsecReplayProtectionWindow *uint32 `protobuf:"varint,13,opt,name=ipsec_replay_protection_window,json=ipsecReplayProtectionWindow,proto3,oneof" json:"ipsec_replay_protection_window,omitempty"` + TermDstIp []byte `protobuf:"bytes,14,opt,name=term_dst_ip,json=termDstIp,proto3,oneof" json:"term_dst_ip,omitempty"` + TermVlanIdEnable *bool `protobuf:"varint,15,opt,name=term_vlan_id_enable,json=termVlanIdEnable,proto3,oneof" json:"term_vlan_id_enable,omitempty"` + TermVlanId *uint32 `protobuf:"varint,16,opt,name=term_vlan_id,json=termVlanId,proto3,oneof" json:"term_vlan_id,omitempty"` + TermSrcIpEnable *bool `protobuf:"varint,17,opt,name=term_src_ip_enable,json=termSrcIpEnable,proto3,oneof" json:"term_src_ip_enable,omitempty"` + TermSrcIp []byte `protobuf:"bytes,18,opt,name=term_src_ip,json=termSrcIp,proto3,oneof" json:"term_src_ip,omitempty"` + EgressEsn *uint64 `protobuf:"varint,19,opt,name=egress_esn,json=egressEsn,proto3,oneof" json:"egress_esn,omitempty"` + MinimumIngressEsn *uint64 `protobuf:"varint,20,opt,name=minimum_ingress_esn,json=minimumIngressEsn,proto3,oneof" json:"minimum_ingress_esn,omitempty"` } func (x *CreateIpsecSaRequest) Reset() { @@ -1387,22 +1293,22 @@ func (x *CreateIpsecSaRequest) GetSwitch() uint64 { } func (x *CreateIpsecSaRequest) GetIpsecDirection() IpsecDirection { - if x != nil { - return x.IpsecDirection + if x != nil && x.IpsecDirection != nil { + return *x.IpsecDirection } return IpsecDirection_IPSEC_DIRECTION_UNSPECIFIED } func (x *CreateIpsecSaRequest) GetIpsecId() uint64 { - if x != nil { - return x.IpsecId + if x != nil && x.IpsecId != nil { + return *x.IpsecId } return 0 } func (x *CreateIpsecSaRequest) GetExternalSaIndex() uint32 { - if x != nil { - return x.ExternalSaIndex + if x != nil && x.ExternalSaIndex != nil { + return *x.ExternalSaIndex } return 0 } @@ -1415,22 +1321,22 @@ func (x *CreateIpsecSaRequest) GetIpsecPortList() []uint64 { } func (x *CreateIpsecSaRequest) GetIpsecSpi() uint32 { - if x != nil { - return x.IpsecSpi + if x != nil && x.IpsecSpi != nil { + return *x.IpsecSpi } return 0 } func (x *CreateIpsecSaRequest) GetIpsecEsnEnable() bool { - if x != nil { - return x.IpsecEsnEnable + if x != nil && x.IpsecEsnEnable != nil { + return *x.IpsecEsnEnable } return false } func (x *CreateIpsecSaRequest) GetIpsecCipher() IpsecCipher { - if x != nil { - return x.IpsecCipher + if x != nil && x.IpsecCipher != nil { + return *x.IpsecCipher } return IpsecCipher_IPSEC_CIPHER_UNSPECIFIED } @@ -1443,8 +1349,8 @@ func (x *CreateIpsecSaRequest) GetEncryptKey() []byte { } func (x *CreateIpsecSaRequest) GetSalt() uint32 { - if x != nil { - return x.Salt + if x != nil && x.Salt != nil { + return *x.Salt } return 0 } @@ -1457,15 +1363,15 @@ func (x *CreateIpsecSaRequest) GetAuthKey() []byte { } func (x *CreateIpsecSaRequest) GetIpsecReplayProtectionEnable() bool { - if x != nil { - return x.IpsecReplayProtectionEnable + if x != nil && x.IpsecReplayProtectionEnable != nil { + return *x.IpsecReplayProtectionEnable } return false } func (x *CreateIpsecSaRequest) GetIpsecReplayProtectionWindow() uint32 { - if x != nil { - return x.IpsecReplayProtectionWindow + if x != nil && x.IpsecReplayProtectionWindow != nil { + return *x.IpsecReplayProtectionWindow } return 0 } @@ -1478,22 +1384,22 @@ func (x *CreateIpsecSaRequest) GetTermDstIp() []byte { } func (x *CreateIpsecSaRequest) GetTermVlanIdEnable() bool { - if x != nil { - return x.TermVlanIdEnable + if x != nil && x.TermVlanIdEnable != nil { + return *x.TermVlanIdEnable } return false } func (x *CreateIpsecSaRequest) GetTermVlanId() uint32 { - if x != nil { - return x.TermVlanId + if x != nil && x.TermVlanId != nil { + return *x.TermVlanId } return 0 } func (x *CreateIpsecSaRequest) GetTermSrcIpEnable() bool { - if x != nil { - return x.TermSrcIpEnable + if x != nil && x.TermSrcIpEnable != nil { + return *x.TermSrcIpEnable } return false } @@ -1506,15 +1412,15 @@ func (x *CreateIpsecSaRequest) GetTermSrcIp() []byte { } func (x *CreateIpsecSaRequest) GetEgressEsn() uint64 { - if x != nil { - return x.EgressEsn + if x != nil && x.EgressEsn != nil { + return *x.EgressEsn } return 0 } func (x *CreateIpsecSaRequest) GetMinimumIngressEsn() uint64 { - if x != nil { - return x.MinimumIngressEsn + if x != nil && x.MinimumIngressEsn != nil { + return *x.MinimumIngressEsn } return 0 } @@ -1656,16 +1562,13 @@ type SetIpsecSaAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetIpsecSaAttributeRequest_ExternalSaIndex - // *SetIpsecSaAttributeRequest_IpsecPortList - // *SetIpsecSaAttributeRequest_IpsecReplayProtectionEnable - // *SetIpsecSaAttributeRequest_IpsecReplayProtectionWindow - // *SetIpsecSaAttributeRequest_EgressEsn - // *SetIpsecSaAttributeRequest_MinimumIngressEsn - Attr isSetIpsecSaAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + ExternalSaIndex *uint32 `protobuf:"varint,2,opt,name=external_sa_index,json=externalSaIndex,proto3,oneof" json:"external_sa_index,omitempty"` + IpsecPortList []uint64 `protobuf:"varint,3,rep,packed,name=ipsec_port_list,json=ipsecPortList,proto3" json:"ipsec_port_list,omitempty"` + IpsecReplayProtectionEnable *bool `protobuf:"varint,4,opt,name=ipsec_replay_protection_enable,json=ipsecReplayProtectionEnable,proto3,oneof" json:"ipsec_replay_protection_enable,omitempty"` + IpsecReplayProtectionWindow *uint32 `protobuf:"varint,5,opt,name=ipsec_replay_protection_window,json=ipsecReplayProtectionWindow,proto3,oneof" json:"ipsec_replay_protection_window,omitempty"` + EgressEsn *uint64 `protobuf:"varint,6,opt,name=egress_esn,json=egressEsn,proto3,oneof" json:"egress_esn,omitempty"` + MinimumIngressEsn *uint64 `protobuf:"varint,7,opt,name=minimum_ingress_esn,json=minimumIngressEsn,proto3,oneof" json:"minimum_ingress_esn,omitempty"` } func (x *SetIpsecSaAttributeRequest) Reset() { @@ -1707,95 +1610,48 @@ func (x *SetIpsecSaAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetIpsecSaAttributeRequest) GetAttr() isSetIpsecSaAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetIpsecSaAttributeRequest) GetExternalSaIndex() uint32 { - if x, ok := x.GetAttr().(*SetIpsecSaAttributeRequest_ExternalSaIndex); ok { - return x.ExternalSaIndex + if x != nil && x.ExternalSaIndex != nil { + return *x.ExternalSaIndex } return 0 } -func (x *SetIpsecSaAttributeRequest) GetIpsecPortList() *Uint64List { - if x, ok := x.GetAttr().(*SetIpsecSaAttributeRequest_IpsecPortList); ok { +func (x *SetIpsecSaAttributeRequest) GetIpsecPortList() []uint64 { + if x != nil { return x.IpsecPortList } return nil } func (x *SetIpsecSaAttributeRequest) GetIpsecReplayProtectionEnable() bool { - if x, ok := x.GetAttr().(*SetIpsecSaAttributeRequest_IpsecReplayProtectionEnable); ok { - return x.IpsecReplayProtectionEnable + if x != nil && x.IpsecReplayProtectionEnable != nil { + return *x.IpsecReplayProtectionEnable } return false } func (x *SetIpsecSaAttributeRequest) GetIpsecReplayProtectionWindow() uint32 { - if x, ok := x.GetAttr().(*SetIpsecSaAttributeRequest_IpsecReplayProtectionWindow); ok { - return x.IpsecReplayProtectionWindow + if x != nil && x.IpsecReplayProtectionWindow != nil { + return *x.IpsecReplayProtectionWindow } return 0 } func (x *SetIpsecSaAttributeRequest) GetEgressEsn() uint64 { - if x, ok := x.GetAttr().(*SetIpsecSaAttributeRequest_EgressEsn); ok { - return x.EgressEsn + if x != nil && x.EgressEsn != nil { + return *x.EgressEsn } return 0 } func (x *SetIpsecSaAttributeRequest) GetMinimumIngressEsn() uint64 { - if x, ok := x.GetAttr().(*SetIpsecSaAttributeRequest_MinimumIngressEsn); ok { - return x.MinimumIngressEsn + if x != nil && x.MinimumIngressEsn != nil { + return *x.MinimumIngressEsn } return 0 } -type isSetIpsecSaAttributeRequest_Attr interface { - isSetIpsecSaAttributeRequest_Attr() -} - -type SetIpsecSaAttributeRequest_ExternalSaIndex struct { - ExternalSaIndex uint32 `protobuf:"varint,2,opt,name=external_sa_index,json=externalSaIndex,proto3,oneof"` -} - -type SetIpsecSaAttributeRequest_IpsecPortList struct { - IpsecPortList *Uint64List `protobuf:"bytes,3,opt,name=ipsec_port_list,json=ipsecPortList,proto3,oneof"` -} - -type SetIpsecSaAttributeRequest_IpsecReplayProtectionEnable struct { - IpsecReplayProtectionEnable bool `protobuf:"varint,4,opt,name=ipsec_replay_protection_enable,json=ipsecReplayProtectionEnable,proto3,oneof"` -} - -type SetIpsecSaAttributeRequest_IpsecReplayProtectionWindow struct { - IpsecReplayProtectionWindow uint32 `protobuf:"varint,5,opt,name=ipsec_replay_protection_window,json=ipsecReplayProtectionWindow,proto3,oneof"` -} - -type SetIpsecSaAttributeRequest_EgressEsn struct { - EgressEsn uint64 `protobuf:"varint,6,opt,name=egress_esn,json=egressEsn,proto3,oneof"` -} - -type SetIpsecSaAttributeRequest_MinimumIngressEsn struct { - MinimumIngressEsn uint64 `protobuf:"varint,7,opt,name=minimum_ingress_esn,json=minimumIngressEsn,proto3,oneof"` -} - -func (*SetIpsecSaAttributeRequest_ExternalSaIndex) isSetIpsecSaAttributeRequest_Attr() {} - -func (*SetIpsecSaAttributeRequest_IpsecPortList) isSetIpsecSaAttributeRequest_Attr() {} - -func (*SetIpsecSaAttributeRequest_IpsecReplayProtectionEnable) isSetIpsecSaAttributeRequest_Attr() {} - -func (*SetIpsecSaAttributeRequest_IpsecReplayProtectionWindow) isSetIpsecSaAttributeRequest_Attr() {} - -func (*SetIpsecSaAttributeRequest_EgressEsn) isSetIpsecSaAttributeRequest_Attr() {} - -func (*SetIpsecSaAttributeRequest_MinimumIngressEsn) isSetIpsecSaAttributeRequest_Attr() {} - type SetIpsecSaAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1894,7 +1750,7 @@ type GetIpsecSaAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IpsecSaAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IpsecSaAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIpsecSaAttributeResponse) Reset() { @@ -1929,7 +1785,7 @@ func (*GetIpsecSaAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_ipsec_proto_rawDescGZIP(), []int{23} } -func (x *GetIpsecSaAttributeResponse) GetAttr() []*IpsecSaAttribute { +func (x *GetIpsecSaAttributeResponse) GetAttr() *IpsecSaAttribute { if x != nil { return x.Attr } @@ -1945,453 +1801,545 @@ var file_dataplane_standalone_proto_ipsec_proto_rawDesc = []byte{ 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb3, 0x03, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbe, 0x05, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x61, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x74, - 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, - 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, - 0x74, 0x70, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, - 0x54, 0x70, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x50, - 0x61, 0x72, 0x73, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, - 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6f, 0x63, 0x74, 0x65, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, - 0x72, 0x6b, 0x12, 0x39, 0x0a, 0x19, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x4c, 0x6f, 0x77, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x3f, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, - 0x6f, 0x64, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x27, - 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x90, 0x03, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x49, 0x70, - 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, - 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x63, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, - 0x12, 0x1d, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x12, - 0x31, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x50, 0x61, 0x72, 0x73, - 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x1a, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x17, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, + 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x01, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x53, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x63, 0x74, 0x61, + 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, + 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0e, 0x48, 0x03, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x3a, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, + 0x61, 0x67, 0x73, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, + 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x67, 0x68, + 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x05, 0x52, 0x17, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, - 0x6b, 0x12, 0x3b, 0x0a, 0x19, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x16, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x4c, 0x6f, 0x77, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x41, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x53, 0x65, 0x74, - 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, - 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x56, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x39, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x6b, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x19, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, + 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x06, 0x52, + 0x16, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x77, 0x57, 0x61, + 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xcf, 0x02, 0x0a, 0x16, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, - 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x74, 0x61, 0x67, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x74, - 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, - 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, - 0x3c, 0x0a, 0x1b, 0x76, 0x72, 0x66, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x76, 0x72, 0x66, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5e, 0x0a, - 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x2b, 0x0a, - 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xa0, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, - 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x74, 0x61, - 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, - 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x76, 0x72, - 0x66, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x17, 0x76, 0x72, 0x66, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x56, 0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x60, 0x0a, 0x15, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x06, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x07, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, + 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x74, 0x61, + 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, + 0x74, 0x70, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x42, 0x1d, 0x0a, + 0x1b, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x68, 0x69, + 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x1c, 0x0a, 0x1a, + 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x77, + 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x27, 0x0a, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, + 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xdd, 0x04, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x12, 0x33, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, + 0x48, 0x00, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x01, + 0x52, 0x08, 0x63, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x02, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, 0x70, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x03, 0x52, 0x11, 0x6d, 0x61, 0x78, + 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x04, 0x52, 0x17, 0x6f, + 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, + 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x19, 0x6f, 0x63, 0x74, + 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, + 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x11, 0x48, 0x05, 0x52, 0x16, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x4c, 0x6f, 0x77, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, + 0x4a, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x06, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, + 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, + 0x72, 0x6b, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x09, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x56, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, + 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x22, 0x8a, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, + 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x63, 0x74, + 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x0c, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1b, 0x76, 0x72, 0x66, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, + 0x52, 0x17, 0x76, 0x72, 0x66, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, + 0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x15, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, + 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x76, 0x72, 0x66, 0x5f, 0x66, + 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, + 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x03, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, - 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xe2, 0x06, 0x0a, 0x14, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x4e, 0x0a, 0x0f, 0x69, - 0x70, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, - 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x69, 0x70, 0x73, - 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, - 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, - 0x70, 0x73, 0x65, 0x63, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x61, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0d, 0x69, 0x70, 0x73, - 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, - 0x73, 0x65, 0x63, 0x5f, 0x73, 0x70, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, - 0x70, 0x73, 0x65, 0x63, 0x53, 0x70, 0x69, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x70, 0x73, 0x65, 0x63, - 0x5f, 0x65, 0x73, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x45, 0x73, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x63, 0x74, 0x61, 0x67, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x1b, 0x76, 0x72, 0x66, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x02, 0x52, 0x17, 0x76, 0x72, + 0x66, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x15, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x49, 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x52, 0x0b, 0x69, 0x70, 0x73, - 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, - 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x43, 0x0a, 0x1e, 0x69, 0x70, 0x73, 0x65, - 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x43, 0x0a, - 0x1e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, - 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x72, 0x6d, 0x44, 0x73, 0x74, - 0x49, 0x70, 0x12, 0x2d, 0x0a, 0x13, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, - 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x74, 0x65, 0x72, 0x6d, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x72, 0x6d, 0x56, 0x6c, 0x61, - 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, 0x63, 0x5f, - 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x74, 0x65, 0x72, 0x6d, 0x53, 0x72, 0x63, 0x49, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x72, 0x6d, 0x53, 0x72, 0x63, 0x49, 0x70, - 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x73, 0x6e, 0x12, - 0x2e, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x73, 0x6e, 0x22, - 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, - 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x03, - 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2c, - 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4b, 0x0a, 0x0f, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x03, 0x52, 0x13, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x76, 0x72, 0x66, 0x5f, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x1f, 0x0a, + 0x1d, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, + 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, + 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x22, 0x8c, 0x0b, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, + 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x12, 0x59, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x08, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x07, 0x69, 0x70, 0x73, 0x65, 0x63, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x53, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, - 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x1e, 0x69, 0x70, 0x73, - 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x45, 0x0a, 0x1e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, + 0x05, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x52, 0x0d, 0x69, 0x70, 0x73, + 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x09, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x5f, 0x73, 0x70, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x07, 0x48, 0x03, 0x52, 0x08, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x70, 0x69, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x73, 0x6e, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x08, 0x48, 0x04, 0x52, 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x45, 0x73, 0x6e, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x69, 0x70, 0x73, 0x65, 0x63, + 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, + 0x72, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x73, 0x65, 0x63, + 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x06, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4b, + 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x07, 0x52, 0x04, 0x73, 0x61, 0x6c, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x08, 0x52, 0x07, + 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x1e, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x09, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, + 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x1e, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0a, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x65, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x73, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x73, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, + 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x74, 0x65, + 0x72, 0x6d, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0b, 0x52, 0x09, 0x74, 0x65, 0x72, 0x6d, 0x44, 0x73, 0x74, + 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0c, 0x52, 0x10, 0x74, 0x65, 0x72, 0x6d, + 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2b, 0x0a, 0x0c, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0d, 0x52, 0x0a, 0x74, + 0x65, 0x72, 0x6d, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x12, + 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x0e, + 0x52, 0x0f, 0x74, 0x65, 0x72, 0x6d, 0x53, 0x72, 0x63, 0x49, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x69, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, + 0x0f, 0x52, 0x09, 0x74, 0x65, 0x72, 0x6d, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x10, 0x52, 0x09, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x45, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x11, 0x52, 0x11, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x73, + 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x73, + 0x65, 0x63, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x70, 0x69, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x5f, 0x65, 0x73, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x61, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x69, 0x70, 0x73, + 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, + 0x73, 0x6e, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, + 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x28, 0x0a, + 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x9b, 0x04, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, - 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x9f, - 0x06, 0x0a, 0x09, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x16, - 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x52, 0x45, 0x4d, 0x4f, - 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x55, 0x50, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x33, 0x0a, 0x2f, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x55, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, - 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x39, 0x0a, 0x35, - 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, - 0x41, 0x4e, 0x44, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x53, 0x55, 0x50, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, - 0x04, 0x12, 0x2e, 0x0a, 0x2a, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, - 0x43, 0x4c, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x4e, 0x5f, 0x33, 0x32, 0x42, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, - 0x45, 0x44, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x45, 0x53, 0x4e, 0x5f, 0x36, 0x34, 0x42, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x50, - 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, - 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x08, 0x12, 0x1e, - 0x0a, 0x1a, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, - 0x54, 0x45, 0x4d, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x09, 0x12, 0x22, - 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x41, 0x52, - 0x4d, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, - 0x10, 0x0a, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x57, 0x41, 0x52, 0x4d, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, - 0x45, 0x10, 0x0b, 0x12, 0x27, 0x0a, 0x23, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x41, 0x5f, 0x49, 0x4e, - 0x44, 0x45, 0x58, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0c, 0x12, 0x18, 0x0a, 0x14, - 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x54, 0x41, 0x47, 0x5f, - 0x54, 0x50, 0x49, 0x44, 0x10, 0x0d, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x0e, - 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, - 0x41, 0x58, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x50, 0x41, 0x52, - 0x53, 0x45, 0x44, 0x10, 0x0f, 0x12, 0x29, 0x0a, 0x25, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, - 0x48, 0x49, 0x47, 0x48, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x10, - 0x12, 0x28, 0x0a, 0x24, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, - 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x57, - 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x11, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x50, - 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, - 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x10, 0x13, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x14, - 0x2a, 0x8f, 0x02, 0x0a, 0x0d, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x01, - 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, - 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x56, 0x4c, 0x41, - 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x52, 0x46, 0x5f, 0x46, 0x52, - 0x4f, 0x4d, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x45, - 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x10, 0x06, 0x2a, 0xfd, 0x05, 0x0a, 0x0b, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x49, 0x44, 0x10, 0x02, - 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, - 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, - 0x5f, 0x53, 0x41, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x49, - 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x5f, - 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x50, + 0x64, 0x12, 0x35, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x61, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, + 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x1e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x01, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x1e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x02, 0x52, 0x1b, 0x69, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x65, 0x73, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, + 0x48, 0x03, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x73, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x39, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x15, 0x48, 0x04, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x73, 0x6e, 0x22, 0x1d, + 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3f, 0x0a, + 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5a, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x9f, 0x06, 0x0a, 0x09, 0x49, + 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x49, + 0x50, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x33, 0x0a, 0x2f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x43, 0x55, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x5f, 0x53, 0x55, 0x50, + 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x39, 0x0a, 0x35, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, + 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, + 0x44, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x2e, 0x0a, + 0x2a, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x45, 0x41, + 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x21, 0x0a, + 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x4e, 0x5f, 0x33, + 0x32, 0x42, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x06, + 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, + 0x53, 0x4e, 0x5f, 0x36, 0x34, 0x42, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, + 0x45, 0x44, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x49, 0x50, + 0x48, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x08, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x50, + 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, + 0x53, 0x49, 0x44, 0x45, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, + 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x41, 0x52, 0x4d, 0x5f, 0x42, 0x4f, + 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x1f, + 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x41, 0x52, + 0x4d, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0b, 0x12, + 0x27, 0x0a, 0x23, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x58, + 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x41, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0c, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x50, 0x49, 0x44, + 0x10, 0x0d, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x0e, 0x12, 0x23, 0x0a, 0x1f, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x44, 0x10, + 0x0f, 0x12, 0x29, 0x0a, 0x25, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x4f, 0x43, 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x48, 0x49, 0x47, 0x48, + 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x10, 0x12, 0x28, 0x0a, 0x24, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x43, 0x54, 0x45, 0x54, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, + 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x11, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, + 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, + 0x53, 0x41, 0x10, 0x13, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x53, 0x41, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x14, 0x2a, 0x8f, 0x02, 0x0a, + 0x0d, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, + 0x0a, 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1b, 0x0a, 0x17, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x43, 0x54, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, + 0x1b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x54, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x22, + 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, + 0x10, 0x04, 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x52, 0x46, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xfd, + 0x05, 0x0a, 0x0b, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1d, + 0x0a, 0x19, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, + 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, + 0x50, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, + 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x43, + 0x54, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x41, 0x5f, + 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x50, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x5f, 0x49, 0x4e, 0x44, 0x45, + 0x58, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x4c, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, + 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x50, + 0x49, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x45, 0x53, 0x4e, 0x5f, 0x45, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x08, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x50, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x43, + 0x49, 0x50, 0x48, 0x45, 0x52, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, + 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, + 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x4c, 0x54, 0x10, 0x0b, 0x12, 0x1a, + 0x0a, 0x16, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x5f, 0x53, 0x50, 0x49, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x45, - 0x53, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x08, 0x12, 0x1e, 0x0a, 0x1a, 0x49, - 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, - 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x49, - 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x43, - 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x50, - 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x4c, 0x54, - 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x0c, 0x12, 0x30, - 0x0a, 0x2c, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, - 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0d, - 0x12, 0x30, 0x0a, 0x2c, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x50, - 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, - 0x10, 0x0e, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, - 0x0f, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x5f, - 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x10, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x56, - 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x11, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x53, 0x45, - 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x53, - 0x52, 0x43, 0x5f, 0x49, 0x50, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x12, 0x12, 0x1d, + 0x43, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0d, 0x12, 0x30, 0x0a, 0x2c, + 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, + 0x53, 0x45, 0x43, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0e, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x13, 0x12, 0x1c, 0x0a, - 0x18, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x53, 0x4e, 0x10, 0x14, 0x12, 0x25, 0x0a, 0x21, 0x49, - 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, - 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x53, 0x4e, - 0x10, 0x15, 0x32, 0x9d, 0x0b, 0x0a, 0x05, 0x49, 0x70, 0x73, 0x65, 0x63, 0x12, 0x66, 0x0a, 0x0b, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x12, 0x29, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, - 0x73, 0x65, 0x63, 0x12, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, + 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x0f, 0x12, 0x25, 0x0a, + 0x21, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x45, 0x52, 0x4d, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x41, 0x42, + 0x4c, 0x45, 0x10, 0x10, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x49, 0x44, 0x10, 0x11, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, + 0x50, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x12, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x50, + 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x52, 0x4d, + 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x13, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x50, 0x53, + 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, + 0x53, 0x5f, 0x45, 0x53, 0x4e, 0x10, 0x14, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x50, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, + 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x53, 0x4e, 0x10, 0x15, 0x32, 0x9d, + 0x0b, 0x0a, 0x05, 0x49, 0x70, 0x73, 0x65, 0x63, 0x12, 0x66, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x12, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x66, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x12, + 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, + 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x49, + 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, - 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, - 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, - 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, - 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, - 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, + 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, + 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, - 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, - 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, - 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, - 0x73, 0x65, 0x63, 0x53, 0x61, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, + 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, + 0x63, 0x53, 0x61, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, + 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x6c, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, + 0x61, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x70, 0x73, + 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, + 0x0a, 0x13, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, + 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x53, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, + 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, + 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -2442,8 +2390,7 @@ var file_dataplane_standalone_proto_ipsec_proto_goTypes = []interface{}{ (*IpsecPortAttribute)(nil), // 30: lemming.dataplane.sai.IpsecPortAttribute (IpsecDirection)(0), // 31: lemming.dataplane.sai.IpsecDirection (IpsecCipher)(0), // 32: lemming.dataplane.sai.IpsecCipher - (*Uint64List)(nil), // 33: lemming.dataplane.sai.Uint64List - (*IpsecSaAttribute)(nil), // 34: lemming.dataplane.sai.IpsecSaAttribute + (*IpsecSaAttribute)(nil), // 33: lemming.dataplane.sai.IpsecSaAttribute } var file_dataplane_standalone_proto_ipsec_proto_depIdxs = []int32{ 27, // 0: lemming.dataplane.sai.CreateIpsecRequest.stats_mode:type_name -> lemming.dataplane.sai.StatsMode @@ -2456,38 +2403,37 @@ var file_dataplane_standalone_proto_ipsec_proto_depIdxs = []int32{ 30, // 7: lemming.dataplane.sai.GetIpsecPortAttributeResponse.attr:type_name -> lemming.dataplane.sai.IpsecPortAttribute 31, // 8: lemming.dataplane.sai.CreateIpsecSaRequest.ipsec_direction:type_name -> lemming.dataplane.sai.IpsecDirection 32, // 9: lemming.dataplane.sai.CreateIpsecSaRequest.ipsec_cipher:type_name -> lemming.dataplane.sai.IpsecCipher - 33, // 10: lemming.dataplane.sai.SetIpsecSaAttributeRequest.ipsec_port_list:type_name -> lemming.dataplane.sai.Uint64List - 2, // 11: lemming.dataplane.sai.GetIpsecSaAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.IpsecSaAttr - 34, // 12: lemming.dataplane.sai.GetIpsecSaAttributeResponse.attr:type_name -> lemming.dataplane.sai.IpsecSaAttribute - 3, // 13: lemming.dataplane.sai.Ipsec.CreateIpsec:input_type -> lemming.dataplane.sai.CreateIpsecRequest - 5, // 14: lemming.dataplane.sai.Ipsec.RemoveIpsec:input_type -> lemming.dataplane.sai.RemoveIpsecRequest - 7, // 15: lemming.dataplane.sai.Ipsec.SetIpsecAttribute:input_type -> lemming.dataplane.sai.SetIpsecAttributeRequest - 9, // 16: lemming.dataplane.sai.Ipsec.GetIpsecAttribute:input_type -> lemming.dataplane.sai.GetIpsecAttributeRequest - 11, // 17: lemming.dataplane.sai.Ipsec.CreateIpsecPort:input_type -> lemming.dataplane.sai.CreateIpsecPortRequest - 13, // 18: lemming.dataplane.sai.Ipsec.RemoveIpsecPort:input_type -> lemming.dataplane.sai.RemoveIpsecPortRequest - 15, // 19: lemming.dataplane.sai.Ipsec.SetIpsecPortAttribute:input_type -> lemming.dataplane.sai.SetIpsecPortAttributeRequest - 17, // 20: lemming.dataplane.sai.Ipsec.GetIpsecPortAttribute:input_type -> lemming.dataplane.sai.GetIpsecPortAttributeRequest - 19, // 21: lemming.dataplane.sai.Ipsec.CreateIpsecSa:input_type -> lemming.dataplane.sai.CreateIpsecSaRequest - 21, // 22: lemming.dataplane.sai.Ipsec.RemoveIpsecSa:input_type -> lemming.dataplane.sai.RemoveIpsecSaRequest - 23, // 23: lemming.dataplane.sai.Ipsec.SetIpsecSaAttribute:input_type -> lemming.dataplane.sai.SetIpsecSaAttributeRequest - 25, // 24: lemming.dataplane.sai.Ipsec.GetIpsecSaAttribute:input_type -> lemming.dataplane.sai.GetIpsecSaAttributeRequest - 4, // 25: lemming.dataplane.sai.Ipsec.CreateIpsec:output_type -> lemming.dataplane.sai.CreateIpsecResponse - 6, // 26: lemming.dataplane.sai.Ipsec.RemoveIpsec:output_type -> lemming.dataplane.sai.RemoveIpsecResponse - 8, // 27: lemming.dataplane.sai.Ipsec.SetIpsecAttribute:output_type -> lemming.dataplane.sai.SetIpsecAttributeResponse - 10, // 28: lemming.dataplane.sai.Ipsec.GetIpsecAttribute:output_type -> lemming.dataplane.sai.GetIpsecAttributeResponse - 12, // 29: lemming.dataplane.sai.Ipsec.CreateIpsecPort:output_type -> lemming.dataplane.sai.CreateIpsecPortResponse - 14, // 30: lemming.dataplane.sai.Ipsec.RemoveIpsecPort:output_type -> lemming.dataplane.sai.RemoveIpsecPortResponse - 16, // 31: lemming.dataplane.sai.Ipsec.SetIpsecPortAttribute:output_type -> lemming.dataplane.sai.SetIpsecPortAttributeResponse - 18, // 32: lemming.dataplane.sai.Ipsec.GetIpsecPortAttribute:output_type -> lemming.dataplane.sai.GetIpsecPortAttributeResponse - 20, // 33: lemming.dataplane.sai.Ipsec.CreateIpsecSa:output_type -> lemming.dataplane.sai.CreateIpsecSaResponse - 22, // 34: lemming.dataplane.sai.Ipsec.RemoveIpsecSa:output_type -> lemming.dataplane.sai.RemoveIpsecSaResponse - 24, // 35: lemming.dataplane.sai.Ipsec.SetIpsecSaAttribute:output_type -> lemming.dataplane.sai.SetIpsecSaAttributeResponse - 26, // 36: lemming.dataplane.sai.Ipsec.GetIpsecSaAttribute:output_type -> lemming.dataplane.sai.GetIpsecSaAttributeResponse - 25, // [25:37] is the sub-list for method output_type - 13, // [13:25] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 2, // 10: lemming.dataplane.sai.GetIpsecSaAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.IpsecSaAttr + 33, // 11: lemming.dataplane.sai.GetIpsecSaAttributeResponse.attr:type_name -> lemming.dataplane.sai.IpsecSaAttribute + 3, // 12: lemming.dataplane.sai.Ipsec.CreateIpsec:input_type -> lemming.dataplane.sai.CreateIpsecRequest + 5, // 13: lemming.dataplane.sai.Ipsec.RemoveIpsec:input_type -> lemming.dataplane.sai.RemoveIpsecRequest + 7, // 14: lemming.dataplane.sai.Ipsec.SetIpsecAttribute:input_type -> lemming.dataplane.sai.SetIpsecAttributeRequest + 9, // 15: lemming.dataplane.sai.Ipsec.GetIpsecAttribute:input_type -> lemming.dataplane.sai.GetIpsecAttributeRequest + 11, // 16: lemming.dataplane.sai.Ipsec.CreateIpsecPort:input_type -> lemming.dataplane.sai.CreateIpsecPortRequest + 13, // 17: lemming.dataplane.sai.Ipsec.RemoveIpsecPort:input_type -> lemming.dataplane.sai.RemoveIpsecPortRequest + 15, // 18: lemming.dataplane.sai.Ipsec.SetIpsecPortAttribute:input_type -> lemming.dataplane.sai.SetIpsecPortAttributeRequest + 17, // 19: lemming.dataplane.sai.Ipsec.GetIpsecPortAttribute:input_type -> lemming.dataplane.sai.GetIpsecPortAttributeRequest + 19, // 20: lemming.dataplane.sai.Ipsec.CreateIpsecSa:input_type -> lemming.dataplane.sai.CreateIpsecSaRequest + 21, // 21: lemming.dataplane.sai.Ipsec.RemoveIpsecSa:input_type -> lemming.dataplane.sai.RemoveIpsecSaRequest + 23, // 22: lemming.dataplane.sai.Ipsec.SetIpsecSaAttribute:input_type -> lemming.dataplane.sai.SetIpsecSaAttributeRequest + 25, // 23: lemming.dataplane.sai.Ipsec.GetIpsecSaAttribute:input_type -> lemming.dataplane.sai.GetIpsecSaAttributeRequest + 4, // 24: lemming.dataplane.sai.Ipsec.CreateIpsec:output_type -> lemming.dataplane.sai.CreateIpsecResponse + 6, // 25: lemming.dataplane.sai.Ipsec.RemoveIpsec:output_type -> lemming.dataplane.sai.RemoveIpsecResponse + 8, // 26: lemming.dataplane.sai.Ipsec.SetIpsecAttribute:output_type -> lemming.dataplane.sai.SetIpsecAttributeResponse + 10, // 27: lemming.dataplane.sai.Ipsec.GetIpsecAttribute:output_type -> lemming.dataplane.sai.GetIpsecAttributeResponse + 12, // 28: lemming.dataplane.sai.Ipsec.CreateIpsecPort:output_type -> lemming.dataplane.sai.CreateIpsecPortResponse + 14, // 29: lemming.dataplane.sai.Ipsec.RemoveIpsecPort:output_type -> lemming.dataplane.sai.RemoveIpsecPortResponse + 16, // 30: lemming.dataplane.sai.Ipsec.SetIpsecPortAttribute:output_type -> lemming.dataplane.sai.SetIpsecPortAttributeResponse + 18, // 31: lemming.dataplane.sai.Ipsec.GetIpsecPortAttribute:output_type -> lemming.dataplane.sai.GetIpsecPortAttributeResponse + 20, // 32: lemming.dataplane.sai.Ipsec.CreateIpsecSa:output_type -> lemming.dataplane.sai.CreateIpsecSaResponse + 22, // 33: lemming.dataplane.sai.Ipsec.RemoveIpsecSa:output_type -> lemming.dataplane.sai.RemoveIpsecSaResponse + 24, // 34: lemming.dataplane.sai.Ipsec.SetIpsecSaAttribute:output_type -> lemming.dataplane.sai.SetIpsecSaAttributeResponse + 26, // 35: lemming.dataplane.sai.Ipsec.GetIpsecSaAttribute:output_type -> lemming.dataplane.sai.GetIpsecSaAttributeResponse + 24, // [24:36] is the sub-list for method output_type + 12, // [12:24] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_ipsec_proto_init() } @@ -2786,29 +2732,12 @@ func file_dataplane_standalone_proto_ipsec_proto_init() { } } } - file_dataplane_standalone_proto_ipsec_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetIpsecAttributeRequest_WarmBootEnable)(nil), - (*SetIpsecAttributeRequest_CtagTpid)(nil), - (*SetIpsecAttributeRequest_StagTpid)(nil), - (*SetIpsecAttributeRequest_MaxVlanTagsParsed)(nil), - (*SetIpsecAttributeRequest_OctetCountHighWatermark)(nil), - (*SetIpsecAttributeRequest_OctetCountLowWatermark)(nil), - (*SetIpsecAttributeRequest_StatsMode)(nil), - } - file_dataplane_standalone_proto_ipsec_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetIpsecPortAttributeRequest_CtagEnable)(nil), - (*SetIpsecPortAttributeRequest_StagEnable)(nil), - (*SetIpsecPortAttributeRequest_VrfFromPacketVlanEnable)(nil), - (*SetIpsecPortAttributeRequest_SwitchSwitchingMode)(nil), - } - file_dataplane_standalone_proto_ipsec_proto_msgTypes[20].OneofWrappers = []interface{}{ - (*SetIpsecSaAttributeRequest_ExternalSaIndex)(nil), - (*SetIpsecSaAttributeRequest_IpsecPortList)(nil), - (*SetIpsecSaAttributeRequest_IpsecReplayProtectionEnable)(nil), - (*SetIpsecSaAttributeRequest_IpsecReplayProtectionWindow)(nil), - (*SetIpsecSaAttributeRequest_EgressEsn)(nil), - (*SetIpsecSaAttributeRequest_MinimumIngressEsn)(nil), - } + file_dataplane_standalone_proto_ipsec_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_ipsec_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_ipsec_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_ipsec_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_ipsec_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_ipsec_proto_msgTypes[20].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/ipsec.proto b/dataplane/standalone/proto/ipsec.proto index 3c52f468..77f0f7a5 100644 --- a/dataplane/standalone/proto/ipsec.proto +++ b/dataplane/standalone/proto/ipsec.proto @@ -7,269 +7,223 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum IpsecAttr { - IPSEC_ATTR_UNSPECIFIED = 0; - IPSEC_ATTR_TERM_REMOTE_IP_MATCH_SUPPORTED = 1; - IPSEC_ATTR_SWITCHING_MODE_CUT_THROUGH_SUPPORTED = 2; - IPSEC_ATTR_SWITCHING_MODE_STORE_AND_FORWARD_SUPPORTED = 3; - IPSEC_ATTR_STATS_MODE_READ_SUPPORTED = 4; - IPSEC_ATTR_STATS_MODE_READ_CLEAR_SUPPORTED = 5; - IPSEC_ATTR_SN_32BIT_SUPPORTED = 6; - IPSEC_ATTR_ESN_64BIT_SUPPORTED = 7; - IPSEC_ATTR_SUPPORTED_CIPHER_LIST = 8; - IPSEC_ATTR_SYSTEM_SIDE_MTU = 9; - IPSEC_ATTR_WARM_BOOT_SUPPORTED = 10; - IPSEC_ATTR_WARM_BOOT_ENABLE = 11; - IPSEC_ATTR_EXTERNAL_SA_INDEX_ENABLE = 12; - IPSEC_ATTR_CTAG_TPID = 13; - IPSEC_ATTR_STAG_TPID = 14; - IPSEC_ATTR_MAX_VLAN_TAGS_PARSED = 15; - IPSEC_ATTR_OCTET_COUNT_HIGH_WATERMARK = 16; - IPSEC_ATTR_OCTET_COUNT_LOW_WATERMARK = 17; - IPSEC_ATTR_STATS_MODE = 18; - IPSEC_ATTR_AVAILABLE_IPSEC_SA = 19; - IPSEC_ATTR_SA_LIST = 20; + IPSEC_ATTR_UNSPECIFIED = 0; + IPSEC_ATTR_TERM_REMOTE_IP_MATCH_SUPPORTED = 1; + IPSEC_ATTR_SWITCHING_MODE_CUT_THROUGH_SUPPORTED = 2; + IPSEC_ATTR_SWITCHING_MODE_STORE_AND_FORWARD_SUPPORTED = 3; + IPSEC_ATTR_STATS_MODE_READ_SUPPORTED = 4; + IPSEC_ATTR_STATS_MODE_READ_CLEAR_SUPPORTED = 5; + IPSEC_ATTR_SN_32BIT_SUPPORTED = 6; + IPSEC_ATTR_ESN_64BIT_SUPPORTED = 7; + IPSEC_ATTR_SUPPORTED_CIPHER_LIST = 8; + IPSEC_ATTR_SYSTEM_SIDE_MTU = 9; + IPSEC_ATTR_WARM_BOOT_SUPPORTED = 10; + IPSEC_ATTR_WARM_BOOT_ENABLE = 11; + IPSEC_ATTR_EXTERNAL_SA_INDEX_ENABLE = 12; + IPSEC_ATTR_CTAG_TPID = 13; + IPSEC_ATTR_STAG_TPID = 14; + IPSEC_ATTR_MAX_VLAN_TAGS_PARSED = 15; + IPSEC_ATTR_OCTET_COUNT_HIGH_WATERMARK = 16; + IPSEC_ATTR_OCTET_COUNT_LOW_WATERMARK = 17; + IPSEC_ATTR_STATS_MODE = 18; + IPSEC_ATTR_AVAILABLE_IPSEC_SA = 19; + IPSEC_ATTR_SA_LIST = 20; } enum IpsecPortAttr { - IPSEC_PORT_ATTR_UNSPECIFIED = 0; - IPSEC_PORT_ATTR_PORT_ID = 1; - IPSEC_PORT_ATTR_CTAG_ENABLE = 2; - IPSEC_PORT_ATTR_STAG_ENABLE = 3; - IPSEC_PORT_ATTR_NATIVE_VLAN_ID = 4; - IPSEC_PORT_ATTR_VRF_FROM_PACKET_VLAN_ENABLE = 5; - IPSEC_PORT_ATTR_SWITCH_SWITCHING_MODE = 6; + IPSEC_PORT_ATTR_UNSPECIFIED = 0; + IPSEC_PORT_ATTR_PORT_ID = 1; + IPSEC_PORT_ATTR_CTAG_ENABLE = 2; + IPSEC_PORT_ATTR_STAG_ENABLE = 3; + IPSEC_PORT_ATTR_NATIVE_VLAN_ID = 4; + IPSEC_PORT_ATTR_VRF_FROM_PACKET_VLAN_ENABLE = 5; + IPSEC_PORT_ATTR_SWITCH_SWITCHING_MODE = 6; } enum IpsecSaAttr { - IPSEC_SA_ATTR_UNSPECIFIED = 0; - IPSEC_SA_ATTR_IPSEC_DIRECTION = 1; - IPSEC_SA_ATTR_IPSEC_ID = 2; - IPSEC_SA_ATTR_OCTET_COUNT_STATUS = 3; - IPSEC_SA_ATTR_EXTERNAL_SA_INDEX = 4; - IPSEC_SA_ATTR_SA_INDEX = 5; - IPSEC_SA_ATTR_IPSEC_PORT_LIST = 6; - IPSEC_SA_ATTR_IPSEC_SPI = 7; - IPSEC_SA_ATTR_IPSEC_ESN_ENABLE = 8; - IPSEC_SA_ATTR_IPSEC_CIPHER = 9; - IPSEC_SA_ATTR_ENCRYPT_KEY = 10; - IPSEC_SA_ATTR_SALT = 11; - IPSEC_SA_ATTR_AUTH_KEY = 12; - IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_ENABLE = 13; - IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_WINDOW = 14; - IPSEC_SA_ATTR_TERM_DST_IP = 15; - IPSEC_SA_ATTR_TERM_VLAN_ID_ENABLE = 16; - IPSEC_SA_ATTR_TERM_VLAN_ID = 17; - IPSEC_SA_ATTR_TERM_SRC_IP_ENABLE = 18; - IPSEC_SA_ATTR_TERM_SRC_IP = 19; - IPSEC_SA_ATTR_EGRESS_ESN = 20; - IPSEC_SA_ATTR_MINIMUM_INGRESS_ESN = 21; + IPSEC_SA_ATTR_UNSPECIFIED = 0; + IPSEC_SA_ATTR_IPSEC_DIRECTION = 1; + IPSEC_SA_ATTR_IPSEC_ID = 2; + IPSEC_SA_ATTR_OCTET_COUNT_STATUS = 3; + IPSEC_SA_ATTR_EXTERNAL_SA_INDEX = 4; + IPSEC_SA_ATTR_SA_INDEX = 5; + IPSEC_SA_ATTR_IPSEC_PORT_LIST = 6; + IPSEC_SA_ATTR_IPSEC_SPI = 7; + IPSEC_SA_ATTR_IPSEC_ESN_ENABLE = 8; + IPSEC_SA_ATTR_IPSEC_CIPHER = 9; + IPSEC_SA_ATTR_ENCRYPT_KEY = 10; + IPSEC_SA_ATTR_SALT = 11; + IPSEC_SA_ATTR_AUTH_KEY = 12; + IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_ENABLE = 13; + IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_WINDOW = 14; + IPSEC_SA_ATTR_TERM_DST_IP = 15; + IPSEC_SA_ATTR_TERM_VLAN_ID_ENABLE = 16; + IPSEC_SA_ATTR_TERM_VLAN_ID = 17; + IPSEC_SA_ATTR_TERM_SRC_IP_ENABLE = 18; + IPSEC_SA_ATTR_TERM_SRC_IP = 19; + IPSEC_SA_ATTR_EGRESS_ESN = 20; + IPSEC_SA_ATTR_MINIMUM_INGRESS_ESN = 21; } message CreateIpsecRequest { - uint64 switch = 1; - - bool warm_boot_enable = 2; - bool external_sa_index_enable = 3; - uint32 ctag_tpid = 4; - uint32 stag_tpid = 5; - uint32 max_vlan_tags_parsed = 6; - uint64 octet_count_high_watermark = 7; - uint64 octet_count_low_watermark = 8; - StatsMode stats_mode = 9; - + uint64 switch = 1; + optional bool warm_boot_enable = 2 [(attr_enum_value) = 11]; + optional bool external_sa_index_enable = 3 [(attr_enum_value) = 12]; + optional uint32 ctag_tpid = 4 [(attr_enum_value) = 13]; + optional uint32 stag_tpid = 5 [(attr_enum_value) = 14]; + optional uint32 max_vlan_tags_parsed = 6 [(attr_enum_value) = 15]; + optional uint64 octet_count_high_watermark = 7 [(attr_enum_value) = 16]; + optional uint64 octet_count_low_watermark = 8 [(attr_enum_value) = 17]; + optional StatsMode stats_mode = 9 [(attr_enum_value) = 18]; } message CreateIpsecResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveIpsecRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveIpsecResponse { - - -} +message RemoveIpsecResponse {} message SetIpsecAttributeRequest { - uint64 oid = 1; - oneof attr { - bool warm_boot_enable = 2; - uint32 ctag_tpid = 3; - uint32 stag_tpid = 4; - uint32 max_vlan_tags_parsed = 5; - uint64 octet_count_high_watermark = 6; - uint64 octet_count_low_watermark = 7; - StatsMode stats_mode = 8; - } + uint64 oid = 1; + optional bool warm_boot_enable = 2 [(attr_enum_value) = 11]; + optional uint32 ctag_tpid = 3 [(attr_enum_value) = 13]; + optional uint32 stag_tpid = 4 [(attr_enum_value) = 14]; + optional uint32 max_vlan_tags_parsed = 5 [(attr_enum_value) = 15]; + optional uint64 octet_count_high_watermark = 6 [(attr_enum_value) = 16]; + optional uint64 octet_count_low_watermark = 7 [(attr_enum_value) = 17]; + optional StatsMode stats_mode = 8 [(attr_enum_value) = 18]; } -message SetIpsecAttributeResponse { - - -} +message SetIpsecAttributeResponse {} message GetIpsecAttributeRequest { - uint64 oid = 1; - repeated IpsecAttr attr_type = 2; - - + uint64 oid = 1; + repeated IpsecAttr attr_type = 2; } message GetIpsecAttributeResponse { - repeated IpsecAttribute attr = 1; - - + IpsecAttribute attr = 1; } message CreateIpsecPortRequest { - uint64 switch = 1; - - uint64 port_id = 2; - bool ctag_enable = 3; - bool stag_enable = 4; - uint32 native_vlan_id = 5; - bool vrf_from_packet_vlan_enable = 6; - SwitchSwitchingMode switch_switching_mode = 7; - + uint64 switch = 1; + optional uint64 port_id = 2 [(attr_enum_value) = 1]; + optional bool ctag_enable = 3 [(attr_enum_value) = 2]; + optional bool stag_enable = 4 [(attr_enum_value) = 3]; + optional uint32 native_vlan_id = 5 [(attr_enum_value) = 4]; + optional bool vrf_from_packet_vlan_enable = 6 [(attr_enum_value) = 5]; + optional SwitchSwitchingMode switch_switching_mode = 7 + [(attr_enum_value) = 6]; } message CreateIpsecPortResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveIpsecPortRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveIpsecPortResponse { - - -} +message RemoveIpsecPortResponse {} message SetIpsecPortAttributeRequest { - uint64 oid = 1; - oneof attr { - bool ctag_enable = 2; - bool stag_enable = 3; - bool vrf_from_packet_vlan_enable = 4; - SwitchSwitchingMode switch_switching_mode = 5; - } + uint64 oid = 1; + optional bool ctag_enable = 2 [(attr_enum_value) = 2]; + optional bool stag_enable = 3 [(attr_enum_value) = 3]; + optional bool vrf_from_packet_vlan_enable = 4 [(attr_enum_value) = 5]; + optional SwitchSwitchingMode switch_switching_mode = 5 + [(attr_enum_value) = 6]; } -message SetIpsecPortAttributeResponse { - - -} +message SetIpsecPortAttributeResponse {} message GetIpsecPortAttributeRequest { - uint64 oid = 1; - repeated IpsecPortAttr attr_type = 2; - - + uint64 oid = 1; + repeated IpsecPortAttr attr_type = 2; } message GetIpsecPortAttributeResponse { - repeated IpsecPortAttribute attr = 1; - - + IpsecPortAttribute attr = 1; } message CreateIpsecSaRequest { - uint64 switch = 1; - - IpsecDirection ipsec_direction = 2; - uint64 ipsec_id = 3; - uint32 external_sa_index = 4; - repeated uint64 ipsec_port_list = 5; - uint32 ipsec_spi = 6; - bool ipsec_esn_enable = 7; - IpsecCipher ipsec_cipher = 8; - bytes encrypt_key = 9; - uint32 salt = 10; - bytes auth_key = 11; - bool ipsec_replay_protection_enable = 12; - uint32 ipsec_replay_protection_window = 13; - bytes term_dst_ip = 14; - bool term_vlan_id_enable = 15; - uint32 term_vlan_id = 16; - bool term_src_ip_enable = 17; - bytes term_src_ip = 18; - uint64 egress_esn = 19; - uint64 minimum_ingress_esn = 20; - + uint64 switch = 1; + optional IpsecDirection ipsec_direction = 2 [(attr_enum_value) = 1]; + optional uint64 ipsec_id = 3 [(attr_enum_value) = 2]; + optional uint32 external_sa_index = 4 [(attr_enum_value) = 4]; + repeated uint64 ipsec_port_list = 5 [(attr_enum_value) = 6]; + optional uint32 ipsec_spi = 6 [(attr_enum_value) = 7]; + optional bool ipsec_esn_enable = 7 [(attr_enum_value) = 8]; + optional IpsecCipher ipsec_cipher = 8 [(attr_enum_value) = 9]; + optional bytes encrypt_key = 9 [(attr_enum_value) = 10]; + optional uint32 salt = 10 [(attr_enum_value) = 11]; + optional bytes auth_key = 11 [(attr_enum_value) = 12]; + optional bool ipsec_replay_protection_enable = 12 [(attr_enum_value) = 13]; + optional uint32 ipsec_replay_protection_window = 13 [(attr_enum_value) = 14]; + optional bytes term_dst_ip = 14 [(attr_enum_value) = 15]; + optional bool term_vlan_id_enable = 15 [(attr_enum_value) = 16]; + optional uint32 term_vlan_id = 16 [(attr_enum_value) = 17]; + optional bool term_src_ip_enable = 17 [(attr_enum_value) = 18]; + optional bytes term_src_ip = 18 [(attr_enum_value) = 19]; + optional uint64 egress_esn = 19 [(attr_enum_value) = 20]; + optional uint64 minimum_ingress_esn = 20 [(attr_enum_value) = 21]; } message CreateIpsecSaResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveIpsecSaRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveIpsecSaResponse { - - -} +message RemoveIpsecSaResponse {} message SetIpsecSaAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 external_sa_index = 2; - Uint64List ipsec_port_list = 3; - bool ipsec_replay_protection_enable = 4; - uint32 ipsec_replay_protection_window = 5; - uint64 egress_esn = 6; - uint64 minimum_ingress_esn = 7; - } + uint64 oid = 1; + optional uint32 external_sa_index = 2 [(attr_enum_value) = 4]; + repeated uint64 ipsec_port_list = 3 [(attr_enum_value) = 6]; + optional bool ipsec_replay_protection_enable = 4 [(attr_enum_value) = 13]; + optional uint32 ipsec_replay_protection_window = 5 [(attr_enum_value) = 14]; + optional uint64 egress_esn = 6 [(attr_enum_value) = 20]; + optional uint64 minimum_ingress_esn = 7 [(attr_enum_value) = 21]; } -message SetIpsecSaAttributeResponse { - - -} +message SetIpsecSaAttributeResponse {} message GetIpsecSaAttributeRequest { - uint64 oid = 1; - repeated IpsecSaAttr attr_type = 2; - - + uint64 oid = 1; + repeated IpsecSaAttr attr_type = 2; } message GetIpsecSaAttributeResponse { - repeated IpsecSaAttribute attr = 1; - - + IpsecSaAttribute attr = 1; } - service Ipsec { - rpc CreateIpsec (CreateIpsecRequest) returns (CreateIpsecResponse) {} - rpc RemoveIpsec (RemoveIpsecRequest) returns (RemoveIpsecResponse) {} - rpc SetIpsecAttribute (SetIpsecAttributeRequest) returns (SetIpsecAttributeResponse) {} - rpc GetIpsecAttribute (GetIpsecAttributeRequest) returns (GetIpsecAttributeResponse) {} - rpc CreateIpsecPort (CreateIpsecPortRequest) returns (CreateIpsecPortResponse) {} - rpc RemoveIpsecPort (RemoveIpsecPortRequest) returns (RemoveIpsecPortResponse) {} - rpc SetIpsecPortAttribute (SetIpsecPortAttributeRequest) returns (SetIpsecPortAttributeResponse) {} - rpc GetIpsecPortAttribute (GetIpsecPortAttributeRequest) returns (GetIpsecPortAttributeResponse) {} - rpc CreateIpsecSa (CreateIpsecSaRequest) returns (CreateIpsecSaResponse) {} - rpc RemoveIpsecSa (RemoveIpsecSaRequest) returns (RemoveIpsecSaResponse) {} - rpc SetIpsecSaAttribute (SetIpsecSaAttributeRequest) returns (SetIpsecSaAttributeResponse) {} - rpc GetIpsecSaAttribute (GetIpsecSaAttributeRequest) returns (GetIpsecSaAttributeResponse) {} + rpc CreateIpsec(CreateIpsecRequest) returns (CreateIpsecResponse) {} + rpc RemoveIpsec(RemoveIpsecRequest) returns (RemoveIpsecResponse) {} + rpc SetIpsecAttribute(SetIpsecAttributeRequest) + returns (SetIpsecAttributeResponse) {} + rpc GetIpsecAttribute(GetIpsecAttributeRequest) + returns (GetIpsecAttributeResponse) {} + rpc CreateIpsecPort(CreateIpsecPortRequest) + returns (CreateIpsecPortResponse) {} + rpc RemoveIpsecPort(RemoveIpsecPortRequest) + returns (RemoveIpsecPortResponse) {} + rpc SetIpsecPortAttribute(SetIpsecPortAttributeRequest) + returns (SetIpsecPortAttributeResponse) {} + rpc GetIpsecPortAttribute(GetIpsecPortAttributeRequest) + returns (GetIpsecPortAttributeResponse) {} + rpc CreateIpsecSa(CreateIpsecSaRequest) returns (CreateIpsecSaResponse) {} + rpc RemoveIpsecSa(RemoveIpsecSaRequest) returns (RemoveIpsecSaResponse) {} + rpc SetIpsecSaAttribute(SetIpsecSaAttributeRequest) + returns (SetIpsecSaAttributeResponse) {} + rpc GetIpsecSaAttribute(GetIpsecSaAttributeRequest) + returns (GetIpsecSaAttributeResponse) {} } diff --git a/dataplane/standalone/proto/isolation_group.pb.go b/dataplane/standalone/proto/isolation_group.pb.go index 48fb5c53..c85539d7 100755 --- a/dataplane/standalone/proto/isolation_group.pb.go +++ b/dataplane/standalone/proto/isolation_group.pb.go @@ -127,8 +127,8 @@ type CreateIsolationGroupRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type IsolationGroupType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.IsolationGroupType" json:"type,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *IsolationGroupType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.IsolationGroupType,oneof" json:"type,omitempty"` } func (x *CreateIsolationGroupRequest) Reset() { @@ -171,8 +171,8 @@ func (x *CreateIsolationGroupRequest) GetSwitch() uint64 { } func (x *CreateIsolationGroupRequest) GetType() IsolationGroupType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return IsolationGroupType_ISOLATION_GROUP_TYPE_UNSPECIFIED } @@ -369,7 +369,7 @@ type GetIsolationGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IsolationGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IsolationGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIsolationGroupAttributeResponse) Reset() { @@ -404,7 +404,7 @@ func (*GetIsolationGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_isolation_group_proto_rawDescGZIP(), []int{5} } -func (x *GetIsolationGroupAttributeResponse) GetAttr() []*IsolationGroupAttribute { +func (x *GetIsolationGroupAttributeResponse) GetAttr() *IsolationGroupAttribute { if x != nil { return x.Attr } @@ -416,9 +416,9 @@ type CreateIsolationGroupMemberRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - IsolationGroupId uint64 `protobuf:"varint,2,opt,name=isolation_group_id,json=isolationGroupId,proto3" json:"isolation_group_id,omitempty"` - IsolationObject uint64 `protobuf:"varint,3,opt,name=isolation_object,json=isolationObject,proto3" json:"isolation_object,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + IsolationGroupId *uint64 `protobuf:"varint,2,opt,name=isolation_group_id,json=isolationGroupId,proto3,oneof" json:"isolation_group_id,omitempty"` + IsolationObject *uint64 `protobuf:"varint,3,opt,name=isolation_object,json=isolationObject,proto3,oneof" json:"isolation_object,omitempty"` } func (x *CreateIsolationGroupMemberRequest) Reset() { @@ -461,15 +461,15 @@ func (x *CreateIsolationGroupMemberRequest) GetSwitch() uint64 { } func (x *CreateIsolationGroupMemberRequest) GetIsolationGroupId() uint64 { - if x != nil { - return x.IsolationGroupId + if x != nil && x.IsolationGroupId != nil { + return *x.IsolationGroupId } return 0 } func (x *CreateIsolationGroupMemberRequest) GetIsolationObject() uint64 { - if x != nil { - return x.IsolationObject + if x != nil && x.IsolationObject != nil { + return *x.IsolationObject } return 0 } @@ -666,7 +666,7 @@ type GetIsolationGroupMemberAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*IsolationGroupMemberAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *IsolationGroupMemberAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetIsolationGroupMemberAttributeResponse) Reset() { @@ -701,7 +701,7 @@ func (*GetIsolationGroupMemberAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_isolation_group_proto_rawDescGZIP(), []int{11} } -func (x *GetIsolationGroupMemberAttributeResponse) GetAttr() []*IsolationGroupMemberAttribute { +func (x *GetIsolationGroupMemberAttributeResponse) GetAttr() *IsolationGroupMemberAttribute { if x != nil { return x.Attr } @@ -718,152 +718,157 @@ var file_dataplane_standalone_proto_isolation_group_proto_rawDesc = []byte{ 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x74, 0x6f, 0x22, 0x88, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x48, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, + 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x2f, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x73, 0x6f, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xd6, 0x01, 0x0a, 0x21, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x12, 0x69, 0x73, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x69, 0x73, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x34, 0x0a, 0x10, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x22, 0x36, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x1b, 0x52, 0x65, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x35, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, - 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x73, - 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, - 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x22, 0x94, 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, - 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x12, 0x29, 0x0a, 0x10, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x69, 0x73, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x36, 0x0a, 0x22, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x35, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, + 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x48, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x89, 0x01, 0x0a, 0x12, 0x49, 0x73, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x12, 0x24, 0x0a, 0x20, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, + 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4c, + 0x49, 0x53, 0x54, 0x10, 0x02, 0x2a, 0xad, 0x01, 0x0a, 0x18, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x12, 0x2b, 0x0a, 0x27, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x32, 0x0a, 0x2e, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, + 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, + 0x44, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x10, 0x02, 0x32, 0x82, 0x07, 0x0a, 0x0e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, + 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, + 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x89, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4c, - 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, + 0x22, 0x00, 0x12, 0xa5, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x28, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, - 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x2a, 0x89, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x53, 0x4f, - 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1d, 0x0a, 0x19, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x2e, - 0x0a, 0x2a, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x2a, 0xad, - 0x01, 0x0a, 0x18, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2b, 0x0a, 0x27, 0x49, - 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, - 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x49, 0x53, 0x4f, 0x4c, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, - 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, - 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x4f, 0x4c, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x32, 0x82, - 0x07, 0x0a, 0x0e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x73, - 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x93, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x6f, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa5, 0x01, 0x0a, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x3e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x73, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1076,6 +1081,8 @@ func file_dataplane_standalone_proto_isolation_group_proto_init() { } } } + file_dataplane_standalone_proto_isolation_group_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_isolation_group_proto_msgTypes[6].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/isolation_group.proto b/dataplane/standalone/proto/isolation_group.proto index 6e0039d5..187a35c7 100644 --- a/dataplane/standalone/proto/isolation_group.proto +++ b/dataplane/standalone/proto/isolation_group.proto @@ -7,100 +7,78 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum IsolationGroupAttr { - ISOLATION_GROUP_ATTR_UNSPECIFIED = 0; - ISOLATION_GROUP_ATTR_TYPE = 1; - ISOLATION_GROUP_ATTR_ISOLATION_MEMBER_LIST = 2; + ISOLATION_GROUP_ATTR_UNSPECIFIED = 0; + ISOLATION_GROUP_ATTR_TYPE = 1; + ISOLATION_GROUP_ATTR_ISOLATION_MEMBER_LIST = 2; } enum IsolationGroupMemberAttr { - ISOLATION_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; - ISOLATION_GROUP_MEMBER_ATTR_ISOLATION_GROUP_ID = 1; - ISOLATION_GROUP_MEMBER_ATTR_ISOLATION_OBJECT = 2; + ISOLATION_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; + ISOLATION_GROUP_MEMBER_ATTR_ISOLATION_GROUP_ID = 1; + ISOLATION_GROUP_MEMBER_ATTR_ISOLATION_OBJECT = 2; } message CreateIsolationGroupRequest { - uint64 switch = 1; - - IsolationGroupType type = 2; - + uint64 switch = 1; + optional IsolationGroupType type = 2 [(attr_enum_value) = 1]; } message CreateIsolationGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveIsolationGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveIsolationGroupResponse { - - -} +message RemoveIsolationGroupResponse {} message GetIsolationGroupAttributeRequest { - uint64 oid = 1; - repeated IsolationGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated IsolationGroupAttr attr_type = 2; } message GetIsolationGroupAttributeResponse { - repeated IsolationGroupAttribute attr = 1; - - + IsolationGroupAttribute attr = 1; } message CreateIsolationGroupMemberRequest { - uint64 switch = 1; - - uint64 isolation_group_id = 2; - uint64 isolation_object = 3; - + uint64 switch = 1; + optional uint64 isolation_group_id = 2 [(attr_enum_value) = 1]; + optional uint64 isolation_object = 3 [(attr_enum_value) = 2]; } message CreateIsolationGroupMemberResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveIsolationGroupMemberRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveIsolationGroupMemberResponse { - - -} +message RemoveIsolationGroupMemberResponse {} message GetIsolationGroupMemberAttributeRequest { - uint64 oid = 1; - repeated IsolationGroupMemberAttr attr_type = 2; - - + uint64 oid = 1; + repeated IsolationGroupMemberAttr attr_type = 2; } message GetIsolationGroupMemberAttributeResponse { - repeated IsolationGroupMemberAttribute attr = 1; - - + IsolationGroupMemberAttribute attr = 1; } - service IsolationGroup { - rpc CreateIsolationGroup (CreateIsolationGroupRequest) returns (CreateIsolationGroupResponse) {} - rpc RemoveIsolationGroup (RemoveIsolationGroupRequest) returns (RemoveIsolationGroupResponse) {} - rpc GetIsolationGroupAttribute (GetIsolationGroupAttributeRequest) returns (GetIsolationGroupAttributeResponse) {} - rpc CreateIsolationGroupMember (CreateIsolationGroupMemberRequest) returns (CreateIsolationGroupMemberResponse) {} - rpc RemoveIsolationGroupMember (RemoveIsolationGroupMemberRequest) returns (RemoveIsolationGroupMemberResponse) {} - rpc GetIsolationGroupMemberAttribute (GetIsolationGroupMemberAttributeRequest) returns (GetIsolationGroupMemberAttributeResponse) {} + rpc CreateIsolationGroup(CreateIsolationGroupRequest) + returns (CreateIsolationGroupResponse) {} + rpc RemoveIsolationGroup(RemoveIsolationGroupRequest) + returns (RemoveIsolationGroupResponse) {} + rpc GetIsolationGroupAttribute(GetIsolationGroupAttributeRequest) + returns (GetIsolationGroupAttributeResponse) {} + rpc CreateIsolationGroupMember(CreateIsolationGroupMemberRequest) + returns (CreateIsolationGroupMemberResponse) {} + rpc RemoveIsolationGroupMember(RemoveIsolationGroupMemberRequest) + returns (RemoveIsolationGroupMemberResponse) {} + rpc GetIsolationGroupMemberAttribute(GetIsolationGroupMemberAttributeRequest) + returns (GetIsolationGroupMemberAttributeResponse) {} } diff --git a/dataplane/standalone/proto/l2mc.pb.go b/dataplane/standalone/proto/l2mc.pb.go index 108584b9..cceb25ad 100755 --- a/dataplane/standalone/proto/l2mc.pb.go +++ b/dataplane/standalone/proto/l2mc.pb.go @@ -78,9 +78,9 @@ type CreateL2McEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *L2McEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - OutputGroupId uint64 `protobuf:"varint,3,opt,name=output_group_id,json=outputGroupId,proto3" json:"output_group_id,omitempty"` + Entry *L2McEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + OutputGroupId *uint64 `protobuf:"varint,3,opt,name=output_group_id,json=outputGroupId,proto3,oneof" json:"output_group_id,omitempty"` } func (x *CreateL2McEntryRequest) Reset() { @@ -123,15 +123,15 @@ func (x *CreateL2McEntryRequest) GetEntry() *L2McEntry { } func (x *CreateL2McEntryRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateL2McEntryRequest) GetOutputGroupId() uint64 { - if x != nil { - return x.OutputGroupId + if x != nil && x.OutputGroupId != nil { + return *x.OutputGroupId } return 0 } @@ -264,12 +264,9 @@ type SetL2McEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *L2McEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetL2McEntryAttributeRequest_PacketAction - // *SetL2McEntryAttributeRequest_OutputGroupId - Attr isSetL2McEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *L2McEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + OutputGroupId *uint64 `protobuf:"varint,3,opt,name=output_group_id,json=outputGroupId,proto3,oneof" json:"output_group_id,omitempty"` } func (x *SetL2McEntryAttributeRequest) Reset() { @@ -311,43 +308,20 @@ func (x *SetL2McEntryAttributeRequest) GetEntry() *L2McEntry { return nil } -func (m *SetL2McEntryAttributeRequest) GetAttr() isSetL2McEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetL2McEntryAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetL2McEntryAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetL2McEntryAttributeRequest) GetOutputGroupId() uint64 { - if x, ok := x.GetAttr().(*SetL2McEntryAttributeRequest_OutputGroupId); ok { - return x.OutputGroupId + if x != nil && x.OutputGroupId != nil { + return *x.OutputGroupId } return 0 } -type isSetL2McEntryAttributeRequest_Attr interface { - isSetL2McEntryAttributeRequest_Attr() -} - -type SetL2McEntryAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetL2McEntryAttributeRequest_OutputGroupId struct { - OutputGroupId uint64 `protobuf:"varint,3,opt,name=output_group_id,json=outputGroupId,proto3,oneof"` -} - -func (*SetL2McEntryAttributeRequest_PacketAction) isSetL2McEntryAttributeRequest_Attr() {} - -func (*SetL2McEntryAttributeRequest_OutputGroupId) isSetL2McEntryAttributeRequest_Attr() {} - type SetL2McEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -446,7 +420,7 @@ type GetL2McEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*L2McEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *L2McEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetL2McEntryAttributeResponse) Reset() { @@ -481,7 +455,7 @@ func (*GetL2McEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_l2mc_proto_rawDescGZIP(), []int{7} } -func (x *GetL2McEntryAttributeResponse) GetAttr() []*L2McEntryAttribute { +func (x *GetL2McEntryAttributeResponse) GetAttr() *L2McEntryAttribute { if x != nil { return x.Attr } @@ -497,103 +471,110 @@ var file_dataplane_standalone_proto_l2mc_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfe, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, + 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd4, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, - 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x4a, 0x0a, - 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x53, - 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x99, 0x01, 0x0a, - 0x1c, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x50, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, + 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, - 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4c, - 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, + 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x84, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x4c, 0x32, + 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x78, 0x0a, 0x0d, 0x4c, 0x32, 0x6d, 0x63, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x32, 0x4d, - 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x32, - 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, - 0x1f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, - 0x10, 0x02, 0x32, 0xfc, 0x03, 0x0a, 0x04, 0x4c, 0x32, 0x6d, 0x63, 0x12, 0x72, 0x0a, 0x0f, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, + 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x2a, 0x78, 0x0a, 0x0d, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4c, 0x32, 0x4d, + 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, + 0x50, 0x55, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x32, 0xfc, + 0x03, 0x0a, 0x04, 0x4c, 0x32, 0x6d, 0x63, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x32, - 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4c, 0x32, + 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, + 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, + 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -752,10 +733,8 @@ func file_dataplane_standalone_proto_l2mc_proto_init() { } } } - file_dataplane_standalone_proto_l2mc_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetL2McEntryAttributeRequest_PacketAction)(nil), - (*SetL2McEntryAttributeRequest_OutputGroupId)(nil), - } + file_dataplane_standalone_proto_l2mc_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_l2mc_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/l2mc.proto b/dataplane/standalone/proto/l2mc.proto index 2c616eaa..cdf59821 100644 --- a/dataplane/standalone/proto/l2mc.proto +++ b/dataplane/standalone/proto/l2mc.proto @@ -7,67 +7,50 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum L2mcEntryAttr { - L2MC_ENTRY_ATTR_UNSPECIFIED = 0; - L2MC_ENTRY_ATTR_PACKET_ACTION = 1; - L2MC_ENTRY_ATTR_OUTPUT_GROUP_ID = 2; + L2MC_ENTRY_ATTR_UNSPECIFIED = 0; + L2MC_ENTRY_ATTR_PACKET_ACTION = 1; + L2MC_ENTRY_ATTR_OUTPUT_GROUP_ID = 2; } message CreateL2mcEntryRequest { - L2mcEntry entry = 1; - - PacketAction packet_action = 2; - uint64 output_group_id = 3; - + L2mcEntry entry = 1; + optional PacketAction packet_action = 2 [(attr_enum_value) = 1]; + optional uint64 output_group_id = 3 [(attr_enum_value) = 2]; } -message CreateL2mcEntryResponse { - - -} +message CreateL2mcEntryResponse {} message RemoveL2mcEntryRequest { - L2mcEntry entry = 1; - - + L2mcEntry entry = 1; } -message RemoveL2mcEntryResponse { - - -} +message RemoveL2mcEntryResponse {} message SetL2mcEntryAttributeRequest { - L2mcEntry entry = 1; - oneof attr { - PacketAction packet_action = 2; - uint64 output_group_id = 3; - } + L2mcEntry entry = 1; + optional PacketAction packet_action = 2 [(attr_enum_value) = 1]; + optional uint64 output_group_id = 3 [(attr_enum_value) = 2]; } -message SetL2mcEntryAttributeResponse { - - -} +message SetL2mcEntryAttributeResponse {} message GetL2mcEntryAttributeRequest { - L2mcEntry entry = 1; - repeated L2mcEntryAttr attr_type = 2; - - + L2mcEntry entry = 1; + repeated L2mcEntryAttr attr_type = 2; } message GetL2mcEntryAttributeResponse { - repeated L2mcEntryAttribute attr = 1; - - + L2mcEntryAttribute attr = 1; } - service L2mc { - rpc CreateL2mcEntry (CreateL2mcEntryRequest) returns (CreateL2mcEntryResponse) {} - rpc RemoveL2mcEntry (RemoveL2mcEntryRequest) returns (RemoveL2mcEntryResponse) {} - rpc SetL2mcEntryAttribute (SetL2mcEntryAttributeRequest) returns (SetL2mcEntryAttributeResponse) {} - rpc GetL2mcEntryAttribute (GetL2mcEntryAttributeRequest) returns (GetL2mcEntryAttributeResponse) {} + rpc CreateL2mcEntry(CreateL2mcEntryRequest) + returns (CreateL2mcEntryResponse) {} + rpc RemoveL2mcEntry(RemoveL2mcEntryRequest) + returns (RemoveL2mcEntryResponse) {} + rpc SetL2mcEntryAttribute(SetL2mcEntryAttributeRequest) + returns (SetL2mcEntryAttributeResponse) {} + rpc GetL2mcEntryAttribute(GetL2mcEntryAttributeRequest) + returns (GetL2mcEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/l2mc_group.pb.go b/dataplane/standalone/proto/l2mc_group.pb.go index 606d4b35..4b56b804 100755 --- a/dataplane/standalone/proto/l2mc_group.pb.go +++ b/dataplane/standalone/proto/l2mc_group.pb.go @@ -364,7 +364,7 @@ type GetL2McGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*L2McGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *L2McGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetL2McGroupAttributeResponse) Reset() { @@ -399,7 +399,7 @@ func (*GetL2McGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_l2mc_group_proto_rawDescGZIP(), []int{5} } -func (x *GetL2McGroupAttributeResponse) GetAttr() []*L2McGroupAttribute { +func (x *GetL2McGroupAttributeResponse) GetAttr() *L2McGroupAttribute { if x != nil { return x.Attr } @@ -411,10 +411,10 @@ type CreateL2McGroupMemberRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - L2McGroupId uint64 `protobuf:"varint,2,opt,name=l2mc_group_id,json=l2mcGroupId,proto3" json:"l2mc_group_id,omitempty"` - L2McOutputId uint64 `protobuf:"varint,3,opt,name=l2mc_output_id,json=l2mcOutputId,proto3" json:"l2mc_output_id,omitempty"` - L2McEndpointIp []byte `protobuf:"bytes,4,opt,name=l2mc_endpoint_ip,json=l2mcEndpointIp,proto3" json:"l2mc_endpoint_ip,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + L2McGroupId *uint64 `protobuf:"varint,2,opt,name=l2mc_group_id,json=l2mcGroupId,proto3,oneof" json:"l2mc_group_id,omitempty"` + L2McOutputId *uint64 `protobuf:"varint,3,opt,name=l2mc_output_id,json=l2mcOutputId,proto3,oneof" json:"l2mc_output_id,omitempty"` + L2McEndpointIp []byte `protobuf:"bytes,4,opt,name=l2mc_endpoint_ip,json=l2mcEndpointIp,proto3,oneof" json:"l2mc_endpoint_ip,omitempty"` } func (x *CreateL2McGroupMemberRequest) Reset() { @@ -457,15 +457,15 @@ func (x *CreateL2McGroupMemberRequest) GetSwitch() uint64 { } func (x *CreateL2McGroupMemberRequest) GetL2McGroupId() uint64 { - if x != nil { - return x.L2McGroupId + if x != nil && x.L2McGroupId != nil { + return *x.L2McGroupId } return 0 } func (x *CreateL2McGroupMemberRequest) GetL2McOutputId() uint64 { - if x != nil { - return x.L2McOutputId + if x != nil && x.L2McOutputId != nil { + return *x.L2McOutputId } return 0 } @@ -669,7 +669,7 @@ type GetL2McGroupMemberAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*L2McGroupMemberAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *L2McGroupMemberAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetL2McGroupMemberAttributeResponse) Reset() { @@ -704,7 +704,7 @@ func (*GetL2McGroupMemberAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_l2mc_group_proto_rawDescGZIP(), []int{11} } -func (x *GetL2McGroupMemberAttributeResponse) GetAttr() []*L2McGroupMemberAttribute { +func (x *GetL2McGroupMemberAttributeResponse) GetAttr() *L2McGroupMemberAttribute { if x != nil { return x.Attr } @@ -741,119 +741,124 @@ var file_dataplane_standalone_proto_l2mc_group_proto_rawDesc = []byte{ 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xaa, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, + 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x32, 0x6d, 0x63, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, - 0x32, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6c, - 0x32, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x49, 0x70, 0x22, 0x31, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, + 0x68, 0x12, 0x2d, 0x0a, 0x0d, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x0b, 0x6c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x0c, 0x6c, 0x32, 0x6d, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x32, 0x6d, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x32, 0x6d, 0x63, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x32, 0x6d, + 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x6c, 0x32, 0x6d, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x70, + 0x22, 0x31, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, + 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x22, 0x47, - 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, - 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x23, - 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, + 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x47, + 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x7d, 0x0a, 0x0d, 0x4c, 0x32, 0x6d, 0x63, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x32, 0x4d, - 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x32, - 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x32, - 0x4d, 0x43, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, - 0x01, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, - 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, 0x13, 0x4c, 0x32, 0x6d, 0x63, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x26, 0x0a, 0x22, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, - 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x32, 0x4d, 0x43, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, - 0x01, 0x12, 0x29, 0x0a, 0x25, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x32, 0x4d, 0x43, - 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, + 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x4c, 0x32, + 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, + 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x2a, 0x7d, 0x0a, 0x0d, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x4f, 0x55, + 0x54, 0x50, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, + 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, + 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, 0x13, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x32, + 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x32, 0x4d, + 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, - 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x44, 0x50, - 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x03, 0x32, 0xa1, 0x06, 0x0a, 0x09, 0x4c, 0x32, - 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x4f, 0x55, 0x54, 0x50, + 0x55, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x32, 0x4d, 0x43, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, + 0x49, 0x50, 0x10, 0x03, 0x32, 0xa1, 0x06, 0x0a, 0x09, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, - 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, - 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x32, 0x6d, 0x63, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, - 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, - 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x32, 0x6d, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1064,6 +1069,7 @@ func file_dataplane_standalone_proto_l2mc_group_proto_init() { } } } + file_dataplane_standalone_proto_l2mc_group_proto_msgTypes[6].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/l2mc_group.proto b/dataplane/standalone/proto/l2mc_group.proto index 9e514e74..40958627 100644 --- a/dataplane/standalone/proto/l2mc_group.proto +++ b/dataplane/standalone/proto/l2mc_group.proto @@ -7,101 +7,79 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum L2mcGroupAttr { - L2MC_GROUP_ATTR_UNSPECIFIED = 0; - L2MC_GROUP_ATTR_L2MC_OUTPUT_COUNT = 1; - L2MC_GROUP_ATTR_L2MC_MEMBER_LIST = 2; + L2MC_GROUP_ATTR_UNSPECIFIED = 0; + L2MC_GROUP_ATTR_L2MC_OUTPUT_COUNT = 1; + L2MC_GROUP_ATTR_L2MC_MEMBER_LIST = 2; } enum L2mcGroupMemberAttr { - L2MC_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; - L2MC_GROUP_MEMBER_ATTR_L2MC_GROUP_ID = 1; - L2MC_GROUP_MEMBER_ATTR_L2MC_OUTPUT_ID = 2; - L2MC_GROUP_MEMBER_ATTR_L2MC_ENDPOINT_IP = 3; + L2MC_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; + L2MC_GROUP_MEMBER_ATTR_L2MC_GROUP_ID = 1; + L2MC_GROUP_MEMBER_ATTR_L2MC_OUTPUT_ID = 2; + L2MC_GROUP_MEMBER_ATTR_L2MC_ENDPOINT_IP = 3; } message CreateL2mcGroupRequest { - uint64 switch = 1; - - + uint64 switch = 1; } message CreateL2mcGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveL2mcGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveL2mcGroupResponse { - - -} +message RemoveL2mcGroupResponse {} message GetL2mcGroupAttributeRequest { - uint64 oid = 1; - repeated L2mcGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated L2mcGroupAttr attr_type = 2; } message GetL2mcGroupAttributeResponse { - repeated L2mcGroupAttribute attr = 1; - - + L2mcGroupAttribute attr = 1; } message CreateL2mcGroupMemberRequest { - uint64 switch = 1; - - uint64 l2mc_group_id = 2; - uint64 l2mc_output_id = 3; - bytes l2mc_endpoint_ip = 4; - + uint64 switch = 1; + optional uint64 l2mc_group_id = 2 [(attr_enum_value) = 1]; + optional uint64 l2mc_output_id = 3 [(attr_enum_value) = 2]; + optional bytes l2mc_endpoint_ip = 4 [(attr_enum_value) = 3]; } message CreateL2mcGroupMemberResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveL2mcGroupMemberRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveL2mcGroupMemberResponse { - - -} +message RemoveL2mcGroupMemberResponse {} message GetL2mcGroupMemberAttributeRequest { - uint64 oid = 1; - repeated L2mcGroupMemberAttr attr_type = 2; - - + uint64 oid = 1; + repeated L2mcGroupMemberAttr attr_type = 2; } message GetL2mcGroupMemberAttributeResponse { - repeated L2mcGroupMemberAttribute attr = 1; - - + L2mcGroupMemberAttribute attr = 1; } - service L2mcGroup { - rpc CreateL2mcGroup (CreateL2mcGroupRequest) returns (CreateL2mcGroupResponse) {} - rpc RemoveL2mcGroup (RemoveL2mcGroupRequest) returns (RemoveL2mcGroupResponse) {} - rpc GetL2mcGroupAttribute (GetL2mcGroupAttributeRequest) returns (GetL2mcGroupAttributeResponse) {} - rpc CreateL2mcGroupMember (CreateL2mcGroupMemberRequest) returns (CreateL2mcGroupMemberResponse) {} - rpc RemoveL2mcGroupMember (RemoveL2mcGroupMemberRequest) returns (RemoveL2mcGroupMemberResponse) {} - rpc GetL2mcGroupMemberAttribute (GetL2mcGroupMemberAttributeRequest) returns (GetL2mcGroupMemberAttributeResponse) {} + rpc CreateL2mcGroup(CreateL2mcGroupRequest) + returns (CreateL2mcGroupResponse) {} + rpc RemoveL2mcGroup(RemoveL2mcGroupRequest) + returns (RemoveL2mcGroupResponse) {} + rpc GetL2mcGroupAttribute(GetL2mcGroupAttributeRequest) + returns (GetL2mcGroupAttributeResponse) {} + rpc CreateL2mcGroupMember(CreateL2mcGroupMemberRequest) + returns (CreateL2mcGroupMemberResponse) {} + rpc RemoveL2mcGroupMember(RemoveL2mcGroupMemberRequest) + returns (RemoveL2mcGroupMemberResponse) {} + rpc GetL2mcGroupMemberAttribute(GetL2mcGroupMemberAttributeRequest) + returns (GetL2mcGroupMemberAttributeResponse) {} } diff --git a/dataplane/standalone/proto/lag.pb.go b/dataplane/standalone/proto/lag.pb.go index c88d3691..dfd05db8 100755 --- a/dataplane/standalone/proto/lag.pb.go +++ b/dataplane/standalone/proto/lag.pb.go @@ -157,16 +157,16 @@ type CreateLagRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - IngressAcl uint64 `protobuf:"varint,2,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,3,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - PortVlanId uint32 `protobuf:"varint,4,opt,name=port_vlan_id,json=portVlanId,proto3" json:"port_vlan_id,omitempty"` - DefaultVlanPriority uint32 `protobuf:"varint,5,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3" json:"default_vlan_priority,omitempty"` - DropUntagged bool `protobuf:"varint,6,opt,name=drop_untagged,json=dropUntagged,proto3" json:"drop_untagged,omitempty"` - DropTagged bool `protobuf:"varint,7,opt,name=drop_tagged,json=dropTagged,proto3" json:"drop_tagged,omitempty"` - Tpid uint32 `protobuf:"varint,8,opt,name=tpid,proto3" json:"tpid,omitempty"` - SystemPortAggregateId uint32 `protobuf:"varint,9,opt,name=system_port_aggregate_id,json=systemPortAggregateId,proto3" json:"system_port_aggregate_id,omitempty"` - Label []byte `protobuf:"bytes,10,opt,name=label,proto3" json:"label,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + IngressAcl *uint64 `protobuf:"varint,2,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,3,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + PortVlanId *uint32 `protobuf:"varint,4,opt,name=port_vlan_id,json=portVlanId,proto3,oneof" json:"port_vlan_id,omitempty"` + DefaultVlanPriority *uint32 `protobuf:"varint,5,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3,oneof" json:"default_vlan_priority,omitempty"` + DropUntagged *bool `protobuf:"varint,6,opt,name=drop_untagged,json=dropUntagged,proto3,oneof" json:"drop_untagged,omitempty"` + DropTagged *bool `protobuf:"varint,7,opt,name=drop_tagged,json=dropTagged,proto3,oneof" json:"drop_tagged,omitempty"` + Tpid *uint32 `protobuf:"varint,8,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + SystemPortAggregateId *uint32 `protobuf:"varint,9,opt,name=system_port_aggregate_id,json=systemPortAggregateId,proto3,oneof" json:"system_port_aggregate_id,omitempty"` + Label []byte `protobuf:"bytes,10,opt,name=label,proto3,oneof" json:"label,omitempty"` } func (x *CreateLagRequest) Reset() { @@ -209,57 +209,57 @@ func (x *CreateLagRequest) GetSwitch() uint64 { } func (x *CreateLagRequest) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *CreateLagRequest) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *CreateLagRequest) GetPortVlanId() uint32 { - if x != nil { - return x.PortVlanId + if x != nil && x.PortVlanId != nil { + return *x.PortVlanId } return 0 } func (x *CreateLagRequest) GetDefaultVlanPriority() uint32 { - if x != nil { - return x.DefaultVlanPriority + if x != nil && x.DefaultVlanPriority != nil { + return *x.DefaultVlanPriority } return 0 } func (x *CreateLagRequest) GetDropUntagged() bool { - if x != nil { - return x.DropUntagged + if x != nil && x.DropUntagged != nil { + return *x.DropUntagged } return false } func (x *CreateLagRequest) GetDropTagged() bool { - if x != nil { - return x.DropTagged + if x != nil && x.DropTagged != nil { + return *x.DropTagged } return false } func (x *CreateLagRequest) GetTpid() uint32 { - if x != nil { - return x.Tpid + if x != nil && x.Tpid != nil { + return *x.Tpid } return 0 } func (x *CreateLagRequest) GetSystemPortAggregateId() uint32 { - if x != nil { - return x.SystemPortAggregateId + if x != nil && x.SystemPortAggregateId != nil { + return *x.SystemPortAggregateId } return 0 } @@ -408,18 +408,15 @@ type SetLagAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetLagAttributeRequest_IngressAcl - // *SetLagAttributeRequest_EgressAcl - // *SetLagAttributeRequest_PortVlanId - // *SetLagAttributeRequest_DefaultVlanPriority - // *SetLagAttributeRequest_DropUntagged - // *SetLagAttributeRequest_DropTagged - // *SetLagAttributeRequest_Tpid - // *SetLagAttributeRequest_Label - Attr isSetLagAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + IngressAcl *uint64 `protobuf:"varint,2,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,3,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + PortVlanId *uint32 `protobuf:"varint,4,opt,name=port_vlan_id,json=portVlanId,proto3,oneof" json:"port_vlan_id,omitempty"` + DefaultVlanPriority *uint32 `protobuf:"varint,5,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3,oneof" json:"default_vlan_priority,omitempty"` + DropUntagged *bool `protobuf:"varint,6,opt,name=drop_untagged,json=dropUntagged,proto3,oneof" json:"drop_untagged,omitempty"` + DropTagged *bool `protobuf:"varint,7,opt,name=drop_tagged,json=dropTagged,proto3,oneof" json:"drop_tagged,omitempty"` + Tpid *uint32 `protobuf:"varint,8,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + Label []byte `protobuf:"bytes,9,opt,name=label,proto3,oneof" json:"label,omitempty"` } func (x *SetLagAttributeRequest) Reset() { @@ -461,121 +458,62 @@ func (x *SetLagAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetLagAttributeRequest) GetAttr() isSetLagAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetLagAttributeRequest) GetIngressAcl() uint64 { - if x, ok := x.GetAttr().(*SetLagAttributeRequest_IngressAcl); ok { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *SetLagAttributeRequest) GetEgressAcl() uint64 { - if x, ok := x.GetAttr().(*SetLagAttributeRequest_EgressAcl); ok { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *SetLagAttributeRequest) GetPortVlanId() uint32 { - if x, ok := x.GetAttr().(*SetLagAttributeRequest_PortVlanId); ok { - return x.PortVlanId + if x != nil && x.PortVlanId != nil { + return *x.PortVlanId } return 0 } func (x *SetLagAttributeRequest) GetDefaultVlanPriority() uint32 { - if x, ok := x.GetAttr().(*SetLagAttributeRequest_DefaultVlanPriority); ok { - return x.DefaultVlanPriority + if x != nil && x.DefaultVlanPriority != nil { + return *x.DefaultVlanPriority } return 0 } func (x *SetLagAttributeRequest) GetDropUntagged() bool { - if x, ok := x.GetAttr().(*SetLagAttributeRequest_DropUntagged); ok { - return x.DropUntagged + if x != nil && x.DropUntagged != nil { + return *x.DropUntagged } return false } func (x *SetLagAttributeRequest) GetDropTagged() bool { - if x, ok := x.GetAttr().(*SetLagAttributeRequest_DropTagged); ok { - return x.DropTagged + if x != nil && x.DropTagged != nil { + return *x.DropTagged } return false } func (x *SetLagAttributeRequest) GetTpid() uint32 { - if x, ok := x.GetAttr().(*SetLagAttributeRequest_Tpid); ok { - return x.Tpid + if x != nil && x.Tpid != nil { + return *x.Tpid } return 0 } func (x *SetLagAttributeRequest) GetLabel() []byte { - if x, ok := x.GetAttr().(*SetLagAttributeRequest_Label); ok { + if x != nil { return x.Label } return nil } -type isSetLagAttributeRequest_Attr interface { - isSetLagAttributeRequest_Attr() -} - -type SetLagAttributeRequest_IngressAcl struct { - IngressAcl uint64 `protobuf:"varint,2,opt,name=ingress_acl,json=ingressAcl,proto3,oneof"` -} - -type SetLagAttributeRequest_EgressAcl struct { - EgressAcl uint64 `protobuf:"varint,3,opt,name=egress_acl,json=egressAcl,proto3,oneof"` -} - -type SetLagAttributeRequest_PortVlanId struct { - PortVlanId uint32 `protobuf:"varint,4,opt,name=port_vlan_id,json=portVlanId,proto3,oneof"` -} - -type SetLagAttributeRequest_DefaultVlanPriority struct { - DefaultVlanPriority uint32 `protobuf:"varint,5,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3,oneof"` -} - -type SetLagAttributeRequest_DropUntagged struct { - DropUntagged bool `protobuf:"varint,6,opt,name=drop_untagged,json=dropUntagged,proto3,oneof"` -} - -type SetLagAttributeRequest_DropTagged struct { - DropTagged bool `protobuf:"varint,7,opt,name=drop_tagged,json=dropTagged,proto3,oneof"` -} - -type SetLagAttributeRequest_Tpid struct { - Tpid uint32 `protobuf:"varint,8,opt,name=tpid,proto3,oneof"` -} - -type SetLagAttributeRequest_Label struct { - Label []byte `protobuf:"bytes,9,opt,name=label,proto3,oneof"` -} - -func (*SetLagAttributeRequest_IngressAcl) isSetLagAttributeRequest_Attr() {} - -func (*SetLagAttributeRequest_EgressAcl) isSetLagAttributeRequest_Attr() {} - -func (*SetLagAttributeRequest_PortVlanId) isSetLagAttributeRequest_Attr() {} - -func (*SetLagAttributeRequest_DefaultVlanPriority) isSetLagAttributeRequest_Attr() {} - -func (*SetLagAttributeRequest_DropUntagged) isSetLagAttributeRequest_Attr() {} - -func (*SetLagAttributeRequest_DropTagged) isSetLagAttributeRequest_Attr() {} - -func (*SetLagAttributeRequest_Tpid) isSetLagAttributeRequest_Attr() {} - -func (*SetLagAttributeRequest_Label) isSetLagAttributeRequest_Attr() {} - type SetLagAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -674,7 +612,7 @@ type GetLagAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*LagAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *LagAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetLagAttributeResponse) Reset() { @@ -709,7 +647,7 @@ func (*GetLagAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_lag_proto_rawDescGZIP(), []int{7} } -func (x *GetLagAttributeResponse) GetAttr() []*LagAttribute { +func (x *GetLagAttributeResponse) GetAttr() *LagAttribute { if x != nil { return x.Attr } @@ -721,11 +659,11 @@ type CreateLagMemberRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - LagId uint64 `protobuf:"varint,2,opt,name=lag_id,json=lagId,proto3" json:"lag_id,omitempty"` - PortId uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - EgressDisable bool `protobuf:"varint,4,opt,name=egress_disable,json=egressDisable,proto3" json:"egress_disable,omitempty"` - IngressDisable bool `protobuf:"varint,5,opt,name=ingress_disable,json=ingressDisable,proto3" json:"ingress_disable,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + LagId *uint64 `protobuf:"varint,2,opt,name=lag_id,json=lagId,proto3,oneof" json:"lag_id,omitempty"` + PortId *uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + EgressDisable *bool `protobuf:"varint,4,opt,name=egress_disable,json=egressDisable,proto3,oneof" json:"egress_disable,omitempty"` + IngressDisable *bool `protobuf:"varint,5,opt,name=ingress_disable,json=ingressDisable,proto3,oneof" json:"ingress_disable,omitempty"` } func (x *CreateLagMemberRequest) Reset() { @@ -768,29 +706,29 @@ func (x *CreateLagMemberRequest) GetSwitch() uint64 { } func (x *CreateLagMemberRequest) GetLagId() uint64 { - if x != nil { - return x.LagId + if x != nil && x.LagId != nil { + return *x.LagId } return 0 } func (x *CreateLagMemberRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *CreateLagMemberRequest) GetEgressDisable() bool { - if x != nil { - return x.EgressDisable + if x != nil && x.EgressDisable != nil { + return *x.EgressDisable } return false } func (x *CreateLagMemberRequest) GetIngressDisable() bool { - if x != nil { - return x.IngressDisable + if x != nil && x.IngressDisable != nil { + return *x.IngressDisable } return false } @@ -932,12 +870,9 @@ type SetLagMemberAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetLagMemberAttributeRequest_EgressDisable - // *SetLagMemberAttributeRequest_IngressDisable - Attr isSetLagMemberAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + EgressDisable *bool `protobuf:"varint,2,opt,name=egress_disable,json=egressDisable,proto3,oneof" json:"egress_disable,omitempty"` + IngressDisable *bool `protobuf:"varint,3,opt,name=ingress_disable,json=ingressDisable,proto3,oneof" json:"ingress_disable,omitempty"` } func (x *SetLagMemberAttributeRequest) Reset() { @@ -979,43 +914,20 @@ func (x *SetLagMemberAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetLagMemberAttributeRequest) GetAttr() isSetLagMemberAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetLagMemberAttributeRequest) GetEgressDisable() bool { - if x, ok := x.GetAttr().(*SetLagMemberAttributeRequest_EgressDisable); ok { - return x.EgressDisable + if x != nil && x.EgressDisable != nil { + return *x.EgressDisable } return false } func (x *SetLagMemberAttributeRequest) GetIngressDisable() bool { - if x, ok := x.GetAttr().(*SetLagMemberAttributeRequest_IngressDisable); ok { - return x.IngressDisable + if x != nil && x.IngressDisable != nil { + return *x.IngressDisable } return false } -type isSetLagMemberAttributeRequest_Attr interface { - isSetLagMemberAttributeRequest_Attr() -} - -type SetLagMemberAttributeRequest_EgressDisable struct { - EgressDisable bool `protobuf:"varint,2,opt,name=egress_disable,json=egressDisable,proto3,oneof"` -} - -type SetLagMemberAttributeRequest_IngressDisable struct { - IngressDisable bool `protobuf:"varint,3,opt,name=ingress_disable,json=ingressDisable,proto3,oneof"` -} - -func (*SetLagMemberAttributeRequest_EgressDisable) isSetLagMemberAttributeRequest_Attr() {} - -func (*SetLagMemberAttributeRequest_IngressDisable) isSetLagMemberAttributeRequest_Attr() {} - type SetLagMemberAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1114,7 +1026,7 @@ type GetLagMemberAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*LagMemberAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *LagMemberAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetLagMemberAttributeResponse) Reset() { @@ -1149,7 +1061,7 @@ func (*GetLagMemberAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_lag_proto_rawDescGZIP(), []int{15} } -func (x *GetLagMemberAttributeResponse) GetAttr() []*LagMemberAttribute { +func (x *GetLagMemberAttributeResponse) GetAttr() *LagMemberAttribute { if x != nil { return x.Attr } @@ -1165,206 +1077,244 @@ var file_dataplane_standalone_proto_lag_proto_rawDesc = []byte{ 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe9, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe8, 0x04, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, - 0x63, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, - 0x63, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x41, 0x63, 0x6c, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, - 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, - 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x72, 0x6f, - 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, - 0x70, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, - 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x22, 0x25, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x13, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, - 0x63, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, - 0x6f, 0x72, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x25, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, - 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x64, - 0x72, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x70, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x12, - 0x16, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, - 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, - 0x19, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xb0, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x61, - 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, - 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x27, 0x0a, 0x0e, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1f, 0x0a, - 0x1d, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, - 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, + 0x63, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, + 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x09, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x6c, 0x61, + 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x13, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, + 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x04, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, + 0x67, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x05, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x42, 0x0a, 0x18, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x15, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x25, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x13, + 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x87, 0x04, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x61, 0x67, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x2a, 0xb1, 0x02, 0x0a, 0x07, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x41, 0x47, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, - 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4c, - 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, - 0x43, 0x4c, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, - 0x22, 0x0a, 0x1e, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, - 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, - 0x59, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x06, 0x12, - 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x41, 0x47, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, - 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x49, - 0x44, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x0a, 0x2a, 0xb2, 0x01, 0x0a, 0x0d, 0x4c, 0x61, 0x67, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x41, 0x47, - 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x41, - 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, - 0x47, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, - 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, - 0x44, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, - 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x49, - 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x4c, 0x41, 0x47, 0x5f, 0x4d, - 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, - 0x53, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x32, 0xa7, 0x07, 0x0a, - 0x03, 0x4c, 0x61, 0x67, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, - 0x67, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, + 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x02, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, + 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x04, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, 0x52, + 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x08, 0x48, 0x06, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0a, 0x48, 0x07, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x72, 0x6f, + 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, + 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x19, 0x0a, + 0x17, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4c, + 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x52, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4c, 0x61, 0x67, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, + 0x61, 0x69, 0x2e, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x9a, 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x30, + 0x0a, 0x0e, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x32, 0x0a, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x2a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4c, 0x61, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x0e, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x0e, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4c, 0x61, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4c, - 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, + 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, + 0x73, 0x61, 0x69, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xb1, 0x02, 0x0a, + 0x07, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x47, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x41, + 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, + 0x43, 0x4c, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x03, 0x12, 0x19, 0x0a, + 0x15, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x41, 0x47, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, + 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x55, 0x4e, + 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x47, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, + 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x50, 0x49, 0x44, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x47, + 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, + 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x0a, + 0x2a, 0xb2, 0x01, 0x0a, 0x0d, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, + 0x1b, 0x0a, 0x17, 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, + 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, + 0x12, 0x23, 0x0a, 0x1f, 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x41, + 0x42, 0x4c, 0x45, 0x10, 0x04, 0x32, 0xa7, 0x07, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x60, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, - 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x74, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x60, 0x0a, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x12, 0x27, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, + 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, + 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, + 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, + 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x61, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x61, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x53, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x47, 0x65, 0x74, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, + 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1631,20 +1581,10 @@ func file_dataplane_standalone_proto_lag_proto_init() { } } } - file_dataplane_standalone_proto_lag_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetLagAttributeRequest_IngressAcl)(nil), - (*SetLagAttributeRequest_EgressAcl)(nil), - (*SetLagAttributeRequest_PortVlanId)(nil), - (*SetLagAttributeRequest_DefaultVlanPriority)(nil), - (*SetLagAttributeRequest_DropUntagged)(nil), - (*SetLagAttributeRequest_DropTagged)(nil), - (*SetLagAttributeRequest_Tpid)(nil), - (*SetLagAttributeRequest_Label)(nil), - } - file_dataplane_standalone_proto_lag_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetLagMemberAttributeRequest_EgressDisable)(nil), - (*SetLagMemberAttributeRequest_IngressDisable)(nil), - } + file_dataplane_standalone_proto_lag_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_lag_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_lag_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_lag_proto_msgTypes[12].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/lag.proto b/dataplane/standalone/proto/lag.proto index 4ef2a544..7ac3a411 100644 --- a/dataplane/standalone/proto/lag.proto +++ b/dataplane/standalone/proto/lag.proto @@ -7,154 +7,122 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum LagAttr { - LAG_ATTR_UNSPECIFIED = 0; - LAG_ATTR_PORT_LIST = 1; - LAG_ATTR_INGRESS_ACL = 2; - LAG_ATTR_EGRESS_ACL = 3; - LAG_ATTR_PORT_VLAN_ID = 4; - LAG_ATTR_DEFAULT_VLAN_PRIORITY = 5; - LAG_ATTR_DROP_UNTAGGED = 6; - LAG_ATTR_DROP_TAGGED = 7; - LAG_ATTR_TPID = 8; - LAG_ATTR_SYSTEM_PORT_AGGREGATE_ID = 9; - LAG_ATTR_LABEL = 10; + LAG_ATTR_UNSPECIFIED = 0; + LAG_ATTR_PORT_LIST = 1; + LAG_ATTR_INGRESS_ACL = 2; + LAG_ATTR_EGRESS_ACL = 3; + LAG_ATTR_PORT_VLAN_ID = 4; + LAG_ATTR_DEFAULT_VLAN_PRIORITY = 5; + LAG_ATTR_DROP_UNTAGGED = 6; + LAG_ATTR_DROP_TAGGED = 7; + LAG_ATTR_TPID = 8; + LAG_ATTR_SYSTEM_PORT_AGGREGATE_ID = 9; + LAG_ATTR_LABEL = 10; } enum LagMemberAttr { - LAG_MEMBER_ATTR_UNSPECIFIED = 0; - LAG_MEMBER_ATTR_LAG_ID = 1; - LAG_MEMBER_ATTR_PORT_ID = 2; - LAG_MEMBER_ATTR_EGRESS_DISABLE = 3; - LAG_MEMBER_ATTR_INGRESS_DISABLE = 4; + LAG_MEMBER_ATTR_UNSPECIFIED = 0; + LAG_MEMBER_ATTR_LAG_ID = 1; + LAG_MEMBER_ATTR_PORT_ID = 2; + LAG_MEMBER_ATTR_EGRESS_DISABLE = 3; + LAG_MEMBER_ATTR_INGRESS_DISABLE = 4; } message CreateLagRequest { - uint64 switch = 1; - - uint64 ingress_acl = 2; - uint64 egress_acl = 3; - uint32 port_vlan_id = 4; - uint32 default_vlan_priority = 5; - bool drop_untagged = 6; - bool drop_tagged = 7; - uint32 tpid = 8; - uint32 system_port_aggregate_id = 9; - bytes label = 10; - + uint64 switch = 1; + optional uint64 ingress_acl = 2 [(attr_enum_value) = 2]; + optional uint64 egress_acl = 3 [(attr_enum_value) = 3]; + optional uint32 port_vlan_id = 4 [(attr_enum_value) = 4]; + optional uint32 default_vlan_priority = 5 [(attr_enum_value) = 5]; + optional bool drop_untagged = 6 [(attr_enum_value) = 6]; + optional bool drop_tagged = 7 [(attr_enum_value) = 7]; + optional uint32 tpid = 8 [(attr_enum_value) = 8]; + optional uint32 system_port_aggregate_id = 9 [(attr_enum_value) = 9]; + optional bytes label = 10 [(attr_enum_value) = 10]; } message CreateLagResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveLagRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveLagResponse { - - -} +message RemoveLagResponse {} message SetLagAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 ingress_acl = 2; - uint64 egress_acl = 3; - uint32 port_vlan_id = 4; - uint32 default_vlan_priority = 5; - bool drop_untagged = 6; - bool drop_tagged = 7; - uint32 tpid = 8; - bytes label = 9; - } + uint64 oid = 1; + optional uint64 ingress_acl = 2 [(attr_enum_value) = 2]; + optional uint64 egress_acl = 3 [(attr_enum_value) = 3]; + optional uint32 port_vlan_id = 4 [(attr_enum_value) = 4]; + optional uint32 default_vlan_priority = 5 [(attr_enum_value) = 5]; + optional bool drop_untagged = 6 [(attr_enum_value) = 6]; + optional bool drop_tagged = 7 [(attr_enum_value) = 7]; + optional uint32 tpid = 8 [(attr_enum_value) = 8]; + optional bytes label = 9 [(attr_enum_value) = 10]; } -message SetLagAttributeResponse { - - -} +message SetLagAttributeResponse {} message GetLagAttributeRequest { - uint64 oid = 1; - repeated LagAttr attr_type = 2; - - + uint64 oid = 1; + repeated LagAttr attr_type = 2; } message GetLagAttributeResponse { - repeated LagAttribute attr = 1; - - + LagAttribute attr = 1; } message CreateLagMemberRequest { - uint64 switch = 1; - - uint64 lag_id = 2; - uint64 port_id = 3; - bool egress_disable = 4; - bool ingress_disable = 5; - + uint64 switch = 1; + optional uint64 lag_id = 2 [(attr_enum_value) = 1]; + optional uint64 port_id = 3 [(attr_enum_value) = 2]; + optional bool egress_disable = 4 [(attr_enum_value) = 3]; + optional bool ingress_disable = 5 [(attr_enum_value) = 4]; } message CreateLagMemberResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveLagMemberRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveLagMemberResponse { - - -} +message RemoveLagMemberResponse {} message SetLagMemberAttributeRequest { - uint64 oid = 1; - oneof attr { - bool egress_disable = 2; - bool ingress_disable = 3; - } + uint64 oid = 1; + optional bool egress_disable = 2 [(attr_enum_value) = 3]; + optional bool ingress_disable = 3 [(attr_enum_value) = 4]; } -message SetLagMemberAttributeResponse { - - -} +message SetLagMemberAttributeResponse {} message GetLagMemberAttributeRequest { - uint64 oid = 1; - repeated LagMemberAttr attr_type = 2; - - + uint64 oid = 1; + repeated LagMemberAttr attr_type = 2; } message GetLagMemberAttributeResponse { - repeated LagMemberAttribute attr = 1; - - + LagMemberAttribute attr = 1; } - service Lag { - rpc CreateLag (CreateLagRequest) returns (CreateLagResponse) {} - rpc RemoveLag (RemoveLagRequest) returns (RemoveLagResponse) {} - rpc SetLagAttribute (SetLagAttributeRequest) returns (SetLagAttributeResponse) {} - rpc GetLagAttribute (GetLagAttributeRequest) returns (GetLagAttributeResponse) {} - rpc CreateLagMember (CreateLagMemberRequest) returns (CreateLagMemberResponse) {} - rpc RemoveLagMember (RemoveLagMemberRequest) returns (RemoveLagMemberResponse) {} - rpc SetLagMemberAttribute (SetLagMemberAttributeRequest) returns (SetLagMemberAttributeResponse) {} - rpc GetLagMemberAttribute (GetLagMemberAttributeRequest) returns (GetLagMemberAttributeResponse) {} + rpc CreateLag(CreateLagRequest) returns (CreateLagResponse) {} + rpc RemoveLag(RemoveLagRequest) returns (RemoveLagResponse) {} + rpc SetLagAttribute(SetLagAttributeRequest) + returns (SetLagAttributeResponse) {} + rpc GetLagAttribute(GetLagAttributeRequest) + returns (GetLagAttributeResponse) {} + rpc CreateLagMember(CreateLagMemberRequest) + returns (CreateLagMemberResponse) {} + rpc RemoveLagMember(RemoveLagMemberRequest) + returns (RemoveLagMemberResponse) {} + rpc SetLagMemberAttribute(SetLagMemberAttributeRequest) + returns (SetLagMemberAttributeResponse) {} + rpc GetLagMemberAttribute(GetLagMemberAttributeRequest) + returns (GetLagMemberAttributeResponse) {} } diff --git a/dataplane/standalone/proto/macsec.pb.go b/dataplane/standalone/proto/macsec.pb.go index 6c4dab0a..e38e5a7f 100755 --- a/dataplane/standalone/proto/macsec.pb.go +++ b/dataplane/standalone/proto/macsec.pb.go @@ -406,14 +406,14 @@ type CreateMacsecRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Direction MacsecDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"direction,omitempty"` - WarmBootEnable bool `protobuf:"varint,3,opt,name=warm_boot_enable,json=warmBootEnable,proto3" json:"warm_boot_enable,omitempty"` - CtagTpid uint32 `protobuf:"varint,4,opt,name=ctag_tpid,json=ctagTpid,proto3" json:"ctag_tpid,omitempty"` - StagTpid uint32 `protobuf:"varint,5,opt,name=stag_tpid,json=stagTpid,proto3" json:"stag_tpid,omitempty"` - MaxVlanTagsParsed uint32 `protobuf:"varint,6,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3" json:"max_vlan_tags_parsed,omitempty"` - StatsMode StatsMode `protobuf:"varint,7,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode" json:"stats_mode,omitempty"` - PhysicalBypassEnable bool `protobuf:"varint,8,opt,name=physical_bypass_enable,json=physicalBypassEnable,proto3" json:"physical_bypass_enable,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Direction *MacsecDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"direction,omitempty"` + WarmBootEnable *bool `protobuf:"varint,3,opt,name=warm_boot_enable,json=warmBootEnable,proto3,oneof" json:"warm_boot_enable,omitempty"` + CtagTpid *uint32 `protobuf:"varint,4,opt,name=ctag_tpid,json=ctagTpid,proto3,oneof" json:"ctag_tpid,omitempty"` + StagTpid *uint32 `protobuf:"varint,5,opt,name=stag_tpid,json=stagTpid,proto3,oneof" json:"stag_tpid,omitempty"` + MaxVlanTagsParsed *uint32 `protobuf:"varint,6,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3,oneof" json:"max_vlan_tags_parsed,omitempty"` + StatsMode *StatsMode `protobuf:"varint,7,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode,oneof" json:"stats_mode,omitempty"` + PhysicalBypassEnable *bool `protobuf:"varint,8,opt,name=physical_bypass_enable,json=physicalBypassEnable,proto3,oneof" json:"physical_bypass_enable,omitempty"` } func (x *CreateMacsecRequest) Reset() { @@ -456,50 +456,50 @@ func (x *CreateMacsecRequest) GetSwitch() uint64 { } func (x *CreateMacsecRequest) GetDirection() MacsecDirection { - if x != nil { - return x.Direction + if x != nil && x.Direction != nil { + return *x.Direction } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } func (x *CreateMacsecRequest) GetWarmBootEnable() bool { - if x != nil { - return x.WarmBootEnable + if x != nil && x.WarmBootEnable != nil { + return *x.WarmBootEnable } return false } func (x *CreateMacsecRequest) GetCtagTpid() uint32 { - if x != nil { - return x.CtagTpid + if x != nil && x.CtagTpid != nil { + return *x.CtagTpid } return 0 } func (x *CreateMacsecRequest) GetStagTpid() uint32 { - if x != nil { - return x.StagTpid + if x != nil && x.StagTpid != nil { + return *x.StagTpid } return 0 } func (x *CreateMacsecRequest) GetMaxVlanTagsParsed() uint32 { - if x != nil { - return x.MaxVlanTagsParsed + if x != nil && x.MaxVlanTagsParsed != nil { + return *x.MaxVlanTagsParsed } return 0 } func (x *CreateMacsecRequest) GetStatsMode() StatsMode { - if x != nil { - return x.StatsMode + if x != nil && x.StatsMode != nil { + return *x.StatsMode } return StatsMode_STATS_MODE_UNSPECIFIED } func (x *CreateMacsecRequest) GetPhysicalBypassEnable() bool { - if x != nil { - return x.PhysicalBypassEnable + if x != nil && x.PhysicalBypassEnable != nil { + return *x.PhysicalBypassEnable } return false } @@ -641,16 +641,13 @@ type SetMacsecAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetMacsecAttributeRequest_WarmBootEnable - // *SetMacsecAttributeRequest_CtagTpid - // *SetMacsecAttributeRequest_StagTpid - // *SetMacsecAttributeRequest_MaxVlanTagsParsed - // *SetMacsecAttributeRequest_StatsMode - // *SetMacsecAttributeRequest_PhysicalBypassEnable - Attr isSetMacsecAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + WarmBootEnable *bool `protobuf:"varint,2,opt,name=warm_boot_enable,json=warmBootEnable,proto3,oneof" json:"warm_boot_enable,omitempty"` + CtagTpid *uint32 `protobuf:"varint,3,opt,name=ctag_tpid,json=ctagTpid,proto3,oneof" json:"ctag_tpid,omitempty"` + StagTpid *uint32 `protobuf:"varint,4,opt,name=stag_tpid,json=stagTpid,proto3,oneof" json:"stag_tpid,omitempty"` + MaxVlanTagsParsed *uint32 `protobuf:"varint,5,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3,oneof" json:"max_vlan_tags_parsed,omitempty"` + StatsMode *StatsMode `protobuf:"varint,6,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode,oneof" json:"stats_mode,omitempty"` + PhysicalBypassEnable *bool `protobuf:"varint,7,opt,name=physical_bypass_enable,json=physicalBypassEnable,proto3,oneof" json:"physical_bypass_enable,omitempty"` } func (x *SetMacsecAttributeRequest) Reset() { @@ -692,95 +689,48 @@ func (x *SetMacsecAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetMacsecAttributeRequest) GetAttr() isSetMacsecAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetMacsecAttributeRequest) GetWarmBootEnable() bool { - if x, ok := x.GetAttr().(*SetMacsecAttributeRequest_WarmBootEnable); ok { - return x.WarmBootEnable + if x != nil && x.WarmBootEnable != nil { + return *x.WarmBootEnable } return false } func (x *SetMacsecAttributeRequest) GetCtagTpid() uint32 { - if x, ok := x.GetAttr().(*SetMacsecAttributeRequest_CtagTpid); ok { - return x.CtagTpid + if x != nil && x.CtagTpid != nil { + return *x.CtagTpid } return 0 } func (x *SetMacsecAttributeRequest) GetStagTpid() uint32 { - if x, ok := x.GetAttr().(*SetMacsecAttributeRequest_StagTpid); ok { - return x.StagTpid + if x != nil && x.StagTpid != nil { + return *x.StagTpid } return 0 } func (x *SetMacsecAttributeRequest) GetMaxVlanTagsParsed() uint32 { - if x, ok := x.GetAttr().(*SetMacsecAttributeRequest_MaxVlanTagsParsed); ok { - return x.MaxVlanTagsParsed + if x != nil && x.MaxVlanTagsParsed != nil { + return *x.MaxVlanTagsParsed } return 0 } func (x *SetMacsecAttributeRequest) GetStatsMode() StatsMode { - if x, ok := x.GetAttr().(*SetMacsecAttributeRequest_StatsMode); ok { - return x.StatsMode + if x != nil && x.StatsMode != nil { + return *x.StatsMode } return StatsMode_STATS_MODE_UNSPECIFIED } func (x *SetMacsecAttributeRequest) GetPhysicalBypassEnable() bool { - if x, ok := x.GetAttr().(*SetMacsecAttributeRequest_PhysicalBypassEnable); ok { - return x.PhysicalBypassEnable + if x != nil && x.PhysicalBypassEnable != nil { + return *x.PhysicalBypassEnable } return false } -type isSetMacsecAttributeRequest_Attr interface { - isSetMacsecAttributeRequest_Attr() -} - -type SetMacsecAttributeRequest_WarmBootEnable struct { - WarmBootEnable bool `protobuf:"varint,2,opt,name=warm_boot_enable,json=warmBootEnable,proto3,oneof"` -} - -type SetMacsecAttributeRequest_CtagTpid struct { - CtagTpid uint32 `protobuf:"varint,3,opt,name=ctag_tpid,json=ctagTpid,proto3,oneof"` -} - -type SetMacsecAttributeRequest_StagTpid struct { - StagTpid uint32 `protobuf:"varint,4,opt,name=stag_tpid,json=stagTpid,proto3,oneof"` -} - -type SetMacsecAttributeRequest_MaxVlanTagsParsed struct { - MaxVlanTagsParsed uint32 `protobuf:"varint,5,opt,name=max_vlan_tags_parsed,json=maxVlanTagsParsed,proto3,oneof"` -} - -type SetMacsecAttributeRequest_StatsMode struct { - StatsMode StatsMode `protobuf:"varint,6,opt,name=stats_mode,json=statsMode,proto3,enum=lemming.dataplane.sai.StatsMode,oneof"` -} - -type SetMacsecAttributeRequest_PhysicalBypassEnable struct { - PhysicalBypassEnable bool `protobuf:"varint,7,opt,name=physical_bypass_enable,json=physicalBypassEnable,proto3,oneof"` -} - -func (*SetMacsecAttributeRequest_WarmBootEnable) isSetMacsecAttributeRequest_Attr() {} - -func (*SetMacsecAttributeRequest_CtagTpid) isSetMacsecAttributeRequest_Attr() {} - -func (*SetMacsecAttributeRequest_StagTpid) isSetMacsecAttributeRequest_Attr() {} - -func (*SetMacsecAttributeRequest_MaxVlanTagsParsed) isSetMacsecAttributeRequest_Attr() {} - -func (*SetMacsecAttributeRequest_StatsMode) isSetMacsecAttributeRequest_Attr() {} - -func (*SetMacsecAttributeRequest_PhysicalBypassEnable) isSetMacsecAttributeRequest_Attr() {} - type SetMacsecAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -879,7 +829,7 @@ type GetMacsecAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*MacsecAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *MacsecAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMacsecAttributeResponse) Reset() { @@ -914,7 +864,7 @@ func (*GetMacsecAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_macsec_proto_rawDescGZIP(), []int{7} } -func (x *GetMacsecAttributeResponse) GetAttr() []*MacsecAttribute { +func (x *GetMacsecAttributeResponse) GetAttr() *MacsecAttribute { if x != nil { return x.Attr } @@ -926,12 +876,12 @@ type CreateMacsecPortRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - MacsecDirection MacsecDirection `protobuf:"varint,2,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"macsec_direction,omitempty"` - PortId uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - CtagEnable bool `protobuf:"varint,4,opt,name=ctag_enable,json=ctagEnable,proto3" json:"ctag_enable,omitempty"` - StagEnable bool `protobuf:"varint,5,opt,name=stag_enable,json=stagEnable,proto3" json:"stag_enable,omitempty"` - SwitchSwitchingMode SwitchSwitchingMode `protobuf:"varint,6,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode" json:"switch_switching_mode,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + MacsecDirection *MacsecDirection `protobuf:"varint,2,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"macsec_direction,omitempty"` + PortId *uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + CtagEnable *bool `protobuf:"varint,4,opt,name=ctag_enable,json=ctagEnable,proto3,oneof" json:"ctag_enable,omitempty"` + StagEnable *bool `protobuf:"varint,5,opt,name=stag_enable,json=stagEnable,proto3,oneof" json:"stag_enable,omitempty"` + SwitchSwitchingMode *SwitchSwitchingMode `protobuf:"varint,6,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switch_switching_mode,omitempty"` } func (x *CreateMacsecPortRequest) Reset() { @@ -974,36 +924,36 @@ func (x *CreateMacsecPortRequest) GetSwitch() uint64 { } func (x *CreateMacsecPortRequest) GetMacsecDirection() MacsecDirection { - if x != nil { - return x.MacsecDirection + if x != nil && x.MacsecDirection != nil { + return *x.MacsecDirection } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } func (x *CreateMacsecPortRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *CreateMacsecPortRequest) GetCtagEnable() bool { - if x != nil { - return x.CtagEnable + if x != nil && x.CtagEnable != nil { + return *x.CtagEnable } return false } func (x *CreateMacsecPortRequest) GetStagEnable() bool { - if x != nil { - return x.StagEnable + if x != nil && x.StagEnable != nil { + return *x.StagEnable } return false } func (x *CreateMacsecPortRequest) GetSwitchSwitchingMode() SwitchSwitchingMode { - if x != nil { - return x.SwitchSwitchingMode + if x != nil && x.SwitchSwitchingMode != nil { + return *x.SwitchSwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } @@ -1145,13 +1095,10 @@ type SetMacsecPortAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetMacsecPortAttributeRequest_CtagEnable - // *SetMacsecPortAttributeRequest_StagEnable - // *SetMacsecPortAttributeRequest_SwitchSwitchingMode - Attr isSetMacsecPortAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + CtagEnable *bool `protobuf:"varint,2,opt,name=ctag_enable,json=ctagEnable,proto3,oneof" json:"ctag_enable,omitempty"` + StagEnable *bool `protobuf:"varint,3,opt,name=stag_enable,json=stagEnable,proto3,oneof" json:"stag_enable,omitempty"` + SwitchSwitchingMode *SwitchSwitchingMode `protobuf:"varint,4,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switch_switching_mode,omitempty"` } func (x *SetMacsecPortAttributeRequest) Reset() { @@ -1193,56 +1140,27 @@ func (x *SetMacsecPortAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetMacsecPortAttributeRequest) GetAttr() isSetMacsecPortAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetMacsecPortAttributeRequest) GetCtagEnable() bool { - if x, ok := x.GetAttr().(*SetMacsecPortAttributeRequest_CtagEnable); ok { - return x.CtagEnable + if x != nil && x.CtagEnable != nil { + return *x.CtagEnable } return false } func (x *SetMacsecPortAttributeRequest) GetStagEnable() bool { - if x, ok := x.GetAttr().(*SetMacsecPortAttributeRequest_StagEnable); ok { - return x.StagEnable + if x != nil && x.StagEnable != nil { + return *x.StagEnable } return false } func (x *SetMacsecPortAttributeRequest) GetSwitchSwitchingMode() SwitchSwitchingMode { - if x, ok := x.GetAttr().(*SetMacsecPortAttributeRequest_SwitchSwitchingMode); ok { - return x.SwitchSwitchingMode + if x != nil && x.SwitchSwitchingMode != nil { + return *x.SwitchSwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } -type isSetMacsecPortAttributeRequest_Attr interface { - isSetMacsecPortAttributeRequest_Attr() -} - -type SetMacsecPortAttributeRequest_CtagEnable struct { - CtagEnable bool `protobuf:"varint,2,opt,name=ctag_enable,json=ctagEnable,proto3,oneof"` -} - -type SetMacsecPortAttributeRequest_StagEnable struct { - StagEnable bool `protobuf:"varint,3,opt,name=stag_enable,json=stagEnable,proto3,oneof"` -} - -type SetMacsecPortAttributeRequest_SwitchSwitchingMode struct { - SwitchSwitchingMode SwitchSwitchingMode `protobuf:"varint,4,opt,name=switch_switching_mode,json=switchSwitchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof"` -} - -func (*SetMacsecPortAttributeRequest_CtagEnable) isSetMacsecPortAttributeRequest_Attr() {} - -func (*SetMacsecPortAttributeRequest_StagEnable) isSetMacsecPortAttributeRequest_Attr() {} - -func (*SetMacsecPortAttributeRequest_SwitchSwitchingMode) isSetMacsecPortAttributeRequest_Attr() {} - type SetMacsecPortAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1341,7 +1259,7 @@ type GetMacsecPortAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*MacsecPortAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *MacsecPortAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMacsecPortAttributeResponse) Reset() { @@ -1376,7 +1294,7 @@ func (*GetMacsecPortAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_macsec_proto_rawDescGZIP(), []int{15} } -func (x *GetMacsecPortAttributeResponse) GetAttr() []*MacsecPortAttribute { +func (x *GetMacsecPortAttributeResponse) GetAttr() *MacsecPortAttribute { if x != nil { return x.Attr } @@ -1388,8 +1306,8 @@ type CreateMacsecFlowRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - MacsecDirection MacsecDirection `protobuf:"varint,2,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"macsec_direction,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + MacsecDirection *MacsecDirection `protobuf:"varint,2,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"macsec_direction,omitempty"` } func (x *CreateMacsecFlowRequest) Reset() { @@ -1432,8 +1350,8 @@ func (x *CreateMacsecFlowRequest) GetSwitch() uint64 { } func (x *CreateMacsecFlowRequest) GetMacsecDirection() MacsecDirection { - if x != nil { - return x.MacsecDirection + if x != nil && x.MacsecDirection != nil { + return *x.MacsecDirection } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } @@ -1630,7 +1548,7 @@ type GetMacsecFlowAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*MacsecFlowAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *MacsecFlowAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMacsecFlowAttributeResponse) Reset() { @@ -1665,7 +1583,7 @@ func (*GetMacsecFlowAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_macsec_proto_rawDescGZIP(), []int{21} } -func (x *GetMacsecFlowAttributeResponse) GetAttr() []*MacsecFlowAttribute { +func (x *GetMacsecFlowAttributeResponse) GetAttr() *MacsecFlowAttribute { if x != nil { return x.Attr } @@ -1677,16 +1595,16 @@ type CreateMacsecScRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - MacsecDirection MacsecDirection `protobuf:"varint,2,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"macsec_direction,omitempty"` - FlowId uint64 `protobuf:"varint,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - MacsecSci uint64 `protobuf:"varint,4,opt,name=macsec_sci,json=macsecSci,proto3" json:"macsec_sci,omitempty"` - MacsecExplicitSciEnable bool `protobuf:"varint,5,opt,name=macsec_explicit_sci_enable,json=macsecExplicitSciEnable,proto3" json:"macsec_explicit_sci_enable,omitempty"` - MacsecSectagOffset uint32 `protobuf:"varint,6,opt,name=macsec_sectag_offset,json=macsecSectagOffset,proto3" json:"macsec_sectag_offset,omitempty"` - MacsecReplayProtectionEnable bool `protobuf:"varint,7,opt,name=macsec_replay_protection_enable,json=macsecReplayProtectionEnable,proto3" json:"macsec_replay_protection_enable,omitempty"` - MacsecReplayProtectionWindow uint32 `protobuf:"varint,8,opt,name=macsec_replay_protection_window,json=macsecReplayProtectionWindow,proto3" json:"macsec_replay_protection_window,omitempty"` - MacsecCipherSuite MacsecCipherSuite `protobuf:"varint,9,opt,name=macsec_cipher_suite,json=macsecCipherSuite,proto3,enum=lemming.dataplane.sai.MacsecCipherSuite" json:"macsec_cipher_suite,omitempty"` - EncryptionEnable bool `protobuf:"varint,10,opt,name=encryption_enable,json=encryptionEnable,proto3" json:"encryption_enable,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + MacsecDirection *MacsecDirection `protobuf:"varint,2,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"macsec_direction,omitempty"` + FlowId *uint64 `protobuf:"varint,3,opt,name=flow_id,json=flowId,proto3,oneof" json:"flow_id,omitempty"` + MacsecSci *uint64 `protobuf:"varint,4,opt,name=macsec_sci,json=macsecSci,proto3,oneof" json:"macsec_sci,omitempty"` + MacsecExplicitSciEnable *bool `protobuf:"varint,5,opt,name=macsec_explicit_sci_enable,json=macsecExplicitSciEnable,proto3,oneof" json:"macsec_explicit_sci_enable,omitempty"` + MacsecSectagOffset *uint32 `protobuf:"varint,6,opt,name=macsec_sectag_offset,json=macsecSectagOffset,proto3,oneof" json:"macsec_sectag_offset,omitempty"` + MacsecReplayProtectionEnable *bool `protobuf:"varint,7,opt,name=macsec_replay_protection_enable,json=macsecReplayProtectionEnable,proto3,oneof" json:"macsec_replay_protection_enable,omitempty"` + MacsecReplayProtectionWindow *uint32 `protobuf:"varint,8,opt,name=macsec_replay_protection_window,json=macsecReplayProtectionWindow,proto3,oneof" json:"macsec_replay_protection_window,omitempty"` + MacsecCipherSuite *MacsecCipherSuite `protobuf:"varint,9,opt,name=macsec_cipher_suite,json=macsecCipherSuite,proto3,enum=lemming.dataplane.sai.MacsecCipherSuite,oneof" json:"macsec_cipher_suite,omitempty"` + EncryptionEnable *bool `protobuf:"varint,10,opt,name=encryption_enable,json=encryptionEnable,proto3,oneof" json:"encryption_enable,omitempty"` } func (x *CreateMacsecScRequest) Reset() { @@ -1729,64 +1647,64 @@ func (x *CreateMacsecScRequest) GetSwitch() uint64 { } func (x *CreateMacsecScRequest) GetMacsecDirection() MacsecDirection { - if x != nil { - return x.MacsecDirection + if x != nil && x.MacsecDirection != nil { + return *x.MacsecDirection } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } func (x *CreateMacsecScRequest) GetFlowId() uint64 { - if x != nil { - return x.FlowId + if x != nil && x.FlowId != nil { + return *x.FlowId } return 0 } func (x *CreateMacsecScRequest) GetMacsecSci() uint64 { - if x != nil { - return x.MacsecSci + if x != nil && x.MacsecSci != nil { + return *x.MacsecSci } return 0 } func (x *CreateMacsecScRequest) GetMacsecExplicitSciEnable() bool { - if x != nil { - return x.MacsecExplicitSciEnable + if x != nil && x.MacsecExplicitSciEnable != nil { + return *x.MacsecExplicitSciEnable } return false } func (x *CreateMacsecScRequest) GetMacsecSectagOffset() uint32 { - if x != nil { - return x.MacsecSectagOffset + if x != nil && x.MacsecSectagOffset != nil { + return *x.MacsecSectagOffset } return 0 } func (x *CreateMacsecScRequest) GetMacsecReplayProtectionEnable() bool { - if x != nil { - return x.MacsecReplayProtectionEnable + if x != nil && x.MacsecReplayProtectionEnable != nil { + return *x.MacsecReplayProtectionEnable } return false } func (x *CreateMacsecScRequest) GetMacsecReplayProtectionWindow() uint32 { - if x != nil { - return x.MacsecReplayProtectionWindow + if x != nil && x.MacsecReplayProtectionWindow != nil { + return *x.MacsecReplayProtectionWindow } return 0 } func (x *CreateMacsecScRequest) GetMacsecCipherSuite() MacsecCipherSuite { - if x != nil { - return x.MacsecCipherSuite + if x != nil && x.MacsecCipherSuite != nil { + return *x.MacsecCipherSuite } return MacsecCipherSuite_MACSEC_CIPHER_SUITE_UNSPECIFIED } func (x *CreateMacsecScRequest) GetEncryptionEnable() bool { - if x != nil { - return x.EncryptionEnable + if x != nil && x.EncryptionEnable != nil { + return *x.EncryptionEnable } return false } @@ -1928,16 +1846,13 @@ type SetMacsecScAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetMacsecScAttributeRequest_MacsecExplicitSciEnable - // *SetMacsecScAttributeRequest_MacsecSectagOffset - // *SetMacsecScAttributeRequest_MacsecReplayProtectionEnable - // *SetMacsecScAttributeRequest_MacsecReplayProtectionWindow - // *SetMacsecScAttributeRequest_MacsecCipherSuite - // *SetMacsecScAttributeRequest_EncryptionEnable - Attr isSetMacsecScAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + MacsecExplicitSciEnable *bool `protobuf:"varint,2,opt,name=macsec_explicit_sci_enable,json=macsecExplicitSciEnable,proto3,oneof" json:"macsec_explicit_sci_enable,omitempty"` + MacsecSectagOffset *uint32 `protobuf:"varint,3,opt,name=macsec_sectag_offset,json=macsecSectagOffset,proto3,oneof" json:"macsec_sectag_offset,omitempty"` + MacsecReplayProtectionEnable *bool `protobuf:"varint,4,opt,name=macsec_replay_protection_enable,json=macsecReplayProtectionEnable,proto3,oneof" json:"macsec_replay_protection_enable,omitempty"` + MacsecReplayProtectionWindow *uint32 `protobuf:"varint,5,opt,name=macsec_replay_protection_window,json=macsecReplayProtectionWindow,proto3,oneof" json:"macsec_replay_protection_window,omitempty"` + MacsecCipherSuite *MacsecCipherSuite `protobuf:"varint,6,opt,name=macsec_cipher_suite,json=macsecCipherSuite,proto3,enum=lemming.dataplane.sai.MacsecCipherSuite,oneof" json:"macsec_cipher_suite,omitempty"` + EncryptionEnable *bool `protobuf:"varint,7,opt,name=encryption_enable,json=encryptionEnable,proto3,oneof" json:"encryption_enable,omitempty"` } func (x *SetMacsecScAttributeRequest) Reset() { @@ -1979,97 +1894,48 @@ func (x *SetMacsecScAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetMacsecScAttributeRequest) GetAttr() isSetMacsecScAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetMacsecScAttributeRequest) GetMacsecExplicitSciEnable() bool { - if x, ok := x.GetAttr().(*SetMacsecScAttributeRequest_MacsecExplicitSciEnable); ok { - return x.MacsecExplicitSciEnable + if x != nil && x.MacsecExplicitSciEnable != nil { + return *x.MacsecExplicitSciEnable } return false } func (x *SetMacsecScAttributeRequest) GetMacsecSectagOffset() uint32 { - if x, ok := x.GetAttr().(*SetMacsecScAttributeRequest_MacsecSectagOffset); ok { - return x.MacsecSectagOffset + if x != nil && x.MacsecSectagOffset != nil { + return *x.MacsecSectagOffset } return 0 } func (x *SetMacsecScAttributeRequest) GetMacsecReplayProtectionEnable() bool { - if x, ok := x.GetAttr().(*SetMacsecScAttributeRequest_MacsecReplayProtectionEnable); ok { - return x.MacsecReplayProtectionEnable + if x != nil && x.MacsecReplayProtectionEnable != nil { + return *x.MacsecReplayProtectionEnable } return false } func (x *SetMacsecScAttributeRequest) GetMacsecReplayProtectionWindow() uint32 { - if x, ok := x.GetAttr().(*SetMacsecScAttributeRequest_MacsecReplayProtectionWindow); ok { - return x.MacsecReplayProtectionWindow + if x != nil && x.MacsecReplayProtectionWindow != nil { + return *x.MacsecReplayProtectionWindow } return 0 } func (x *SetMacsecScAttributeRequest) GetMacsecCipherSuite() MacsecCipherSuite { - if x, ok := x.GetAttr().(*SetMacsecScAttributeRequest_MacsecCipherSuite); ok { - return x.MacsecCipherSuite + if x != nil && x.MacsecCipherSuite != nil { + return *x.MacsecCipherSuite } return MacsecCipherSuite_MACSEC_CIPHER_SUITE_UNSPECIFIED } func (x *SetMacsecScAttributeRequest) GetEncryptionEnable() bool { - if x, ok := x.GetAttr().(*SetMacsecScAttributeRequest_EncryptionEnable); ok { - return x.EncryptionEnable + if x != nil && x.EncryptionEnable != nil { + return *x.EncryptionEnable } return false } -type isSetMacsecScAttributeRequest_Attr interface { - isSetMacsecScAttributeRequest_Attr() -} - -type SetMacsecScAttributeRequest_MacsecExplicitSciEnable struct { - MacsecExplicitSciEnable bool `protobuf:"varint,2,opt,name=macsec_explicit_sci_enable,json=macsecExplicitSciEnable,proto3,oneof"` -} - -type SetMacsecScAttributeRequest_MacsecSectagOffset struct { - MacsecSectagOffset uint32 `protobuf:"varint,3,opt,name=macsec_sectag_offset,json=macsecSectagOffset,proto3,oneof"` -} - -type SetMacsecScAttributeRequest_MacsecReplayProtectionEnable struct { - MacsecReplayProtectionEnable bool `protobuf:"varint,4,opt,name=macsec_replay_protection_enable,json=macsecReplayProtectionEnable,proto3,oneof"` -} - -type SetMacsecScAttributeRequest_MacsecReplayProtectionWindow struct { - MacsecReplayProtectionWindow uint32 `protobuf:"varint,5,opt,name=macsec_replay_protection_window,json=macsecReplayProtectionWindow,proto3,oneof"` -} - -type SetMacsecScAttributeRequest_MacsecCipherSuite struct { - MacsecCipherSuite MacsecCipherSuite `protobuf:"varint,6,opt,name=macsec_cipher_suite,json=macsecCipherSuite,proto3,enum=lemming.dataplane.sai.MacsecCipherSuite,oneof"` -} - -type SetMacsecScAttributeRequest_EncryptionEnable struct { - EncryptionEnable bool `protobuf:"varint,7,opt,name=encryption_enable,json=encryptionEnable,proto3,oneof"` -} - -func (*SetMacsecScAttributeRequest_MacsecExplicitSciEnable) isSetMacsecScAttributeRequest_Attr() {} - -func (*SetMacsecScAttributeRequest_MacsecSectagOffset) isSetMacsecScAttributeRequest_Attr() {} - -func (*SetMacsecScAttributeRequest_MacsecReplayProtectionEnable) isSetMacsecScAttributeRequest_Attr() { -} - -func (*SetMacsecScAttributeRequest_MacsecReplayProtectionWindow) isSetMacsecScAttributeRequest_Attr() { -} - -func (*SetMacsecScAttributeRequest_MacsecCipherSuite) isSetMacsecScAttributeRequest_Attr() {} - -func (*SetMacsecScAttributeRequest_EncryptionEnable) isSetMacsecScAttributeRequest_Attr() {} - type SetMacsecScAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2168,7 +2034,7 @@ type GetMacsecScAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*MacsecScAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *MacsecScAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMacsecScAttributeResponse) Reset() { @@ -2203,7 +2069,7 @@ func (*GetMacsecScAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_macsec_proto_rawDescGZIP(), []int{29} } -func (x *GetMacsecScAttributeResponse) GetAttr() []*MacsecScAttribute { +func (x *GetMacsecScAttributeResponse) GetAttr() *MacsecScAttribute { if x != nil { return x.Attr } @@ -2215,16 +2081,16 @@ type CreateMacsecSaRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - MacsecDirection MacsecDirection `protobuf:"varint,2,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection" json:"macsec_direction,omitempty"` - ScId uint64 `protobuf:"varint,3,opt,name=sc_id,json=scId,proto3" json:"sc_id,omitempty"` - An uint32 `protobuf:"varint,4,opt,name=an,proto3" json:"an,omitempty"` - Sak []byte `protobuf:"bytes,5,opt,name=sak,proto3" json:"sak,omitempty"` - Salt []byte `protobuf:"bytes,6,opt,name=salt,proto3" json:"salt,omitempty"` - AuthKey []byte `protobuf:"bytes,7,opt,name=auth_key,json=authKey,proto3" json:"auth_key,omitempty"` - ConfiguredEgressXpn uint64 `protobuf:"varint,8,opt,name=configured_egress_xpn,json=configuredEgressXpn,proto3" json:"configured_egress_xpn,omitempty"` - MinimumIngressXpn uint64 `protobuf:"varint,9,opt,name=minimum_ingress_xpn,json=minimumIngressXpn,proto3" json:"minimum_ingress_xpn,omitempty"` - MacsecSsci uint32 `protobuf:"varint,10,opt,name=macsec_ssci,json=macsecSsci,proto3" json:"macsec_ssci,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + MacsecDirection *MacsecDirection `protobuf:"varint,2,opt,name=macsec_direction,json=macsecDirection,proto3,enum=lemming.dataplane.sai.MacsecDirection,oneof" json:"macsec_direction,omitempty"` + ScId *uint64 `protobuf:"varint,3,opt,name=sc_id,json=scId,proto3,oneof" json:"sc_id,omitempty"` + An *uint32 `protobuf:"varint,4,opt,name=an,proto3,oneof" json:"an,omitempty"` + Sak []byte `protobuf:"bytes,5,opt,name=sak,proto3,oneof" json:"sak,omitempty"` + Salt []byte `protobuf:"bytes,6,opt,name=salt,proto3,oneof" json:"salt,omitempty"` + AuthKey []byte `protobuf:"bytes,7,opt,name=auth_key,json=authKey,proto3,oneof" json:"auth_key,omitempty"` + ConfiguredEgressXpn *uint64 `protobuf:"varint,8,opt,name=configured_egress_xpn,json=configuredEgressXpn,proto3,oneof" json:"configured_egress_xpn,omitempty"` + MinimumIngressXpn *uint64 `protobuf:"varint,9,opt,name=minimum_ingress_xpn,json=minimumIngressXpn,proto3,oneof" json:"minimum_ingress_xpn,omitempty"` + MacsecSsci *uint32 `protobuf:"varint,10,opt,name=macsec_ssci,json=macsecSsci,proto3,oneof" json:"macsec_ssci,omitempty"` } func (x *CreateMacsecSaRequest) Reset() { @@ -2267,22 +2133,22 @@ func (x *CreateMacsecSaRequest) GetSwitch() uint64 { } func (x *CreateMacsecSaRequest) GetMacsecDirection() MacsecDirection { - if x != nil { - return x.MacsecDirection + if x != nil && x.MacsecDirection != nil { + return *x.MacsecDirection } return MacsecDirection_MACSEC_DIRECTION_UNSPECIFIED } func (x *CreateMacsecSaRequest) GetScId() uint64 { - if x != nil { - return x.ScId + if x != nil && x.ScId != nil { + return *x.ScId } return 0 } func (x *CreateMacsecSaRequest) GetAn() uint32 { - if x != nil { - return x.An + if x != nil && x.An != nil { + return *x.An } return 0 } @@ -2309,22 +2175,22 @@ func (x *CreateMacsecSaRequest) GetAuthKey() []byte { } func (x *CreateMacsecSaRequest) GetConfiguredEgressXpn() uint64 { - if x != nil { - return x.ConfiguredEgressXpn + if x != nil && x.ConfiguredEgressXpn != nil { + return *x.ConfiguredEgressXpn } return 0 } func (x *CreateMacsecSaRequest) GetMinimumIngressXpn() uint64 { - if x != nil { - return x.MinimumIngressXpn + if x != nil && x.MinimumIngressXpn != nil { + return *x.MinimumIngressXpn } return 0 } func (x *CreateMacsecSaRequest) GetMacsecSsci() uint32 { - if x != nil { - return x.MacsecSsci + if x != nil && x.MacsecSsci != nil { + return *x.MacsecSsci } return 0 } @@ -2466,12 +2332,9 @@ type SetMacsecSaAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetMacsecSaAttributeRequest_ConfiguredEgressXpn - // *SetMacsecSaAttributeRequest_MinimumIngressXpn - Attr isSetMacsecSaAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + ConfiguredEgressXpn *uint64 `protobuf:"varint,2,opt,name=configured_egress_xpn,json=configuredEgressXpn,proto3,oneof" json:"configured_egress_xpn,omitempty"` + MinimumIngressXpn *uint64 `protobuf:"varint,3,opt,name=minimum_ingress_xpn,json=minimumIngressXpn,proto3,oneof" json:"minimum_ingress_xpn,omitempty"` } func (x *SetMacsecSaAttributeRequest) Reset() { @@ -2513,43 +2376,20 @@ func (x *SetMacsecSaAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetMacsecSaAttributeRequest) GetAttr() isSetMacsecSaAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetMacsecSaAttributeRequest) GetConfiguredEgressXpn() uint64 { - if x, ok := x.GetAttr().(*SetMacsecSaAttributeRequest_ConfiguredEgressXpn); ok { - return x.ConfiguredEgressXpn + if x != nil && x.ConfiguredEgressXpn != nil { + return *x.ConfiguredEgressXpn } return 0 } func (x *SetMacsecSaAttributeRequest) GetMinimumIngressXpn() uint64 { - if x, ok := x.GetAttr().(*SetMacsecSaAttributeRequest_MinimumIngressXpn); ok { - return x.MinimumIngressXpn + if x != nil && x.MinimumIngressXpn != nil { + return *x.MinimumIngressXpn } return 0 } -type isSetMacsecSaAttributeRequest_Attr interface { - isSetMacsecSaAttributeRequest_Attr() -} - -type SetMacsecSaAttributeRequest_ConfiguredEgressXpn struct { - ConfiguredEgressXpn uint64 `protobuf:"varint,2,opt,name=configured_egress_xpn,json=configuredEgressXpn,proto3,oneof"` -} - -type SetMacsecSaAttributeRequest_MinimumIngressXpn struct { - MinimumIngressXpn uint64 `protobuf:"varint,3,opt,name=minimum_ingress_xpn,json=minimumIngressXpn,proto3,oneof"` -} - -func (*SetMacsecSaAttributeRequest_ConfiguredEgressXpn) isSetMacsecSaAttributeRequest_Attr() {} - -func (*SetMacsecSaAttributeRequest_MinimumIngressXpn) isSetMacsecSaAttributeRequest_Attr() {} - type SetMacsecSaAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2648,7 +2488,7 @@ type GetMacsecSaAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*MacsecSaAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *MacsecSaAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMacsecSaAttributeResponse) Reset() { @@ -2683,7 +2523,7 @@ func (*GetMacsecSaAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_macsec_proto_rawDescGZIP(), []int{37} } -func (x *GetMacsecSaAttributeResponse) GetAttr() []*MacsecSaAttribute { +func (x *GetMacsecSaAttributeResponse) GetAttr() *MacsecSaAttribute { if x != nil { return x.Attr } @@ -2699,115 +2539,152 @@ var file_dataplane_standalone_proto_macsec_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xff, 0x02, 0x0a, 0x13, 0x43, 0x72, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xce, 0x04, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x69, 0x72, + 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x28, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, - 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x74, 0x61, - 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x74, - 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, - 0x70, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, - 0x70, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x50, 0x61, - 0x72, 0x73, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, - 0x6c, 0x5f, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x42, - 0x79, 0x70, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x28, 0x0a, 0x14, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, - 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x02, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, - 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x63, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, - 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, - 0x12, 0x31, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x77, 0x61, + 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x01, 0x52, 0x0e, 0x77, 0x61, + 0x72, 0x6d, 0x42, 0x6f, 0x6f, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x09, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x02, 0x52, 0x08, 0x63, 0x74, 0x61, 0x67, + 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, + 0x74, 0x70, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, + 0x48, 0x03, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x12, 0x48, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, + 0x67, 0x73, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x05, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x16, 0x70, 0x68, 0x79, 0x73, 0x69, + 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x06, 0x52, + 0x14, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x79, 0x70, 0x61, 0x73, 0x73, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, + 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x63, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, + 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x70, + 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, + 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xef, 0x03, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, + 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6d, 0x42, 0x6f, 0x6f, + 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x63, 0x74, + 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x10, 0x48, 0x01, 0x52, 0x08, 0x63, 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x02, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x6d, 0x61, + 0x78, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x03, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x50, 0x61, 0x72, - 0x73, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x13, 0x48, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x16, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, + 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x05, 0x52, 0x14, 0x70, 0x68, 0x79, 0x73, + 0x69, 0x63, 0x61, 0x6c, 0x42, 0x79, 0x70, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x62, 0x6f, 0x6f, + 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x74, 0x61, + 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, + 0x74, 0x70, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x19, 0x0a, 0x17, + 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x4d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, - 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x14, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, - 0x61, 0x6c, 0x42, 0x79, 0x70, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xbf, 0x02, - 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x51, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, + 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xd1, + 0x03, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x12, 0x5c, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x02, 0x52, 0x0a, 0x63, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x73, + 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x15, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, - 0x0b, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x63, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x5e, 0x0a, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x22, - 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, - 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x4d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x63, 0x74, - 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x0a, 0x63, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x21, 0x0a, - 0x0b, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x60, 0x0a, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x13, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, - 0x64, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, + 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x74, 0x61, + 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, + 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, + 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x02, 0x0a, 0x1d, 0x53, 0x65, + 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2a, 0x0a, + 0x0b, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x74, 0x61, 0x67, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x74, 0x61, + 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x67, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x02, 0x52, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, @@ -2820,18 +2697,20 @@ var file_dataplane_standalone_proto_macsec_proto_rawDesc = []byte{ 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xa4, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x51, 0x0a, 0x10, 0x6d, 0x61, 0x63, + 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x5c, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x18, + 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, @@ -2849,443 +2728,495 @@ var file_dataplane_standalone_proto_macsec_proto_rawDesc = []byte{ 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, + 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xbe, 0x04, 0x0a, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xff, 0x06, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x51, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x5c, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x12, 0x3b, 0x0a, 0x1a, 0x6d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x69, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x6d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x6d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x69, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x6d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x63, + 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x17, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x45, 0x78, + 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x53, 0x63, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x65, 0x63, + 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x53, 0x65, 0x63, 0x74, 0x61, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x50, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, + 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, + 0x48, 0x06, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, + 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x63, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, + 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, + 0x48, 0x07, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, + 0x53, 0x75, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, + 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x63, 0x69, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x61, + 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x6d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x22, 0x0a, 0x20, + 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x63, 0x69, 0x70, 0x68, + 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2a, + 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xa3, 0x05, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x12, 0x46, 0x0a, 0x1a, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x00, 0x52, 0x17, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x53, 0x63, 0x69, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x5f, 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x65, 0x63, 0x74, - 0x61, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, - 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x45, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x58, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x52, 0x11, 0x6d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, - 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2a, 0x0a, - 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc7, - 0x03, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x3d, 0x0a, 0x1a, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, - 0x63, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x45, 0x78, - 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x53, 0x63, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x32, 0x0a, 0x14, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x6d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x01, 0x52, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x65, 0x63, 0x74, 0x61, 0x67, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x12, 0x47, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x1c, - 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x1f, - 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x5a, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, - 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x48, 0x00, 0x52, 0x11, - 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, - 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, - 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4d, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x02, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x03, 0x52, 0x1c, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x6d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x36, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, + 0x48, 0x05, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x69, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x22, 0x0a, 0x20, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, + 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4d, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, - 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, - 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xed, 0x02, 0x0a, 0x15, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x51, 0x0a, 0x10, 0x6d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, - 0x0a, 0x05, 0x73, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, - 0x63, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x02, 0x61, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x03, 0x73, 0x61, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, - 0x68, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x64, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x45, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x5f, 0x73, 0x73, 0x63, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x73, 0x63, 0x69, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x1b, 0x53, - 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x13, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, - 0x70, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x58, 0x70, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1e, 0x0a, 0x1c, - 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, - 0x61, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe2, 0x07, - 0x0a, 0x0a, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x17, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x34, 0x0a, 0x30, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x43, 0x55, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x5f, 0x53, - 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x3a, 0x0a, 0x36, 0x4d, 0x41, - 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x41, - 0x4e, 0x44, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, - 0x52, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, - 0x04, 0x12, 0x2f, 0x0a, 0x2b, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, - 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, - 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x43, 0x49, 0x5f, 0x49, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, - 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x06, 0x12, 0x2b, 0x0a, - 0x27, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, - 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, - 0x49, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x41, - 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4e, 0x5f, 0x33, 0x32, 0x42, - 0x49, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x23, - 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x58, 0x50, - 0x4e, 0x5f, 0x36, 0x34, 0x42, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, - 0x44, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, 0x53, 0x55, - 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, 0x45, 0x53, - 0x32, 0x35, 0x36, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0b, 0x12, - 0x28, 0x0a, 0x24, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, - 0x45, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x53, 0x5f, 0x53, 0x55, - 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, - 0x53, 0x49, 0x44, 0x45, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x0d, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, - 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x41, 0x52, 0x4d, 0x5f, 0x42, - 0x4f, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0e, 0x12, - 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, - 0x41, 0x52, 0x4d, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, - 0x0f, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x10, 0x12, 0x19, 0x0a, 0x15, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x47, - 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x11, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x54, 0x41, 0x47, 0x53, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x44, 0x10, 0x12, 0x12, 0x1a, 0x0a, - 0x16, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x13, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, - 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, - 0x4c, 0x5f, 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, - 0x14, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x4c, 0x49, 0x53, 0x54, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x16, 0x12, 0x19, 0x0a, - 0x15, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x4c, 0x4f, - 0x57, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x17, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, + 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xd6, 0x04, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x5c, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x63, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x02, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x02, 0x61, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x73, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x03, 0x73, 0x61, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x05, 0x48, 0x04, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, + 0x64, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0b, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x73, 0x63, 0x69, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x53, 0x73, 0x63, 0x69, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x5f, 0x69, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x61, 0x6e, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x61, 0x6b, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x61, 0x6c, 0x74, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x73, 0x63, 0x69, 0x22, + 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xdb, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, + 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x64, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x58, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x78, 0x70, 0x6e, 0x22, 0x1e, + 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, + 0xe2, 0x07, 0x0a, 0x0a, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1b, + 0x0a, 0x17, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4d, + 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x34, 0x0a, 0x30, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x55, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, + 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x3a, 0x0a, 0x36, + 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, + 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x53, 0x55, 0x50, + 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x41, 0x43, 0x53, + 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x44, 0x10, 0x04, 0x12, 0x2f, 0x0a, 0x2b, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, + 0x45, 0x44, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x49, 0x5f, 0x49, 0x4e, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x06, 0x12, + 0x2b, 0x0a, 0x27, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, + 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, + 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, + 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4e, 0x5f, 0x33, + 0x32, 0x42, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x08, + 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x58, 0x50, 0x4e, 0x5f, 0x36, 0x34, 0x42, 0x49, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, + 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, + 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4d, + 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x41, + 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, + 0x0b, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x45, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x53, 0x5f, + 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, + 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, + 0x4d, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x0d, 0x12, 0x23, 0x0a, 0x1f, + 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x41, 0x52, 0x4d, + 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, + 0x0e, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x57, 0x41, 0x52, 0x4d, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x0f, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x10, 0x12, 0x19, + 0x0a, 0x15, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, + 0x41, 0x47, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x11, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, + 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x44, 0x10, 0x12, 0x12, + 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x13, 0x12, 0x26, 0x0a, 0x22, 0x4d, + 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, + 0x43, 0x41, 0x4c, 0x5f, 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x14, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x10, 0x18, 0x12, 0x23, 0x0a, - 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, - 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, - 0x10, 0x19, 0x2a, 0xe7, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, - 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1c, - 0x0a, 0x18, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x20, + 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x16, 0x12, + 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x17, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, + 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x10, 0x18, 0x12, + 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, + 0x53, 0x41, 0x10, 0x19, 0x2a, 0xe7, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, + 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, + 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, + 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, - 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x2a, 0x9c, 0x01, 0x0a, - 0x0e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x41, + 0x54, 0x52, 0x5f, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, + 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x2a, 0x9c, + 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, + 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, + 0x4f, 0x57, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, + 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, + 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, + 0x1c, 0x0a, 0x18, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x2a, 0xe0, 0x03, + 0x0a, 0x0c, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, + 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, + 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, + 0x1d, 0x0a, 0x19, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x49, 0x10, 0x03, 0x12, 0x2d, + 0x0a, 0x29, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, + 0x5f, 0x53, 0x43, 0x49, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x27, 0x0a, + 0x23, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x45, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x4f, 0x46, + 0x46, 0x53, 0x45, 0x54, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, + 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, 0x32, + 0x0a, 0x2e, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x50, + 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x07, 0x12, 0x32, 0x0a, 0x2e, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x52, 0x45, 0x50, 0x4c, + 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x49, + 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x5f, 0x4c, 0x49, 0x53, 0x54, + 0x10, 0x09, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, + 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, + 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x43, + 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0b, + 0x2a, 0xe4, 0x02, 0x0a, 0x0c, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, + 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, - 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, - 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x1c, 0x0a, - 0x18, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x2a, 0xe0, 0x03, 0x0a, 0x0c, - 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, - 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x1d, 0x0a, - 0x19, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x49, 0x10, 0x03, 0x12, 0x2d, 0x0a, 0x29, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, - 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x5f, 0x53, - 0x43, 0x49, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x4d, - 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, - 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x45, 0x43, 0x54, 0x41, 0x47, 0x5f, 0x4f, 0x46, 0x46, 0x53, - 0x45, 0x54, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, - 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x45, 0x47, - 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, 0x32, 0x0a, 0x2e, - 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, - 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, - 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x07, - 0x12, 0x32, 0x0a, 0x2e, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, - 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, - 0x4f, 0x57, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, - 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x09, - 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, - 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x41, 0x43, 0x53, - 0x45, 0x43, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, - 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0b, 0x2a, 0xe4, - 0x02, 0x0a, 0x0c, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x12, + 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x44, 0x10, 0x02, + 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x4b, 0x10, 0x04, 0x12, + 0x17, 0x0a, 0x13, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x53, 0x41, 0x4c, 0x54, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x41, 0x43, 0x53, + 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, + 0x4b, 0x45, 0x59, 0x10, 0x06, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, + 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, + 0x45, 0x44, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x58, 0x50, 0x4e, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, - 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x15, - 0x0a, 0x11, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, - 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x4b, 0x10, 0x04, 0x12, 0x17, 0x0a, - 0x13, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x41, 0x4c, 0x54, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, - 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4b, 0x45, - 0x59, 0x10, 0x06, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, - 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x58, 0x50, 0x4e, 0x10, 0x07, 0x12, 0x1e, 0x0a, - 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x58, 0x50, 0x4e, 0x10, 0x08, 0x12, 0x26, 0x0a, - 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, - 0x58, 0x50, 0x4e, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, - 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, - 0x53, 0x43, 0x49, 0x10, 0x0a, 0x32, 0xa6, 0x12, 0x0a, 0x06, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x12, 0x2a, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 0x52, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x58, 0x50, 0x4e, 0x10, 0x08, 0x12, + 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, + 0x53, 0x5f, 0x58, 0x50, 0x4e, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, 0x53, 0x45, + 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x53, 0x43, 0x49, 0x10, 0x0a, 0x32, 0xa6, 0x12, 0x0a, 0x06, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, + 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x12, 0x2a, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, + 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, - 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, - 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x2e, + 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, + 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, + 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, + 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x12, 0x2c, 0x2e, 0x6c, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, + 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x12, 0x2c, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x53, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, - 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x12, 0x2c, 0x2e, + 0x63, 0x53, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, + 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x12, + 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, + 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, - 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, + 0x65, 0x63, 0x53, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, + 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, - 0x53, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, - 0x14, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, + 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x63, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, - 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4d, 0x61, - 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x53, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, - 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, - 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, + 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3887,31 +3818,15 @@ func file_dataplane_standalone_proto_macsec_proto_init() { } } } - file_dataplane_standalone_proto_macsec_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetMacsecAttributeRequest_WarmBootEnable)(nil), - (*SetMacsecAttributeRequest_CtagTpid)(nil), - (*SetMacsecAttributeRequest_StagTpid)(nil), - (*SetMacsecAttributeRequest_MaxVlanTagsParsed)(nil), - (*SetMacsecAttributeRequest_StatsMode)(nil), - (*SetMacsecAttributeRequest_PhysicalBypassEnable)(nil), - } - file_dataplane_standalone_proto_macsec_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetMacsecPortAttributeRequest_CtagEnable)(nil), - (*SetMacsecPortAttributeRequest_StagEnable)(nil), - (*SetMacsecPortAttributeRequest_SwitchSwitchingMode)(nil), - } - file_dataplane_standalone_proto_macsec_proto_msgTypes[26].OneofWrappers = []interface{}{ - (*SetMacsecScAttributeRequest_MacsecExplicitSciEnable)(nil), - (*SetMacsecScAttributeRequest_MacsecSectagOffset)(nil), - (*SetMacsecScAttributeRequest_MacsecReplayProtectionEnable)(nil), - (*SetMacsecScAttributeRequest_MacsecReplayProtectionWindow)(nil), - (*SetMacsecScAttributeRequest_MacsecCipherSuite)(nil), - (*SetMacsecScAttributeRequest_EncryptionEnable)(nil), - } - file_dataplane_standalone_proto_macsec_proto_msgTypes[34].OneofWrappers = []interface{}{ - (*SetMacsecSaAttributeRequest_ConfiguredEgressXpn)(nil), - (*SetMacsecSaAttributeRequest_MinimumIngressXpn)(nil), - } + file_dataplane_standalone_proto_macsec_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_macsec_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_macsec_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_macsec_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_macsec_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_macsec_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_macsec_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_macsec_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_macsec_proto_msgTypes[34].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/macsec.proto b/dataplane/standalone/proto/macsec.proto index b7891c6c..51b23ab5 100644 --- a/dataplane/standalone/proto/macsec.proto +++ b/dataplane/standalone/proto/macsec.proto @@ -7,372 +7,300 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum MacsecAttr { - MACSEC_ATTR_UNSPECIFIED = 0; - MACSEC_ATTR_DIRECTION = 1; - MACSEC_ATTR_SWITCHING_MODE_CUT_THROUGH_SUPPORTED = 2; - MACSEC_ATTR_SWITCHING_MODE_STORE_AND_FORWARD_SUPPORTED = 3; - MACSEC_ATTR_STATS_MODE_READ_SUPPORTED = 4; - MACSEC_ATTR_STATS_MODE_READ_CLEAR_SUPPORTED = 5; - MACSEC_ATTR_SCI_IN_INGRESS_MACSEC_ACL = 6; - MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST = 7; - MACSEC_ATTR_PN_32BIT_SUPPORTED = 8; - MACSEC_ATTR_XPN_64BIT_SUPPORTED = 9; - MACSEC_ATTR_GCM_AES128_SUPPORTED = 10; - MACSEC_ATTR_GCM_AES256_SUPPORTED = 11; - MACSEC_ATTR_SECTAG_OFFSETS_SUPPORTED = 12; - MACSEC_ATTR_SYSTEM_SIDE_MTU = 13; - MACSEC_ATTR_WARM_BOOT_SUPPORTED = 14; - MACSEC_ATTR_WARM_BOOT_ENABLE = 15; - MACSEC_ATTR_CTAG_TPID = 16; - MACSEC_ATTR_STAG_TPID = 17; - MACSEC_ATTR_MAX_VLAN_TAGS_PARSED = 18; - MACSEC_ATTR_STATS_MODE = 19; - MACSEC_ATTR_PHYSICAL_BYPASS_ENABLE = 20; - MACSEC_ATTR_SUPPORTED_PORT_LIST = 21; - MACSEC_ATTR_AVAILABLE_MACSEC_FLOW = 22; - MACSEC_ATTR_FLOW_LIST = 23; - MACSEC_ATTR_AVAILABLE_MACSEC_SC = 24; - MACSEC_ATTR_AVAILABLE_MACSEC_SA = 25; + MACSEC_ATTR_UNSPECIFIED = 0; + MACSEC_ATTR_DIRECTION = 1; + MACSEC_ATTR_SWITCHING_MODE_CUT_THROUGH_SUPPORTED = 2; + MACSEC_ATTR_SWITCHING_MODE_STORE_AND_FORWARD_SUPPORTED = 3; + MACSEC_ATTR_STATS_MODE_READ_SUPPORTED = 4; + MACSEC_ATTR_STATS_MODE_READ_CLEAR_SUPPORTED = 5; + MACSEC_ATTR_SCI_IN_INGRESS_MACSEC_ACL = 6; + MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST = 7; + MACSEC_ATTR_PN_32BIT_SUPPORTED = 8; + MACSEC_ATTR_XPN_64BIT_SUPPORTED = 9; + MACSEC_ATTR_GCM_AES128_SUPPORTED = 10; + MACSEC_ATTR_GCM_AES256_SUPPORTED = 11; + MACSEC_ATTR_SECTAG_OFFSETS_SUPPORTED = 12; + MACSEC_ATTR_SYSTEM_SIDE_MTU = 13; + MACSEC_ATTR_WARM_BOOT_SUPPORTED = 14; + MACSEC_ATTR_WARM_BOOT_ENABLE = 15; + MACSEC_ATTR_CTAG_TPID = 16; + MACSEC_ATTR_STAG_TPID = 17; + MACSEC_ATTR_MAX_VLAN_TAGS_PARSED = 18; + MACSEC_ATTR_STATS_MODE = 19; + MACSEC_ATTR_PHYSICAL_BYPASS_ENABLE = 20; + MACSEC_ATTR_SUPPORTED_PORT_LIST = 21; + MACSEC_ATTR_AVAILABLE_MACSEC_FLOW = 22; + MACSEC_ATTR_FLOW_LIST = 23; + MACSEC_ATTR_AVAILABLE_MACSEC_SC = 24; + MACSEC_ATTR_AVAILABLE_MACSEC_SA = 25; } enum MacsecPortAttr { - MACSEC_PORT_ATTR_UNSPECIFIED = 0; - MACSEC_PORT_ATTR_MACSEC_DIRECTION = 1; - MACSEC_PORT_ATTR_PORT_ID = 2; - MACSEC_PORT_ATTR_CTAG_ENABLE = 3; - MACSEC_PORT_ATTR_STAG_ENABLE = 4; - MACSEC_PORT_ATTR_SWITCH_SWITCHING_MODE = 5; + MACSEC_PORT_ATTR_UNSPECIFIED = 0; + MACSEC_PORT_ATTR_MACSEC_DIRECTION = 1; + MACSEC_PORT_ATTR_PORT_ID = 2; + MACSEC_PORT_ATTR_CTAG_ENABLE = 3; + MACSEC_PORT_ATTR_STAG_ENABLE = 4; + MACSEC_PORT_ATTR_SWITCH_SWITCHING_MODE = 5; } enum MacsecFlowAttr { - MACSEC_FLOW_ATTR_UNSPECIFIED = 0; - MACSEC_FLOW_ATTR_MACSEC_DIRECTION = 1; - MACSEC_FLOW_ATTR_ACL_ENTRY_LIST = 2; - MACSEC_FLOW_ATTR_SC_LIST = 3; + MACSEC_FLOW_ATTR_UNSPECIFIED = 0; + MACSEC_FLOW_ATTR_MACSEC_DIRECTION = 1; + MACSEC_FLOW_ATTR_ACL_ENTRY_LIST = 2; + MACSEC_FLOW_ATTR_SC_LIST = 3; } enum MacsecScAttr { - MACSEC_SC_ATTR_UNSPECIFIED = 0; - MACSEC_SC_ATTR_MACSEC_DIRECTION = 1; - MACSEC_SC_ATTR_FLOW_ID = 2; - MACSEC_SC_ATTR_MACSEC_SCI = 3; - MACSEC_SC_ATTR_MACSEC_EXPLICIT_SCI_ENABLE = 4; - MACSEC_SC_ATTR_MACSEC_SECTAG_OFFSET = 5; - MACSEC_SC_ATTR_ACTIVE_EGRESS_SA_ID = 6; - MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_ENABLE = 7; - MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_WINDOW = 8; - MACSEC_SC_ATTR_SA_LIST = 9; - MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE = 10; - MACSEC_SC_ATTR_ENCRYPTION_ENABLE = 11; + MACSEC_SC_ATTR_UNSPECIFIED = 0; + MACSEC_SC_ATTR_MACSEC_DIRECTION = 1; + MACSEC_SC_ATTR_FLOW_ID = 2; + MACSEC_SC_ATTR_MACSEC_SCI = 3; + MACSEC_SC_ATTR_MACSEC_EXPLICIT_SCI_ENABLE = 4; + MACSEC_SC_ATTR_MACSEC_SECTAG_OFFSET = 5; + MACSEC_SC_ATTR_ACTIVE_EGRESS_SA_ID = 6; + MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_ENABLE = 7; + MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_WINDOW = 8; + MACSEC_SC_ATTR_SA_LIST = 9; + MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE = 10; + MACSEC_SC_ATTR_ENCRYPTION_ENABLE = 11; } enum MacsecSaAttr { - MACSEC_SA_ATTR_UNSPECIFIED = 0; - MACSEC_SA_ATTR_MACSEC_DIRECTION = 1; - MACSEC_SA_ATTR_SC_ID = 2; - MACSEC_SA_ATTR_AN = 3; - MACSEC_SA_ATTR_SAK = 4; - MACSEC_SA_ATTR_SALT = 5; - MACSEC_SA_ATTR_AUTH_KEY = 6; - MACSEC_SA_ATTR_CONFIGURED_EGRESS_XPN = 7; - MACSEC_SA_ATTR_CURRENT_XPN = 8; - MACSEC_SA_ATTR_MINIMUM_INGRESS_XPN = 9; - MACSEC_SA_ATTR_MACSEC_SSCI = 10; + MACSEC_SA_ATTR_UNSPECIFIED = 0; + MACSEC_SA_ATTR_MACSEC_DIRECTION = 1; + MACSEC_SA_ATTR_SC_ID = 2; + MACSEC_SA_ATTR_AN = 3; + MACSEC_SA_ATTR_SAK = 4; + MACSEC_SA_ATTR_SALT = 5; + MACSEC_SA_ATTR_AUTH_KEY = 6; + MACSEC_SA_ATTR_CONFIGURED_EGRESS_XPN = 7; + MACSEC_SA_ATTR_CURRENT_XPN = 8; + MACSEC_SA_ATTR_MINIMUM_INGRESS_XPN = 9; + MACSEC_SA_ATTR_MACSEC_SSCI = 10; } message CreateMacsecRequest { - uint64 switch = 1; - - MacsecDirection direction = 2; - bool warm_boot_enable = 3; - uint32 ctag_tpid = 4; - uint32 stag_tpid = 5; - uint32 max_vlan_tags_parsed = 6; - StatsMode stats_mode = 7; - bool physical_bypass_enable = 8; - + uint64 switch = 1; + optional MacsecDirection direction = 2 [(attr_enum_value) = 1]; + optional bool warm_boot_enable = 3 [(attr_enum_value) = 15]; + optional uint32 ctag_tpid = 4 [(attr_enum_value) = 16]; + optional uint32 stag_tpid = 5 [(attr_enum_value) = 17]; + optional uint32 max_vlan_tags_parsed = 6 [(attr_enum_value) = 18]; + optional StatsMode stats_mode = 7 [(attr_enum_value) = 19]; + optional bool physical_bypass_enable = 8 [(attr_enum_value) = 20]; } message CreateMacsecResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveMacsecRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveMacsecResponse { - - -} +message RemoveMacsecResponse {} message SetMacsecAttributeRequest { - uint64 oid = 1; - oneof attr { - bool warm_boot_enable = 2; - uint32 ctag_tpid = 3; - uint32 stag_tpid = 4; - uint32 max_vlan_tags_parsed = 5; - StatsMode stats_mode = 6; - bool physical_bypass_enable = 7; - } + uint64 oid = 1; + optional bool warm_boot_enable = 2 [(attr_enum_value) = 15]; + optional uint32 ctag_tpid = 3 [(attr_enum_value) = 16]; + optional uint32 stag_tpid = 4 [(attr_enum_value) = 17]; + optional uint32 max_vlan_tags_parsed = 5 [(attr_enum_value) = 18]; + optional StatsMode stats_mode = 6 [(attr_enum_value) = 19]; + optional bool physical_bypass_enable = 7 [(attr_enum_value) = 20]; } -message SetMacsecAttributeResponse { - - -} +message SetMacsecAttributeResponse {} message GetMacsecAttributeRequest { - uint64 oid = 1; - repeated MacsecAttr attr_type = 2; - - + uint64 oid = 1; + repeated MacsecAttr attr_type = 2; } message GetMacsecAttributeResponse { - repeated MacsecAttribute attr = 1; - - + MacsecAttribute attr = 1; } message CreateMacsecPortRequest { - uint64 switch = 1; - - MacsecDirection macsec_direction = 2; - uint64 port_id = 3; - bool ctag_enable = 4; - bool stag_enable = 5; - SwitchSwitchingMode switch_switching_mode = 6; - + uint64 switch = 1; + optional MacsecDirection macsec_direction = 2 [(attr_enum_value) = 1]; + optional uint64 port_id = 3 [(attr_enum_value) = 2]; + optional bool ctag_enable = 4 [(attr_enum_value) = 3]; + optional bool stag_enable = 5 [(attr_enum_value) = 4]; + optional SwitchSwitchingMode switch_switching_mode = 6 + [(attr_enum_value) = 5]; } message CreateMacsecPortResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveMacsecPortRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveMacsecPortResponse { - - -} +message RemoveMacsecPortResponse {} message SetMacsecPortAttributeRequest { - uint64 oid = 1; - oneof attr { - bool ctag_enable = 2; - bool stag_enable = 3; - SwitchSwitchingMode switch_switching_mode = 4; - } + uint64 oid = 1; + optional bool ctag_enable = 2 [(attr_enum_value) = 3]; + optional bool stag_enable = 3 [(attr_enum_value) = 4]; + optional SwitchSwitchingMode switch_switching_mode = 4 + [(attr_enum_value) = 5]; } -message SetMacsecPortAttributeResponse { - - -} +message SetMacsecPortAttributeResponse {} message GetMacsecPortAttributeRequest { - uint64 oid = 1; - repeated MacsecPortAttr attr_type = 2; - - + uint64 oid = 1; + repeated MacsecPortAttr attr_type = 2; } message GetMacsecPortAttributeResponse { - repeated MacsecPortAttribute attr = 1; - - + MacsecPortAttribute attr = 1; } message CreateMacsecFlowRequest { - uint64 switch = 1; - - MacsecDirection macsec_direction = 2; - + uint64 switch = 1; + optional MacsecDirection macsec_direction = 2 [(attr_enum_value) = 1]; } message CreateMacsecFlowResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveMacsecFlowRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveMacsecFlowResponse { - - -} +message RemoveMacsecFlowResponse {} message GetMacsecFlowAttributeRequest { - uint64 oid = 1; - repeated MacsecFlowAttr attr_type = 2; - - + uint64 oid = 1; + repeated MacsecFlowAttr attr_type = 2; } message GetMacsecFlowAttributeResponse { - repeated MacsecFlowAttribute attr = 1; - - + MacsecFlowAttribute attr = 1; } message CreateMacsecScRequest { - uint64 switch = 1; - - MacsecDirection macsec_direction = 2; - uint64 flow_id = 3; - uint64 macsec_sci = 4; - bool macsec_explicit_sci_enable = 5; - uint32 macsec_sectag_offset = 6; - bool macsec_replay_protection_enable = 7; - uint32 macsec_replay_protection_window = 8; - MacsecCipherSuite macsec_cipher_suite = 9; - bool encryption_enable = 10; - + uint64 switch = 1; + optional MacsecDirection macsec_direction = 2 [(attr_enum_value) = 1]; + optional uint64 flow_id = 3 [(attr_enum_value) = 2]; + optional uint64 macsec_sci = 4 [(attr_enum_value) = 3]; + optional bool macsec_explicit_sci_enable = 5 [(attr_enum_value) = 4]; + optional uint32 macsec_sectag_offset = 6 [(attr_enum_value) = 5]; + optional bool macsec_replay_protection_enable = 7 [(attr_enum_value) = 7]; + optional uint32 macsec_replay_protection_window = 8 [(attr_enum_value) = 8]; + optional MacsecCipherSuite macsec_cipher_suite = 9 [(attr_enum_value) = 10]; + optional bool encryption_enable = 10 [(attr_enum_value) = 11]; } message CreateMacsecScResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveMacsecScRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveMacsecScResponse { - - -} +message RemoveMacsecScResponse {} message SetMacsecScAttributeRequest { - uint64 oid = 1; - oneof attr { - bool macsec_explicit_sci_enable = 2; - uint32 macsec_sectag_offset = 3; - bool macsec_replay_protection_enable = 4; - uint32 macsec_replay_protection_window = 5; - MacsecCipherSuite macsec_cipher_suite = 6; - bool encryption_enable = 7; - } + uint64 oid = 1; + optional bool macsec_explicit_sci_enable = 2 [(attr_enum_value) = 4]; + optional uint32 macsec_sectag_offset = 3 [(attr_enum_value) = 5]; + optional bool macsec_replay_protection_enable = 4 [(attr_enum_value) = 7]; + optional uint32 macsec_replay_protection_window = 5 [(attr_enum_value) = 8]; + optional MacsecCipherSuite macsec_cipher_suite = 6 [(attr_enum_value) = 10]; + optional bool encryption_enable = 7 [(attr_enum_value) = 11]; } -message SetMacsecScAttributeResponse { - - -} +message SetMacsecScAttributeResponse {} message GetMacsecScAttributeRequest { - uint64 oid = 1; - repeated MacsecScAttr attr_type = 2; - - + uint64 oid = 1; + repeated MacsecScAttr attr_type = 2; } message GetMacsecScAttributeResponse { - repeated MacsecScAttribute attr = 1; - - + MacsecScAttribute attr = 1; } message CreateMacsecSaRequest { - uint64 switch = 1; - - MacsecDirection macsec_direction = 2; - uint64 sc_id = 3; - uint32 an = 4; - bytes sak = 5; - bytes salt = 6; - bytes auth_key = 7; - uint64 configured_egress_xpn = 8; - uint64 minimum_ingress_xpn = 9; - uint32 macsec_ssci = 10; - + uint64 switch = 1; + optional MacsecDirection macsec_direction = 2 [(attr_enum_value) = 1]; + optional uint64 sc_id = 3 [(attr_enum_value) = 2]; + optional uint32 an = 4 [(attr_enum_value) = 3]; + optional bytes sak = 5 [(attr_enum_value) = 4]; + optional bytes salt = 6 [(attr_enum_value) = 5]; + optional bytes auth_key = 7 [(attr_enum_value) = 6]; + optional uint64 configured_egress_xpn = 8 [(attr_enum_value) = 7]; + optional uint64 minimum_ingress_xpn = 9 [(attr_enum_value) = 9]; + optional uint32 macsec_ssci = 10 [(attr_enum_value) = 10]; } message CreateMacsecSaResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveMacsecSaRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveMacsecSaResponse { - - -} +message RemoveMacsecSaResponse {} message SetMacsecSaAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 configured_egress_xpn = 2; - uint64 minimum_ingress_xpn = 3; - } + uint64 oid = 1; + optional uint64 configured_egress_xpn = 2 [(attr_enum_value) = 7]; + optional uint64 minimum_ingress_xpn = 3 [(attr_enum_value) = 9]; } -message SetMacsecSaAttributeResponse { - - -} +message SetMacsecSaAttributeResponse {} message GetMacsecSaAttributeRequest { - uint64 oid = 1; - repeated MacsecSaAttr attr_type = 2; - - + uint64 oid = 1; + repeated MacsecSaAttr attr_type = 2; } message GetMacsecSaAttributeResponse { - repeated MacsecSaAttribute attr = 1; - - + MacsecSaAttribute attr = 1; } - service Macsec { - rpc CreateMacsec (CreateMacsecRequest) returns (CreateMacsecResponse) {} - rpc RemoveMacsec (RemoveMacsecRequest) returns (RemoveMacsecResponse) {} - rpc SetMacsecAttribute (SetMacsecAttributeRequest) returns (SetMacsecAttributeResponse) {} - rpc GetMacsecAttribute (GetMacsecAttributeRequest) returns (GetMacsecAttributeResponse) {} - rpc CreateMacsecPort (CreateMacsecPortRequest) returns (CreateMacsecPortResponse) {} - rpc RemoveMacsecPort (RemoveMacsecPortRequest) returns (RemoveMacsecPortResponse) {} - rpc SetMacsecPortAttribute (SetMacsecPortAttributeRequest) returns (SetMacsecPortAttributeResponse) {} - rpc GetMacsecPortAttribute (GetMacsecPortAttributeRequest) returns (GetMacsecPortAttributeResponse) {} - rpc CreateMacsecFlow (CreateMacsecFlowRequest) returns (CreateMacsecFlowResponse) {} - rpc RemoveMacsecFlow (RemoveMacsecFlowRequest) returns (RemoveMacsecFlowResponse) {} - rpc GetMacsecFlowAttribute (GetMacsecFlowAttributeRequest) returns (GetMacsecFlowAttributeResponse) {} - rpc CreateMacsecSc (CreateMacsecScRequest) returns (CreateMacsecScResponse) {} - rpc RemoveMacsecSc (RemoveMacsecScRequest) returns (RemoveMacsecScResponse) {} - rpc SetMacsecScAttribute (SetMacsecScAttributeRequest) returns (SetMacsecScAttributeResponse) {} - rpc GetMacsecScAttribute (GetMacsecScAttributeRequest) returns (GetMacsecScAttributeResponse) {} - rpc CreateMacsecSa (CreateMacsecSaRequest) returns (CreateMacsecSaResponse) {} - rpc RemoveMacsecSa (RemoveMacsecSaRequest) returns (RemoveMacsecSaResponse) {} - rpc SetMacsecSaAttribute (SetMacsecSaAttributeRequest) returns (SetMacsecSaAttributeResponse) {} - rpc GetMacsecSaAttribute (GetMacsecSaAttributeRequest) returns (GetMacsecSaAttributeResponse) {} + rpc CreateMacsec(CreateMacsecRequest) returns (CreateMacsecResponse) {} + rpc RemoveMacsec(RemoveMacsecRequest) returns (RemoveMacsecResponse) {} + rpc SetMacsecAttribute(SetMacsecAttributeRequest) + returns (SetMacsecAttributeResponse) {} + rpc GetMacsecAttribute(GetMacsecAttributeRequest) + returns (GetMacsecAttributeResponse) {} + rpc CreateMacsecPort(CreateMacsecPortRequest) + returns (CreateMacsecPortResponse) {} + rpc RemoveMacsecPort(RemoveMacsecPortRequest) + returns (RemoveMacsecPortResponse) {} + rpc SetMacsecPortAttribute(SetMacsecPortAttributeRequest) + returns (SetMacsecPortAttributeResponse) {} + rpc GetMacsecPortAttribute(GetMacsecPortAttributeRequest) + returns (GetMacsecPortAttributeResponse) {} + rpc CreateMacsecFlow(CreateMacsecFlowRequest) + returns (CreateMacsecFlowResponse) {} + rpc RemoveMacsecFlow(RemoveMacsecFlowRequest) + returns (RemoveMacsecFlowResponse) {} + rpc GetMacsecFlowAttribute(GetMacsecFlowAttributeRequest) + returns (GetMacsecFlowAttributeResponse) {} + rpc CreateMacsecSc(CreateMacsecScRequest) returns (CreateMacsecScResponse) {} + rpc RemoveMacsecSc(RemoveMacsecScRequest) returns (RemoveMacsecScResponse) {} + rpc SetMacsecScAttribute(SetMacsecScAttributeRequest) + returns (SetMacsecScAttributeResponse) {} + rpc GetMacsecScAttribute(GetMacsecScAttributeRequest) + returns (GetMacsecScAttributeResponse) {} + rpc CreateMacsecSa(CreateMacsecSaRequest) returns (CreateMacsecSaResponse) {} + rpc RemoveMacsecSa(RemoveMacsecSaRequest) returns (RemoveMacsecSaResponse) {} + rpc SetMacsecSaAttribute(SetMacsecSaAttributeRequest) + returns (SetMacsecSaAttributeResponse) {} + rpc GetMacsecSaAttribute(GetMacsecSaAttributeRequest) + returns (GetMacsecSaAttributeResponse) {} } diff --git a/dataplane/standalone/proto/mcast_fdb.pb.go b/dataplane/standalone/proto/mcast_fdb.pb.go index e4ee37c5..080c2089 100755 --- a/dataplane/standalone/proto/mcast_fdb.pb.go +++ b/dataplane/standalone/proto/mcast_fdb.pb.go @@ -82,9 +82,9 @@ type CreateMcastFdbEntryRequest struct { unknownFields protoimpl.UnknownFields Entry *McastFdbEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - GroupId uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - MetaData uint32 `protobuf:"varint,4,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` + GroupId *uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3,oneof" json:"group_id,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + MetaData *uint32 `protobuf:"varint,4,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` } func (x *CreateMcastFdbEntryRequest) Reset() { @@ -127,22 +127,22 @@ func (x *CreateMcastFdbEntryRequest) GetEntry() *McastFdbEntry { } func (x *CreateMcastFdbEntryRequest) GetGroupId() uint64 { - if x != nil { - return x.GroupId + if x != nil && x.GroupId != nil { + return *x.GroupId } return 0 } func (x *CreateMcastFdbEntryRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateMcastFdbEntryRequest) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } @@ -275,13 +275,10 @@ type SetMcastFdbEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *McastFdbEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetMcastFdbEntryAttributeRequest_GroupId - // *SetMcastFdbEntryAttributeRequest_PacketAction - // *SetMcastFdbEntryAttributeRequest_MetaData - Attr isSetMcastFdbEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *McastFdbEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + GroupId *uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3,oneof" json:"group_id,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + MetaData *uint32 `protobuf:"varint,4,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` } func (x *SetMcastFdbEntryAttributeRequest) Reset() { @@ -323,56 +320,27 @@ func (x *SetMcastFdbEntryAttributeRequest) GetEntry() *McastFdbEntry { return nil } -func (m *SetMcastFdbEntryAttributeRequest) GetAttr() isSetMcastFdbEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetMcastFdbEntryAttributeRequest) GetGroupId() uint64 { - if x, ok := x.GetAttr().(*SetMcastFdbEntryAttributeRequest_GroupId); ok { - return x.GroupId + if x != nil && x.GroupId != nil { + return *x.GroupId } return 0 } func (x *SetMcastFdbEntryAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetMcastFdbEntryAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetMcastFdbEntryAttributeRequest) GetMetaData() uint32 { - if x, ok := x.GetAttr().(*SetMcastFdbEntryAttributeRequest_MetaData); ok { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } -type isSetMcastFdbEntryAttributeRequest_Attr interface { - isSetMcastFdbEntryAttributeRequest_Attr() -} - -type SetMcastFdbEntryAttributeRequest_GroupId struct { - GroupId uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3,oneof"` -} - -type SetMcastFdbEntryAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetMcastFdbEntryAttributeRequest_MetaData struct { - MetaData uint32 `protobuf:"varint,4,opt,name=meta_data,json=metaData,proto3,oneof"` -} - -func (*SetMcastFdbEntryAttributeRequest_GroupId) isSetMcastFdbEntryAttributeRequest_Attr() {} - -func (*SetMcastFdbEntryAttributeRequest_PacketAction) isSetMcastFdbEntryAttributeRequest_Attr() {} - -func (*SetMcastFdbEntryAttributeRequest_MetaData) isSetMcastFdbEntryAttributeRequest_Attr() {} - type SetMcastFdbEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -471,7 +439,7 @@ type GetMcastFdbEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*McastFdbEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *McastFdbEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMcastFdbEntryAttributeResponse) Reset() { @@ -506,7 +474,7 @@ func (*GetMcastFdbEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_mcast_fdb_proto_rawDescGZIP(), []int{7} } -func (x *GetMcastFdbEntryAttributeResponse) GetAttr() []*McastFdbEntryAttribute { +func (x *GetMcastFdbEntryAttributeResponse) GetAttr() *McastFdbEntryAttribute { if x != nil { return x.Attr } @@ -522,115 +490,124 @@ var file_dataplane_standalone_proto_mcast_fdb_proto_rawDesc = []byte{ 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x01, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, - 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, - 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xee, 0x01, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, - 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, - 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, - 0x4a, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x09, 0x6d, - 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, - 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4d, - 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, 0x74, - 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xa8, 0x01, 0x0a, 0x11, 0x4d, 0x63, 0x61, 0x73, - 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x24, 0x0a, - 0x20, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, - 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x22, - 0x0a, 0x1e, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x10, 0x03, 0x32, 0xb0, 0x04, 0x0a, 0x08, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x12, - 0x7e, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, - 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, + 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, + 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, + 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xae, 0x02, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, + 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x24, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, + 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, + 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, - 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x90, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, + 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, + 0x21, 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xa8, 0x01, 0x0a, 0x11, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, + 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x24, 0x0a, 0x20, 0x4d, + 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x49, 0x44, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, + 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, + 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x03, + 0x32, 0xb0, 0x04, 0x0a, 0x08, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x12, 0x7e, 0x0a, + 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, + 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, + 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, - 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x47, 0x65, 0x74, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x46, 0x64, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -789,11 +766,8 @@ func file_dataplane_standalone_proto_mcast_fdb_proto_init() { } } } - file_dataplane_standalone_proto_mcast_fdb_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetMcastFdbEntryAttributeRequest_GroupId)(nil), - (*SetMcastFdbEntryAttributeRequest_PacketAction)(nil), - (*SetMcastFdbEntryAttributeRequest_MetaData)(nil), - } + file_dataplane_standalone_proto_mcast_fdb_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_mcast_fdb_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/mcast_fdb.proto b/dataplane/standalone/proto/mcast_fdb.proto index c764f203..a0ba41d8 100644 --- a/dataplane/standalone/proto/mcast_fdb.proto +++ b/dataplane/standalone/proto/mcast_fdb.proto @@ -7,70 +7,53 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum McastFdbEntryAttr { - MCAST_FDB_ENTRY_ATTR_UNSPECIFIED = 0; - MCAST_FDB_ENTRY_ATTR_GROUP_ID = 1; - MCAST_FDB_ENTRY_ATTR_PACKET_ACTION = 2; - MCAST_FDB_ENTRY_ATTR_META_DATA = 3; + MCAST_FDB_ENTRY_ATTR_UNSPECIFIED = 0; + MCAST_FDB_ENTRY_ATTR_GROUP_ID = 1; + MCAST_FDB_ENTRY_ATTR_PACKET_ACTION = 2; + MCAST_FDB_ENTRY_ATTR_META_DATA = 3; } message CreateMcastFdbEntryRequest { - McastFdbEntry entry = 1; - - uint64 group_id = 2; - PacketAction packet_action = 3; - uint32 meta_data = 4; - + McastFdbEntry entry = 1; + optional uint64 group_id = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint32 meta_data = 4 [(attr_enum_value) = 3]; } -message CreateMcastFdbEntryResponse { - - -} +message CreateMcastFdbEntryResponse {} message RemoveMcastFdbEntryRequest { - McastFdbEntry entry = 1; - - + McastFdbEntry entry = 1; } -message RemoveMcastFdbEntryResponse { - - -} +message RemoveMcastFdbEntryResponse {} message SetMcastFdbEntryAttributeRequest { - McastFdbEntry entry = 1; - oneof attr { - uint64 group_id = 2; - PacketAction packet_action = 3; - uint32 meta_data = 4; - } + McastFdbEntry entry = 1; + optional uint64 group_id = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint32 meta_data = 4 [(attr_enum_value) = 3]; } -message SetMcastFdbEntryAttributeResponse { - - -} +message SetMcastFdbEntryAttributeResponse {} message GetMcastFdbEntryAttributeRequest { - McastFdbEntry entry = 1; - repeated McastFdbEntryAttr attr_type = 2; - - + McastFdbEntry entry = 1; + repeated McastFdbEntryAttr attr_type = 2; } message GetMcastFdbEntryAttributeResponse { - repeated McastFdbEntryAttribute attr = 1; - - + McastFdbEntryAttribute attr = 1; } - service McastFdb { - rpc CreateMcastFdbEntry (CreateMcastFdbEntryRequest) returns (CreateMcastFdbEntryResponse) {} - rpc RemoveMcastFdbEntry (RemoveMcastFdbEntryRequest) returns (RemoveMcastFdbEntryResponse) {} - rpc SetMcastFdbEntryAttribute (SetMcastFdbEntryAttributeRequest) returns (SetMcastFdbEntryAttributeResponse) {} - rpc GetMcastFdbEntryAttribute (GetMcastFdbEntryAttributeRequest) returns (GetMcastFdbEntryAttributeResponse) {} + rpc CreateMcastFdbEntry(CreateMcastFdbEntryRequest) + returns (CreateMcastFdbEntryResponse) {} + rpc RemoveMcastFdbEntry(RemoveMcastFdbEntryRequest) + returns (RemoveMcastFdbEntryResponse) {} + rpc SetMcastFdbEntryAttribute(SetMcastFdbEntryAttributeRequest) + returns (SetMcastFdbEntryAttributeResponse) {} + rpc GetMcastFdbEntryAttribute(GetMcastFdbEntryAttributeRequest) + returns (GetMcastFdbEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/mirror.pb.go b/dataplane/standalone/proto/mirror.pb.go index 210b1c60..c7518a38 100755 --- a/dataplane/standalone/proto/mirror.pb.go +++ b/dataplane/standalone/proto/mirror.pb.go @@ -147,32 +147,32 @@ type CreateMirrorSessionRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type MirrorSessionType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.MirrorSessionType" json:"type,omitempty"` - MonitorPort uint64 `protobuf:"varint,3,opt,name=monitor_port,json=monitorPort,proto3" json:"monitor_port,omitempty"` - TruncateSize uint32 `protobuf:"varint,4,opt,name=truncate_size,json=truncateSize,proto3" json:"truncate_size,omitempty"` - SampleRate uint32 `protobuf:"varint,5,opt,name=sample_rate,json=sampleRate,proto3" json:"sample_rate,omitempty"` - CongestionMode MirrorSessionCongestionMode `protobuf:"varint,6,opt,name=congestion_mode,json=congestionMode,proto3,enum=lemming.dataplane.sai.MirrorSessionCongestionMode" json:"congestion_mode,omitempty"` - Tc uint32 `protobuf:"varint,7,opt,name=tc,proto3" json:"tc,omitempty"` - VlanTpid uint32 `protobuf:"varint,8,opt,name=vlan_tpid,json=vlanTpid,proto3" json:"vlan_tpid,omitempty"` - VlanId uint32 `protobuf:"varint,9,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - VlanPri uint32 `protobuf:"varint,10,opt,name=vlan_pri,json=vlanPri,proto3" json:"vlan_pri,omitempty"` - VlanCfi uint32 `protobuf:"varint,11,opt,name=vlan_cfi,json=vlanCfi,proto3" json:"vlan_cfi,omitempty"` - VlanHeaderValid bool `protobuf:"varint,12,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3" json:"vlan_header_valid,omitempty"` - ErspanEncapsulationType ErspanEncapsulationType `protobuf:"varint,13,opt,name=erspan_encapsulation_type,json=erspanEncapsulationType,proto3,enum=lemming.dataplane.sai.ErspanEncapsulationType" json:"erspan_encapsulation_type,omitempty"` - IphdrVersion uint32 `protobuf:"varint,14,opt,name=iphdr_version,json=iphdrVersion,proto3" json:"iphdr_version,omitempty"` - Tos uint32 `protobuf:"varint,15,opt,name=tos,proto3" json:"tos,omitempty"` - Ttl uint32 `protobuf:"varint,16,opt,name=ttl,proto3" json:"ttl,omitempty"` - SrcIpAddress []byte `protobuf:"bytes,17,opt,name=src_ip_address,json=srcIpAddress,proto3" json:"src_ip_address,omitempty"` - DstIpAddress []byte `protobuf:"bytes,18,opt,name=dst_ip_address,json=dstIpAddress,proto3" json:"dst_ip_address,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,19,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - DstMacAddress []byte `protobuf:"bytes,20,opt,name=dst_mac_address,json=dstMacAddress,proto3" json:"dst_mac_address,omitempty"` - GreProtocolType uint32 `protobuf:"varint,21,opt,name=gre_protocol_type,json=greProtocolType,proto3" json:"gre_protocol_type,omitempty"` - MonitorPortlistValid bool `protobuf:"varint,22,opt,name=monitor_portlist_valid,json=monitorPortlistValid,proto3" json:"monitor_portlist_valid,omitempty"` - MonitorPortlist []uint64 `protobuf:"varint,23,rep,packed,name=monitor_portlist,json=monitorPortlist,proto3" json:"monitor_portlist,omitempty"` - Policer uint64 `protobuf:"varint,24,opt,name=policer,proto3" json:"policer,omitempty"` - UdpSrcPort uint32 `protobuf:"varint,25,opt,name=udp_src_port,json=udpSrcPort,proto3" json:"udp_src_port,omitempty"` - UdpDstPort uint32 `protobuf:"varint,26,opt,name=udp_dst_port,json=udpDstPort,proto3" json:"udp_dst_port,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *MirrorSessionType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.MirrorSessionType,oneof" json:"type,omitempty"` + MonitorPort *uint64 `protobuf:"varint,3,opt,name=monitor_port,json=monitorPort,proto3,oneof" json:"monitor_port,omitempty"` + TruncateSize *uint32 `protobuf:"varint,4,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + SampleRate *uint32 `protobuf:"varint,5,opt,name=sample_rate,json=sampleRate,proto3,oneof" json:"sample_rate,omitempty"` + CongestionMode *MirrorSessionCongestionMode `protobuf:"varint,6,opt,name=congestion_mode,json=congestionMode,proto3,enum=lemming.dataplane.sai.MirrorSessionCongestionMode,oneof" json:"congestion_mode,omitempty"` + Tc *uint32 `protobuf:"varint,7,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + VlanTpid *uint32 `protobuf:"varint,8,opt,name=vlan_tpid,json=vlanTpid,proto3,oneof" json:"vlan_tpid,omitempty"` + VlanId *uint32 `protobuf:"varint,9,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + VlanPri *uint32 `protobuf:"varint,10,opt,name=vlan_pri,json=vlanPri,proto3,oneof" json:"vlan_pri,omitempty"` + VlanCfi *uint32 `protobuf:"varint,11,opt,name=vlan_cfi,json=vlanCfi,proto3,oneof" json:"vlan_cfi,omitempty"` + VlanHeaderValid *bool `protobuf:"varint,12,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3,oneof" json:"vlan_header_valid,omitempty"` + ErspanEncapsulationType *ErspanEncapsulationType `protobuf:"varint,13,opt,name=erspan_encapsulation_type,json=erspanEncapsulationType,proto3,enum=lemming.dataplane.sai.ErspanEncapsulationType,oneof" json:"erspan_encapsulation_type,omitempty"` + IphdrVersion *uint32 `protobuf:"varint,14,opt,name=iphdr_version,json=iphdrVersion,proto3,oneof" json:"iphdr_version,omitempty"` + Tos *uint32 `protobuf:"varint,15,opt,name=tos,proto3,oneof" json:"tos,omitempty"` + Ttl *uint32 `protobuf:"varint,16,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + SrcIpAddress []byte `protobuf:"bytes,17,opt,name=src_ip_address,json=srcIpAddress,proto3,oneof" json:"src_ip_address,omitempty"` + DstIpAddress []byte `protobuf:"bytes,18,opt,name=dst_ip_address,json=dstIpAddress,proto3,oneof" json:"dst_ip_address,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,19,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + DstMacAddress []byte `protobuf:"bytes,20,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + GreProtocolType *uint32 `protobuf:"varint,21,opt,name=gre_protocol_type,json=greProtocolType,proto3,oneof" json:"gre_protocol_type,omitempty"` + MonitorPortlistValid *bool `protobuf:"varint,22,opt,name=monitor_portlist_valid,json=monitorPortlistValid,proto3,oneof" json:"monitor_portlist_valid,omitempty"` + MonitorPortlist []uint64 `protobuf:"varint,23,rep,packed,name=monitor_portlist,json=monitorPortlist,proto3" json:"monitor_portlist,omitempty"` + Policer *uint64 `protobuf:"varint,24,opt,name=policer,proto3,oneof" json:"policer,omitempty"` + UdpSrcPort *uint32 `protobuf:"varint,25,opt,name=udp_src_port,json=udpSrcPort,proto3,oneof" json:"udp_src_port,omitempty"` + UdpDstPort *uint32 `protobuf:"varint,26,opt,name=udp_dst_port,json=udpDstPort,proto3,oneof" json:"udp_dst_port,omitempty"` } func (x *CreateMirrorSessionRequest) Reset() { @@ -215,106 +215,106 @@ func (x *CreateMirrorSessionRequest) GetSwitch() uint64 { } func (x *CreateMirrorSessionRequest) GetType() MirrorSessionType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return MirrorSessionType_MIRROR_SESSION_TYPE_UNSPECIFIED } func (x *CreateMirrorSessionRequest) GetMonitorPort() uint64 { - if x != nil { - return x.MonitorPort + if x != nil && x.MonitorPort != nil { + return *x.MonitorPort } return 0 } func (x *CreateMirrorSessionRequest) GetTruncateSize() uint32 { - if x != nil { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *CreateMirrorSessionRequest) GetSampleRate() uint32 { - if x != nil { - return x.SampleRate + if x != nil && x.SampleRate != nil { + return *x.SampleRate } return 0 } func (x *CreateMirrorSessionRequest) GetCongestionMode() MirrorSessionCongestionMode { - if x != nil { - return x.CongestionMode + if x != nil && x.CongestionMode != nil { + return *x.CongestionMode } return MirrorSessionCongestionMode_MIRROR_SESSION_CONGESTION_MODE_UNSPECIFIED } func (x *CreateMirrorSessionRequest) GetTc() uint32 { - if x != nil { - return x.Tc + if x != nil && x.Tc != nil { + return *x.Tc } return 0 } func (x *CreateMirrorSessionRequest) GetVlanTpid() uint32 { - if x != nil { - return x.VlanTpid + if x != nil && x.VlanTpid != nil { + return *x.VlanTpid } return 0 } func (x *CreateMirrorSessionRequest) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *CreateMirrorSessionRequest) GetVlanPri() uint32 { - if x != nil { - return x.VlanPri + if x != nil && x.VlanPri != nil { + return *x.VlanPri } return 0 } func (x *CreateMirrorSessionRequest) GetVlanCfi() uint32 { - if x != nil { - return x.VlanCfi + if x != nil && x.VlanCfi != nil { + return *x.VlanCfi } return 0 } func (x *CreateMirrorSessionRequest) GetVlanHeaderValid() bool { - if x != nil { - return x.VlanHeaderValid + if x != nil && x.VlanHeaderValid != nil { + return *x.VlanHeaderValid } return false } func (x *CreateMirrorSessionRequest) GetErspanEncapsulationType() ErspanEncapsulationType { - if x != nil { - return x.ErspanEncapsulationType + if x != nil && x.ErspanEncapsulationType != nil { + return *x.ErspanEncapsulationType } return ErspanEncapsulationType_ERSPAN_ENCAPSULATION_TYPE_UNSPECIFIED } func (x *CreateMirrorSessionRequest) GetIphdrVersion() uint32 { - if x != nil { - return x.IphdrVersion + if x != nil && x.IphdrVersion != nil { + return *x.IphdrVersion } return 0 } func (x *CreateMirrorSessionRequest) GetTos() uint32 { - if x != nil { - return x.Tos + if x != nil && x.Tos != nil { + return *x.Tos } return 0 } func (x *CreateMirrorSessionRequest) GetTtl() uint32 { - if x != nil { - return x.Ttl + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } @@ -348,15 +348,15 @@ func (x *CreateMirrorSessionRequest) GetDstMacAddress() []byte { } func (x *CreateMirrorSessionRequest) GetGreProtocolType() uint32 { - if x != nil { - return x.GreProtocolType + if x != nil && x.GreProtocolType != nil { + return *x.GreProtocolType } return 0 } func (x *CreateMirrorSessionRequest) GetMonitorPortlistValid() bool { - if x != nil { - return x.MonitorPortlistValid + if x != nil && x.MonitorPortlistValid != nil { + return *x.MonitorPortlistValid } return false } @@ -369,22 +369,22 @@ func (x *CreateMirrorSessionRequest) GetMonitorPortlist() []uint64 { } func (x *CreateMirrorSessionRequest) GetPolicer() uint64 { - if x != nil { - return x.Policer + if x != nil && x.Policer != nil { + return *x.Policer } return 0 } func (x *CreateMirrorSessionRequest) GetUdpSrcPort() uint32 { - if x != nil { - return x.UdpSrcPort + if x != nil && x.UdpSrcPort != nil { + return *x.UdpSrcPort } return 0 } func (x *CreateMirrorSessionRequest) GetUdpDstPort() uint32 { - if x != nil { - return x.UdpDstPort + if x != nil && x.UdpDstPort != nil { + return *x.UdpDstPort } return 0 } @@ -526,32 +526,29 @@ type SetMirrorSessionAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetMirrorSessionAttributeRequest_MonitorPort - // *SetMirrorSessionAttributeRequest_TruncateSize - // *SetMirrorSessionAttributeRequest_SampleRate - // *SetMirrorSessionAttributeRequest_CongestionMode - // *SetMirrorSessionAttributeRequest_Tc - // *SetMirrorSessionAttributeRequest_VlanTpid - // *SetMirrorSessionAttributeRequest_VlanId - // *SetMirrorSessionAttributeRequest_VlanPri - // *SetMirrorSessionAttributeRequest_VlanCfi - // *SetMirrorSessionAttributeRequest_VlanHeaderValid - // *SetMirrorSessionAttributeRequest_IphdrVersion - // *SetMirrorSessionAttributeRequest_Tos - // *SetMirrorSessionAttributeRequest_Ttl - // *SetMirrorSessionAttributeRequest_SrcIpAddress - // *SetMirrorSessionAttributeRequest_DstIpAddress - // *SetMirrorSessionAttributeRequest_SrcMacAddress - // *SetMirrorSessionAttributeRequest_DstMacAddress - // *SetMirrorSessionAttributeRequest_GreProtocolType - // *SetMirrorSessionAttributeRequest_MonitorPortlist - // *SetMirrorSessionAttributeRequest_Policer - // *SetMirrorSessionAttributeRequest_UdpSrcPort - // *SetMirrorSessionAttributeRequest_UdpDstPort - Attr isSetMirrorSessionAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + MonitorPort *uint64 `protobuf:"varint,2,opt,name=monitor_port,json=monitorPort,proto3,oneof" json:"monitor_port,omitempty"` + TruncateSize *uint32 `protobuf:"varint,3,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + SampleRate *uint32 `protobuf:"varint,4,opt,name=sample_rate,json=sampleRate,proto3,oneof" json:"sample_rate,omitempty"` + CongestionMode *MirrorSessionCongestionMode `protobuf:"varint,5,opt,name=congestion_mode,json=congestionMode,proto3,enum=lemming.dataplane.sai.MirrorSessionCongestionMode,oneof" json:"congestion_mode,omitempty"` + Tc *uint32 `protobuf:"varint,6,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + VlanTpid *uint32 `protobuf:"varint,7,opt,name=vlan_tpid,json=vlanTpid,proto3,oneof" json:"vlan_tpid,omitempty"` + VlanId *uint32 `protobuf:"varint,8,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + VlanPri *uint32 `protobuf:"varint,9,opt,name=vlan_pri,json=vlanPri,proto3,oneof" json:"vlan_pri,omitempty"` + VlanCfi *uint32 `protobuf:"varint,10,opt,name=vlan_cfi,json=vlanCfi,proto3,oneof" json:"vlan_cfi,omitempty"` + VlanHeaderValid *bool `protobuf:"varint,11,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3,oneof" json:"vlan_header_valid,omitempty"` + IphdrVersion *uint32 `protobuf:"varint,12,opt,name=iphdr_version,json=iphdrVersion,proto3,oneof" json:"iphdr_version,omitempty"` + Tos *uint32 `protobuf:"varint,13,opt,name=tos,proto3,oneof" json:"tos,omitempty"` + Ttl *uint32 `protobuf:"varint,14,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + SrcIpAddress []byte `protobuf:"bytes,15,opt,name=src_ip_address,json=srcIpAddress,proto3,oneof" json:"src_ip_address,omitempty"` + DstIpAddress []byte `protobuf:"bytes,16,opt,name=dst_ip_address,json=dstIpAddress,proto3,oneof" json:"dst_ip_address,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,17,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + DstMacAddress []byte `protobuf:"bytes,18,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + GreProtocolType *uint32 `protobuf:"varint,19,opt,name=gre_protocol_type,json=greProtocolType,proto3,oneof" json:"gre_protocol_type,omitempty"` + MonitorPortlist []uint64 `protobuf:"varint,20,rep,packed,name=monitor_portlist,json=monitorPortlist,proto3" json:"monitor_portlist,omitempty"` + Policer *uint64 `protobuf:"varint,21,opt,name=policer,proto3,oneof" json:"policer,omitempty"` + UdpSrcPort *uint32 `protobuf:"varint,22,opt,name=udp_src_port,json=udpSrcPort,proto3,oneof" json:"udp_src_port,omitempty"` + UdpDstPort *uint32 `protobuf:"varint,23,opt,name=udp_dst_port,json=udpDstPort,proto3,oneof" json:"udp_dst_port,omitempty"` } func (x *SetMirrorSessionAttributeRequest) Reset() { @@ -593,303 +590,160 @@ func (x *SetMirrorSessionAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetMirrorSessionAttributeRequest) GetAttr() isSetMirrorSessionAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetMirrorSessionAttributeRequest) GetMonitorPort() uint64 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_MonitorPort); ok { - return x.MonitorPort + if x != nil && x.MonitorPort != nil { + return *x.MonitorPort } return 0 } func (x *SetMirrorSessionAttributeRequest) GetTruncateSize() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_TruncateSize); ok { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *SetMirrorSessionAttributeRequest) GetSampleRate() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_SampleRate); ok { - return x.SampleRate + if x != nil && x.SampleRate != nil { + return *x.SampleRate } return 0 } func (x *SetMirrorSessionAttributeRequest) GetCongestionMode() MirrorSessionCongestionMode { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_CongestionMode); ok { - return x.CongestionMode + if x != nil && x.CongestionMode != nil { + return *x.CongestionMode } return MirrorSessionCongestionMode_MIRROR_SESSION_CONGESTION_MODE_UNSPECIFIED } func (x *SetMirrorSessionAttributeRequest) GetTc() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_Tc); ok { - return x.Tc + if x != nil && x.Tc != nil { + return *x.Tc } return 0 } func (x *SetMirrorSessionAttributeRequest) GetVlanTpid() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_VlanTpid); ok { - return x.VlanTpid + if x != nil && x.VlanTpid != nil { + return *x.VlanTpid } return 0 } func (x *SetMirrorSessionAttributeRequest) GetVlanId() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_VlanId); ok { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *SetMirrorSessionAttributeRequest) GetVlanPri() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_VlanPri); ok { - return x.VlanPri + if x != nil && x.VlanPri != nil { + return *x.VlanPri } return 0 } func (x *SetMirrorSessionAttributeRequest) GetVlanCfi() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_VlanCfi); ok { - return x.VlanCfi + if x != nil && x.VlanCfi != nil { + return *x.VlanCfi } return 0 } func (x *SetMirrorSessionAttributeRequest) GetVlanHeaderValid() bool { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_VlanHeaderValid); ok { - return x.VlanHeaderValid + if x != nil && x.VlanHeaderValid != nil { + return *x.VlanHeaderValid } return false } func (x *SetMirrorSessionAttributeRequest) GetIphdrVersion() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_IphdrVersion); ok { - return x.IphdrVersion + if x != nil && x.IphdrVersion != nil { + return *x.IphdrVersion } return 0 } func (x *SetMirrorSessionAttributeRequest) GetTos() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_Tos); ok { - return x.Tos + if x != nil && x.Tos != nil { + return *x.Tos } return 0 } func (x *SetMirrorSessionAttributeRequest) GetTtl() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_Ttl); ok { - return x.Ttl + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } func (x *SetMirrorSessionAttributeRequest) GetSrcIpAddress() []byte { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_SrcIpAddress); ok { + if x != nil { return x.SrcIpAddress } return nil } func (x *SetMirrorSessionAttributeRequest) GetDstIpAddress() []byte { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_DstIpAddress); ok { + if x != nil { return x.DstIpAddress } return nil } func (x *SetMirrorSessionAttributeRequest) GetSrcMacAddress() []byte { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_SrcMacAddress); ok { + if x != nil { return x.SrcMacAddress } return nil } func (x *SetMirrorSessionAttributeRequest) GetDstMacAddress() []byte { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_DstMacAddress); ok { + if x != nil { return x.DstMacAddress } return nil } func (x *SetMirrorSessionAttributeRequest) GetGreProtocolType() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_GreProtocolType); ok { - return x.GreProtocolType + if x != nil && x.GreProtocolType != nil { + return *x.GreProtocolType } return 0 } -func (x *SetMirrorSessionAttributeRequest) GetMonitorPortlist() *Uint64List { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_MonitorPortlist); ok { +func (x *SetMirrorSessionAttributeRequest) GetMonitorPortlist() []uint64 { + if x != nil { return x.MonitorPortlist } return nil } func (x *SetMirrorSessionAttributeRequest) GetPolicer() uint64 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_Policer); ok { - return x.Policer + if x != nil && x.Policer != nil { + return *x.Policer } return 0 } func (x *SetMirrorSessionAttributeRequest) GetUdpSrcPort() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_UdpSrcPort); ok { - return x.UdpSrcPort + if x != nil && x.UdpSrcPort != nil { + return *x.UdpSrcPort } return 0 } func (x *SetMirrorSessionAttributeRequest) GetUdpDstPort() uint32 { - if x, ok := x.GetAttr().(*SetMirrorSessionAttributeRequest_UdpDstPort); ok { - return x.UdpDstPort + if x != nil && x.UdpDstPort != nil { + return *x.UdpDstPort } return 0 } -type isSetMirrorSessionAttributeRequest_Attr interface { - isSetMirrorSessionAttributeRequest_Attr() -} - -type SetMirrorSessionAttributeRequest_MonitorPort struct { - MonitorPort uint64 `protobuf:"varint,2,opt,name=monitor_port,json=monitorPort,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_TruncateSize struct { - TruncateSize uint32 `protobuf:"varint,3,opt,name=truncate_size,json=truncateSize,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_SampleRate struct { - SampleRate uint32 `protobuf:"varint,4,opt,name=sample_rate,json=sampleRate,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_CongestionMode struct { - CongestionMode MirrorSessionCongestionMode `protobuf:"varint,5,opt,name=congestion_mode,json=congestionMode,proto3,enum=lemming.dataplane.sai.MirrorSessionCongestionMode,oneof"` -} - -type SetMirrorSessionAttributeRequest_Tc struct { - Tc uint32 `protobuf:"varint,6,opt,name=tc,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_VlanTpid struct { - VlanTpid uint32 `protobuf:"varint,7,opt,name=vlan_tpid,json=vlanTpid,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_VlanId struct { - VlanId uint32 `protobuf:"varint,8,opt,name=vlan_id,json=vlanId,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_VlanPri struct { - VlanPri uint32 `protobuf:"varint,9,opt,name=vlan_pri,json=vlanPri,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_VlanCfi struct { - VlanCfi uint32 `protobuf:"varint,10,opt,name=vlan_cfi,json=vlanCfi,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_VlanHeaderValid struct { - VlanHeaderValid bool `protobuf:"varint,11,opt,name=vlan_header_valid,json=vlanHeaderValid,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_IphdrVersion struct { - IphdrVersion uint32 `protobuf:"varint,12,opt,name=iphdr_version,json=iphdrVersion,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_Tos struct { - Tos uint32 `protobuf:"varint,13,opt,name=tos,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_Ttl struct { - Ttl uint32 `protobuf:"varint,14,opt,name=ttl,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_SrcIpAddress struct { - SrcIpAddress []byte `protobuf:"bytes,15,opt,name=src_ip_address,json=srcIpAddress,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_DstIpAddress struct { - DstIpAddress []byte `protobuf:"bytes,16,opt,name=dst_ip_address,json=dstIpAddress,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_SrcMacAddress struct { - SrcMacAddress []byte `protobuf:"bytes,17,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_DstMacAddress struct { - DstMacAddress []byte `protobuf:"bytes,18,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_GreProtocolType struct { - GreProtocolType uint32 `protobuf:"varint,19,opt,name=gre_protocol_type,json=greProtocolType,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_MonitorPortlist struct { - MonitorPortlist *Uint64List `protobuf:"bytes,20,opt,name=monitor_portlist,json=monitorPortlist,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_Policer struct { - Policer uint64 `protobuf:"varint,21,opt,name=policer,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_UdpSrcPort struct { - UdpSrcPort uint32 `protobuf:"varint,22,opt,name=udp_src_port,json=udpSrcPort,proto3,oneof"` -} - -type SetMirrorSessionAttributeRequest_UdpDstPort struct { - UdpDstPort uint32 `protobuf:"varint,23,opt,name=udp_dst_port,json=udpDstPort,proto3,oneof"` -} - -func (*SetMirrorSessionAttributeRequest_MonitorPort) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_TruncateSize) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_SampleRate) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_CongestionMode) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_Tc) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_VlanTpid) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_VlanId) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_VlanPri) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_VlanCfi) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_VlanHeaderValid) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_IphdrVersion) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_Tos) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_Ttl) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_SrcIpAddress) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_DstIpAddress) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_SrcMacAddress) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_DstMacAddress) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_GreProtocolType) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_MonitorPortlist) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_Policer) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_UdpSrcPort) isSetMirrorSessionAttributeRequest_Attr() {} - -func (*SetMirrorSessionAttributeRequest_UdpDstPort) isSetMirrorSessionAttributeRequest_Attr() {} - type SetMirrorSessionAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -988,7 +842,7 @@ type GetMirrorSessionAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*MirrorSessionAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *MirrorSessionAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMirrorSessionAttributeResponse) Reset() { @@ -1023,7 +877,7 @@ func (*GetMirrorSessionAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_mirror_proto_rawDescGZIP(), []int{7} } -func (x *GetMirrorSessionAttributeResponse) GetAttr() []*MirrorSessionAttribute { +func (x *GetMirrorSessionAttributeResponse) GetAttr() *MirrorSessionAttribute { if x != nil { return x.Attr } @@ -1039,257 +893,329 @@ var file_dataplane_standalone_proto_mirror_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9c, 0x08, 0x0a, 0x1a, 0x43, 0x72, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x0d, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, + 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, - 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x02, 0x74, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x6c, - 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x6c, - 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, - 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, - 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x76, 0x6c, 0x61, - 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x6a, 0x0a, 0x19, - 0x65, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x45, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, - 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x17, 0x65, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x68, 0x64, - 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0c, 0x69, 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, - 0x03, 0x74, 0x6f, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x12, - 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x74, - 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x49, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, - 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, - 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x0a, - 0x11, 0x67, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x67, 0x72, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, - 0x29, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x17, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, - 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x64, - 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x07, 0x0a, 0x20, 0x53, 0x65, 0x74, - 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, - 0x23, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x74, - 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x73, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x5d, - 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x63, - 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x02, 0x74, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x02, 0x74, 0x63, 0x12, - 0x1d, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x19, - 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x76, 0x6c, 0x61, - 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x76, - 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, - 0x66, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, - 0x43, 0x66, 0x69, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x69, 0x70, 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, - 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x03, - 0x74, 0x74, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x74, 0x74, 0x6c, - 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x49, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, - 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, - 0x48, 0x00, 0x52, 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x72, 0x63, - 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x73, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x0f, 0x67, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, - 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, 0x22, - 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x23, - 0x0a, 0x21, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, + 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x02, 0x74, + 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, + 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x06, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, + 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x07, 0x76, 0x6c, + 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x63, 0x66, 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, + 0x48, 0x09, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x35, + 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, + 0x0a, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x75, 0x0a, 0x19, 0x65, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x5f, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x45, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, + 0x52, 0x17, 0x65, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, + 0x69, 0x70, 0x68, 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x0c, 0x69, 0x70, 0x68, + 0x64, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, + 0x74, 0x6f, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, + 0x0d, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x74, 0x74, 0x6c, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x03, + 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x49, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, + 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x64, + 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x0d, 0x64, 0x73, + 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, + 0x0a, 0x11, 0x67, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, + 0x13, 0x52, 0x0f, 0x67, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x16, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x14, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x17, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, + 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x15, + 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, + 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x16, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x53, + 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x64, 0x70, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x17, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, + 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x63, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x70, 0x72, 0x69, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x66, + 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x65, 0x72, 0x73, 0x70, + 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x68, 0x64, 0x72, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, + 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, 0x74, + 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x69, + 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, + 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, + 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf5, 0x0a, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe8, 0x07, 0x0a, 0x11, 0x4d, 0x69, 0x72, - 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x23, - 0x0a, 0x1f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x01, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x49, 0x52, 0x52, 0x4f, - 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, - 0x52, 0x55, 0x4e, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x03, 0x12, 0x23, - 0x0a, 0x1f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x52, 0x41, 0x54, - 0x45, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, - 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x0c, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x75, + 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, + 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x02, 0x74, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x04, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x05, 0x52, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x07, + 0x76, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x63, 0x66, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0a, 0x48, 0x08, 0x52, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0b, 0x48, 0x09, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x69, 0x70, 0x68, 0x64, 0x72, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0a, 0x52, 0x0c, 0x69, 0x70, 0x68, 0x64, 0x72, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0b, 0x52, 0x03, 0x74, 0x6f, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0c, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, + 0x0d, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, + 0x48, 0x0e, 0x52, 0x0c, 0x64, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x12, 0x48, 0x0f, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, + 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x10, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x67, 0x72, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x11, 0x52, 0x0f, 0x67, 0x72, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, + 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x6c, 0x69, 0x73, + 0x74, 0x12, 0x23, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x12, 0x52, 0x07, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x18, 0x48, 0x13, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, + 0x14, 0x52, 0x0a, 0x75, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x63, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x63, + 0x66, 0x69, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x68, + 0x64, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, + 0x6f, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x72, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, + 0x64, 0x70, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x75, 0x64, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x23, 0x0a, 0x21, + 0x53, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x7b, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, + 0x0a, 0x21, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe8, 0x07, 0x0a, 0x11, 0x4d, 0x69, 0x72, 0x72, 0x6f, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x54, 0x43, 0x10, 0x06, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x49, 0x52, 0x52, - 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, - 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, + 0x24, 0x0a, 0x20, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x55, + 0x4e, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x09, 0x12, 0x20, - 0x0a, 0x1c, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, 0x46, 0x49, 0x10, 0x0a, - 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x48, 0x45, 0x41, - 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x4d, - 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x45, 0x52, 0x53, 0x50, 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, - 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0c, 0x12, 0x25, - 0x0a, 0x21, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x48, 0x44, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, - 0x49, 0x4f, 0x4e, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, - 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x4f, 0x53, - 0x10, 0x0e, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x0f, 0x12, - 0x26, 0x0a, 0x22, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, - 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x10, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x49, 0x52, 0x52, 0x4f, - 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, - 0x53, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x11, 0x12, - 0x27, 0x0a, 0x23, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, - 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x12, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x49, 0x52, 0x52, - 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x44, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x13, 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x5f, 0x50, 0x52, 0x4f, - 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x14, 0x12, 0x2e, 0x0a, 0x2a, + 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, + 0x04, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x47, 0x45, 0x53, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x49, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x54, 0x43, 0x10, 0x06, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x49, 0x52, + 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x49, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x10, 0x09, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x15, 0x12, 0x28, 0x0a, 0x24, + 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x43, 0x46, 0x49, 0x10, 0x0a, 0x12, 0x29, + 0x0a, 0x25, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, + 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x4d, 0x49, 0x52, + 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x45, 0x52, 0x53, 0x50, 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x4c, 0x49, 0x53, 0x54, 0x10, 0x16, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, - 0x4c, 0x49, 0x43, 0x45, 0x52, 0x10, 0x17, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x49, 0x52, 0x52, 0x4f, - 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x44, 0x50, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x18, 0x12, 0x24, 0x0a, - 0x20, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x10, 0x19, 0x32, 0xae, 0x04, 0x0a, 0x06, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x7e, - 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, - 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, - 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, - 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x48, 0x44, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, + 0x4e, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, + 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x4f, 0x53, 0x10, 0x0e, + 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x0f, 0x12, 0x26, 0x0a, + 0x22, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x10, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, + 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x11, 0x12, 0x27, 0x0a, + 0x23, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, + 0x52, 0x45, 0x53, 0x53, 0x10, 0x12, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, + 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x13, 0x12, + 0x29, 0x0a, 0x25, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, + 0x43, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x14, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x49, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x4c, 0x49, + 0x53, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x15, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x49, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x4c, 0x49, + 0x53, 0x54, 0x10, 0x16, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x4c, 0x49, + 0x43, 0x45, 0x52, 0x10, 0x17, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x50, + 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x18, 0x12, 0x24, 0x0a, 0x20, 0x4d, + 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, + 0x19, 0x32, 0xae, 0x04, 0x0a, 0x06, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x7e, 0x0a, 0x13, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, + 0x19, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, + 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1319,30 +1245,28 @@ var file_dataplane_standalone_proto_mirror_proto_goTypes = []interface{}{ (MirrorSessionType)(0), // 9: lemming.dataplane.sai.MirrorSessionType (MirrorSessionCongestionMode)(0), // 10: lemming.dataplane.sai.MirrorSessionCongestionMode (ErspanEncapsulationType)(0), // 11: lemming.dataplane.sai.ErspanEncapsulationType - (*Uint64List)(nil), // 12: lemming.dataplane.sai.Uint64List - (*MirrorSessionAttribute)(nil), // 13: lemming.dataplane.sai.MirrorSessionAttribute + (*MirrorSessionAttribute)(nil), // 12: lemming.dataplane.sai.MirrorSessionAttribute } var file_dataplane_standalone_proto_mirror_proto_depIdxs = []int32{ 9, // 0: lemming.dataplane.sai.CreateMirrorSessionRequest.type:type_name -> lemming.dataplane.sai.MirrorSessionType 10, // 1: lemming.dataplane.sai.CreateMirrorSessionRequest.congestion_mode:type_name -> lemming.dataplane.sai.MirrorSessionCongestionMode 11, // 2: lemming.dataplane.sai.CreateMirrorSessionRequest.erspan_encapsulation_type:type_name -> lemming.dataplane.sai.ErspanEncapsulationType 10, // 3: lemming.dataplane.sai.SetMirrorSessionAttributeRequest.congestion_mode:type_name -> lemming.dataplane.sai.MirrorSessionCongestionMode - 12, // 4: lemming.dataplane.sai.SetMirrorSessionAttributeRequest.monitor_portlist:type_name -> lemming.dataplane.sai.Uint64List - 0, // 5: lemming.dataplane.sai.GetMirrorSessionAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.MirrorSessionAttr - 13, // 6: lemming.dataplane.sai.GetMirrorSessionAttributeResponse.attr:type_name -> lemming.dataplane.sai.MirrorSessionAttribute - 1, // 7: lemming.dataplane.sai.Mirror.CreateMirrorSession:input_type -> lemming.dataplane.sai.CreateMirrorSessionRequest - 3, // 8: lemming.dataplane.sai.Mirror.RemoveMirrorSession:input_type -> lemming.dataplane.sai.RemoveMirrorSessionRequest - 5, // 9: lemming.dataplane.sai.Mirror.SetMirrorSessionAttribute:input_type -> lemming.dataplane.sai.SetMirrorSessionAttributeRequest - 7, // 10: lemming.dataplane.sai.Mirror.GetMirrorSessionAttribute:input_type -> lemming.dataplane.sai.GetMirrorSessionAttributeRequest - 2, // 11: lemming.dataplane.sai.Mirror.CreateMirrorSession:output_type -> lemming.dataplane.sai.CreateMirrorSessionResponse - 4, // 12: lemming.dataplane.sai.Mirror.RemoveMirrorSession:output_type -> lemming.dataplane.sai.RemoveMirrorSessionResponse - 6, // 13: lemming.dataplane.sai.Mirror.SetMirrorSessionAttribute:output_type -> lemming.dataplane.sai.SetMirrorSessionAttributeResponse - 8, // 14: lemming.dataplane.sai.Mirror.GetMirrorSessionAttribute:output_type -> lemming.dataplane.sai.GetMirrorSessionAttributeResponse - 11, // [11:15] is the sub-list for method output_type - 7, // [7:11] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 0, // 4: lemming.dataplane.sai.GetMirrorSessionAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.MirrorSessionAttr + 12, // 5: lemming.dataplane.sai.GetMirrorSessionAttributeResponse.attr:type_name -> lemming.dataplane.sai.MirrorSessionAttribute + 1, // 6: lemming.dataplane.sai.Mirror.CreateMirrorSession:input_type -> lemming.dataplane.sai.CreateMirrorSessionRequest + 3, // 7: lemming.dataplane.sai.Mirror.RemoveMirrorSession:input_type -> lemming.dataplane.sai.RemoveMirrorSessionRequest + 5, // 8: lemming.dataplane.sai.Mirror.SetMirrorSessionAttribute:input_type -> lemming.dataplane.sai.SetMirrorSessionAttributeRequest + 7, // 9: lemming.dataplane.sai.Mirror.GetMirrorSessionAttribute:input_type -> lemming.dataplane.sai.GetMirrorSessionAttributeRequest + 2, // 10: lemming.dataplane.sai.Mirror.CreateMirrorSession:output_type -> lemming.dataplane.sai.CreateMirrorSessionResponse + 4, // 11: lemming.dataplane.sai.Mirror.RemoveMirrorSession:output_type -> lemming.dataplane.sai.RemoveMirrorSessionResponse + 6, // 12: lemming.dataplane.sai.Mirror.SetMirrorSessionAttribute:output_type -> lemming.dataplane.sai.SetMirrorSessionAttributeResponse + 8, // 13: lemming.dataplane.sai.Mirror.GetMirrorSessionAttribute:output_type -> lemming.dataplane.sai.GetMirrorSessionAttributeResponse + 10, // [10:14] is the sub-list for method output_type + 6, // [6:10] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_mirror_proto_init() } @@ -1449,30 +1373,8 @@ func file_dataplane_standalone_proto_mirror_proto_init() { } } } - file_dataplane_standalone_proto_mirror_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetMirrorSessionAttributeRequest_MonitorPort)(nil), - (*SetMirrorSessionAttributeRequest_TruncateSize)(nil), - (*SetMirrorSessionAttributeRequest_SampleRate)(nil), - (*SetMirrorSessionAttributeRequest_CongestionMode)(nil), - (*SetMirrorSessionAttributeRequest_Tc)(nil), - (*SetMirrorSessionAttributeRequest_VlanTpid)(nil), - (*SetMirrorSessionAttributeRequest_VlanId)(nil), - (*SetMirrorSessionAttributeRequest_VlanPri)(nil), - (*SetMirrorSessionAttributeRequest_VlanCfi)(nil), - (*SetMirrorSessionAttributeRequest_VlanHeaderValid)(nil), - (*SetMirrorSessionAttributeRequest_IphdrVersion)(nil), - (*SetMirrorSessionAttributeRequest_Tos)(nil), - (*SetMirrorSessionAttributeRequest_Ttl)(nil), - (*SetMirrorSessionAttributeRequest_SrcIpAddress)(nil), - (*SetMirrorSessionAttributeRequest_DstIpAddress)(nil), - (*SetMirrorSessionAttributeRequest_SrcMacAddress)(nil), - (*SetMirrorSessionAttributeRequest_DstMacAddress)(nil), - (*SetMirrorSessionAttributeRequest_GreProtocolType)(nil), - (*SetMirrorSessionAttributeRequest_MonitorPortlist)(nil), - (*SetMirrorSessionAttributeRequest_Policer)(nil), - (*SetMirrorSessionAttributeRequest_UdpSrcPort)(nil), - (*SetMirrorSessionAttributeRequest_UdpDstPort)(nil), - } + file_dataplane_standalone_proto_mirror_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_mirror_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/mirror.proto b/dataplane/standalone/proto/mirror.proto index 42cb42b6..7db114bf 100644 --- a/dataplane/standalone/proto/mirror.proto +++ b/dataplane/standalone/proto/mirror.proto @@ -7,134 +7,121 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum MirrorSessionAttr { - MIRROR_SESSION_ATTR_UNSPECIFIED = 0; - MIRROR_SESSION_ATTR_TYPE = 1; - MIRROR_SESSION_ATTR_MONITOR_PORT = 2; - MIRROR_SESSION_ATTR_TRUNCATE_SIZE = 3; - MIRROR_SESSION_ATTR_SAMPLE_RATE = 4; - MIRROR_SESSION_ATTR_CONGESTION_MODE = 5; - MIRROR_SESSION_ATTR_TC = 6; - MIRROR_SESSION_ATTR_VLAN_TPID = 7; - MIRROR_SESSION_ATTR_VLAN_ID = 8; - MIRROR_SESSION_ATTR_VLAN_PRI = 9; - MIRROR_SESSION_ATTR_VLAN_CFI = 10; - MIRROR_SESSION_ATTR_VLAN_HEADER_VALID = 11; - MIRROR_SESSION_ATTR_ERSPAN_ENCAPSULATION_TYPE = 12; - MIRROR_SESSION_ATTR_IPHDR_VERSION = 13; - MIRROR_SESSION_ATTR_TOS = 14; - MIRROR_SESSION_ATTR_TTL = 15; - MIRROR_SESSION_ATTR_SRC_IP_ADDRESS = 16; - MIRROR_SESSION_ATTR_DST_IP_ADDRESS = 17; - MIRROR_SESSION_ATTR_SRC_MAC_ADDRESS = 18; - MIRROR_SESSION_ATTR_DST_MAC_ADDRESS = 19; - MIRROR_SESSION_ATTR_GRE_PROTOCOL_TYPE = 20; - MIRROR_SESSION_ATTR_MONITOR_PORTLIST_VALID = 21; - MIRROR_SESSION_ATTR_MONITOR_PORTLIST = 22; - MIRROR_SESSION_ATTR_POLICER = 23; - MIRROR_SESSION_ATTR_UDP_SRC_PORT = 24; - MIRROR_SESSION_ATTR_UDP_DST_PORT = 25; + MIRROR_SESSION_ATTR_UNSPECIFIED = 0; + MIRROR_SESSION_ATTR_TYPE = 1; + MIRROR_SESSION_ATTR_MONITOR_PORT = 2; + MIRROR_SESSION_ATTR_TRUNCATE_SIZE = 3; + MIRROR_SESSION_ATTR_SAMPLE_RATE = 4; + MIRROR_SESSION_ATTR_CONGESTION_MODE = 5; + MIRROR_SESSION_ATTR_TC = 6; + MIRROR_SESSION_ATTR_VLAN_TPID = 7; + MIRROR_SESSION_ATTR_VLAN_ID = 8; + MIRROR_SESSION_ATTR_VLAN_PRI = 9; + MIRROR_SESSION_ATTR_VLAN_CFI = 10; + MIRROR_SESSION_ATTR_VLAN_HEADER_VALID = 11; + MIRROR_SESSION_ATTR_ERSPAN_ENCAPSULATION_TYPE = 12; + MIRROR_SESSION_ATTR_IPHDR_VERSION = 13; + MIRROR_SESSION_ATTR_TOS = 14; + MIRROR_SESSION_ATTR_TTL = 15; + MIRROR_SESSION_ATTR_SRC_IP_ADDRESS = 16; + MIRROR_SESSION_ATTR_DST_IP_ADDRESS = 17; + MIRROR_SESSION_ATTR_SRC_MAC_ADDRESS = 18; + MIRROR_SESSION_ATTR_DST_MAC_ADDRESS = 19; + MIRROR_SESSION_ATTR_GRE_PROTOCOL_TYPE = 20; + MIRROR_SESSION_ATTR_MONITOR_PORTLIST_VALID = 21; + MIRROR_SESSION_ATTR_MONITOR_PORTLIST = 22; + MIRROR_SESSION_ATTR_POLICER = 23; + MIRROR_SESSION_ATTR_UDP_SRC_PORT = 24; + MIRROR_SESSION_ATTR_UDP_DST_PORT = 25; } message CreateMirrorSessionRequest { - uint64 switch = 1; - - MirrorSessionType type = 2; - uint64 monitor_port = 3; - uint32 truncate_size = 4; - uint32 sample_rate = 5; - MirrorSessionCongestionMode congestion_mode = 6; - uint32 tc = 7; - uint32 vlan_tpid = 8; - uint32 vlan_id = 9; - uint32 vlan_pri = 10; - uint32 vlan_cfi = 11; - bool vlan_header_valid = 12; - ErspanEncapsulationType erspan_encapsulation_type = 13; - uint32 iphdr_version = 14; - uint32 tos = 15; - uint32 ttl = 16; - bytes src_ip_address = 17; - bytes dst_ip_address = 18; - bytes src_mac_address = 19; - bytes dst_mac_address = 20; - uint32 gre_protocol_type = 21; - bool monitor_portlist_valid = 22; - repeated uint64 monitor_portlist = 23; - uint64 policer = 24; - uint32 udp_src_port = 25; - uint32 udp_dst_port = 26; - + uint64 switch = 1; + optional MirrorSessionType type = 2 [(attr_enum_value) = 1]; + optional uint64 monitor_port = 3 [(attr_enum_value) = 2]; + optional uint32 truncate_size = 4 [(attr_enum_value) = 3]; + optional uint32 sample_rate = 5 [(attr_enum_value) = 4]; + optional MirrorSessionCongestionMode congestion_mode = 6 + [(attr_enum_value) = 5]; + optional uint32 tc = 7 [(attr_enum_value) = 6]; + optional uint32 vlan_tpid = 8 [(attr_enum_value) = 7]; + optional uint32 vlan_id = 9 [(attr_enum_value) = 8]; + optional uint32 vlan_pri = 10 [(attr_enum_value) = 9]; + optional uint32 vlan_cfi = 11 [(attr_enum_value) = 10]; + optional bool vlan_header_valid = 12 [(attr_enum_value) = 11]; + optional ErspanEncapsulationType erspan_encapsulation_type = 13 + [(attr_enum_value) = 12]; + optional uint32 iphdr_version = 14 [(attr_enum_value) = 13]; + optional uint32 tos = 15 [(attr_enum_value) = 14]; + optional uint32 ttl = 16 [(attr_enum_value) = 15]; + optional bytes src_ip_address = 17 [(attr_enum_value) = 16]; + optional bytes dst_ip_address = 18 [(attr_enum_value) = 17]; + optional bytes src_mac_address = 19 [(attr_enum_value) = 18]; + optional bytes dst_mac_address = 20 [(attr_enum_value) = 19]; + optional uint32 gre_protocol_type = 21 [(attr_enum_value) = 20]; + optional bool monitor_portlist_valid = 22 [(attr_enum_value) = 21]; + repeated uint64 monitor_portlist = 23 [(attr_enum_value) = 22]; + optional uint64 policer = 24 [(attr_enum_value) = 23]; + optional uint32 udp_src_port = 25 [(attr_enum_value) = 24]; + optional uint32 udp_dst_port = 26 [(attr_enum_value) = 25]; } message CreateMirrorSessionResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveMirrorSessionRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveMirrorSessionResponse { - - -} +message RemoveMirrorSessionResponse {} message SetMirrorSessionAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 monitor_port = 2; - uint32 truncate_size = 3; - uint32 sample_rate = 4; - MirrorSessionCongestionMode congestion_mode = 5; - uint32 tc = 6; - uint32 vlan_tpid = 7; - uint32 vlan_id = 8; - uint32 vlan_pri = 9; - uint32 vlan_cfi = 10; - bool vlan_header_valid = 11; - uint32 iphdr_version = 12; - uint32 tos = 13; - uint32 ttl = 14; - bytes src_ip_address = 15; - bytes dst_ip_address = 16; - bytes src_mac_address = 17; - bytes dst_mac_address = 18; - uint32 gre_protocol_type = 19; - Uint64List monitor_portlist = 20; - uint64 policer = 21; - uint32 udp_src_port = 22; - uint32 udp_dst_port = 23; - } + uint64 oid = 1; + optional uint64 monitor_port = 2 [(attr_enum_value) = 2]; + optional uint32 truncate_size = 3 [(attr_enum_value) = 3]; + optional uint32 sample_rate = 4 [(attr_enum_value) = 4]; + optional MirrorSessionCongestionMode congestion_mode = 5 + [(attr_enum_value) = 5]; + optional uint32 tc = 6 [(attr_enum_value) = 6]; + optional uint32 vlan_tpid = 7 [(attr_enum_value) = 7]; + optional uint32 vlan_id = 8 [(attr_enum_value) = 8]; + optional uint32 vlan_pri = 9 [(attr_enum_value) = 9]; + optional uint32 vlan_cfi = 10 [(attr_enum_value) = 10]; + optional bool vlan_header_valid = 11 [(attr_enum_value) = 11]; + optional uint32 iphdr_version = 12 [(attr_enum_value) = 13]; + optional uint32 tos = 13 [(attr_enum_value) = 14]; + optional uint32 ttl = 14 [(attr_enum_value) = 15]; + optional bytes src_ip_address = 15 [(attr_enum_value) = 16]; + optional bytes dst_ip_address = 16 [(attr_enum_value) = 17]; + optional bytes src_mac_address = 17 [(attr_enum_value) = 18]; + optional bytes dst_mac_address = 18 [(attr_enum_value) = 19]; + optional uint32 gre_protocol_type = 19 [(attr_enum_value) = 20]; + repeated uint64 monitor_portlist = 20 [(attr_enum_value) = 22]; + optional uint64 policer = 21 [(attr_enum_value) = 23]; + optional uint32 udp_src_port = 22 [(attr_enum_value) = 24]; + optional uint32 udp_dst_port = 23 [(attr_enum_value) = 25]; } -message SetMirrorSessionAttributeResponse { - - -} +message SetMirrorSessionAttributeResponse {} message GetMirrorSessionAttributeRequest { - uint64 oid = 1; - repeated MirrorSessionAttr attr_type = 2; - - + uint64 oid = 1; + repeated MirrorSessionAttr attr_type = 2; } message GetMirrorSessionAttributeResponse { - repeated MirrorSessionAttribute attr = 1; - - + MirrorSessionAttribute attr = 1; } - service Mirror { - rpc CreateMirrorSession (CreateMirrorSessionRequest) returns (CreateMirrorSessionResponse) {} - rpc RemoveMirrorSession (RemoveMirrorSessionRequest) returns (RemoveMirrorSessionResponse) {} - rpc SetMirrorSessionAttribute (SetMirrorSessionAttributeRequest) returns (SetMirrorSessionAttributeResponse) {} - rpc GetMirrorSessionAttribute (GetMirrorSessionAttributeRequest) returns (GetMirrorSessionAttributeResponse) {} + rpc CreateMirrorSession(CreateMirrorSessionRequest) + returns (CreateMirrorSessionResponse) {} + rpc RemoveMirrorSession(RemoveMirrorSessionRequest) + returns (RemoveMirrorSessionResponse) {} + rpc SetMirrorSessionAttribute(SetMirrorSessionAttributeRequest) + returns (SetMirrorSessionAttributeResponse) {} + rpc GetMirrorSessionAttribute(GetMirrorSessionAttributeRequest) + returns (GetMirrorSessionAttributeResponse) {} } diff --git a/dataplane/standalone/proto/mpls.pb.go b/dataplane/standalone/proto/mpls.pb.go index ffa48fb5..3d349212 100755 --- a/dataplane/standalone/proto/mpls.pb.go +++ b/dataplane/standalone/proto/mpls.pb.go @@ -105,18 +105,18 @@ type CreateInsegEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *InsegEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - NumOfPop uint32 `protobuf:"varint,2,opt,name=num_of_pop,json=numOfPop,proto3" json:"num_of_pop,omitempty"` - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - TrapPriority uint32 `protobuf:"varint,4,opt,name=trap_priority,json=trapPriority,proto3" json:"trap_priority,omitempty"` - NextHopId uint64 `protobuf:"varint,5,opt,name=next_hop_id,json=nextHopId,proto3" json:"next_hop_id,omitempty"` - PscType InsegEntryPscType `protobuf:"varint,6,opt,name=psc_type,json=pscType,proto3,enum=lemming.dataplane.sai.InsegEntryPscType" json:"psc_type,omitempty"` - QosTc uint32 `protobuf:"varint,7,opt,name=qos_tc,json=qosTc,proto3" json:"qos_tc,omitempty"` - MplsExpToTcMap uint64 `protobuf:"varint,8,opt,name=mpls_exp_to_tc_map,json=mplsExpToTcMap,proto3" json:"mpls_exp_to_tc_map,omitempty"` - MplsExpToColorMap uint64 `protobuf:"varint,9,opt,name=mpls_exp_to_color_map,json=mplsExpToColorMap,proto3" json:"mpls_exp_to_color_map,omitempty"` - PopTtlMode InsegEntryPopTtlMode `protobuf:"varint,10,opt,name=pop_ttl_mode,json=popTtlMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopTtlMode" json:"pop_ttl_mode,omitempty"` - PopQosMode InsegEntryPopQosMode `protobuf:"varint,11,opt,name=pop_qos_mode,json=popQosMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopQosMode" json:"pop_qos_mode,omitempty"` - CounterId uint64 `protobuf:"varint,12,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + Entry *InsegEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + NumOfPop *uint32 `protobuf:"varint,2,opt,name=num_of_pop,json=numOfPop,proto3,oneof" json:"num_of_pop,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,4,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + NextHopId *uint64 `protobuf:"varint,5,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + PscType *InsegEntryPscType `protobuf:"varint,6,opt,name=psc_type,json=pscType,proto3,enum=lemming.dataplane.sai.InsegEntryPscType,oneof" json:"psc_type,omitempty"` + QosTc *uint32 `protobuf:"varint,7,opt,name=qos_tc,json=qosTc,proto3,oneof" json:"qos_tc,omitempty"` + MplsExpToTcMap *uint64 `protobuf:"varint,8,opt,name=mpls_exp_to_tc_map,json=mplsExpToTcMap,proto3,oneof" json:"mpls_exp_to_tc_map,omitempty"` + MplsExpToColorMap *uint64 `protobuf:"varint,9,opt,name=mpls_exp_to_color_map,json=mplsExpToColorMap,proto3,oneof" json:"mpls_exp_to_color_map,omitempty"` + PopTtlMode *InsegEntryPopTtlMode `protobuf:"varint,10,opt,name=pop_ttl_mode,json=popTtlMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopTtlMode,oneof" json:"pop_ttl_mode,omitempty"` + PopQosMode *InsegEntryPopQosMode `protobuf:"varint,11,opt,name=pop_qos_mode,json=popQosMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopQosMode,oneof" json:"pop_qos_mode,omitempty"` + CounterId *uint64 `protobuf:"varint,12,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *CreateInsegEntryRequest) Reset() { @@ -159,78 +159,78 @@ func (x *CreateInsegEntryRequest) GetEntry() *InsegEntry { } func (x *CreateInsegEntryRequest) GetNumOfPop() uint32 { - if x != nil { - return x.NumOfPop + if x != nil && x.NumOfPop != nil { + return *x.NumOfPop } return 0 } func (x *CreateInsegEntryRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateInsegEntryRequest) GetTrapPriority() uint32 { - if x != nil { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *CreateInsegEntryRequest) GetNextHopId() uint64 { - if x != nil { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *CreateInsegEntryRequest) GetPscType() InsegEntryPscType { - if x != nil { - return x.PscType + if x != nil && x.PscType != nil { + return *x.PscType } return InsegEntryPscType_INSEG_ENTRY_PSC_TYPE_UNSPECIFIED } func (x *CreateInsegEntryRequest) GetQosTc() uint32 { - if x != nil { - return x.QosTc + if x != nil && x.QosTc != nil { + return *x.QosTc } return 0 } func (x *CreateInsegEntryRequest) GetMplsExpToTcMap() uint64 { - if x != nil { - return x.MplsExpToTcMap + if x != nil && x.MplsExpToTcMap != nil { + return *x.MplsExpToTcMap } return 0 } func (x *CreateInsegEntryRequest) GetMplsExpToColorMap() uint64 { - if x != nil { - return x.MplsExpToColorMap + if x != nil && x.MplsExpToColorMap != nil { + return *x.MplsExpToColorMap } return 0 } func (x *CreateInsegEntryRequest) GetPopTtlMode() InsegEntryPopTtlMode { - if x != nil { - return x.PopTtlMode + if x != nil && x.PopTtlMode != nil { + return *x.PopTtlMode } return InsegEntryPopTtlMode_INSEG_ENTRY_POP_TTL_MODE_UNSPECIFIED } func (x *CreateInsegEntryRequest) GetPopQosMode() InsegEntryPopQosMode { - if x != nil { - return x.PopQosMode + if x != nil && x.PopQosMode != nil { + return *x.PopQosMode } return InsegEntryPopQosMode_INSEG_ENTRY_POP_QOS_MODE_UNSPECIFIED } func (x *CreateInsegEntryRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -363,21 +363,18 @@ type SetInsegEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *InsegEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetInsegEntryAttributeRequest_NumOfPop - // *SetInsegEntryAttributeRequest_PacketAction - // *SetInsegEntryAttributeRequest_TrapPriority - // *SetInsegEntryAttributeRequest_NextHopId - // *SetInsegEntryAttributeRequest_PscType - // *SetInsegEntryAttributeRequest_QosTc - // *SetInsegEntryAttributeRequest_MplsExpToTcMap - // *SetInsegEntryAttributeRequest_MplsExpToColorMap - // *SetInsegEntryAttributeRequest_PopTtlMode - // *SetInsegEntryAttributeRequest_PopQosMode - // *SetInsegEntryAttributeRequest_CounterId - Attr isSetInsegEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *InsegEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + NumOfPop *uint32 `protobuf:"varint,2,opt,name=num_of_pop,json=numOfPop,proto3,oneof" json:"num_of_pop,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,4,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + NextHopId *uint64 `protobuf:"varint,5,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + PscType *InsegEntryPscType `protobuf:"varint,6,opt,name=psc_type,json=pscType,proto3,enum=lemming.dataplane.sai.InsegEntryPscType,oneof" json:"psc_type,omitempty"` + QosTc *uint32 `protobuf:"varint,7,opt,name=qos_tc,json=qosTc,proto3,oneof" json:"qos_tc,omitempty"` + MplsExpToTcMap *uint64 `protobuf:"varint,8,opt,name=mpls_exp_to_tc_map,json=mplsExpToTcMap,proto3,oneof" json:"mpls_exp_to_tc_map,omitempty"` + MplsExpToColorMap *uint64 `protobuf:"varint,9,opt,name=mpls_exp_to_color_map,json=mplsExpToColorMap,proto3,oneof" json:"mpls_exp_to_color_map,omitempty"` + PopTtlMode *InsegEntryPopTtlMode `protobuf:"varint,10,opt,name=pop_ttl_mode,json=popTtlMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopTtlMode,oneof" json:"pop_ttl_mode,omitempty"` + PopQosMode *InsegEntryPopQosMode `protobuf:"varint,11,opt,name=pop_qos_mode,json=popQosMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopQosMode,oneof" json:"pop_qos_mode,omitempty"` + CounterId *uint64 `protobuf:"varint,12,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *SetInsegEntryAttributeRequest) Reset() { @@ -419,160 +416,83 @@ func (x *SetInsegEntryAttributeRequest) GetEntry() *InsegEntry { return nil } -func (m *SetInsegEntryAttributeRequest) GetAttr() isSetInsegEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetInsegEntryAttributeRequest) GetNumOfPop() uint32 { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_NumOfPop); ok { - return x.NumOfPop + if x != nil && x.NumOfPop != nil { + return *x.NumOfPop } return 0 } func (x *SetInsegEntryAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetInsegEntryAttributeRequest) GetTrapPriority() uint32 { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_TrapPriority); ok { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *SetInsegEntryAttributeRequest) GetNextHopId() uint64 { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_NextHopId); ok { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *SetInsegEntryAttributeRequest) GetPscType() InsegEntryPscType { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_PscType); ok { - return x.PscType + if x != nil && x.PscType != nil { + return *x.PscType } return InsegEntryPscType_INSEG_ENTRY_PSC_TYPE_UNSPECIFIED } func (x *SetInsegEntryAttributeRequest) GetQosTc() uint32 { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_QosTc); ok { - return x.QosTc + if x != nil && x.QosTc != nil { + return *x.QosTc } return 0 } func (x *SetInsegEntryAttributeRequest) GetMplsExpToTcMap() uint64 { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_MplsExpToTcMap); ok { - return x.MplsExpToTcMap + if x != nil && x.MplsExpToTcMap != nil { + return *x.MplsExpToTcMap } return 0 } func (x *SetInsegEntryAttributeRequest) GetMplsExpToColorMap() uint64 { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_MplsExpToColorMap); ok { - return x.MplsExpToColorMap + if x != nil && x.MplsExpToColorMap != nil { + return *x.MplsExpToColorMap } return 0 } func (x *SetInsegEntryAttributeRequest) GetPopTtlMode() InsegEntryPopTtlMode { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_PopTtlMode); ok { - return x.PopTtlMode + if x != nil && x.PopTtlMode != nil { + return *x.PopTtlMode } return InsegEntryPopTtlMode_INSEG_ENTRY_POP_TTL_MODE_UNSPECIFIED } func (x *SetInsegEntryAttributeRequest) GetPopQosMode() InsegEntryPopQosMode { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_PopQosMode); ok { - return x.PopQosMode + if x != nil && x.PopQosMode != nil { + return *x.PopQosMode } return InsegEntryPopQosMode_INSEG_ENTRY_POP_QOS_MODE_UNSPECIFIED } func (x *SetInsegEntryAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetInsegEntryAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } -type isSetInsegEntryAttributeRequest_Attr interface { - isSetInsegEntryAttributeRequest_Attr() -} - -type SetInsegEntryAttributeRequest_NumOfPop struct { - NumOfPop uint32 `protobuf:"varint,2,opt,name=num_of_pop,json=numOfPop,proto3,oneof"` -} - -type SetInsegEntryAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetInsegEntryAttributeRequest_TrapPriority struct { - TrapPriority uint32 `protobuf:"varint,4,opt,name=trap_priority,json=trapPriority,proto3,oneof"` -} - -type SetInsegEntryAttributeRequest_NextHopId struct { - NextHopId uint64 `protobuf:"varint,5,opt,name=next_hop_id,json=nextHopId,proto3,oneof"` -} - -type SetInsegEntryAttributeRequest_PscType struct { - PscType InsegEntryPscType `protobuf:"varint,6,opt,name=psc_type,json=pscType,proto3,enum=lemming.dataplane.sai.InsegEntryPscType,oneof"` -} - -type SetInsegEntryAttributeRequest_QosTc struct { - QosTc uint32 `protobuf:"varint,7,opt,name=qos_tc,json=qosTc,proto3,oneof"` -} - -type SetInsegEntryAttributeRequest_MplsExpToTcMap struct { - MplsExpToTcMap uint64 `protobuf:"varint,8,opt,name=mpls_exp_to_tc_map,json=mplsExpToTcMap,proto3,oneof"` -} - -type SetInsegEntryAttributeRequest_MplsExpToColorMap struct { - MplsExpToColorMap uint64 `protobuf:"varint,9,opt,name=mpls_exp_to_color_map,json=mplsExpToColorMap,proto3,oneof"` -} - -type SetInsegEntryAttributeRequest_PopTtlMode struct { - PopTtlMode InsegEntryPopTtlMode `protobuf:"varint,10,opt,name=pop_ttl_mode,json=popTtlMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopTtlMode,oneof"` -} - -type SetInsegEntryAttributeRequest_PopQosMode struct { - PopQosMode InsegEntryPopQosMode `protobuf:"varint,11,opt,name=pop_qos_mode,json=popQosMode,proto3,enum=lemming.dataplane.sai.InsegEntryPopQosMode,oneof"` -} - -type SetInsegEntryAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,12,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -func (*SetInsegEntryAttributeRequest_NumOfPop) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_PacketAction) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_TrapPriority) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_NextHopId) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_PscType) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_QosTc) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_MplsExpToTcMap) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_MplsExpToColorMap) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_PopTtlMode) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_PopQosMode) isSetInsegEntryAttributeRequest_Attr() {} - -func (*SetInsegEntryAttributeRequest_CounterId) isSetInsegEntryAttributeRequest_Attr() {} - type SetInsegEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -671,7 +591,7 @@ type GetInsegEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*InsegEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *InsegEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetInsegEntryAttributeResponse) Reset() { @@ -706,7 +626,7 @@ func (*GetInsegEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_mpls_proto_rawDescGZIP(), []int{7} } -func (x *GetInsegEntryAttributeResponse) GetAttr() []*InsegEntryAttribute { +func (x *GetInsegEntryAttributeResponse) GetAttr() *InsegEntryAttribute { if x != nil { return x.Attr } @@ -722,180 +642,217 @@ var file_dataplane_standalone_proto_mpls_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf6, 0x04, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xac, 0x07, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x0a, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x50, 0x6f, 0x70, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, - 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x08, 0x70, 0x73, 0x63, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x50, + 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, + 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x08, 0x70, 0x73, 0x63, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x73, 0x63, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x07, 0x70, 0x73, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x05, 0x71, + 0x6f, 0x73, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x12, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0e, 0x6d, 0x70, 0x6c, + 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3b, + 0x0a, 0x15, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x11, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0c, 0x70, + 0x6f, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0c, 0x70, 0x6f, 0x70, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x73, - 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x70, 0x73, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, - 0x0a, 0x06, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x71, 0x6f, 0x73, 0x54, 0x63, 0x12, 0x2a, 0x0a, 0x12, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, - 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, - 0x70, 0x12, 0x30, 0x0a, 0x15, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, - 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x11, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x4d, 0x61, 0x70, 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x6f, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x54, - 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x6f, 0x70, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x51, 0x6f, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x0a, 0x17, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, - 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x05, 0x0a, - 0x1d, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, - 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, - 0x66, 0x5f, 0x70, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6e, - 0x75, 0x6d, 0x4f, 0x66, 0x50, 0x6f, 0x70, 0x12, 0x4a, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x72, - 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x08, - 0x70, 0x73, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x50, 0x73, 0x63, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x07, 0x70, 0x73, 0x63, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x12, 0x2c, 0x0a, 0x12, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x70, 0x6c, 0x73, - 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x70, 0x6c, - 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x4f, - 0x0a, 0x0c, 0x70, 0x6f, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, - 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, - 0x65, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x4f, 0x0a, 0x0c, 0x70, 0x6f, 0x70, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, - 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, - 0x64, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, - 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x1d, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, + 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, + 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, + 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x09, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x75, + 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, + 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x70, 0x73, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x71, 0x6f, + 0x73, 0x5f, 0x74, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x70, 0x5f, 0x74, 0x74, + 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x70, 0x5f, 0x71, + 0x6f, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, + 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xb5, 0x03, 0x0a, - 0x0e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x5f, 0x4f, 0x46, 0x5f, 0x50, 0x4f, 0x50, - 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, - 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, - 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, - 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, - 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x50, 0x53, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x49, - 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x49, 0x4e, 0x53, 0x45, - 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x50, 0x4c, - 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, 0x41, 0x50, 0x10, - 0x07, 0x12, 0x2a, 0x0a, 0x26, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, - 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x08, 0x12, 0x21, 0x0a, - 0x1d, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x09, - 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x10, 0x0a, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, - 0x49, 0x44, 0x10, 0x0b, 0x32, 0x88, 0x04, 0x0a, 0x04, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x75, 0x0a, - 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, - 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x73, 0x65, 0x22, 0xb2, 0x07, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, + 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x27, 0x0a, + 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x4f, 0x66, + 0x50, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, + 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x08, 0x70, 0x73, 0x63, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, - 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, + 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x73, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x07, 0x70, 0x73, 0x63, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x05, + 0x71, 0x6f, 0x73, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x12, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0e, 0x6d, 0x70, + 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x15, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x11, 0x6d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, + 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0c, + 0x70, 0x6f, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0c, 0x70, 0x6f, 0x70, 0x5f, 0x71, 0x6f, + 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, - 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, - 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, - 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, + 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, + 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x70, 0x51, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x09, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, + 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x73, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x71, + 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x70, 0x5f, 0x74, + 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x70, 0x5f, + 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x49, 0x6e, + 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x1d, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, + 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, + 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xb5, 0x03, 0x0a, 0x0e, 0x49, + 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, + 0x1c, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x5f, 0x4f, 0x46, 0x5f, 0x50, 0x4f, 0x50, 0x10, 0x01, + 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x53, 0x45, + 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x58, + 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, + 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x53, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x53, + 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, + 0x53, 0x5f, 0x54, 0x43, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, + 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x07, 0x12, + 0x2a, 0x0a, 0x26, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, + 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x49, + 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x50, 0x4f, 0x50, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x09, 0x12, 0x21, + 0x0a, 0x1d, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, + 0x0a, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, + 0x10, 0x0b, 0x32, 0x88, 0x04, 0x0a, 0x04, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x75, 0x0a, 0x10, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, + 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x73, 0x65, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, + 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, + 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1063,19 +1020,8 @@ func file_dataplane_standalone_proto_mpls_proto_init() { } } } - file_dataplane_standalone_proto_mpls_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetInsegEntryAttributeRequest_NumOfPop)(nil), - (*SetInsegEntryAttributeRequest_PacketAction)(nil), - (*SetInsegEntryAttributeRequest_TrapPriority)(nil), - (*SetInsegEntryAttributeRequest_NextHopId)(nil), - (*SetInsegEntryAttributeRequest_PscType)(nil), - (*SetInsegEntryAttributeRequest_QosTc)(nil), - (*SetInsegEntryAttributeRequest_MplsExpToTcMap)(nil), - (*SetInsegEntryAttributeRequest_MplsExpToColorMap)(nil), - (*SetInsegEntryAttributeRequest_PopTtlMode)(nil), - (*SetInsegEntryAttributeRequest_PopQosMode)(nil), - (*SetInsegEntryAttributeRequest_CounterId)(nil), - } + file_dataplane_standalone_proto_mpls_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_mpls_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/mpls.proto b/dataplane/standalone/proto/mpls.proto index 60e23be4..92d22b7e 100644 --- a/dataplane/standalone/proto/mpls.proto +++ b/dataplane/standalone/proto/mpls.proto @@ -7,94 +7,77 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum InsegEntryAttr { - INSEG_ENTRY_ATTR_UNSPECIFIED = 0; - INSEG_ENTRY_ATTR_NUM_OF_POP = 1; - INSEG_ENTRY_ATTR_PACKET_ACTION = 2; - INSEG_ENTRY_ATTR_TRAP_PRIORITY = 3; - INSEG_ENTRY_ATTR_NEXT_HOP_ID = 4; - INSEG_ENTRY_ATTR_PSC_TYPE = 5; - INSEG_ENTRY_ATTR_QOS_TC = 6; - INSEG_ENTRY_ATTR_MPLS_EXP_TO_TC_MAP = 7; - INSEG_ENTRY_ATTR_MPLS_EXP_TO_COLOR_MAP = 8; - INSEG_ENTRY_ATTR_POP_TTL_MODE = 9; - INSEG_ENTRY_ATTR_POP_QOS_MODE = 10; - INSEG_ENTRY_ATTR_COUNTER_ID = 11; + INSEG_ENTRY_ATTR_UNSPECIFIED = 0; + INSEG_ENTRY_ATTR_NUM_OF_POP = 1; + INSEG_ENTRY_ATTR_PACKET_ACTION = 2; + INSEG_ENTRY_ATTR_TRAP_PRIORITY = 3; + INSEG_ENTRY_ATTR_NEXT_HOP_ID = 4; + INSEG_ENTRY_ATTR_PSC_TYPE = 5; + INSEG_ENTRY_ATTR_QOS_TC = 6; + INSEG_ENTRY_ATTR_MPLS_EXP_TO_TC_MAP = 7; + INSEG_ENTRY_ATTR_MPLS_EXP_TO_COLOR_MAP = 8; + INSEG_ENTRY_ATTR_POP_TTL_MODE = 9; + INSEG_ENTRY_ATTR_POP_QOS_MODE = 10; + INSEG_ENTRY_ATTR_COUNTER_ID = 11; } message CreateInsegEntryRequest { - InsegEntry entry = 1; - - uint32 num_of_pop = 2; - PacketAction packet_action = 3; - uint32 trap_priority = 4; - uint64 next_hop_id = 5; - InsegEntryPscType psc_type = 6; - uint32 qos_tc = 7; - uint64 mpls_exp_to_tc_map = 8; - uint64 mpls_exp_to_color_map = 9; - InsegEntryPopTtlMode pop_ttl_mode = 10; - InsegEntryPopQosMode pop_qos_mode = 11; - uint64 counter_id = 12; - + InsegEntry entry = 1; + optional uint32 num_of_pop = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint32 trap_priority = 4 [(attr_enum_value) = 3]; + optional uint64 next_hop_id = 5 [(attr_enum_value) = 4]; + optional InsegEntryPscType psc_type = 6 [(attr_enum_value) = 5]; + optional uint32 qos_tc = 7 [(attr_enum_value) = 6]; + optional uint64 mpls_exp_to_tc_map = 8 [(attr_enum_value) = 7]; + optional uint64 mpls_exp_to_color_map = 9 [(attr_enum_value) = 8]; + optional InsegEntryPopTtlMode pop_ttl_mode = 10 [(attr_enum_value) = 9]; + optional InsegEntryPopQosMode pop_qos_mode = 11 [(attr_enum_value) = 10]; + optional uint64 counter_id = 12 [(attr_enum_value) = 11]; } -message CreateInsegEntryResponse { - - -} +message CreateInsegEntryResponse {} message RemoveInsegEntryRequest { - InsegEntry entry = 1; - - + InsegEntry entry = 1; } -message RemoveInsegEntryResponse { - - -} +message RemoveInsegEntryResponse {} message SetInsegEntryAttributeRequest { - InsegEntry entry = 1; - oneof attr { - uint32 num_of_pop = 2; - PacketAction packet_action = 3; - uint32 trap_priority = 4; - uint64 next_hop_id = 5; - InsegEntryPscType psc_type = 6; - uint32 qos_tc = 7; - uint64 mpls_exp_to_tc_map = 8; - uint64 mpls_exp_to_color_map = 9; - InsegEntryPopTtlMode pop_ttl_mode = 10; - InsegEntryPopQosMode pop_qos_mode = 11; - uint64 counter_id = 12; - } + InsegEntry entry = 1; + optional uint32 num_of_pop = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint32 trap_priority = 4 [(attr_enum_value) = 3]; + optional uint64 next_hop_id = 5 [(attr_enum_value) = 4]; + optional InsegEntryPscType psc_type = 6 [(attr_enum_value) = 5]; + optional uint32 qos_tc = 7 [(attr_enum_value) = 6]; + optional uint64 mpls_exp_to_tc_map = 8 [(attr_enum_value) = 7]; + optional uint64 mpls_exp_to_color_map = 9 [(attr_enum_value) = 8]; + optional InsegEntryPopTtlMode pop_ttl_mode = 10 [(attr_enum_value) = 9]; + optional InsegEntryPopQosMode pop_qos_mode = 11 [(attr_enum_value) = 10]; + optional uint64 counter_id = 12 [(attr_enum_value) = 11]; } -message SetInsegEntryAttributeResponse { - - -} +message SetInsegEntryAttributeResponse {} message GetInsegEntryAttributeRequest { - InsegEntry entry = 1; - repeated InsegEntryAttr attr_type = 2; - - + InsegEntry entry = 1; + repeated InsegEntryAttr attr_type = 2; } message GetInsegEntryAttributeResponse { - repeated InsegEntryAttribute attr = 1; - - + InsegEntryAttribute attr = 1; } - service Mpls { - rpc CreateInsegEntry (CreateInsegEntryRequest) returns (CreateInsegEntryResponse) {} - rpc RemoveInsegEntry (RemoveInsegEntryRequest) returns (RemoveInsegEntryResponse) {} - rpc SetInsegEntryAttribute (SetInsegEntryAttributeRequest) returns (SetInsegEntryAttributeResponse) {} - rpc GetInsegEntryAttribute (GetInsegEntryAttributeRequest) returns (GetInsegEntryAttributeResponse) {} + rpc CreateInsegEntry(CreateInsegEntryRequest) + returns (CreateInsegEntryResponse) {} + rpc RemoveInsegEntry(RemoveInsegEntryRequest) + returns (RemoveInsegEntryResponse) {} + rpc SetInsegEntryAttribute(SetInsegEntryAttributeRequest) + returns (SetInsegEntryAttributeResponse) {} + rpc GetInsegEntryAttribute(GetInsegEntryAttributeRequest) + returns (GetInsegEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/my_mac.pb.go b/dataplane/standalone/proto/my_mac.pb.go index b72eee54..d5a297e1 100755 --- a/dataplane/standalone/proto/my_mac.pb.go +++ b/dataplane/standalone/proto/my_mac.pb.go @@ -87,12 +87,12 @@ type CreateMyMacRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Priority uint32 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"` - PortId uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - VlanId uint32 `protobuf:"varint,4,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - MacAddress []byte `protobuf:"bytes,5,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` - MacAddressMask []byte `protobuf:"bytes,6,opt,name=mac_address_mask,json=macAddressMask,proto3" json:"mac_address_mask,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Priority *uint32 `protobuf:"varint,2,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + PortId *uint64 `protobuf:"varint,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + VlanId *uint32 `protobuf:"varint,4,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + MacAddress []byte `protobuf:"bytes,5,opt,name=mac_address,json=macAddress,proto3,oneof" json:"mac_address,omitempty"` + MacAddressMask []byte `protobuf:"bytes,6,opt,name=mac_address_mask,json=macAddressMask,proto3,oneof" json:"mac_address_mask,omitempty"` } func (x *CreateMyMacRequest) Reset() { @@ -135,22 +135,22 @@ func (x *CreateMyMacRequest) GetSwitch() uint64 { } func (x *CreateMyMacRequest) GetPriority() uint32 { - if x != nil { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } func (x *CreateMyMacRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *CreateMyMacRequest) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } @@ -306,11 +306,8 @@ type SetMyMacAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetMyMacAttributeRequest_Priority - Attr isSetMyMacAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Priority *uint32 `protobuf:"varint,2,opt,name=priority,proto3,oneof" json:"priority,omitempty"` } func (x *SetMyMacAttributeRequest) Reset() { @@ -352,30 +349,13 @@ func (x *SetMyMacAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetMyMacAttributeRequest) GetAttr() isSetMyMacAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetMyMacAttributeRequest) GetPriority() uint32 { - if x, ok := x.GetAttr().(*SetMyMacAttributeRequest_Priority); ok { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } -type isSetMyMacAttributeRequest_Attr interface { - isSetMyMacAttributeRequest_Attr() -} - -type SetMyMacAttributeRequest_Priority struct { - Priority uint32 `protobuf:"varint,2,opt,name=priority,proto3,oneof"` -} - -func (*SetMyMacAttributeRequest_Priority) isSetMyMacAttributeRequest_Attr() {} - type SetMyMacAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -474,7 +454,7 @@ type GetMyMacAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*MyMacAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *MyMacAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMyMacAttributeResponse) Reset() { @@ -509,7 +489,7 @@ func (*GetMyMacAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_my_mac_proto_rawDescGZIP(), []int{7} } -func (x *GetMyMacAttributeResponse) GetAttr() []*MyMacAttribute { +func (x *GetMyMacAttributeResponse) GetAttr() *MyMacAttribute { if x != nil { return x.Attr } @@ -525,90 +505,99 @@ var file_dataplane_standalone_proto_my_mac_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x43, 0x72, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x02, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, - 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x61, 0x63, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0e, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x73, - 0x6b, 0x22, 0x27, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x4d, 0x61, - 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x0a, 0x18, 0x53, 0x65, 0x74, - 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1b, 0x0a, - 0x19, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x18, 0x47, 0x65, + 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x06, 0x76, 0x6c, + 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x22, 0x27, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x61, + 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x12, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x4d, + 0x61, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, - 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x56, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x79, - 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x4d, 0x61, 0x63, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, - 0xb3, 0x01, 0x0a, 0x09, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, - 0x17, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x59, - 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, - 0x54, 0x59, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, - 0x13, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, - 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, - 0x53, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, - 0x41, 0x53, 0x4b, 0x10, 0x05, 0x32, 0xcb, 0x03, 0x0a, 0x05, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x12, - 0x66, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x12, 0x29, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, - 0x61, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x12, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x78, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1b, 0x0a, 0x19, + 0x53, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, + 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x56, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, + 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xb3, + 0x01, 0x0a, 0x09, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x17, + 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x59, 0x5f, + 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, + 0x59, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, + 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, + 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x41, + 0x53, 0x4b, 0x10, 0x05, 0x32, 0xcb, 0x03, 0x0a, 0x05, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x12, 0x66, + 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x12, 0x29, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x61, + 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x12, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, + 0x79, 0x4d, 0x61, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, + 0x0a, 0x11, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, + 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, + 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x61, 0x63, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -759,9 +748,8 @@ func file_dataplane_standalone_proto_my_mac_proto_init() { } } } - file_dataplane_standalone_proto_my_mac_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetMyMacAttributeRequest_Priority)(nil), - } + file_dataplane_standalone_proto_my_mac_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_my_mac_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/my_mac.proto b/dataplane/standalone/proto/my_mac.proto index 4e537030..06f76697 100644 --- a/dataplane/standalone/proto/my_mac.proto +++ b/dataplane/standalone/proto/my_mac.proto @@ -7,73 +7,55 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum MyMacAttr { - MY_MAC_ATTR_UNSPECIFIED = 0; - MY_MAC_ATTR_PRIORITY = 1; - MY_MAC_ATTR_PORT_ID = 2; - MY_MAC_ATTR_VLAN_ID = 3; - MY_MAC_ATTR_MAC_ADDRESS = 4; - MY_MAC_ATTR_MAC_ADDRESS_MASK = 5; + MY_MAC_ATTR_UNSPECIFIED = 0; + MY_MAC_ATTR_PRIORITY = 1; + MY_MAC_ATTR_PORT_ID = 2; + MY_MAC_ATTR_VLAN_ID = 3; + MY_MAC_ATTR_MAC_ADDRESS = 4; + MY_MAC_ATTR_MAC_ADDRESS_MASK = 5; } message CreateMyMacRequest { - uint64 switch = 1; - - uint32 priority = 2; - uint64 port_id = 3; - uint32 vlan_id = 4; - bytes mac_address = 5; - bytes mac_address_mask = 6; - + uint64 switch = 1; + optional uint32 priority = 2 [(attr_enum_value) = 1]; + optional uint64 port_id = 3 [(attr_enum_value) = 2]; + optional uint32 vlan_id = 4 [(attr_enum_value) = 3]; + optional bytes mac_address = 5 [(attr_enum_value) = 4]; + optional bytes mac_address_mask = 6 [(attr_enum_value) = 5]; } message CreateMyMacResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveMyMacRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveMyMacResponse { - - -} +message RemoveMyMacResponse {} message SetMyMacAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 priority = 2; - } + uint64 oid = 1; + optional uint32 priority = 2 [(attr_enum_value) = 1]; } -message SetMyMacAttributeResponse { - - -} +message SetMyMacAttributeResponse {} message GetMyMacAttributeRequest { - uint64 oid = 1; - repeated MyMacAttr attr_type = 2; - - + uint64 oid = 1; + repeated MyMacAttr attr_type = 2; } message GetMyMacAttributeResponse { - repeated MyMacAttribute attr = 1; - - + MyMacAttribute attr = 1; } - service MyMac { - rpc CreateMyMac (CreateMyMacRequest) returns (CreateMyMacResponse) {} - rpc RemoveMyMac (RemoveMyMacRequest) returns (RemoveMyMacResponse) {} - rpc SetMyMacAttribute (SetMyMacAttributeRequest) returns (SetMyMacAttributeResponse) {} - rpc GetMyMacAttribute (GetMyMacAttributeRequest) returns (GetMyMacAttributeResponse) {} + rpc CreateMyMac(CreateMyMacRequest) returns (CreateMyMacResponse) {} + rpc RemoveMyMac(RemoveMyMacRequest) returns (RemoveMyMacResponse) {} + rpc SetMyMacAttribute(SetMyMacAttributeRequest) + returns (SetMyMacAttributeResponse) {} + rpc GetMyMacAttribute(GetMyMacAttributeRequest) + returns (GetMyMacAttributeResponse) {} } diff --git a/dataplane/standalone/proto/nat.pb.go b/dataplane/standalone/proto/nat.pb.go index 1ff78876..3875191f 100755 --- a/dataplane/standalone/proto/nat.pb.go +++ b/dataplane/standalone/proto/nat.pb.go @@ -182,20 +182,20 @@ type CreateNatEntryRequest struct { unknownFields protoimpl.UnknownFields Entry *NatEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - NatType NatType `protobuf:"varint,2,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType" json:"nat_type,omitempty"` - SrcIp []byte `protobuf:"bytes,3,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` - SrcIpMask []byte `protobuf:"bytes,4,opt,name=src_ip_mask,json=srcIpMask,proto3" json:"src_ip_mask,omitempty"` - VrId uint64 `protobuf:"varint,5,opt,name=vr_id,json=vrId,proto3" json:"vr_id,omitempty"` - DstIp []byte `protobuf:"bytes,6,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - DstIpMask []byte `protobuf:"bytes,7,opt,name=dst_ip_mask,json=dstIpMask,proto3" json:"dst_ip_mask,omitempty"` - L4SrcPort uint32 `protobuf:"varint,8,opt,name=l4_src_port,json=l4SrcPort,proto3" json:"l4_src_port,omitempty"` - L4DstPort uint32 `protobuf:"varint,9,opt,name=l4_dst_port,json=l4DstPort,proto3" json:"l4_dst_port,omitempty"` - EnablePacketCount bool `protobuf:"varint,10,opt,name=enable_packet_count,json=enablePacketCount,proto3" json:"enable_packet_count,omitempty"` - PacketCount uint64 `protobuf:"varint,11,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"` - EnableByteCount bool `protobuf:"varint,12,opt,name=enable_byte_count,json=enableByteCount,proto3" json:"enable_byte_count,omitempty"` - ByteCount uint64 `protobuf:"varint,13,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"` - HitBitCor bool `protobuf:"varint,14,opt,name=hit_bit_cor,json=hitBitCor,proto3" json:"hit_bit_cor,omitempty"` - HitBit bool `protobuf:"varint,15,opt,name=hit_bit,json=hitBit,proto3" json:"hit_bit,omitempty"` + NatType *NatType `protobuf:"varint,2,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType,oneof" json:"nat_type,omitempty"` + SrcIp []byte `protobuf:"bytes,3,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + SrcIpMask []byte `protobuf:"bytes,4,opt,name=src_ip_mask,json=srcIpMask,proto3,oneof" json:"src_ip_mask,omitempty"` + VrId *uint64 `protobuf:"varint,5,opt,name=vr_id,json=vrId,proto3,oneof" json:"vr_id,omitempty"` + DstIp []byte `protobuf:"bytes,6,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + DstIpMask []byte `protobuf:"bytes,7,opt,name=dst_ip_mask,json=dstIpMask,proto3,oneof" json:"dst_ip_mask,omitempty"` + L4SrcPort *uint32 `protobuf:"varint,8,opt,name=l4_src_port,json=l4SrcPort,proto3,oneof" json:"l4_src_port,omitempty"` + L4DstPort *uint32 `protobuf:"varint,9,opt,name=l4_dst_port,json=l4DstPort,proto3,oneof" json:"l4_dst_port,omitempty"` + EnablePacketCount *bool `protobuf:"varint,10,opt,name=enable_packet_count,json=enablePacketCount,proto3,oneof" json:"enable_packet_count,omitempty"` + PacketCount *uint64 `protobuf:"varint,11,opt,name=packet_count,json=packetCount,proto3,oneof" json:"packet_count,omitempty"` + EnableByteCount *bool `protobuf:"varint,12,opt,name=enable_byte_count,json=enableByteCount,proto3,oneof" json:"enable_byte_count,omitempty"` + ByteCount *uint64 `protobuf:"varint,13,opt,name=byte_count,json=byteCount,proto3,oneof" json:"byte_count,omitempty"` + HitBitCor *bool `protobuf:"varint,14,opt,name=hit_bit_cor,json=hitBitCor,proto3,oneof" json:"hit_bit_cor,omitempty"` + HitBit *bool `protobuf:"varint,15,opt,name=hit_bit,json=hitBit,proto3,oneof" json:"hit_bit,omitempty"` } func (x *CreateNatEntryRequest) Reset() { @@ -238,8 +238,8 @@ func (x *CreateNatEntryRequest) GetEntry() *NatEntry { } func (x *CreateNatEntryRequest) GetNatType() NatType { - if x != nil { - return x.NatType + if x != nil && x.NatType != nil { + return *x.NatType } return NatType_NAT_TYPE_UNSPECIFIED } @@ -259,8 +259,8 @@ func (x *CreateNatEntryRequest) GetSrcIpMask() []byte { } func (x *CreateNatEntryRequest) GetVrId() uint64 { - if x != nil { - return x.VrId + if x != nil && x.VrId != nil { + return *x.VrId } return 0 } @@ -280,57 +280,57 @@ func (x *CreateNatEntryRequest) GetDstIpMask() []byte { } func (x *CreateNatEntryRequest) GetL4SrcPort() uint32 { - if x != nil { - return x.L4SrcPort + if x != nil && x.L4SrcPort != nil { + return *x.L4SrcPort } return 0 } func (x *CreateNatEntryRequest) GetL4DstPort() uint32 { - if x != nil { - return x.L4DstPort + if x != nil && x.L4DstPort != nil { + return *x.L4DstPort } return 0 } func (x *CreateNatEntryRequest) GetEnablePacketCount() bool { - if x != nil { - return x.EnablePacketCount + if x != nil && x.EnablePacketCount != nil { + return *x.EnablePacketCount } return false } func (x *CreateNatEntryRequest) GetPacketCount() uint64 { - if x != nil { - return x.PacketCount + if x != nil && x.PacketCount != nil { + return *x.PacketCount } return 0 } func (x *CreateNatEntryRequest) GetEnableByteCount() bool { - if x != nil { - return x.EnableByteCount + if x != nil && x.EnableByteCount != nil { + return *x.EnableByteCount } return false } func (x *CreateNatEntryRequest) GetByteCount() uint64 { - if x != nil { - return x.ByteCount + if x != nil && x.ByteCount != nil { + return *x.ByteCount } return 0 } func (x *CreateNatEntryRequest) GetHitBitCor() bool { - if x != nil { - return x.HitBitCor + if x != nil && x.HitBitCor != nil { + return *x.HitBitCor } return false } func (x *CreateNatEntryRequest) GetHitBit() bool { - if x != nil { - return x.HitBit + if x != nil && x.HitBit != nil { + return *x.HitBit } return false } @@ -463,24 +463,21 @@ type SetNatEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *NatEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetNatEntryAttributeRequest_NatType - // *SetNatEntryAttributeRequest_SrcIp - // *SetNatEntryAttributeRequest_SrcIpMask - // *SetNatEntryAttributeRequest_VrId - // *SetNatEntryAttributeRequest_DstIp - // *SetNatEntryAttributeRequest_DstIpMask - // *SetNatEntryAttributeRequest_L4SrcPort - // *SetNatEntryAttributeRequest_L4DstPort - // *SetNatEntryAttributeRequest_EnablePacketCount - // *SetNatEntryAttributeRequest_PacketCount - // *SetNatEntryAttributeRequest_EnableByteCount - // *SetNatEntryAttributeRequest_ByteCount - // *SetNatEntryAttributeRequest_HitBitCor - // *SetNatEntryAttributeRequest_HitBit - Attr isSetNatEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *NatEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + NatType *NatType `protobuf:"varint,2,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType,oneof" json:"nat_type,omitempty"` + SrcIp []byte `protobuf:"bytes,3,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + SrcIpMask []byte `protobuf:"bytes,4,opt,name=src_ip_mask,json=srcIpMask,proto3,oneof" json:"src_ip_mask,omitempty"` + VrId *uint64 `protobuf:"varint,5,opt,name=vr_id,json=vrId,proto3,oneof" json:"vr_id,omitempty"` + DstIp []byte `protobuf:"bytes,6,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + DstIpMask []byte `protobuf:"bytes,7,opt,name=dst_ip_mask,json=dstIpMask,proto3,oneof" json:"dst_ip_mask,omitempty"` + L4SrcPort *uint32 `protobuf:"varint,8,opt,name=l4_src_port,json=l4SrcPort,proto3,oneof" json:"l4_src_port,omitempty"` + L4DstPort *uint32 `protobuf:"varint,9,opt,name=l4_dst_port,json=l4DstPort,proto3,oneof" json:"l4_dst_port,omitempty"` + EnablePacketCount *bool `protobuf:"varint,10,opt,name=enable_packet_count,json=enablePacketCount,proto3,oneof" json:"enable_packet_count,omitempty"` + PacketCount *uint64 `protobuf:"varint,11,opt,name=packet_count,json=packetCount,proto3,oneof" json:"packet_count,omitempty"` + EnableByteCount *bool `protobuf:"varint,12,opt,name=enable_byte_count,json=enableByteCount,proto3,oneof" json:"enable_byte_count,omitempty"` + ByteCount *uint64 `protobuf:"varint,13,opt,name=byte_count,json=byteCount,proto3,oneof" json:"byte_count,omitempty"` + HitBitCor *bool `protobuf:"varint,14,opt,name=hit_bit_cor,json=hitBitCor,proto3,oneof" json:"hit_bit_cor,omitempty"` + HitBit *bool `protobuf:"varint,15,opt,name=hit_bit,json=hitBit,proto3,oneof" json:"hit_bit,omitempty"` } func (x *SetNatEntryAttributeRequest) Reset() { @@ -522,199 +519,104 @@ func (x *SetNatEntryAttributeRequest) GetEntry() *NatEntry { return nil } -func (m *SetNatEntryAttributeRequest) GetAttr() isSetNatEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetNatEntryAttributeRequest) GetNatType() NatType { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_NatType); ok { - return x.NatType + if x != nil && x.NatType != nil { + return *x.NatType } return NatType_NAT_TYPE_UNSPECIFIED } func (x *SetNatEntryAttributeRequest) GetSrcIp() []byte { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_SrcIp); ok { + if x != nil { return x.SrcIp } return nil } func (x *SetNatEntryAttributeRequest) GetSrcIpMask() []byte { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_SrcIpMask); ok { + if x != nil { return x.SrcIpMask } return nil } func (x *SetNatEntryAttributeRequest) GetVrId() uint64 { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_VrId); ok { - return x.VrId + if x != nil && x.VrId != nil { + return *x.VrId } return 0 } func (x *SetNatEntryAttributeRequest) GetDstIp() []byte { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_DstIp); ok { + if x != nil { return x.DstIp } return nil } func (x *SetNatEntryAttributeRequest) GetDstIpMask() []byte { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_DstIpMask); ok { + if x != nil { return x.DstIpMask } return nil } func (x *SetNatEntryAttributeRequest) GetL4SrcPort() uint32 { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_L4SrcPort); ok { - return x.L4SrcPort + if x != nil && x.L4SrcPort != nil { + return *x.L4SrcPort } return 0 } func (x *SetNatEntryAttributeRequest) GetL4DstPort() uint32 { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_L4DstPort); ok { - return x.L4DstPort + if x != nil && x.L4DstPort != nil { + return *x.L4DstPort } return 0 } func (x *SetNatEntryAttributeRequest) GetEnablePacketCount() bool { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_EnablePacketCount); ok { - return x.EnablePacketCount + if x != nil && x.EnablePacketCount != nil { + return *x.EnablePacketCount } return false } func (x *SetNatEntryAttributeRequest) GetPacketCount() uint64 { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_PacketCount); ok { - return x.PacketCount + if x != nil && x.PacketCount != nil { + return *x.PacketCount } return 0 } func (x *SetNatEntryAttributeRequest) GetEnableByteCount() bool { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_EnableByteCount); ok { - return x.EnableByteCount + if x != nil && x.EnableByteCount != nil { + return *x.EnableByteCount } return false } func (x *SetNatEntryAttributeRequest) GetByteCount() uint64 { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_ByteCount); ok { - return x.ByteCount + if x != nil && x.ByteCount != nil { + return *x.ByteCount } return 0 } func (x *SetNatEntryAttributeRequest) GetHitBitCor() bool { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_HitBitCor); ok { - return x.HitBitCor + if x != nil && x.HitBitCor != nil { + return *x.HitBitCor } return false } func (x *SetNatEntryAttributeRequest) GetHitBit() bool { - if x, ok := x.GetAttr().(*SetNatEntryAttributeRequest_HitBit); ok { - return x.HitBit + if x != nil && x.HitBit != nil { + return *x.HitBit } return false } -type isSetNatEntryAttributeRequest_Attr interface { - isSetNatEntryAttributeRequest_Attr() -} - -type SetNatEntryAttributeRequest_NatType struct { - NatType NatType `protobuf:"varint,2,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType,oneof"` -} - -type SetNatEntryAttributeRequest_SrcIp struct { - SrcIp []byte `protobuf:"bytes,3,opt,name=src_ip,json=srcIp,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_SrcIpMask struct { - SrcIpMask []byte `protobuf:"bytes,4,opt,name=src_ip_mask,json=srcIpMask,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_VrId struct { - VrId uint64 `protobuf:"varint,5,opt,name=vr_id,json=vrId,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_DstIp struct { - DstIp []byte `protobuf:"bytes,6,opt,name=dst_ip,json=dstIp,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_DstIpMask struct { - DstIpMask []byte `protobuf:"bytes,7,opt,name=dst_ip_mask,json=dstIpMask,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_L4SrcPort struct { - L4SrcPort uint32 `protobuf:"varint,8,opt,name=l4_src_port,json=l4SrcPort,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_L4DstPort struct { - L4DstPort uint32 `protobuf:"varint,9,opt,name=l4_dst_port,json=l4DstPort,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_EnablePacketCount struct { - EnablePacketCount bool `protobuf:"varint,10,opt,name=enable_packet_count,json=enablePacketCount,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_PacketCount struct { - PacketCount uint64 `protobuf:"varint,11,opt,name=packet_count,json=packetCount,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_EnableByteCount struct { - EnableByteCount bool `protobuf:"varint,12,opt,name=enable_byte_count,json=enableByteCount,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_ByteCount struct { - ByteCount uint64 `protobuf:"varint,13,opt,name=byte_count,json=byteCount,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_HitBitCor struct { - HitBitCor bool `protobuf:"varint,14,opt,name=hit_bit_cor,json=hitBitCor,proto3,oneof"` -} - -type SetNatEntryAttributeRequest_HitBit struct { - HitBit bool `protobuf:"varint,15,opt,name=hit_bit,json=hitBit,proto3,oneof"` -} - -func (*SetNatEntryAttributeRequest_NatType) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_SrcIp) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_SrcIpMask) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_VrId) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_DstIp) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_DstIpMask) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_L4SrcPort) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_L4DstPort) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_EnablePacketCount) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_PacketCount) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_EnableByteCount) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_ByteCount) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_HitBitCor) isSetNatEntryAttributeRequest_Attr() {} - -func (*SetNatEntryAttributeRequest_HitBit) isSetNatEntryAttributeRequest_Attr() {} - type SetNatEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -813,7 +715,7 @@ type GetNatEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*NatEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *NatEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetNatEntryAttributeResponse) Reset() { @@ -848,7 +750,7 @@ func (*GetNatEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_nat_proto_rawDescGZIP(), []int{7} } -func (x *GetNatEntryAttributeResponse) GetAttr() []*NatEntryAttribute { +func (x *GetNatEntryAttributeResponse) GetAttr() *NatEntryAttribute { if x != nil { return x.Attr } @@ -860,15 +762,15 @@ type CreateNatZoneCounterRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - NatType NatType `protobuf:"varint,2,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType" json:"nat_type,omitempty"` - ZoneId uint32 `protobuf:"varint,3,opt,name=zone_id,json=zoneId,proto3" json:"zone_id,omitempty"` - EnableDiscard bool `protobuf:"varint,4,opt,name=enable_discard,json=enableDiscard,proto3" json:"enable_discard,omitempty"` - DiscardPacketCount uint64 `protobuf:"varint,5,opt,name=discard_packet_count,json=discardPacketCount,proto3" json:"discard_packet_count,omitempty"` - EnableTranslationNeeded bool `protobuf:"varint,6,opt,name=enable_translation_needed,json=enableTranslationNeeded,proto3" json:"enable_translation_needed,omitempty"` - TranslationNeededPacketCount uint64 `protobuf:"varint,7,opt,name=translation_needed_packet_count,json=translationNeededPacketCount,proto3" json:"translation_needed_packet_count,omitempty"` - EnableTranslations bool `protobuf:"varint,8,opt,name=enable_translations,json=enableTranslations,proto3" json:"enable_translations,omitempty"` - TranslationsPacketCount uint64 `protobuf:"varint,9,opt,name=translations_packet_count,json=translationsPacketCount,proto3" json:"translations_packet_count,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + NatType *NatType `protobuf:"varint,2,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType,oneof" json:"nat_type,omitempty"` + ZoneId *uint32 `protobuf:"varint,3,opt,name=zone_id,json=zoneId,proto3,oneof" json:"zone_id,omitempty"` + EnableDiscard *bool `protobuf:"varint,4,opt,name=enable_discard,json=enableDiscard,proto3,oneof" json:"enable_discard,omitempty"` + DiscardPacketCount *uint64 `protobuf:"varint,5,opt,name=discard_packet_count,json=discardPacketCount,proto3,oneof" json:"discard_packet_count,omitempty"` + EnableTranslationNeeded *bool `protobuf:"varint,6,opt,name=enable_translation_needed,json=enableTranslationNeeded,proto3,oneof" json:"enable_translation_needed,omitempty"` + TranslationNeededPacketCount *uint64 `protobuf:"varint,7,opt,name=translation_needed_packet_count,json=translationNeededPacketCount,proto3,oneof" json:"translation_needed_packet_count,omitempty"` + EnableTranslations *bool `protobuf:"varint,8,opt,name=enable_translations,json=enableTranslations,proto3,oneof" json:"enable_translations,omitempty"` + TranslationsPacketCount *uint64 `protobuf:"varint,9,opt,name=translations_packet_count,json=translationsPacketCount,proto3,oneof" json:"translations_packet_count,omitempty"` } func (x *CreateNatZoneCounterRequest) Reset() { @@ -911,57 +813,57 @@ func (x *CreateNatZoneCounterRequest) GetSwitch() uint64 { } func (x *CreateNatZoneCounterRequest) GetNatType() NatType { - if x != nil { - return x.NatType + if x != nil && x.NatType != nil { + return *x.NatType } return NatType_NAT_TYPE_UNSPECIFIED } func (x *CreateNatZoneCounterRequest) GetZoneId() uint32 { - if x != nil { - return x.ZoneId + if x != nil && x.ZoneId != nil { + return *x.ZoneId } return 0 } func (x *CreateNatZoneCounterRequest) GetEnableDiscard() bool { - if x != nil { - return x.EnableDiscard + if x != nil && x.EnableDiscard != nil { + return *x.EnableDiscard } return false } func (x *CreateNatZoneCounterRequest) GetDiscardPacketCount() uint64 { - if x != nil { - return x.DiscardPacketCount + if x != nil && x.DiscardPacketCount != nil { + return *x.DiscardPacketCount } return 0 } func (x *CreateNatZoneCounterRequest) GetEnableTranslationNeeded() bool { - if x != nil { - return x.EnableTranslationNeeded + if x != nil && x.EnableTranslationNeeded != nil { + return *x.EnableTranslationNeeded } return false } func (x *CreateNatZoneCounterRequest) GetTranslationNeededPacketCount() uint64 { - if x != nil { - return x.TranslationNeededPacketCount + if x != nil && x.TranslationNeededPacketCount != nil { + return *x.TranslationNeededPacketCount } return 0 } func (x *CreateNatZoneCounterRequest) GetEnableTranslations() bool { - if x != nil { - return x.EnableTranslations + if x != nil && x.EnableTranslations != nil { + return *x.EnableTranslations } return false } func (x *CreateNatZoneCounterRequest) GetTranslationsPacketCount() uint64 { - if x != nil { - return x.TranslationsPacketCount + if x != nil && x.TranslationsPacketCount != nil { + return *x.TranslationsPacketCount } return 0 } @@ -1103,15 +1005,12 @@ type SetNatZoneCounterAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetNatZoneCounterAttributeRequest_NatType - // *SetNatZoneCounterAttributeRequest_ZoneId - // *SetNatZoneCounterAttributeRequest_DiscardPacketCount - // *SetNatZoneCounterAttributeRequest_TranslationNeededPacketCount - // *SetNatZoneCounterAttributeRequest_TranslationsPacketCount - Attr isSetNatZoneCounterAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + NatType *NatType `protobuf:"varint,2,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType,oneof" json:"nat_type,omitempty"` + ZoneId *uint32 `protobuf:"varint,3,opt,name=zone_id,json=zoneId,proto3,oneof" json:"zone_id,omitempty"` + DiscardPacketCount *uint64 `protobuf:"varint,4,opt,name=discard_packet_count,json=discardPacketCount,proto3,oneof" json:"discard_packet_count,omitempty"` + TranslationNeededPacketCount *uint64 `protobuf:"varint,5,opt,name=translation_needed_packet_count,json=translationNeededPacketCount,proto3,oneof" json:"translation_needed_packet_count,omitempty"` + TranslationsPacketCount *uint64 `protobuf:"varint,6,opt,name=translations_packet_count,json=translationsPacketCount,proto3,oneof" json:"translations_packet_count,omitempty"` } func (x *SetNatZoneCounterAttributeRequest) Reset() { @@ -1153,85 +1052,41 @@ func (x *SetNatZoneCounterAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetNatZoneCounterAttributeRequest) GetAttr() isSetNatZoneCounterAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetNatZoneCounterAttributeRequest) GetNatType() NatType { - if x, ok := x.GetAttr().(*SetNatZoneCounterAttributeRequest_NatType); ok { - return x.NatType + if x != nil && x.NatType != nil { + return *x.NatType } return NatType_NAT_TYPE_UNSPECIFIED } func (x *SetNatZoneCounterAttributeRequest) GetZoneId() uint32 { - if x, ok := x.GetAttr().(*SetNatZoneCounterAttributeRequest_ZoneId); ok { - return x.ZoneId + if x != nil && x.ZoneId != nil { + return *x.ZoneId } return 0 } func (x *SetNatZoneCounterAttributeRequest) GetDiscardPacketCount() uint64 { - if x, ok := x.GetAttr().(*SetNatZoneCounterAttributeRequest_DiscardPacketCount); ok { - return x.DiscardPacketCount + if x != nil && x.DiscardPacketCount != nil { + return *x.DiscardPacketCount } return 0 } func (x *SetNatZoneCounterAttributeRequest) GetTranslationNeededPacketCount() uint64 { - if x, ok := x.GetAttr().(*SetNatZoneCounterAttributeRequest_TranslationNeededPacketCount); ok { - return x.TranslationNeededPacketCount + if x != nil && x.TranslationNeededPacketCount != nil { + return *x.TranslationNeededPacketCount } return 0 } func (x *SetNatZoneCounterAttributeRequest) GetTranslationsPacketCount() uint64 { - if x, ok := x.GetAttr().(*SetNatZoneCounterAttributeRequest_TranslationsPacketCount); ok { - return x.TranslationsPacketCount + if x != nil && x.TranslationsPacketCount != nil { + return *x.TranslationsPacketCount } return 0 } -type isSetNatZoneCounterAttributeRequest_Attr interface { - isSetNatZoneCounterAttributeRequest_Attr() -} - -type SetNatZoneCounterAttributeRequest_NatType struct { - NatType NatType `protobuf:"varint,2,opt,name=nat_type,json=natType,proto3,enum=lemming.dataplane.sai.NatType,oneof"` -} - -type SetNatZoneCounterAttributeRequest_ZoneId struct { - ZoneId uint32 `protobuf:"varint,3,opt,name=zone_id,json=zoneId,proto3,oneof"` -} - -type SetNatZoneCounterAttributeRequest_DiscardPacketCount struct { - DiscardPacketCount uint64 `protobuf:"varint,4,opt,name=discard_packet_count,json=discardPacketCount,proto3,oneof"` -} - -type SetNatZoneCounterAttributeRequest_TranslationNeededPacketCount struct { - TranslationNeededPacketCount uint64 `protobuf:"varint,5,opt,name=translation_needed_packet_count,json=translationNeededPacketCount,proto3,oneof"` -} - -type SetNatZoneCounterAttributeRequest_TranslationsPacketCount struct { - TranslationsPacketCount uint64 `protobuf:"varint,6,opt,name=translations_packet_count,json=translationsPacketCount,proto3,oneof"` -} - -func (*SetNatZoneCounterAttributeRequest_NatType) isSetNatZoneCounterAttributeRequest_Attr() {} - -func (*SetNatZoneCounterAttributeRequest_ZoneId) isSetNatZoneCounterAttributeRequest_Attr() {} - -func (*SetNatZoneCounterAttributeRequest_DiscardPacketCount) isSetNatZoneCounterAttributeRequest_Attr() { -} - -func (*SetNatZoneCounterAttributeRequest_TranslationNeededPacketCount) isSetNatZoneCounterAttributeRequest_Attr() { -} - -func (*SetNatZoneCounterAttributeRequest_TranslationsPacketCount) isSetNatZoneCounterAttributeRequest_Attr() { -} - type SetNatZoneCounterAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1330,7 +1185,7 @@ type GetNatZoneCounterAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*NatZoneCounterAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *NatZoneCounterAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetNatZoneCounterAttributeResponse) Reset() { @@ -1365,7 +1220,7 @@ func (*GetNatZoneCounterAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_nat_proto_rawDescGZIP(), []int{15} } -func (x *GetNatZoneCounterAttributeResponse) GetAttr() []*NatZoneCounterAttribute { +func (x *GetNatZoneCounterAttributeResponse) GetAttr() *NatZoneCounterAttribute { if x != nil { return x.Attr } @@ -1381,308 +1236,379 @@ var file_dataplane_standalone_proto_nat_proto_rawDesc = []byte{ 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, 0x04, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x07, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x72, 0x63, - 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x73, 0x72, 0x63, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x13, 0x0a, 0x05, 0x76, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, 0x12, 0x15, - 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, - 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, - 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x34, 0x53, 0x72, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x34, 0x44, 0x73, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x63, - 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x69, 0x74, 0x42, 0x69, 0x74, - 0x43, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x74, 0x42, 0x69, 0x74, 0x22, 0x18, 0x0a, 0x16, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xcd, 0x04, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, + 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x44, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x12, 0x20, 0x0a, - 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x73, 0x72, 0x63, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, - 0x15, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4d, 0x61, 0x73, - 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x34, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x34, 0x44, 0x73, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x79, - 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x68, - 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x09, 0x68, 0x69, 0x74, 0x42, 0x69, 0x74, 0x43, 0x6f, 0x72, 0x12, 0x19, 0x0a, - 0x07, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x06, 0x68, 0x69, 0x74, 0x42, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x73, 0x72, + 0x63, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x03, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, + 0x48, 0x04, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, + 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x06, 0x52, 0x09, 0x6c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, + 0x09, 0x6c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, + 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, + 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0a, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x5f, 0x62, + 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x09, 0x68, 0x69, 0x74, 0x42, 0x69, 0x74, 0x43, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x06, 0x68, 0x69, 0x74, + 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x63, 0x6f, + 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x22, 0x18, 0x0a, + 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x9a, 0x07, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x44, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, - 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xd2, 0x03, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, - 0x39, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x7a, 0x6f, - 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x7a, 0x6f, 0x6e, - 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x69, - 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x69, - 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x2f, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x3a, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x30, 0x0a, 0x1c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2f, - 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xd0, 0x02, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, - 0x32, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, + 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x73, + 0x72, 0x63, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x05, 0x76, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x05, 0x48, 0x04, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, + 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x09, 0x6c, 0x34, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, + 0x52, 0x09, 0x6c, 0x34, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x09, 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x5f, + 0x62, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x09, 0x68, 0x69, 0x74, 0x42, 0x69, 0x74, 0x43, 0x6f, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x06, 0x68, 0x69, + 0x74, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x34, 0x5f, 0x73, 0x72, 0x63, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x34, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x63, + 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x22, 0x1e, + 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, + 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, + 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, + 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x61, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xe7, 0x05, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x44, 0x0a, + 0x08, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x7a, 0x6f, + 0x6e, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, + 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x64, 0x69, 0x73, + 0x63, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x1f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1c, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, + 0x04, 0x52, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, + 0x1f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x4e, - 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, - 0x46, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x5a, 0x6f, - 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, - 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x4e, 0x61, - 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x2a, 0xe5, 0x03, 0x0a, 0x0c, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, - 0x19, 0x0a, 0x15, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x41, - 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, - 0x5f, 0x49, 0x50, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x41, - 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x52, 0x5f, - 0x49, 0x44, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x05, 0x12, - 0x1e, 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x06, 0x12, - 0x1e, 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x07, 0x12, - 0x1e, 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4c, 0x34, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x08, 0x12, - 0x26, 0x0a, 0x22, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x41, 0x54, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x5f, - 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x1d, - 0x0a, 0x19, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x42, 0x59, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x1e, 0x0a, - 0x1a, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x48, 0x49, 0x54, 0x5f, 0x42, 0x49, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x10, 0x0d, 0x12, 0x1a, 0x0a, - 0x16, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x48, 0x49, 0x54, 0x5f, 0x42, 0x49, 0x54, 0x10, 0x0e, 0x2a, 0xb0, 0x03, 0x0a, 0x12, 0x4e, 0x61, - 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x5f, 0x5a, - 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x4e, - 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x28, - 0x0a, 0x24, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, - 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, - 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x4e, 0x41, 0x54, 0x5f, - 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x04, 0x12, 0x33, 0x0a, 0x2f, 0x4e, 0x41, 0x54, 0x5f, - 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x39, 0x0a, - 0x35, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, - 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x06, 0x12, 0x2d, 0x0a, 0x29, 0x4e, 0x41, 0x54, 0x5f, - 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x07, 0x12, 0x33, 0x0a, 0x2f, 0x4e, 0x41, 0x54, 0x5f, 0x5a, - 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x08, 0x32, 0xa3, 0x08, 0x0a, - 0x03, 0x4e, 0x61, 0x74, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, - 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x06, 0x52, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x19, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x22, 0x2f, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, + 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x5a, + 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xe9, 0x03, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x08, 0x6e, 0x61, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x07, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63, + 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, + 0x48, 0x03, 0x52, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x04, 0x52, 0x17, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, + 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, + 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x22, 0x0a, 0x20, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x24, + 0x0a, 0x22, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, + 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4e, 0x61, + 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe5, 0x03, + 0x0a, 0x0c, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, + 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, + 0x0a, 0x17, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x4e, + 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, + 0x43, 0x5f, 0x49, 0x50, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x5f, + 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x04, + 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, + 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, + 0x54, 0x5f, 0x49, 0x50, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, + 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x34, + 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, + 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x34, + 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x4e, + 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, 0x4e, + 0x54, 0x10, 0x09, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x42, 0x59, + 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x41, + 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x59, 0x54, + 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x41, 0x54, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x49, 0x54, 0x5f, + 0x42, 0x49, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x41, 0x54, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x49, 0x54, 0x5f, + 0x42, 0x49, 0x54, 0x10, 0x0e, 0x2a, 0xb0, 0x03, 0x0a, 0x12, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x25, 0x0a, 0x21, + 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x41, 0x54, 0x5f, 0x5a, + 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x4e, 0x41, + 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, + 0x52, 0x44, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x10, 0x04, 0x12, 0x33, 0x0a, 0x2f, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x39, 0x0a, 0x35, 0x4e, 0x41, 0x54, + 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, + 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x10, 0x06, 0x12, 0x2d, 0x0a, 0x29, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x53, 0x10, 0x07, 0x12, 0x33, 0x0a, 0x2f, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x08, 0x32, 0xa3, 0x08, 0x0a, 0x03, 0x4e, 0x61, 0x74, + 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, + 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, - 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, - 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, + 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, - 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x61, - 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x4e, 0x61, - 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, - 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, - 0x1a, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, + 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x74, + 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, + 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, + 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1959,29 +1885,10 @@ func file_dataplane_standalone_proto_nat_proto_init() { } } } - file_dataplane_standalone_proto_nat_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetNatEntryAttributeRequest_NatType)(nil), - (*SetNatEntryAttributeRequest_SrcIp)(nil), - (*SetNatEntryAttributeRequest_SrcIpMask)(nil), - (*SetNatEntryAttributeRequest_VrId)(nil), - (*SetNatEntryAttributeRequest_DstIp)(nil), - (*SetNatEntryAttributeRequest_DstIpMask)(nil), - (*SetNatEntryAttributeRequest_L4SrcPort)(nil), - (*SetNatEntryAttributeRequest_L4DstPort)(nil), - (*SetNatEntryAttributeRequest_EnablePacketCount)(nil), - (*SetNatEntryAttributeRequest_PacketCount)(nil), - (*SetNatEntryAttributeRequest_EnableByteCount)(nil), - (*SetNatEntryAttributeRequest_ByteCount)(nil), - (*SetNatEntryAttributeRequest_HitBitCor)(nil), - (*SetNatEntryAttributeRequest_HitBit)(nil), - } - file_dataplane_standalone_proto_nat_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetNatZoneCounterAttributeRequest_NatType)(nil), - (*SetNatZoneCounterAttributeRequest_ZoneId)(nil), - (*SetNatZoneCounterAttributeRequest_DiscardPacketCount)(nil), - (*SetNatZoneCounterAttributeRequest_TranslationNeededPacketCount)(nil), - (*SetNatZoneCounterAttributeRequest_TranslationsPacketCount)(nil), - } + file_dataplane_standalone_proto_nat_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_nat_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_nat_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_nat_proto_msgTypes[12].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/nat.proto b/dataplane/standalone/proto/nat.proto index 5e244a8b..770d76c3 100644 --- a/dataplane/standalone/proto/nat.proto +++ b/dataplane/standalone/proto/nat.proto @@ -7,179 +7,146 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum NatEntryAttr { - NAT_ENTRY_ATTR_UNSPECIFIED = 0; - NAT_ENTRY_ATTR_NAT_TYPE = 1; - NAT_ENTRY_ATTR_SRC_IP = 2; - NAT_ENTRY_ATTR_SRC_IP_MASK = 3; - NAT_ENTRY_ATTR_VR_ID = 4; - NAT_ENTRY_ATTR_DST_IP = 5; - NAT_ENTRY_ATTR_DST_IP_MASK = 6; - NAT_ENTRY_ATTR_L4_SRC_PORT = 7; - NAT_ENTRY_ATTR_L4_DST_PORT = 8; - NAT_ENTRY_ATTR_ENABLE_PACKET_COUNT = 9; - NAT_ENTRY_ATTR_PACKET_COUNT = 10; - NAT_ENTRY_ATTR_ENABLE_BYTE_COUNT = 11; - NAT_ENTRY_ATTR_BYTE_COUNT = 12; - NAT_ENTRY_ATTR_HIT_BIT_COR = 13; - NAT_ENTRY_ATTR_HIT_BIT = 14; + NAT_ENTRY_ATTR_UNSPECIFIED = 0; + NAT_ENTRY_ATTR_NAT_TYPE = 1; + NAT_ENTRY_ATTR_SRC_IP = 2; + NAT_ENTRY_ATTR_SRC_IP_MASK = 3; + NAT_ENTRY_ATTR_VR_ID = 4; + NAT_ENTRY_ATTR_DST_IP = 5; + NAT_ENTRY_ATTR_DST_IP_MASK = 6; + NAT_ENTRY_ATTR_L4_SRC_PORT = 7; + NAT_ENTRY_ATTR_L4_DST_PORT = 8; + NAT_ENTRY_ATTR_ENABLE_PACKET_COUNT = 9; + NAT_ENTRY_ATTR_PACKET_COUNT = 10; + NAT_ENTRY_ATTR_ENABLE_BYTE_COUNT = 11; + NAT_ENTRY_ATTR_BYTE_COUNT = 12; + NAT_ENTRY_ATTR_HIT_BIT_COR = 13; + NAT_ENTRY_ATTR_HIT_BIT = 14; } enum NatZoneCounterAttr { - NAT_ZONE_COUNTER_ATTR_UNSPECIFIED = 0; - NAT_ZONE_COUNTER_ATTR_NAT_TYPE = 1; - NAT_ZONE_COUNTER_ATTR_ZONE_ID = 2; - NAT_ZONE_COUNTER_ATTR_ENABLE_DISCARD = 3; - NAT_ZONE_COUNTER_ATTR_DISCARD_PACKET_COUNT = 4; - NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATION_NEEDED = 5; - NAT_ZONE_COUNTER_ATTR_TRANSLATION_NEEDED_PACKET_COUNT = 6; - NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATIONS = 7; - NAT_ZONE_COUNTER_ATTR_TRANSLATIONS_PACKET_COUNT = 8; + NAT_ZONE_COUNTER_ATTR_UNSPECIFIED = 0; + NAT_ZONE_COUNTER_ATTR_NAT_TYPE = 1; + NAT_ZONE_COUNTER_ATTR_ZONE_ID = 2; + NAT_ZONE_COUNTER_ATTR_ENABLE_DISCARD = 3; + NAT_ZONE_COUNTER_ATTR_DISCARD_PACKET_COUNT = 4; + NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATION_NEEDED = 5; + NAT_ZONE_COUNTER_ATTR_TRANSLATION_NEEDED_PACKET_COUNT = 6; + NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATIONS = 7; + NAT_ZONE_COUNTER_ATTR_TRANSLATIONS_PACKET_COUNT = 8; } message CreateNatEntryRequest { - NatEntry entry = 1; - - NatType nat_type = 2; - bytes src_ip = 3; - bytes src_ip_mask = 4; - uint64 vr_id = 5; - bytes dst_ip = 6; - bytes dst_ip_mask = 7; - uint32 l4_src_port = 8; - uint32 l4_dst_port = 9; - bool enable_packet_count = 10; - uint64 packet_count = 11; - bool enable_byte_count = 12; - uint64 byte_count = 13; - bool hit_bit_cor = 14; - bool hit_bit = 15; - -} - -message CreateNatEntryResponse { - - -} + NatEntry entry = 1; + optional NatType nat_type = 2 [(attr_enum_value) = 1]; + optional bytes src_ip = 3 [(attr_enum_value) = 2]; + optional bytes src_ip_mask = 4 [(attr_enum_value) = 3]; + optional uint64 vr_id = 5 [(attr_enum_value) = 4]; + optional bytes dst_ip = 6 [(attr_enum_value) = 5]; + optional bytes dst_ip_mask = 7 [(attr_enum_value) = 6]; + optional uint32 l4_src_port = 8 [(attr_enum_value) = 7]; + optional uint32 l4_dst_port = 9 [(attr_enum_value) = 8]; + optional bool enable_packet_count = 10 [(attr_enum_value) = 9]; + optional uint64 packet_count = 11 [(attr_enum_value) = 10]; + optional bool enable_byte_count = 12 [(attr_enum_value) = 11]; + optional uint64 byte_count = 13 [(attr_enum_value) = 12]; + optional bool hit_bit_cor = 14 [(attr_enum_value) = 13]; + optional bool hit_bit = 15 [(attr_enum_value) = 14]; +} + +message CreateNatEntryResponse {} message RemoveNatEntryRequest { - NatEntry entry = 1; - - + NatEntry entry = 1; } -message RemoveNatEntryResponse { - - -} +message RemoveNatEntryResponse {} message SetNatEntryAttributeRequest { - NatEntry entry = 1; - oneof attr { - NatType nat_type = 2; - bytes src_ip = 3; - bytes src_ip_mask = 4; - uint64 vr_id = 5; - bytes dst_ip = 6; - bytes dst_ip_mask = 7; - uint32 l4_src_port = 8; - uint32 l4_dst_port = 9; - bool enable_packet_count = 10; - uint64 packet_count = 11; - bool enable_byte_count = 12; - uint64 byte_count = 13; - bool hit_bit_cor = 14; - bool hit_bit = 15; - } -} - -message SetNatEntryAttributeResponse { - - -} + NatEntry entry = 1; + optional NatType nat_type = 2 [(attr_enum_value) = 1]; + optional bytes src_ip = 3 [(attr_enum_value) = 2]; + optional bytes src_ip_mask = 4 [(attr_enum_value) = 3]; + optional uint64 vr_id = 5 [(attr_enum_value) = 4]; + optional bytes dst_ip = 6 [(attr_enum_value) = 5]; + optional bytes dst_ip_mask = 7 [(attr_enum_value) = 6]; + optional uint32 l4_src_port = 8 [(attr_enum_value) = 7]; + optional uint32 l4_dst_port = 9 [(attr_enum_value) = 8]; + optional bool enable_packet_count = 10 [(attr_enum_value) = 9]; + optional uint64 packet_count = 11 [(attr_enum_value) = 10]; + optional bool enable_byte_count = 12 [(attr_enum_value) = 11]; + optional uint64 byte_count = 13 [(attr_enum_value) = 12]; + optional bool hit_bit_cor = 14 [(attr_enum_value) = 13]; + optional bool hit_bit = 15 [(attr_enum_value) = 14]; +} + +message SetNatEntryAttributeResponse {} message GetNatEntryAttributeRequest { - NatEntry entry = 1; - repeated NatEntryAttr attr_type = 2; - - + NatEntry entry = 1; + repeated NatEntryAttr attr_type = 2; } message GetNatEntryAttributeResponse { - repeated NatEntryAttribute attr = 1; - - + NatEntryAttribute attr = 1; } message CreateNatZoneCounterRequest { - uint64 switch = 1; - - NatType nat_type = 2; - uint32 zone_id = 3; - bool enable_discard = 4; - uint64 discard_packet_count = 5; - bool enable_translation_needed = 6; - uint64 translation_needed_packet_count = 7; - bool enable_translations = 8; - uint64 translations_packet_count = 9; - + uint64 switch = 1; + optional NatType nat_type = 2 [(attr_enum_value) = 1]; + optional uint32 zone_id = 3 [(attr_enum_value) = 2]; + optional bool enable_discard = 4 [(attr_enum_value) = 3]; + optional uint64 discard_packet_count = 5 [(attr_enum_value) = 4]; + optional bool enable_translation_needed = 6 [(attr_enum_value) = 5]; + optional uint64 translation_needed_packet_count = 7 [(attr_enum_value) = 6]; + optional bool enable_translations = 8 [(attr_enum_value) = 7]; + optional uint64 translations_packet_count = 9 [(attr_enum_value) = 8]; } message CreateNatZoneCounterResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveNatZoneCounterRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveNatZoneCounterResponse { - - -} +message RemoveNatZoneCounterResponse {} message SetNatZoneCounterAttributeRequest { - uint64 oid = 1; - oneof attr { - NatType nat_type = 2; - uint32 zone_id = 3; - uint64 discard_packet_count = 4; - uint64 translation_needed_packet_count = 5; - uint64 translations_packet_count = 6; - } + uint64 oid = 1; + optional NatType nat_type = 2 [(attr_enum_value) = 1]; + optional uint32 zone_id = 3 [(attr_enum_value) = 2]; + optional uint64 discard_packet_count = 4 [(attr_enum_value) = 4]; + optional uint64 translation_needed_packet_count = 5 [(attr_enum_value) = 6]; + optional uint64 translations_packet_count = 6 [(attr_enum_value) = 8]; } -message SetNatZoneCounterAttributeResponse { - - -} +message SetNatZoneCounterAttributeResponse {} message GetNatZoneCounterAttributeRequest { - uint64 oid = 1; - repeated NatZoneCounterAttr attr_type = 2; - - + uint64 oid = 1; + repeated NatZoneCounterAttr attr_type = 2; } message GetNatZoneCounterAttributeResponse { - repeated NatZoneCounterAttribute attr = 1; - - + NatZoneCounterAttribute attr = 1; } - service Nat { - rpc CreateNatEntry (CreateNatEntryRequest) returns (CreateNatEntryResponse) {} - rpc RemoveNatEntry (RemoveNatEntryRequest) returns (RemoveNatEntryResponse) {} - rpc SetNatEntryAttribute (SetNatEntryAttributeRequest) returns (SetNatEntryAttributeResponse) {} - rpc GetNatEntryAttribute (GetNatEntryAttributeRequest) returns (GetNatEntryAttributeResponse) {} - rpc CreateNatZoneCounter (CreateNatZoneCounterRequest) returns (CreateNatZoneCounterResponse) {} - rpc RemoveNatZoneCounter (RemoveNatZoneCounterRequest) returns (RemoveNatZoneCounterResponse) {} - rpc SetNatZoneCounterAttribute (SetNatZoneCounterAttributeRequest) returns (SetNatZoneCounterAttributeResponse) {} - rpc GetNatZoneCounterAttribute (GetNatZoneCounterAttributeRequest) returns (GetNatZoneCounterAttributeResponse) {} + rpc CreateNatEntry(CreateNatEntryRequest) returns (CreateNatEntryResponse) {} + rpc RemoveNatEntry(RemoveNatEntryRequest) returns (RemoveNatEntryResponse) {} + rpc SetNatEntryAttribute(SetNatEntryAttributeRequest) + returns (SetNatEntryAttributeResponse) {} + rpc GetNatEntryAttribute(GetNatEntryAttributeRequest) + returns (GetNatEntryAttributeResponse) {} + rpc CreateNatZoneCounter(CreateNatZoneCounterRequest) + returns (CreateNatZoneCounterResponse) {} + rpc RemoveNatZoneCounter(RemoveNatZoneCounterRequest) + returns (RemoveNatZoneCounterResponse) {} + rpc SetNatZoneCounterAttribute(SetNatZoneCounterAttributeRequest) + returns (SetNatZoneCounterAttributeResponse) {} + rpc GetNatZoneCounterAttribute(GetNatZoneCounterAttributeRequest) + returns (GetNatZoneCounterAttributeResponse) {} } diff --git a/dataplane/standalone/proto/neighbor.pb.go b/dataplane/standalone/proto/neighbor.pb.go index 3a5cd309..b0a4630c 100755 --- a/dataplane/standalone/proto/neighbor.pb.go +++ b/dataplane/standalone/proto/neighbor.pb.go @@ -103,15 +103,15 @@ type CreateNeighborEntryRequest struct { unknownFields protoimpl.UnknownFields Entry *NeighborEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - DstMacAddress []byte `protobuf:"bytes,2,opt,name=dst_mac_address,json=dstMacAddress,proto3" json:"dst_mac_address,omitempty"` - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - UserTrapId uint64 `protobuf:"varint,4,opt,name=user_trap_id,json=userTrapId,proto3" json:"user_trap_id,omitempty"` - NoHostRoute bool `protobuf:"varint,5,opt,name=no_host_route,json=noHostRoute,proto3" json:"no_host_route,omitempty"` - MetaData uint32 `protobuf:"varint,6,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - CounterId uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` - EncapIndex uint32 `protobuf:"varint,8,opt,name=encap_index,json=encapIndex,proto3" json:"encap_index,omitempty"` - EncapImposeIndex bool `protobuf:"varint,9,opt,name=encap_impose_index,json=encapImposeIndex,proto3" json:"encap_impose_index,omitempty"` - IsLocal bool `protobuf:"varint,10,opt,name=is_local,json=isLocal,proto3" json:"is_local,omitempty"` + DstMacAddress []byte `protobuf:"bytes,2,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,4,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + NoHostRoute *bool `protobuf:"varint,5,opt,name=no_host_route,json=noHostRoute,proto3,oneof" json:"no_host_route,omitempty"` + MetaData *uint32 `protobuf:"varint,6,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + CounterId *uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + EncapIndex *uint32 `protobuf:"varint,8,opt,name=encap_index,json=encapIndex,proto3,oneof" json:"encap_index,omitempty"` + EncapImposeIndex *bool `protobuf:"varint,9,opt,name=encap_impose_index,json=encapImposeIndex,proto3,oneof" json:"encap_impose_index,omitempty"` + IsLocal *bool `protobuf:"varint,10,opt,name=is_local,json=isLocal,proto3,oneof" json:"is_local,omitempty"` } func (x *CreateNeighborEntryRequest) Reset() { @@ -161,57 +161,57 @@ func (x *CreateNeighborEntryRequest) GetDstMacAddress() []byte { } func (x *CreateNeighborEntryRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateNeighborEntryRequest) GetUserTrapId() uint64 { - if x != nil { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *CreateNeighborEntryRequest) GetNoHostRoute() bool { - if x != nil { - return x.NoHostRoute + if x != nil && x.NoHostRoute != nil { + return *x.NoHostRoute } return false } func (x *CreateNeighborEntryRequest) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *CreateNeighborEntryRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *CreateNeighborEntryRequest) GetEncapIndex() uint32 { - if x != nil { - return x.EncapIndex + if x != nil && x.EncapIndex != nil { + return *x.EncapIndex } return 0 } func (x *CreateNeighborEntryRequest) GetEncapImposeIndex() bool { - if x != nil { - return x.EncapImposeIndex + if x != nil && x.EncapImposeIndex != nil { + return *x.EncapImposeIndex } return false } func (x *CreateNeighborEntryRequest) GetIsLocal() bool { - if x != nil { - return x.IsLocal + if x != nil && x.IsLocal != nil { + return *x.IsLocal } return false } @@ -344,19 +344,16 @@ type SetNeighborEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *NeighborEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetNeighborEntryAttributeRequest_DstMacAddress - // *SetNeighborEntryAttributeRequest_PacketAction - // *SetNeighborEntryAttributeRequest_UserTrapId - // *SetNeighborEntryAttributeRequest_NoHostRoute - // *SetNeighborEntryAttributeRequest_MetaData - // *SetNeighborEntryAttributeRequest_CounterId - // *SetNeighborEntryAttributeRequest_EncapIndex - // *SetNeighborEntryAttributeRequest_EncapImposeIndex - // *SetNeighborEntryAttributeRequest_IsLocal - Attr isSetNeighborEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *NeighborEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + DstMacAddress []byte `protobuf:"bytes,2,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof" json:"dst_mac_address,omitempty"` + PacketAction *PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,4,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + NoHostRoute *bool `protobuf:"varint,5,opt,name=no_host_route,json=noHostRoute,proto3,oneof" json:"no_host_route,omitempty"` + MetaData *uint32 `protobuf:"varint,6,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + CounterId *uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + EncapIndex *uint32 `protobuf:"varint,8,opt,name=encap_index,json=encapIndex,proto3,oneof" json:"encap_index,omitempty"` + EncapImposeIndex *bool `protobuf:"varint,9,opt,name=encap_impose_index,json=encapImposeIndex,proto3,oneof" json:"encap_impose_index,omitempty"` + IsLocal *bool `protobuf:"varint,10,opt,name=is_local,json=isLocal,proto3,oneof" json:"is_local,omitempty"` } func (x *SetNeighborEntryAttributeRequest) Reset() { @@ -398,134 +395,69 @@ func (x *SetNeighborEntryAttributeRequest) GetEntry() *NeighborEntry { return nil } -func (m *SetNeighborEntryAttributeRequest) GetAttr() isSetNeighborEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetNeighborEntryAttributeRequest) GetDstMacAddress() []byte { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_DstMacAddress); ok { + if x != nil { return x.DstMacAddress } return nil } func (x *SetNeighborEntryAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetNeighborEntryAttributeRequest) GetUserTrapId() uint64 { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_UserTrapId); ok { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *SetNeighborEntryAttributeRequest) GetNoHostRoute() bool { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_NoHostRoute); ok { - return x.NoHostRoute + if x != nil && x.NoHostRoute != nil { + return *x.NoHostRoute } return false } func (x *SetNeighborEntryAttributeRequest) GetMetaData() uint32 { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_MetaData); ok { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *SetNeighborEntryAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *SetNeighborEntryAttributeRequest) GetEncapIndex() uint32 { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_EncapIndex); ok { - return x.EncapIndex + if x != nil && x.EncapIndex != nil { + return *x.EncapIndex } return 0 } func (x *SetNeighborEntryAttributeRequest) GetEncapImposeIndex() bool { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_EncapImposeIndex); ok { - return x.EncapImposeIndex + if x != nil && x.EncapImposeIndex != nil { + return *x.EncapImposeIndex } return false } func (x *SetNeighborEntryAttributeRequest) GetIsLocal() bool { - if x, ok := x.GetAttr().(*SetNeighborEntryAttributeRequest_IsLocal); ok { - return x.IsLocal + if x != nil && x.IsLocal != nil { + return *x.IsLocal } return false } -type isSetNeighborEntryAttributeRequest_Attr interface { - isSetNeighborEntryAttributeRequest_Attr() -} - -type SetNeighborEntryAttributeRequest_DstMacAddress struct { - DstMacAddress []byte `protobuf:"bytes,2,opt,name=dst_mac_address,json=dstMacAddress,proto3,oneof"` -} - -type SetNeighborEntryAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,3,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetNeighborEntryAttributeRequest_UserTrapId struct { - UserTrapId uint64 `protobuf:"varint,4,opt,name=user_trap_id,json=userTrapId,proto3,oneof"` -} - -type SetNeighborEntryAttributeRequest_NoHostRoute struct { - NoHostRoute bool `protobuf:"varint,5,opt,name=no_host_route,json=noHostRoute,proto3,oneof"` -} - -type SetNeighborEntryAttributeRequest_MetaData struct { - MetaData uint32 `protobuf:"varint,6,opt,name=meta_data,json=metaData,proto3,oneof"` -} - -type SetNeighborEntryAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,7,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -type SetNeighborEntryAttributeRequest_EncapIndex struct { - EncapIndex uint32 `protobuf:"varint,8,opt,name=encap_index,json=encapIndex,proto3,oneof"` -} - -type SetNeighborEntryAttributeRequest_EncapImposeIndex struct { - EncapImposeIndex bool `protobuf:"varint,9,opt,name=encap_impose_index,json=encapImposeIndex,proto3,oneof"` -} - -type SetNeighborEntryAttributeRequest_IsLocal struct { - IsLocal bool `protobuf:"varint,10,opt,name=is_local,json=isLocal,proto3,oneof"` -} - -func (*SetNeighborEntryAttributeRequest_DstMacAddress) isSetNeighborEntryAttributeRequest_Attr() {} - -func (*SetNeighborEntryAttributeRequest_PacketAction) isSetNeighborEntryAttributeRequest_Attr() {} - -func (*SetNeighborEntryAttributeRequest_UserTrapId) isSetNeighborEntryAttributeRequest_Attr() {} - -func (*SetNeighborEntryAttributeRequest_NoHostRoute) isSetNeighborEntryAttributeRequest_Attr() {} - -func (*SetNeighborEntryAttributeRequest_MetaData) isSetNeighborEntryAttributeRequest_Attr() {} - -func (*SetNeighborEntryAttributeRequest_CounterId) isSetNeighborEntryAttributeRequest_Attr() {} - -func (*SetNeighborEntryAttributeRequest_EncapIndex) isSetNeighborEntryAttributeRequest_Attr() {} - -func (*SetNeighborEntryAttributeRequest_EncapImposeIndex) isSetNeighborEntryAttributeRequest_Attr() {} - -func (*SetNeighborEntryAttributeRequest_IsLocal) isSetNeighborEntryAttributeRequest_Attr() {} - type SetNeighborEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -624,7 +556,7 @@ type GetNeighborEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*NeighborEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *NeighborEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetNeighborEntryAttributeResponse) Reset() { @@ -659,7 +591,7 @@ func (*GetNeighborEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_neighbor_proto_rawDescGZIP(), []int{7} } -func (x *GetNeighborEntryAttributeResponse) GetAttr() []*NeighborEntryAttribute { +func (x *GetNeighborEntryAttributeResponse) GetAttr() *NeighborEntryAttribute { if x != nil { return x.Attr } @@ -675,74 +607,104 @@ var file_dataplane_standalone_proto_neighbor_proto_rawDesc = []byte{ 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x03, 0x0a, 0x1a, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb3, 0x05, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, - 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x48, - 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, - 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x6e, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1b, + 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, + 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x75, 0x73, + 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6e, + 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x48, 0x6f, + 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x61, + 0x70, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x10, 0x65, 0x6e, + 0x63, 0x61, 0x70, 0x49, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x6e, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x58, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, + 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb9, 0x05, 0x0a, 0x20, 0x53, 0x65, + 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, + 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x0f, 0x64, 0x73, + 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x73, 0x74, + 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, + 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0b, + 0x6e, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, - 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, 0x0a, 0x12, 0x65, - 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x49, 0x6d, - 0x70, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x1d, 0x0a, - 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd6, 0x03, 0x0a, - 0x20, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x28, 0x0a, - 0x0f, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x73, 0x65, - 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x68, 0x6f, - 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0b, 0x6e, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1d, 0x0a, - 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0a, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, - 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x2e, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x65, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, - 0x65, 0x6e, 0x63, 0x61, 0x70, 0x49, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x1b, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x06, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x69, 0x67, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, + 0x48, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0a, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, + 0x52, 0x10, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x49, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, + 0x07, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, + 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6d, 0x70, 0x6f, + 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x73, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, @@ -758,7 +720,7 @@ var file_dataplane_standalone_proto_neighbor_proto_rawDesc = []byte{ 0x70, 0x65, 0x22, 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xb7, 0x03, 0x0a, 0x11, 0x4e, @@ -987,17 +949,8 @@ func file_dataplane_standalone_proto_neighbor_proto_init() { } } } - file_dataplane_standalone_proto_neighbor_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetNeighborEntryAttributeRequest_DstMacAddress)(nil), - (*SetNeighborEntryAttributeRequest_PacketAction)(nil), - (*SetNeighborEntryAttributeRequest_UserTrapId)(nil), - (*SetNeighborEntryAttributeRequest_NoHostRoute)(nil), - (*SetNeighborEntryAttributeRequest_MetaData)(nil), - (*SetNeighborEntryAttributeRequest_CounterId)(nil), - (*SetNeighborEntryAttributeRequest_EncapIndex)(nil), - (*SetNeighborEntryAttributeRequest_EncapImposeIndex)(nil), - (*SetNeighborEntryAttributeRequest_IsLocal)(nil), - } + file_dataplane_standalone_proto_neighbor_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_neighbor_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/neighbor.proto b/dataplane/standalone/proto/neighbor.proto index 63bdd878..d0b126fb 100644 --- a/dataplane/standalone/proto/neighbor.proto +++ b/dataplane/standalone/proto/neighbor.proto @@ -7,89 +7,72 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum NeighborEntryAttr { - NEIGHBOR_ENTRY_ATTR_UNSPECIFIED = 0; - NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS = 1; - NEIGHBOR_ENTRY_ATTR_PACKET_ACTION = 2; - NEIGHBOR_ENTRY_ATTR_USER_TRAP_ID = 3; - NEIGHBOR_ENTRY_ATTR_NO_HOST_ROUTE = 4; - NEIGHBOR_ENTRY_ATTR_META_DATA = 5; - NEIGHBOR_ENTRY_ATTR_COUNTER_ID = 6; - NEIGHBOR_ENTRY_ATTR_ENCAP_INDEX = 7; - NEIGHBOR_ENTRY_ATTR_ENCAP_IMPOSE_INDEX = 8; - NEIGHBOR_ENTRY_ATTR_IS_LOCAL = 9; - NEIGHBOR_ENTRY_ATTR_IP_ADDR_FAMILY = 10; + NEIGHBOR_ENTRY_ATTR_UNSPECIFIED = 0; + NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS = 1; + NEIGHBOR_ENTRY_ATTR_PACKET_ACTION = 2; + NEIGHBOR_ENTRY_ATTR_USER_TRAP_ID = 3; + NEIGHBOR_ENTRY_ATTR_NO_HOST_ROUTE = 4; + NEIGHBOR_ENTRY_ATTR_META_DATA = 5; + NEIGHBOR_ENTRY_ATTR_COUNTER_ID = 6; + NEIGHBOR_ENTRY_ATTR_ENCAP_INDEX = 7; + NEIGHBOR_ENTRY_ATTR_ENCAP_IMPOSE_INDEX = 8; + NEIGHBOR_ENTRY_ATTR_IS_LOCAL = 9; + NEIGHBOR_ENTRY_ATTR_IP_ADDR_FAMILY = 10; } message CreateNeighborEntryRequest { - NeighborEntry entry = 1; - - bytes dst_mac_address = 2; - PacketAction packet_action = 3; - uint64 user_trap_id = 4; - bool no_host_route = 5; - uint32 meta_data = 6; - uint64 counter_id = 7; - uint32 encap_index = 8; - bool encap_impose_index = 9; - bool is_local = 10; - + NeighborEntry entry = 1; + optional bytes dst_mac_address = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint64 user_trap_id = 4 [(attr_enum_value) = 3]; + optional bool no_host_route = 5 [(attr_enum_value) = 4]; + optional uint32 meta_data = 6 [(attr_enum_value) = 5]; + optional uint64 counter_id = 7 [(attr_enum_value) = 6]; + optional uint32 encap_index = 8 [(attr_enum_value) = 7]; + optional bool encap_impose_index = 9 [(attr_enum_value) = 8]; + optional bool is_local = 10 [(attr_enum_value) = 9]; } -message CreateNeighborEntryResponse { - - -} +message CreateNeighborEntryResponse {} message RemoveNeighborEntryRequest { - NeighborEntry entry = 1; - - + NeighborEntry entry = 1; } -message RemoveNeighborEntryResponse { - - -} +message RemoveNeighborEntryResponse {} message SetNeighborEntryAttributeRequest { - NeighborEntry entry = 1; - oneof attr { - bytes dst_mac_address = 2; - PacketAction packet_action = 3; - uint64 user_trap_id = 4; - bool no_host_route = 5; - uint32 meta_data = 6; - uint64 counter_id = 7; - uint32 encap_index = 8; - bool encap_impose_index = 9; - bool is_local = 10; - } + NeighborEntry entry = 1; + optional bytes dst_mac_address = 2 [(attr_enum_value) = 1]; + optional PacketAction packet_action = 3 [(attr_enum_value) = 2]; + optional uint64 user_trap_id = 4 [(attr_enum_value) = 3]; + optional bool no_host_route = 5 [(attr_enum_value) = 4]; + optional uint32 meta_data = 6 [(attr_enum_value) = 5]; + optional uint64 counter_id = 7 [(attr_enum_value) = 6]; + optional uint32 encap_index = 8 [(attr_enum_value) = 7]; + optional bool encap_impose_index = 9 [(attr_enum_value) = 8]; + optional bool is_local = 10 [(attr_enum_value) = 9]; } -message SetNeighborEntryAttributeResponse { - - -} +message SetNeighborEntryAttributeResponse {} message GetNeighborEntryAttributeRequest { - NeighborEntry entry = 1; - repeated NeighborEntryAttr attr_type = 2; - - + NeighborEntry entry = 1; + repeated NeighborEntryAttr attr_type = 2; } message GetNeighborEntryAttributeResponse { - repeated NeighborEntryAttribute attr = 1; - - + NeighborEntryAttribute attr = 1; } - service Neighbor { - rpc CreateNeighborEntry (CreateNeighborEntryRequest) returns (CreateNeighborEntryResponse) {} - rpc RemoveNeighborEntry (RemoveNeighborEntryRequest) returns (RemoveNeighborEntryResponse) {} - rpc SetNeighborEntryAttribute (SetNeighborEntryAttributeRequest) returns (SetNeighborEntryAttributeResponse) {} - rpc GetNeighborEntryAttribute (GetNeighborEntryAttributeRequest) returns (GetNeighborEntryAttributeResponse) {} + rpc CreateNeighborEntry(CreateNeighborEntryRequest) + returns (CreateNeighborEntryResponse) {} + rpc RemoveNeighborEntry(RemoveNeighborEntryRequest) + returns (RemoveNeighborEntryResponse) {} + rpc SetNeighborEntryAttribute(SetNeighborEntryAttributeRequest) + returns (SetNeighborEntryAttributeResponse) {} + rpc GetNeighborEntryAttribute(GetNeighborEntryAttributeRequest) + returns (GetNeighborEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/next_hop.pb.go b/dataplane/standalone/proto/next_hop.pb.go index b3d8cb76..3faabea2 100755 --- a/dataplane/standalone/proto/next_hop.pb.go +++ b/dataplane/standalone/proto/next_hop.pb.go @@ -120,23 +120,23 @@ type CreateNextHopRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type NextHopType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopType" json:"type,omitempty"` - Ip []byte `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"` - RouterInterfaceId uint64 `protobuf:"varint,4,opt,name=router_interface_id,json=routerInterfaceId,proto3" json:"router_interface_id,omitempty"` - TunnelId uint64 `protobuf:"varint,5,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"` - TunnelVni uint32 `protobuf:"varint,6,opt,name=tunnel_vni,json=tunnelVni,proto3" json:"tunnel_vni,omitempty"` - TunnelMac []byte `protobuf:"bytes,7,opt,name=tunnel_mac,json=tunnelMac,proto3" json:"tunnel_mac,omitempty"` - Srv6SidlistId uint64 `protobuf:"varint,8,opt,name=srv6_sidlist_id,json=srv6SidlistId,proto3" json:"srv6_sidlist_id,omitempty"` - Labelstack []uint32 `protobuf:"varint,9,rep,packed,name=labelstack,proto3" json:"labelstack,omitempty"` - CounterId uint64 `protobuf:"varint,10,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` - DisableDecrementTtl bool `protobuf:"varint,11,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3" json:"disable_decrement_ttl,omitempty"` - OutsegType OutsegType `protobuf:"varint,12,opt,name=outseg_type,json=outsegType,proto3,enum=lemming.dataplane.sai.OutsegType" json:"outseg_type,omitempty"` - OutsegTtlMode OutsegTtlMode `protobuf:"varint,13,opt,name=outseg_ttl_mode,json=outsegTtlMode,proto3,enum=lemming.dataplane.sai.OutsegTtlMode" json:"outseg_ttl_mode,omitempty"` - OutsegTtlValue uint32 `protobuf:"varint,14,opt,name=outseg_ttl_value,json=outsegTtlValue,proto3" json:"outseg_ttl_value,omitempty"` - OutsegExpMode OutsegExpMode `protobuf:"varint,15,opt,name=outseg_exp_mode,json=outsegExpMode,proto3,enum=lemming.dataplane.sai.OutsegExpMode" json:"outseg_exp_mode,omitempty"` - OutsegExpValue uint32 `protobuf:"varint,16,opt,name=outseg_exp_value,json=outsegExpValue,proto3" json:"outseg_exp_value,omitempty"` - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,17,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *NextHopType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopType,oneof" json:"type,omitempty"` + Ip []byte `protobuf:"bytes,3,opt,name=ip,proto3,oneof" json:"ip,omitempty"` + RouterInterfaceId *uint64 `protobuf:"varint,4,opt,name=router_interface_id,json=routerInterfaceId,proto3,oneof" json:"router_interface_id,omitempty"` + TunnelId *uint64 `protobuf:"varint,5,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + TunnelVni *uint32 `protobuf:"varint,6,opt,name=tunnel_vni,json=tunnelVni,proto3,oneof" json:"tunnel_vni,omitempty"` + TunnelMac []byte `protobuf:"bytes,7,opt,name=tunnel_mac,json=tunnelMac,proto3,oneof" json:"tunnel_mac,omitempty"` + Srv6SidlistId *uint64 `protobuf:"varint,8,opt,name=srv6_sidlist_id,json=srv6SidlistId,proto3,oneof" json:"srv6_sidlist_id,omitempty"` + Labelstack []uint32 `protobuf:"varint,9,rep,packed,name=labelstack,proto3" json:"labelstack,omitempty"` + CounterId *uint64 `protobuf:"varint,10,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,11,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + OutsegType *OutsegType `protobuf:"varint,12,opt,name=outseg_type,json=outsegType,proto3,enum=lemming.dataplane.sai.OutsegType,oneof" json:"outseg_type,omitempty"` + OutsegTtlMode *OutsegTtlMode `protobuf:"varint,13,opt,name=outseg_ttl_mode,json=outsegTtlMode,proto3,enum=lemming.dataplane.sai.OutsegTtlMode,oneof" json:"outseg_ttl_mode,omitempty"` + OutsegTtlValue *uint32 `protobuf:"varint,14,opt,name=outseg_ttl_value,json=outsegTtlValue,proto3,oneof" json:"outseg_ttl_value,omitempty"` + OutsegExpMode *OutsegExpMode `protobuf:"varint,15,opt,name=outseg_exp_mode,json=outsegExpMode,proto3,enum=lemming.dataplane.sai.OutsegExpMode,oneof" json:"outseg_exp_mode,omitempty"` + OutsegExpValue *uint32 `protobuf:"varint,16,opt,name=outseg_exp_value,json=outsegExpValue,proto3,oneof" json:"outseg_exp_value,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,17,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` } func (x *CreateNextHopRequest) Reset() { @@ -179,8 +179,8 @@ func (x *CreateNextHopRequest) GetSwitch() uint64 { } func (x *CreateNextHopRequest) GetType() NextHopType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return NextHopType_NEXT_HOP_TYPE_UNSPECIFIED } @@ -193,22 +193,22 @@ func (x *CreateNextHopRequest) GetIp() []byte { } func (x *CreateNextHopRequest) GetRouterInterfaceId() uint64 { - if x != nil { - return x.RouterInterfaceId + if x != nil && x.RouterInterfaceId != nil { + return *x.RouterInterfaceId } return 0 } func (x *CreateNextHopRequest) GetTunnelId() uint64 { - if x != nil { - return x.TunnelId + if x != nil && x.TunnelId != nil { + return *x.TunnelId } return 0 } func (x *CreateNextHopRequest) GetTunnelVni() uint32 { - if x != nil { - return x.TunnelVni + if x != nil && x.TunnelVni != nil { + return *x.TunnelVni } return 0 } @@ -221,8 +221,8 @@ func (x *CreateNextHopRequest) GetTunnelMac() []byte { } func (x *CreateNextHopRequest) GetSrv6SidlistId() uint64 { - if x != nil { - return x.Srv6SidlistId + if x != nil && x.Srv6SidlistId != nil { + return *x.Srv6SidlistId } return 0 } @@ -235,57 +235,57 @@ func (x *CreateNextHopRequest) GetLabelstack() []uint32 { } func (x *CreateNextHopRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *CreateNextHopRequest) GetDisableDecrementTtl() bool { - if x != nil { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *CreateNextHopRequest) GetOutsegType() OutsegType { - if x != nil { - return x.OutsegType + if x != nil && x.OutsegType != nil { + return *x.OutsegType } return OutsegType_OUTSEG_TYPE_UNSPECIFIED } func (x *CreateNextHopRequest) GetOutsegTtlMode() OutsegTtlMode { - if x != nil { - return x.OutsegTtlMode + if x != nil && x.OutsegTtlMode != nil { + return *x.OutsegTtlMode } return OutsegTtlMode_OUTSEG_TTL_MODE_UNSPECIFIED } func (x *CreateNextHopRequest) GetOutsegTtlValue() uint32 { - if x != nil { - return x.OutsegTtlValue + if x != nil && x.OutsegTtlValue != nil { + return *x.OutsegTtlValue } return 0 } func (x *CreateNextHopRequest) GetOutsegExpMode() OutsegExpMode { - if x != nil { - return x.OutsegExpMode + if x != nil && x.OutsegExpMode != nil { + return *x.OutsegExpMode } return OutsegExpMode_OUTSEG_EXP_MODE_UNSPECIFIED } func (x *CreateNextHopRequest) GetOutsegExpValue() uint32 { - if x != nil { - return x.OutsegExpValue + if x != nil && x.OutsegExpValue != nil { + return *x.OutsegExpValue } return 0 } func (x *CreateNextHopRequest) GetQosTcAndColorToMplsExpMap() uint64 { - if x != nil { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } @@ -427,20 +427,17 @@ type SetNextHopAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetNextHopAttributeRequest_TunnelVni - // *SetNextHopAttributeRequest_TunnelMac - // *SetNextHopAttributeRequest_CounterId - // *SetNextHopAttributeRequest_DisableDecrementTtl - // *SetNextHopAttributeRequest_OutsegType - // *SetNextHopAttributeRequest_OutsegTtlMode - // *SetNextHopAttributeRequest_OutsegTtlValue - // *SetNextHopAttributeRequest_OutsegExpMode - // *SetNextHopAttributeRequest_OutsegExpValue - // *SetNextHopAttributeRequest_QosTcAndColorToMplsExpMap - Attr isSetNextHopAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + TunnelVni *uint32 `protobuf:"varint,2,opt,name=tunnel_vni,json=tunnelVni,proto3,oneof" json:"tunnel_vni,omitempty"` + TunnelMac []byte `protobuf:"bytes,3,opt,name=tunnel_mac,json=tunnelMac,proto3,oneof" json:"tunnel_mac,omitempty"` + CounterId *uint64 `protobuf:"varint,4,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,5,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + OutsegType *OutsegType `protobuf:"varint,6,opt,name=outseg_type,json=outsegType,proto3,enum=lemming.dataplane.sai.OutsegType,oneof" json:"outseg_type,omitempty"` + OutsegTtlMode *OutsegTtlMode `protobuf:"varint,7,opt,name=outseg_ttl_mode,json=outsegTtlMode,proto3,enum=lemming.dataplane.sai.OutsegTtlMode,oneof" json:"outseg_ttl_mode,omitempty"` + OutsegTtlValue *uint32 `protobuf:"varint,8,opt,name=outseg_ttl_value,json=outsegTtlValue,proto3,oneof" json:"outseg_ttl_value,omitempty"` + OutsegExpMode *OutsegExpMode `protobuf:"varint,9,opt,name=outseg_exp_mode,json=outsegExpMode,proto3,enum=lemming.dataplane.sai.OutsegExpMode,oneof" json:"outseg_exp_mode,omitempty"` + OutsegExpValue *uint32 `protobuf:"varint,10,opt,name=outseg_exp_value,json=outsegExpValue,proto3,oneof" json:"outseg_exp_value,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,11,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` } func (x *SetNextHopAttributeRequest) Reset() { @@ -482,147 +479,76 @@ func (x *SetNextHopAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetNextHopAttributeRequest) GetAttr() isSetNextHopAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetNextHopAttributeRequest) GetTunnelVni() uint32 { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_TunnelVni); ok { - return x.TunnelVni + if x != nil && x.TunnelVni != nil { + return *x.TunnelVni } return 0 } func (x *SetNextHopAttributeRequest) GetTunnelMac() []byte { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_TunnelMac); ok { + if x != nil { return x.TunnelMac } return nil } func (x *SetNextHopAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *SetNextHopAttributeRequest) GetDisableDecrementTtl() bool { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_DisableDecrementTtl); ok { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *SetNextHopAttributeRequest) GetOutsegType() OutsegType { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_OutsegType); ok { - return x.OutsegType + if x != nil && x.OutsegType != nil { + return *x.OutsegType } return OutsegType_OUTSEG_TYPE_UNSPECIFIED } func (x *SetNextHopAttributeRequest) GetOutsegTtlMode() OutsegTtlMode { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_OutsegTtlMode); ok { - return x.OutsegTtlMode + if x != nil && x.OutsegTtlMode != nil { + return *x.OutsegTtlMode } return OutsegTtlMode_OUTSEG_TTL_MODE_UNSPECIFIED } func (x *SetNextHopAttributeRequest) GetOutsegTtlValue() uint32 { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_OutsegTtlValue); ok { - return x.OutsegTtlValue + if x != nil && x.OutsegTtlValue != nil { + return *x.OutsegTtlValue } return 0 } func (x *SetNextHopAttributeRequest) GetOutsegExpMode() OutsegExpMode { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_OutsegExpMode); ok { - return x.OutsegExpMode + if x != nil && x.OutsegExpMode != nil { + return *x.OutsegExpMode } return OutsegExpMode_OUTSEG_EXP_MODE_UNSPECIFIED } func (x *SetNextHopAttributeRequest) GetOutsegExpValue() uint32 { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_OutsegExpValue); ok { - return x.OutsegExpValue + if x != nil && x.OutsegExpValue != nil { + return *x.OutsegExpValue } return 0 } func (x *SetNextHopAttributeRequest) GetQosTcAndColorToMplsExpMap() uint64 { - if x, ok := x.GetAttr().(*SetNextHopAttributeRequest_QosTcAndColorToMplsExpMap); ok { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } -type isSetNextHopAttributeRequest_Attr interface { - isSetNextHopAttributeRequest_Attr() -} - -type SetNextHopAttributeRequest_TunnelVni struct { - TunnelVni uint32 `protobuf:"varint,2,opt,name=tunnel_vni,json=tunnelVni,proto3,oneof"` -} - -type SetNextHopAttributeRequest_TunnelMac struct { - TunnelMac []byte `protobuf:"bytes,3,opt,name=tunnel_mac,json=tunnelMac,proto3,oneof"` -} - -type SetNextHopAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,4,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -type SetNextHopAttributeRequest_DisableDecrementTtl struct { - DisableDecrementTtl bool `protobuf:"varint,5,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof"` -} - -type SetNextHopAttributeRequest_OutsegType struct { - OutsegType OutsegType `protobuf:"varint,6,opt,name=outseg_type,json=outsegType,proto3,enum=lemming.dataplane.sai.OutsegType,oneof"` -} - -type SetNextHopAttributeRequest_OutsegTtlMode struct { - OutsegTtlMode OutsegTtlMode `protobuf:"varint,7,opt,name=outseg_ttl_mode,json=outsegTtlMode,proto3,enum=lemming.dataplane.sai.OutsegTtlMode,oneof"` -} - -type SetNextHopAttributeRequest_OutsegTtlValue struct { - OutsegTtlValue uint32 `protobuf:"varint,8,opt,name=outseg_ttl_value,json=outsegTtlValue,proto3,oneof"` -} - -type SetNextHopAttributeRequest_OutsegExpMode struct { - OutsegExpMode OutsegExpMode `protobuf:"varint,9,opt,name=outseg_exp_mode,json=outsegExpMode,proto3,enum=lemming.dataplane.sai.OutsegExpMode,oneof"` -} - -type SetNextHopAttributeRequest_OutsegExpValue struct { - OutsegExpValue uint32 `protobuf:"varint,10,opt,name=outseg_exp_value,json=outsegExpValue,proto3,oneof"` -} - -type SetNextHopAttributeRequest_QosTcAndColorToMplsExpMap struct { - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,11,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof"` -} - -func (*SetNextHopAttributeRequest_TunnelVni) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_TunnelMac) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_CounterId) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_DisableDecrementTtl) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_OutsegType) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_OutsegTtlMode) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_OutsegTtlValue) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_OutsegExpMode) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_OutsegExpValue) isSetNextHopAttributeRequest_Attr() {} - -func (*SetNextHopAttributeRequest_QosTcAndColorToMplsExpMap) isSetNextHopAttributeRequest_Attr() {} - type SetNextHopAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -721,7 +647,7 @@ type GetNextHopAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*NextHopAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *NextHopAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetNextHopAttributeResponse) Reset() { @@ -756,7 +682,7 @@ func (*GetNextHopAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_next_hop_proto_rawDescGZIP(), []int{7} } -func (x *GetNextHopAttributeResponse) GetAttr() []*NextHopAttribute { +func (x *GetNextHopAttributeResponse) GetAttr() *NextHopAttribute { if x != nil { return x.Attr } @@ -772,187 +698,233 @@ var file_dataplane_standalone_proto_next_hop_proto_rawDesc = []byte{ 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x06, 0x0a, 0x14, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x09, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x36, 0x0a, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x02, 0x69, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, - 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x63, 0x12, - 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, - 0x64, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x42, 0x0a, 0x0b, 0x6f, 0x75, - 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, - 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x6f, - 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, - 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, - 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, - 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, - 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, + 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x02, 0x69, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, + 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, + 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x56, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x63, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x6c, 0x69, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x0d, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x74, 0x61, + 0x63, 0x6b, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x52, 0x0a, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0b, 0x48, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x65, + 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6f, + 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0b, 0x52, 0x0e, 0x6f, + 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x57, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0c, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, + 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6f, 0x75, 0x74, + 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x0e, 0x6f, 0x75, 0x74, + 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, - 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, - 0x4d, 0x61, 0x70, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x28, - 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xd4, 0x04, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x56, 0x6e, 0x69, 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, - 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x4d, 0x61, 0x63, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x44, 0x0a, 0x0b, 0x6f, - 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, + 0x61, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0e, + 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, + 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x70, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x76, 0x6e, 0x69, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, + 0x61, 0x63, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x6c, + 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, + 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, + 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf4, 0x06, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x76, 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, + 0x00, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x01, 0x52, 0x09, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x09, 0x48, 0x02, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x03, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, + 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, - 0x48, 0x00, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x6f, - 0x75, 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, - 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4f, - 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0d, - 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, - 0x10, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x73, 0x65, - 0x67, 0x45, 0x78, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x20, 0x71, 0x6f, 0x73, - 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, - 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, - 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x2a, 0xc3, 0x04, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4e, - 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x10, - 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, - 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x45, 0x58, 0x54, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x05, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, + 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6f, 0x75, + 0x74, 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x06, 0x52, 0x0e, 0x6f, 0x75, + 0x74, 0x73, 0x65, 0x67, 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x57, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x4f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x07, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x45, 0x78, + 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x73, + 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x08, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x73, + 0x65, 0x67, 0x45, 0x78, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, + 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x09, 0x52, + 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, + 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, + 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x75, 0x74, + 0x73, 0x65, 0x67, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x70, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, + 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x22, 0x1d, 0x0a, 0x1b, 0x53, + 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, + 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xc3, 0x04, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x45, 0x58, 0x54, 0x5f, + 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, + 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x14, + 0x0a, 0x10, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x49, 0x50, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, + 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x4e, + 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, + 0x4e, 0x45, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, - 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, - 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x4e, - 0x49, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x43, 0x10, - 0x06, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, - 0x49, 0x44, 0x10, 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x53, 0x54, 0x41, 0x43, 0x4b, - 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x09, - 0x12, 0x27, 0x0a, 0x23, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x45, 0x4d, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x45, 0x58, - 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x53, 0x45, - 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0b, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x45, 0x58, 0x54, - 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, - 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x0c, 0x12, 0x22, 0x0a, 0x1e, 0x4e, + 0x5f, 0x56, 0x4e, 0x49, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, + 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4d, + 0x41, 0x43, 0x10, 0x06, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, + 0x53, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, + 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x53, 0x54, + 0x41, 0x43, 0x4b, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, + 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, + 0x44, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x43, + 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, + 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, + 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0b, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, - 0x53, 0x45, 0x47, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x0d, 0x12, - 0x21, 0x0a, 0x1d, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x56, - 0x41, 0x4c, 0x55, 0x45, 0x10, 0x0f, 0x12, 0x32, 0x0a, 0x2e, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, - 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x41, - 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x50, 0x4c, 0x53, - 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x10, 0x32, 0xe5, 0x03, 0x0a, 0x07, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x6c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x53, 0x45, 0x47, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x0c, 0x12, 0x22, + 0x0a, 0x1e, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x54, 0x54, 0x4c, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, + 0x10, 0x0d, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, + 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x53, 0x45, 0x47, 0x5f, 0x45, 0x58, + 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x0f, 0x12, 0x32, 0x0a, 0x2e, 0x4e, 0x45, 0x58, + 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, + 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, + 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x10, 0x32, 0xe5, 0x03, + 0x0a, 0x07, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x6c, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, + 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1114,18 +1086,8 @@ func file_dataplane_standalone_proto_next_hop_proto_init() { } } } - file_dataplane_standalone_proto_next_hop_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetNextHopAttributeRequest_TunnelVni)(nil), - (*SetNextHopAttributeRequest_TunnelMac)(nil), - (*SetNextHopAttributeRequest_CounterId)(nil), - (*SetNextHopAttributeRequest_DisableDecrementTtl)(nil), - (*SetNextHopAttributeRequest_OutsegType)(nil), - (*SetNextHopAttributeRequest_OutsegTtlMode)(nil), - (*SetNextHopAttributeRequest_OutsegTtlValue)(nil), - (*SetNextHopAttributeRequest_OutsegExpMode)(nil), - (*SetNextHopAttributeRequest_OutsegExpValue)(nil), - (*SetNextHopAttributeRequest_QosTcAndColorToMplsExpMap)(nil), - } + file_dataplane_standalone_proto_next_hop_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_next_hop_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/next_hop.proto b/dataplane/standalone/proto/next_hop.proto index c026665b..32ed13c0 100644 --- a/dataplane/standalone/proto/next_hop.proto +++ b/dataplane/standalone/proto/next_hop.proto @@ -7,104 +7,88 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum NextHopAttr { - NEXT_HOP_ATTR_UNSPECIFIED = 0; - NEXT_HOP_ATTR_TYPE = 1; - NEXT_HOP_ATTR_IP = 2; - NEXT_HOP_ATTR_ROUTER_INTERFACE_ID = 3; - NEXT_HOP_ATTR_TUNNEL_ID = 4; - NEXT_HOP_ATTR_TUNNEL_VNI = 5; - NEXT_HOP_ATTR_TUNNEL_MAC = 6; - NEXT_HOP_ATTR_SRV6_SIDLIST_ID = 7; - NEXT_HOP_ATTR_LABELSTACK = 8; - NEXT_HOP_ATTR_COUNTER_ID = 9; - NEXT_HOP_ATTR_DISABLE_DECREMENT_TTL = 10; - NEXT_HOP_ATTR_OUTSEG_TYPE = 11; - NEXT_HOP_ATTR_OUTSEG_TTL_MODE = 12; - NEXT_HOP_ATTR_OUTSEG_TTL_VALUE = 13; - NEXT_HOP_ATTR_OUTSEG_EXP_MODE = 14; - NEXT_HOP_ATTR_OUTSEG_EXP_VALUE = 15; - NEXT_HOP_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP = 16; + NEXT_HOP_ATTR_UNSPECIFIED = 0; + NEXT_HOP_ATTR_TYPE = 1; + NEXT_HOP_ATTR_IP = 2; + NEXT_HOP_ATTR_ROUTER_INTERFACE_ID = 3; + NEXT_HOP_ATTR_TUNNEL_ID = 4; + NEXT_HOP_ATTR_TUNNEL_VNI = 5; + NEXT_HOP_ATTR_TUNNEL_MAC = 6; + NEXT_HOP_ATTR_SRV6_SIDLIST_ID = 7; + NEXT_HOP_ATTR_LABELSTACK = 8; + NEXT_HOP_ATTR_COUNTER_ID = 9; + NEXT_HOP_ATTR_DISABLE_DECREMENT_TTL = 10; + NEXT_HOP_ATTR_OUTSEG_TYPE = 11; + NEXT_HOP_ATTR_OUTSEG_TTL_MODE = 12; + NEXT_HOP_ATTR_OUTSEG_TTL_VALUE = 13; + NEXT_HOP_ATTR_OUTSEG_EXP_MODE = 14; + NEXT_HOP_ATTR_OUTSEG_EXP_VALUE = 15; + NEXT_HOP_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP = 16; } message CreateNextHopRequest { - uint64 switch = 1; - - NextHopType type = 2; - bytes ip = 3; - uint64 router_interface_id = 4; - uint64 tunnel_id = 5; - uint32 tunnel_vni = 6; - bytes tunnel_mac = 7; - uint64 srv6_sidlist_id = 8; - repeated uint32 labelstack = 9; - uint64 counter_id = 10; - bool disable_decrement_ttl = 11; - OutsegType outseg_type = 12; - OutsegTtlMode outseg_ttl_mode = 13; - uint32 outseg_ttl_value = 14; - OutsegExpMode outseg_exp_mode = 15; - uint32 outseg_exp_value = 16; - uint64 qos_tc_and_color_to_mpls_exp_map = 17; - + uint64 switch = 1; + optional NextHopType type = 2 [(attr_enum_value) = 1]; + optional bytes ip = 3 [(attr_enum_value) = 2]; + optional uint64 router_interface_id = 4 [(attr_enum_value) = 3]; + optional uint64 tunnel_id = 5 [(attr_enum_value) = 4]; + optional uint32 tunnel_vni = 6 [(attr_enum_value) = 5]; + optional bytes tunnel_mac = 7 [(attr_enum_value) = 6]; + optional uint64 srv6_sidlist_id = 8 [(attr_enum_value) = 7]; + repeated uint32 labelstack = 9 [(attr_enum_value) = 8]; + optional uint64 counter_id = 10 [(attr_enum_value) = 9]; + optional bool disable_decrement_ttl = 11 [(attr_enum_value) = 10]; + optional OutsegType outseg_type = 12 [(attr_enum_value) = 11]; + optional OutsegTtlMode outseg_ttl_mode = 13 [(attr_enum_value) = 12]; + optional uint32 outseg_ttl_value = 14 [(attr_enum_value) = 13]; + optional OutsegExpMode outseg_exp_mode = 15 [(attr_enum_value) = 14]; + optional uint32 outseg_exp_value = 16 [(attr_enum_value) = 15]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 17 + [(attr_enum_value) = 16]; } message CreateNextHopResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveNextHopRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveNextHopResponse { - - -} +message RemoveNextHopResponse {} message SetNextHopAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 tunnel_vni = 2; - bytes tunnel_mac = 3; - uint64 counter_id = 4; - bool disable_decrement_ttl = 5; - OutsegType outseg_type = 6; - OutsegTtlMode outseg_ttl_mode = 7; - uint32 outseg_ttl_value = 8; - OutsegExpMode outseg_exp_mode = 9; - uint32 outseg_exp_value = 10; - uint64 qos_tc_and_color_to_mpls_exp_map = 11; - } + uint64 oid = 1; + optional uint32 tunnel_vni = 2 [(attr_enum_value) = 5]; + optional bytes tunnel_mac = 3 [(attr_enum_value) = 6]; + optional uint64 counter_id = 4 [(attr_enum_value) = 9]; + optional bool disable_decrement_ttl = 5 [(attr_enum_value) = 10]; + optional OutsegType outseg_type = 6 [(attr_enum_value) = 11]; + optional OutsegTtlMode outseg_ttl_mode = 7 [(attr_enum_value) = 12]; + optional uint32 outseg_ttl_value = 8 [(attr_enum_value) = 13]; + optional OutsegExpMode outseg_exp_mode = 9 [(attr_enum_value) = 14]; + optional uint32 outseg_exp_value = 10 [(attr_enum_value) = 15]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 11 + [(attr_enum_value) = 16]; } -message SetNextHopAttributeResponse { - - -} +message SetNextHopAttributeResponse {} message GetNextHopAttributeRequest { - uint64 oid = 1; - repeated NextHopAttr attr_type = 2; - - + uint64 oid = 1; + repeated NextHopAttr attr_type = 2; } message GetNextHopAttributeResponse { - repeated NextHopAttribute attr = 1; - - + NextHopAttribute attr = 1; } - service NextHop { - rpc CreateNextHop (CreateNextHopRequest) returns (CreateNextHopResponse) {} - rpc RemoveNextHop (RemoveNextHopRequest) returns (RemoveNextHopResponse) {} - rpc SetNextHopAttribute (SetNextHopAttributeRequest) returns (SetNextHopAttributeResponse) {} - rpc GetNextHopAttribute (GetNextHopAttributeRequest) returns (GetNextHopAttributeResponse) {} + rpc CreateNextHop(CreateNextHopRequest) returns (CreateNextHopResponse) {} + rpc RemoveNextHop(RemoveNextHopRequest) returns (RemoveNextHopResponse) {} + rpc SetNextHopAttribute(SetNextHopAttributeRequest) + returns (SetNextHopAttributeResponse) {} + rpc GetNextHopAttribute(GetNextHopAttributeRequest) + returns (GetNextHopAttributeResponse) {} } diff --git a/dataplane/standalone/proto/next_hop_group.pb.go b/dataplane/standalone/proto/next_hop_group.pb.go index 5d07bb86..6206f48c 100755 --- a/dataplane/standalone/proto/next_hop_group.pb.go +++ b/dataplane/standalone/proto/next_hop_group.pb.go @@ -215,12 +215,12 @@ type CreateNextHopGroupRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type NextHopGroupType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopGroupType" json:"type,omitempty"` - SetSwitchover bool `protobuf:"varint,3,opt,name=set_switchover,json=setSwitchover,proto3" json:"set_switchover,omitempty"` - CounterId uint64 `protobuf:"varint,4,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` - ConfiguredSize uint32 `protobuf:"varint,5,opt,name=configured_size,json=configuredSize,proto3" json:"configured_size,omitempty"` - SelectionMap uint64 `protobuf:"varint,6,opt,name=selection_map,json=selectionMap,proto3" json:"selection_map,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *NextHopGroupType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopGroupType,oneof" json:"type,omitempty"` + SetSwitchover *bool `protobuf:"varint,3,opt,name=set_switchover,json=setSwitchover,proto3,oneof" json:"set_switchover,omitempty"` + CounterId *uint64 `protobuf:"varint,4,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + ConfiguredSize *uint32 `protobuf:"varint,5,opt,name=configured_size,json=configuredSize,proto3,oneof" json:"configured_size,omitempty"` + SelectionMap *uint64 `protobuf:"varint,6,opt,name=selection_map,json=selectionMap,proto3,oneof" json:"selection_map,omitempty"` } func (x *CreateNextHopGroupRequest) Reset() { @@ -263,36 +263,36 @@ func (x *CreateNextHopGroupRequest) GetSwitch() uint64 { } func (x *CreateNextHopGroupRequest) GetType() NextHopGroupType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return NextHopGroupType_NEXT_HOP_GROUP_TYPE_UNSPECIFIED } func (x *CreateNextHopGroupRequest) GetSetSwitchover() bool { - if x != nil { - return x.SetSwitchover + if x != nil && x.SetSwitchover != nil { + return *x.SetSwitchover } return false } func (x *CreateNextHopGroupRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *CreateNextHopGroupRequest) GetConfiguredSize() uint32 { - if x != nil { - return x.ConfiguredSize + if x != nil && x.ConfiguredSize != nil { + return *x.ConfiguredSize } return 0 } func (x *CreateNextHopGroupRequest) GetSelectionMap() uint64 { - if x != nil { - return x.SelectionMap + if x != nil && x.SelectionMap != nil { + return *x.SelectionMap } return 0 } @@ -434,13 +434,10 @@ type SetNextHopGroupAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetNextHopGroupAttributeRequest_SetSwitchover - // *SetNextHopGroupAttributeRequest_CounterId - // *SetNextHopGroupAttributeRequest_SelectionMap - Attr isSetNextHopGroupAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + SetSwitchover *bool `protobuf:"varint,2,opt,name=set_switchover,json=setSwitchover,proto3,oneof" json:"set_switchover,omitempty"` + CounterId *uint64 `protobuf:"varint,3,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` + SelectionMap *uint64 `protobuf:"varint,4,opt,name=selection_map,json=selectionMap,proto3,oneof" json:"selection_map,omitempty"` } func (x *SetNextHopGroupAttributeRequest) Reset() { @@ -482,56 +479,27 @@ func (x *SetNextHopGroupAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetNextHopGroupAttributeRequest) GetAttr() isSetNextHopGroupAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetNextHopGroupAttributeRequest) GetSetSwitchover() bool { - if x, ok := x.GetAttr().(*SetNextHopGroupAttributeRequest_SetSwitchover); ok { - return x.SetSwitchover + if x != nil && x.SetSwitchover != nil { + return *x.SetSwitchover } return false } func (x *SetNextHopGroupAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetNextHopGroupAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } func (x *SetNextHopGroupAttributeRequest) GetSelectionMap() uint64 { - if x, ok := x.GetAttr().(*SetNextHopGroupAttributeRequest_SelectionMap); ok { - return x.SelectionMap + if x != nil && x.SelectionMap != nil { + return *x.SelectionMap } return 0 } -type isSetNextHopGroupAttributeRequest_Attr interface { - isSetNextHopGroupAttributeRequest_Attr() -} - -type SetNextHopGroupAttributeRequest_SetSwitchover struct { - SetSwitchover bool `protobuf:"varint,2,opt,name=set_switchover,json=setSwitchover,proto3,oneof"` -} - -type SetNextHopGroupAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,3,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -type SetNextHopGroupAttributeRequest_SelectionMap struct { - SelectionMap uint64 `protobuf:"varint,4,opt,name=selection_map,json=selectionMap,proto3,oneof"` -} - -func (*SetNextHopGroupAttributeRequest_SetSwitchover) isSetNextHopGroupAttributeRequest_Attr() {} - -func (*SetNextHopGroupAttributeRequest_CounterId) isSetNextHopGroupAttributeRequest_Attr() {} - -func (*SetNextHopGroupAttributeRequest_SelectionMap) isSetNextHopGroupAttributeRequest_Attr() {} - type SetNextHopGroupAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -630,7 +598,7 @@ type GetNextHopGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*NextHopGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *NextHopGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetNextHopGroupAttributeResponse) Reset() { @@ -665,7 +633,7 @@ func (*GetNextHopGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_next_hop_group_proto_rawDescGZIP(), []int{7} } -func (x *GetNextHopGroupAttributeResponse) GetAttr() []*NextHopGroupAttribute { +func (x *GetNextHopGroupAttributeResponse) GetAttr() *NextHopGroupAttribute { if x != nil { return x.Attr } @@ -677,15 +645,15 @@ type CreateNextHopGroupMemberRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - NextHopGroupId uint64 `protobuf:"varint,2,opt,name=next_hop_group_id,json=nextHopGroupId,proto3" json:"next_hop_group_id,omitempty"` - NextHopId uint64 `protobuf:"varint,3,opt,name=next_hop_id,json=nextHopId,proto3" json:"next_hop_id,omitempty"` - Weight uint32 `protobuf:"varint,4,opt,name=weight,proto3" json:"weight,omitempty"` - ConfiguredRole NextHopGroupMemberConfiguredRole `protobuf:"varint,5,opt,name=configured_role,json=configuredRole,proto3,enum=lemming.dataplane.sai.NextHopGroupMemberConfiguredRole" json:"configured_role,omitempty"` - MonitoredObject uint64 `protobuf:"varint,6,opt,name=monitored_object,json=monitoredObject,proto3" json:"monitored_object,omitempty"` - Index uint32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` - SequenceId uint32 `protobuf:"varint,8,opt,name=sequence_id,json=sequenceId,proto3" json:"sequence_id,omitempty"` - CounterId uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + NextHopGroupId *uint64 `protobuf:"varint,2,opt,name=next_hop_group_id,json=nextHopGroupId,proto3,oneof" json:"next_hop_group_id,omitempty"` + NextHopId *uint64 `protobuf:"varint,3,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + Weight *uint32 `protobuf:"varint,4,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + ConfiguredRole *NextHopGroupMemberConfiguredRole `protobuf:"varint,5,opt,name=configured_role,json=configuredRole,proto3,enum=lemming.dataplane.sai.NextHopGroupMemberConfiguredRole,oneof" json:"configured_role,omitempty"` + MonitoredObject *uint64 `protobuf:"varint,6,opt,name=monitored_object,json=monitoredObject,proto3,oneof" json:"monitored_object,omitempty"` + Index *uint32 `protobuf:"varint,7,opt,name=index,proto3,oneof" json:"index,omitempty"` + SequenceId *uint32 `protobuf:"varint,8,opt,name=sequence_id,json=sequenceId,proto3,oneof" json:"sequence_id,omitempty"` + CounterId *uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *CreateNextHopGroupMemberRequest) Reset() { @@ -728,57 +696,57 @@ func (x *CreateNextHopGroupMemberRequest) GetSwitch() uint64 { } func (x *CreateNextHopGroupMemberRequest) GetNextHopGroupId() uint64 { - if x != nil { - return x.NextHopGroupId + if x != nil && x.NextHopGroupId != nil { + return *x.NextHopGroupId } return 0 } func (x *CreateNextHopGroupMemberRequest) GetNextHopId() uint64 { - if x != nil { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *CreateNextHopGroupMemberRequest) GetWeight() uint32 { - if x != nil { - return x.Weight + if x != nil && x.Weight != nil { + return *x.Weight } return 0 } func (x *CreateNextHopGroupMemberRequest) GetConfiguredRole() NextHopGroupMemberConfiguredRole { - if x != nil { - return x.ConfiguredRole + if x != nil && x.ConfiguredRole != nil { + return *x.ConfiguredRole } return NextHopGroupMemberConfiguredRole_NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_UNSPECIFIED } func (x *CreateNextHopGroupMemberRequest) GetMonitoredObject() uint64 { - if x != nil { - return x.MonitoredObject + if x != nil && x.MonitoredObject != nil { + return *x.MonitoredObject } return 0 } func (x *CreateNextHopGroupMemberRequest) GetIndex() uint32 { - if x != nil { - return x.Index + if x != nil && x.Index != nil { + return *x.Index } return 0 } func (x *CreateNextHopGroupMemberRequest) GetSequenceId() uint32 { - if x != nil { - return x.SequenceId + if x != nil && x.SequenceId != nil { + return *x.SequenceId } return 0 } func (x *CreateNextHopGroupMemberRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -920,15 +888,12 @@ type SetNextHopGroupMemberAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetNextHopGroupMemberAttributeRequest_NextHopId - // *SetNextHopGroupMemberAttributeRequest_Weight - // *SetNextHopGroupMemberAttributeRequest_MonitoredObject - // *SetNextHopGroupMemberAttributeRequest_SequenceId - // *SetNextHopGroupMemberAttributeRequest_CounterId - Attr isSetNextHopGroupMemberAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + NextHopId *uint64 `protobuf:"varint,2,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + Weight *uint32 `protobuf:"varint,3,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + MonitoredObject *uint64 `protobuf:"varint,4,opt,name=monitored_object,json=monitoredObject,proto3,oneof" json:"monitored_object,omitempty"` + SequenceId *uint32 `protobuf:"varint,5,opt,name=sequence_id,json=sequenceId,proto3,oneof" json:"sequence_id,omitempty"` + CounterId *uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *SetNextHopGroupMemberAttributeRequest) Reset() { @@ -970,86 +935,41 @@ func (x *SetNextHopGroupMemberAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetNextHopGroupMemberAttributeRequest) GetAttr() isSetNextHopGroupMemberAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetNextHopGroupMemberAttributeRequest) GetNextHopId() uint64 { - if x, ok := x.GetAttr().(*SetNextHopGroupMemberAttributeRequest_NextHopId); ok { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *SetNextHopGroupMemberAttributeRequest) GetWeight() uint32 { - if x, ok := x.GetAttr().(*SetNextHopGroupMemberAttributeRequest_Weight); ok { - return x.Weight + if x != nil && x.Weight != nil { + return *x.Weight } return 0 } func (x *SetNextHopGroupMemberAttributeRequest) GetMonitoredObject() uint64 { - if x, ok := x.GetAttr().(*SetNextHopGroupMemberAttributeRequest_MonitoredObject); ok { - return x.MonitoredObject + if x != nil && x.MonitoredObject != nil { + return *x.MonitoredObject } return 0 } func (x *SetNextHopGroupMemberAttributeRequest) GetSequenceId() uint32 { - if x, ok := x.GetAttr().(*SetNextHopGroupMemberAttributeRequest_SequenceId); ok { - return x.SequenceId + if x != nil && x.SequenceId != nil { + return *x.SequenceId } return 0 } func (x *SetNextHopGroupMemberAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetNextHopGroupMemberAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } -type isSetNextHopGroupMemberAttributeRequest_Attr interface { - isSetNextHopGroupMemberAttributeRequest_Attr() -} - -type SetNextHopGroupMemberAttributeRequest_NextHopId struct { - NextHopId uint64 `protobuf:"varint,2,opt,name=next_hop_id,json=nextHopId,proto3,oneof"` -} - -type SetNextHopGroupMemberAttributeRequest_Weight struct { - Weight uint32 `protobuf:"varint,3,opt,name=weight,proto3,oneof"` -} - -type SetNextHopGroupMemberAttributeRequest_MonitoredObject struct { - MonitoredObject uint64 `protobuf:"varint,4,opt,name=monitored_object,json=monitoredObject,proto3,oneof"` -} - -type SetNextHopGroupMemberAttributeRequest_SequenceId struct { - SequenceId uint32 `protobuf:"varint,5,opt,name=sequence_id,json=sequenceId,proto3,oneof"` -} - -type SetNextHopGroupMemberAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -func (*SetNextHopGroupMemberAttributeRequest_NextHopId) isSetNextHopGroupMemberAttributeRequest_Attr() { -} - -func (*SetNextHopGroupMemberAttributeRequest_Weight) isSetNextHopGroupMemberAttributeRequest_Attr() {} - -func (*SetNextHopGroupMemberAttributeRequest_MonitoredObject) isSetNextHopGroupMemberAttributeRequest_Attr() { -} - -func (*SetNextHopGroupMemberAttributeRequest_SequenceId) isSetNextHopGroupMemberAttributeRequest_Attr() { -} - -func (*SetNextHopGroupMemberAttributeRequest_CounterId) isSetNextHopGroupMemberAttributeRequest_Attr() { -} - type SetNextHopGroupMemberAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1148,7 +1068,7 @@ type GetNextHopGroupMemberAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*NextHopGroupMemberAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *NextHopGroupMemberAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetNextHopGroupMemberAttributeResponse) Reset() { @@ -1183,7 +1103,7 @@ func (*GetNextHopGroupMemberAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_next_hop_group_proto_rawDescGZIP(), []int{15} } -func (x *GetNextHopGroupMemberAttributeResponse) GetAttr() []*NextHopGroupMemberAttribute { +func (x *GetNextHopGroupMemberAttributeResponse) GetAttr() *NextHopGroupMemberAttribute { if x != nil { return x.Attr } @@ -1195,9 +1115,9 @@ type CreateNextHopGroupMapRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type NextHopGroupMapType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopGroupMapType" json:"type,omitempty"` - MapToValueList []*UintMap `protobuf:"bytes,3,rep,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *NextHopGroupMapType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.NextHopGroupMapType,oneof" json:"type,omitempty"` + MapToValueList []*UintMap `protobuf:"bytes,3,rep,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` } func (x *CreateNextHopGroupMapRequest) Reset() { @@ -1240,8 +1160,8 @@ func (x *CreateNextHopGroupMapRequest) GetSwitch() uint64 { } func (x *CreateNextHopGroupMapRequest) GetType() NextHopGroupMapType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return NextHopGroupMapType_NEXT_HOP_GROUP_MAP_TYPE_UNSPECIFIED } @@ -1390,11 +1310,8 @@ type SetNextHopGroupMapAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetNextHopGroupMapAttributeRequest_MapToValueList - Attr isSetNextHopGroupMapAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + MapToValueList []*UintMap `protobuf:"bytes,2,rep,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` } func (x *SetNextHopGroupMapAttributeRequest) Reset() { @@ -1436,31 +1353,13 @@ func (x *SetNextHopGroupMapAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetNextHopGroupMapAttributeRequest) GetAttr() isSetNextHopGroupMapAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - -func (x *SetNextHopGroupMapAttributeRequest) GetMapToValueList() *UintMapList { - if x, ok := x.GetAttr().(*SetNextHopGroupMapAttributeRequest_MapToValueList); ok { +func (x *SetNextHopGroupMapAttributeRequest) GetMapToValueList() []*UintMap { + if x != nil { return x.MapToValueList } return nil } -type isSetNextHopGroupMapAttributeRequest_Attr interface { - isSetNextHopGroupMapAttributeRequest_Attr() -} - -type SetNextHopGroupMapAttributeRequest_MapToValueList struct { - MapToValueList *UintMapList `protobuf:"bytes,2,opt,name=map_to_value_list,json=mapToValueList,proto3,oneof"` -} - -func (*SetNextHopGroupMapAttributeRequest_MapToValueList) isSetNextHopGroupMapAttributeRequest_Attr() { -} - type SetNextHopGroupMapAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1559,7 +1458,7 @@ type GetNextHopGroupMapAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*NextHopGroupMapAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *NextHopGroupMapAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetNextHopGroupMapAttributeResponse) Reset() { @@ -1594,7 +1493,7 @@ func (*GetNextHopGroupMapAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_next_hop_group_proto_rawDescGZIP(), []int{23} } -func (x *GetNextHopGroupMapAttributeResponse) GetAttr() []*NextHopGroupMapAttribute { +func (x *GetNextHopGroupMapAttributeResponse) GetAttr() *NextHopGroupMapAttribute { if x != nil { return x.Attr } @@ -1611,154 +1510,189 @@ var file_dataplane_standalone_proto_next_hop_group_proto_rawDesc = []byte{ 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x84, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, + 0x6f, 0x22, 0x8c, 0x03, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x65, - 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0e, 0x73, - 0x65, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x6f, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0c, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x42, 0x06, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, + 0x0d, 0x73, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x02, 0x52, 0x09, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x03, 0x52, 0x0e, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x04, 0x52, 0x0c, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, + 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf3, 0x01, + 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, + 0x01, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x02, 0x52, 0x0c, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x61, 0x70, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xff, 0x02, 0x0a, 0x1f, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x60, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xda, 0x04, 0x0a, 0x1f, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x06, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, 0x6b, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x34, 0x0a, 0x20, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x33, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x6f, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x09, 0x48, 0x07, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x34, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x33, 0x0a, 0x1f, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x22, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe2, 0x02, 0x0a, 0x25, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x09, 0x6e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x06, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x01, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x02, + 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, + 0x03, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x04, 0x52, 0x09, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x28, 0x0a, 0x26, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x25, 0x53, - 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x6e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, - 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x21, 0x0a, 0x0b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x28, 0x0a, 0x26, 0x53, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x4a, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x70, 0x0a, 0x26, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xdb, 0x01, + 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x70, 0x0a, - 0x26, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, - 0xc1, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, - 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, - 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x4d, 0x61, 0x70, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x31, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x22, 0x53, 0x65, - 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x4f, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x53, + 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x4f, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x1d, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, + 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x87, 0x01, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4f, 0x0a, 0x11, 0x6d, 0x61, + 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, + 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x70, + 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, @@ -1772,7 +1706,7 @@ var file_dataplane_standalone_proto_next_hop_group_proto_rawDesc = []byte{ 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, @@ -2001,8 +1935,7 @@ var file_dataplane_standalone_proto_next_hop_group_proto_goTypes = []interface{} (*NextHopGroupMemberAttribute)(nil), // 30: lemming.dataplane.sai.NextHopGroupMemberAttribute (NextHopGroupMapType)(0), // 31: lemming.dataplane.sai.NextHopGroupMapType (*UintMap)(nil), // 32: lemming.dataplane.sai.UintMap - (*UintMapList)(nil), // 33: lemming.dataplane.sai.UintMapList - (*NextHopGroupMapAttribute)(nil), // 34: lemming.dataplane.sai.NextHopGroupMapAttribute + (*NextHopGroupMapAttribute)(nil), // 33: lemming.dataplane.sai.NextHopGroupMapAttribute } var file_dataplane_standalone_proto_next_hop_group_proto_depIdxs = []int32{ 27, // 0: lemming.dataplane.sai.CreateNextHopGroupRequest.type:type_name -> lemming.dataplane.sai.NextHopGroupType @@ -2013,9 +1946,9 @@ var file_dataplane_standalone_proto_next_hop_group_proto_depIdxs = []int32{ 30, // 5: lemming.dataplane.sai.GetNextHopGroupMemberAttributeResponse.attr:type_name -> lemming.dataplane.sai.NextHopGroupMemberAttribute 31, // 6: lemming.dataplane.sai.CreateNextHopGroupMapRequest.type:type_name -> lemming.dataplane.sai.NextHopGroupMapType 32, // 7: lemming.dataplane.sai.CreateNextHopGroupMapRequest.map_to_value_list:type_name -> lemming.dataplane.sai.UintMap - 33, // 8: lemming.dataplane.sai.SetNextHopGroupMapAttributeRequest.map_to_value_list:type_name -> lemming.dataplane.sai.UintMapList + 32, // 8: lemming.dataplane.sai.SetNextHopGroupMapAttributeRequest.map_to_value_list:type_name -> lemming.dataplane.sai.UintMap 2, // 9: lemming.dataplane.sai.GetNextHopGroupMapAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.NextHopGroupMapAttr - 34, // 10: lemming.dataplane.sai.GetNextHopGroupMapAttributeResponse.attr:type_name -> lemming.dataplane.sai.NextHopGroupMapAttribute + 33, // 10: lemming.dataplane.sai.GetNextHopGroupMapAttributeResponse.attr:type_name -> lemming.dataplane.sai.NextHopGroupMapAttribute 3, // 11: lemming.dataplane.sai.NextHopGroup.CreateNextHopGroup:input_type -> lemming.dataplane.sai.CreateNextHopGroupRequest 5, // 12: lemming.dataplane.sai.NextHopGroup.RemoveNextHopGroup:input_type -> lemming.dataplane.sai.RemoveNextHopGroupRequest 7, // 13: lemming.dataplane.sai.NextHopGroup.SetNextHopGroupAttribute:input_type -> lemming.dataplane.sai.SetNextHopGroupAttributeRequest @@ -2343,21 +2276,11 @@ func file_dataplane_standalone_proto_next_hop_group_proto_init() { } } } - file_dataplane_standalone_proto_next_hop_group_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetNextHopGroupAttributeRequest_SetSwitchover)(nil), - (*SetNextHopGroupAttributeRequest_CounterId)(nil), - (*SetNextHopGroupAttributeRequest_SelectionMap)(nil), - } - file_dataplane_standalone_proto_next_hop_group_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetNextHopGroupMemberAttributeRequest_NextHopId)(nil), - (*SetNextHopGroupMemberAttributeRequest_Weight)(nil), - (*SetNextHopGroupMemberAttributeRequest_MonitoredObject)(nil), - (*SetNextHopGroupMemberAttributeRequest_SequenceId)(nil), - (*SetNextHopGroupMemberAttributeRequest_CounterId)(nil), - } - file_dataplane_standalone_proto_next_hop_group_proto_msgTypes[20].OneofWrappers = []interface{}{ - (*SetNextHopGroupMapAttributeRequest_MapToValueList)(nil), - } + file_dataplane_standalone_proto_next_hop_group_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_next_hop_group_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_next_hop_group_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_next_hop_group_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_next_hop_group_proto_msgTypes[16].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/next_hop_group.proto b/dataplane/standalone/proto/next_hop_group.proto index b0e519bf..225d479f 100644 --- a/dataplane/standalone/proto/next_hop_group.proto +++ b/dataplane/standalone/proto/next_hop_group.proto @@ -7,215 +7,172 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum NextHopGroupAttr { - NEXT_HOP_GROUP_ATTR_UNSPECIFIED = 0; - NEXT_HOP_GROUP_ATTR_NEXT_HOP_COUNT = 1; - NEXT_HOP_GROUP_ATTR_NEXT_HOP_MEMBER_LIST = 2; - NEXT_HOP_GROUP_ATTR_TYPE = 3; - NEXT_HOP_GROUP_ATTR_SET_SWITCHOVER = 4; - NEXT_HOP_GROUP_ATTR_COUNTER_ID = 5; - NEXT_HOP_GROUP_ATTR_CONFIGURED_SIZE = 6; - NEXT_HOP_GROUP_ATTR_REAL_SIZE = 7; - NEXT_HOP_GROUP_ATTR_SELECTION_MAP = 8; + NEXT_HOP_GROUP_ATTR_UNSPECIFIED = 0; + NEXT_HOP_GROUP_ATTR_NEXT_HOP_COUNT = 1; + NEXT_HOP_GROUP_ATTR_NEXT_HOP_MEMBER_LIST = 2; + NEXT_HOP_GROUP_ATTR_TYPE = 3; + NEXT_HOP_GROUP_ATTR_SET_SWITCHOVER = 4; + NEXT_HOP_GROUP_ATTR_COUNTER_ID = 5; + NEXT_HOP_GROUP_ATTR_CONFIGURED_SIZE = 6; + NEXT_HOP_GROUP_ATTR_REAL_SIZE = 7; + NEXT_HOP_GROUP_ATTR_SELECTION_MAP = 8; } enum NextHopGroupMemberAttr { - NEXT_HOP_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; - NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_GROUP_ID = 1; - NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_ID = 2; - NEXT_HOP_GROUP_MEMBER_ATTR_WEIGHT = 3; - NEXT_HOP_GROUP_MEMBER_ATTR_CONFIGURED_ROLE = 4; - NEXT_HOP_GROUP_MEMBER_ATTR_OBSERVED_ROLE = 5; - NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT = 6; - NEXT_HOP_GROUP_MEMBER_ATTR_INDEX = 7; - NEXT_HOP_GROUP_MEMBER_ATTR_SEQUENCE_ID = 8; - NEXT_HOP_GROUP_MEMBER_ATTR_COUNTER_ID = 9; + NEXT_HOP_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; + NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_GROUP_ID = 1; + NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_ID = 2; + NEXT_HOP_GROUP_MEMBER_ATTR_WEIGHT = 3; + NEXT_HOP_GROUP_MEMBER_ATTR_CONFIGURED_ROLE = 4; + NEXT_HOP_GROUP_MEMBER_ATTR_OBSERVED_ROLE = 5; + NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT = 6; + NEXT_HOP_GROUP_MEMBER_ATTR_INDEX = 7; + NEXT_HOP_GROUP_MEMBER_ATTR_SEQUENCE_ID = 8; + NEXT_HOP_GROUP_MEMBER_ATTR_COUNTER_ID = 9; } enum NextHopGroupMapAttr { - NEXT_HOP_GROUP_MAP_ATTR_UNSPECIFIED = 0; - NEXT_HOP_GROUP_MAP_ATTR_TYPE = 1; - NEXT_HOP_GROUP_MAP_ATTR_MAP_TO_VALUE_LIST = 2; + NEXT_HOP_GROUP_MAP_ATTR_UNSPECIFIED = 0; + NEXT_HOP_GROUP_MAP_ATTR_TYPE = 1; + NEXT_HOP_GROUP_MAP_ATTR_MAP_TO_VALUE_LIST = 2; } message CreateNextHopGroupRequest { - uint64 switch = 1; - - NextHopGroupType type = 2; - bool set_switchover = 3; - uint64 counter_id = 4; - uint32 configured_size = 5; - uint64 selection_map = 6; - + uint64 switch = 1; + optional NextHopGroupType type = 2 [(attr_enum_value) = 3]; + optional bool set_switchover = 3 [(attr_enum_value) = 4]; + optional uint64 counter_id = 4 [(attr_enum_value) = 5]; + optional uint32 configured_size = 5 [(attr_enum_value) = 6]; + optional uint64 selection_map = 6 [(attr_enum_value) = 8]; } message CreateNextHopGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveNextHopGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveNextHopGroupResponse { - - -} +message RemoveNextHopGroupResponse {} message SetNextHopGroupAttributeRequest { - uint64 oid = 1; - oneof attr { - bool set_switchover = 2; - uint64 counter_id = 3; - uint64 selection_map = 4; - } + uint64 oid = 1; + optional bool set_switchover = 2 [(attr_enum_value) = 4]; + optional uint64 counter_id = 3 [(attr_enum_value) = 5]; + optional uint64 selection_map = 4 [(attr_enum_value) = 8]; } -message SetNextHopGroupAttributeResponse { - - -} +message SetNextHopGroupAttributeResponse {} message GetNextHopGroupAttributeRequest { - uint64 oid = 1; - repeated NextHopGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated NextHopGroupAttr attr_type = 2; } message GetNextHopGroupAttributeResponse { - repeated NextHopGroupAttribute attr = 1; - - + NextHopGroupAttribute attr = 1; } message CreateNextHopGroupMemberRequest { - uint64 switch = 1; - - uint64 next_hop_group_id = 2; - uint64 next_hop_id = 3; - uint32 weight = 4; - NextHopGroupMemberConfiguredRole configured_role = 5; - uint64 monitored_object = 6; - uint32 index = 7; - uint32 sequence_id = 8; - uint64 counter_id = 9; - + uint64 switch = 1; + optional uint64 next_hop_group_id = 2 [(attr_enum_value) = 1]; + optional uint64 next_hop_id = 3 [(attr_enum_value) = 2]; + optional uint32 weight = 4 [(attr_enum_value) = 3]; + optional NextHopGroupMemberConfiguredRole configured_role = 5 + [(attr_enum_value) = 4]; + optional uint64 monitored_object = 6 [(attr_enum_value) = 6]; + optional uint32 index = 7 [(attr_enum_value) = 7]; + optional uint32 sequence_id = 8 [(attr_enum_value) = 8]; + optional uint64 counter_id = 9 [(attr_enum_value) = 9]; } message CreateNextHopGroupMemberResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveNextHopGroupMemberRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveNextHopGroupMemberResponse { - - -} +message RemoveNextHopGroupMemberResponse {} message SetNextHopGroupMemberAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 next_hop_id = 2; - uint32 weight = 3; - uint64 monitored_object = 4; - uint32 sequence_id = 5; - uint64 counter_id = 6; - } + uint64 oid = 1; + optional uint64 next_hop_id = 2 [(attr_enum_value) = 2]; + optional uint32 weight = 3 [(attr_enum_value) = 3]; + optional uint64 monitored_object = 4 [(attr_enum_value) = 6]; + optional uint32 sequence_id = 5 [(attr_enum_value) = 8]; + optional uint64 counter_id = 6 [(attr_enum_value) = 9]; } -message SetNextHopGroupMemberAttributeResponse { - - -} +message SetNextHopGroupMemberAttributeResponse {} message GetNextHopGroupMemberAttributeRequest { - uint64 oid = 1; - repeated NextHopGroupMemberAttr attr_type = 2; - - + uint64 oid = 1; + repeated NextHopGroupMemberAttr attr_type = 2; } message GetNextHopGroupMemberAttributeResponse { - repeated NextHopGroupMemberAttribute attr = 1; - - + NextHopGroupMemberAttribute attr = 1; } message CreateNextHopGroupMapRequest { - uint64 switch = 1; - - NextHopGroupMapType type = 2; - repeated UintMap map_to_value_list = 3; - + uint64 switch = 1; + optional NextHopGroupMapType type = 2 [(attr_enum_value) = 1]; + repeated UintMap map_to_value_list = 3 [(attr_enum_value) = 2]; } message CreateNextHopGroupMapResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveNextHopGroupMapRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveNextHopGroupMapResponse { - - -} +message RemoveNextHopGroupMapResponse {} message SetNextHopGroupMapAttributeRequest { - uint64 oid = 1; - oneof attr { - UintMapList map_to_value_list = 2; - } + uint64 oid = 1; + repeated UintMap map_to_value_list = 2 [(attr_enum_value) = 2]; } -message SetNextHopGroupMapAttributeResponse { - - -} +message SetNextHopGroupMapAttributeResponse {} message GetNextHopGroupMapAttributeRequest { - uint64 oid = 1; - repeated NextHopGroupMapAttr attr_type = 2; - - + uint64 oid = 1; + repeated NextHopGroupMapAttr attr_type = 2; } message GetNextHopGroupMapAttributeResponse { - repeated NextHopGroupMapAttribute attr = 1; - - + NextHopGroupMapAttribute attr = 1; } - service NextHopGroup { - rpc CreateNextHopGroup (CreateNextHopGroupRequest) returns (CreateNextHopGroupResponse) {} - rpc RemoveNextHopGroup (RemoveNextHopGroupRequest) returns (RemoveNextHopGroupResponse) {} - rpc SetNextHopGroupAttribute (SetNextHopGroupAttributeRequest) returns (SetNextHopGroupAttributeResponse) {} - rpc GetNextHopGroupAttribute (GetNextHopGroupAttributeRequest) returns (GetNextHopGroupAttributeResponse) {} - rpc CreateNextHopGroupMember (CreateNextHopGroupMemberRequest) returns (CreateNextHopGroupMemberResponse) {} - rpc RemoveNextHopGroupMember (RemoveNextHopGroupMemberRequest) returns (RemoveNextHopGroupMemberResponse) {} - rpc SetNextHopGroupMemberAttribute (SetNextHopGroupMemberAttributeRequest) returns (SetNextHopGroupMemberAttributeResponse) {} - rpc GetNextHopGroupMemberAttribute (GetNextHopGroupMemberAttributeRequest) returns (GetNextHopGroupMemberAttributeResponse) {} - rpc CreateNextHopGroupMap (CreateNextHopGroupMapRequest) returns (CreateNextHopGroupMapResponse) {} - rpc RemoveNextHopGroupMap (RemoveNextHopGroupMapRequest) returns (RemoveNextHopGroupMapResponse) {} - rpc SetNextHopGroupMapAttribute (SetNextHopGroupMapAttributeRequest) returns (SetNextHopGroupMapAttributeResponse) {} - rpc GetNextHopGroupMapAttribute (GetNextHopGroupMapAttributeRequest) returns (GetNextHopGroupMapAttributeResponse) {} + rpc CreateNextHopGroup(CreateNextHopGroupRequest) + returns (CreateNextHopGroupResponse) {} + rpc RemoveNextHopGroup(RemoveNextHopGroupRequest) + returns (RemoveNextHopGroupResponse) {} + rpc SetNextHopGroupAttribute(SetNextHopGroupAttributeRequest) + returns (SetNextHopGroupAttributeResponse) {} + rpc GetNextHopGroupAttribute(GetNextHopGroupAttributeRequest) + returns (GetNextHopGroupAttributeResponse) {} + rpc CreateNextHopGroupMember(CreateNextHopGroupMemberRequest) + returns (CreateNextHopGroupMemberResponse) {} + rpc RemoveNextHopGroupMember(RemoveNextHopGroupMemberRequest) + returns (RemoveNextHopGroupMemberResponse) {} + rpc SetNextHopGroupMemberAttribute(SetNextHopGroupMemberAttributeRequest) + returns (SetNextHopGroupMemberAttributeResponse) {} + rpc GetNextHopGroupMemberAttribute(GetNextHopGroupMemberAttributeRequest) + returns (GetNextHopGroupMemberAttributeResponse) {} + rpc CreateNextHopGroupMap(CreateNextHopGroupMapRequest) + returns (CreateNextHopGroupMapResponse) {} + rpc RemoveNextHopGroupMap(RemoveNextHopGroupMapRequest) + returns (RemoveNextHopGroupMapResponse) {} + rpc SetNextHopGroupMapAttribute(SetNextHopGroupMapAttributeRequest) + returns (SetNextHopGroupMapAttributeResponse) {} + rpc GetNextHopGroupMapAttribute(GetNextHopGroupMapAttributeRequest) + returns (GetNextHopGroupMapAttributeResponse) {} } diff --git a/dataplane/standalone/proto/policer.pb.go b/dataplane/standalone/proto/policer.pb.go index 25c598c7..7e02624e 100755 --- a/dataplane/standalone/proto/policer.pb.go +++ b/dataplane/standalone/proto/policer.pb.go @@ -105,18 +105,18 @@ type CreatePolicerRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - MeterType MeterType `protobuf:"varint,2,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType" json:"meter_type,omitempty"` - Mode PolicerMode `protobuf:"varint,3,opt,name=mode,proto3,enum=lemming.dataplane.sai.PolicerMode" json:"mode,omitempty"` - ColorSource PolicerColorSource `protobuf:"varint,4,opt,name=color_source,json=colorSource,proto3,enum=lemming.dataplane.sai.PolicerColorSource" json:"color_source,omitempty"` - Cbs uint64 `protobuf:"varint,5,opt,name=cbs,proto3" json:"cbs,omitempty"` - Cir uint64 `protobuf:"varint,6,opt,name=cir,proto3" json:"cir,omitempty"` - Pbs uint64 `protobuf:"varint,7,opt,name=pbs,proto3" json:"pbs,omitempty"` - Pir uint64 `protobuf:"varint,8,opt,name=pir,proto3" json:"pir,omitempty"` - GreenPacketAction PacketAction `protobuf:"varint,9,opt,name=green_packet_action,json=greenPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"green_packet_action,omitempty"` - YellowPacketAction PacketAction `protobuf:"varint,10,opt,name=yellow_packet_action,json=yellowPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"yellow_packet_action,omitempty"` - RedPacketAction PacketAction `protobuf:"varint,11,opt,name=red_packet_action,json=redPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"red_packet_action,omitempty"` - EnableCounterPacketActionList []PacketAction `protobuf:"varint,12,rep,packed,name=enable_counter_packet_action_list,json=enableCounterPacketActionList,proto3,enum=lemming.dataplane.sai.PacketAction" json:"enable_counter_packet_action_list,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + MeterType *MeterType `protobuf:"varint,2,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType,oneof" json:"meter_type,omitempty"` + Mode *PolicerMode `protobuf:"varint,3,opt,name=mode,proto3,enum=lemming.dataplane.sai.PolicerMode,oneof" json:"mode,omitempty"` + ColorSource *PolicerColorSource `protobuf:"varint,4,opt,name=color_source,json=colorSource,proto3,enum=lemming.dataplane.sai.PolicerColorSource,oneof" json:"color_source,omitempty"` + Cbs *uint64 `protobuf:"varint,5,opt,name=cbs,proto3,oneof" json:"cbs,omitempty"` + Cir *uint64 `protobuf:"varint,6,opt,name=cir,proto3,oneof" json:"cir,omitempty"` + Pbs *uint64 `protobuf:"varint,7,opt,name=pbs,proto3,oneof" json:"pbs,omitempty"` + Pir *uint64 `protobuf:"varint,8,opt,name=pir,proto3,oneof" json:"pir,omitempty"` + GreenPacketAction *PacketAction `protobuf:"varint,9,opt,name=green_packet_action,json=greenPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"green_packet_action,omitempty"` + YellowPacketAction *PacketAction `protobuf:"varint,10,opt,name=yellow_packet_action,json=yellowPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"yellow_packet_action,omitempty"` + RedPacketAction *PacketAction `protobuf:"varint,11,opt,name=red_packet_action,json=redPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"red_packet_action,omitempty"` + EnableCounterPacketActionList []PacketAction `protobuf:"varint,12,rep,packed,name=enable_counter_packet_action_list,json=enableCounterPacketActionList,proto3,enum=lemming.dataplane.sai.PacketAction" json:"enable_counter_packet_action_list,omitempty"` } func (x *CreatePolicerRequest) Reset() { @@ -159,71 +159,71 @@ func (x *CreatePolicerRequest) GetSwitch() uint64 { } func (x *CreatePolicerRequest) GetMeterType() MeterType { - if x != nil { - return x.MeterType + if x != nil && x.MeterType != nil { + return *x.MeterType } return MeterType_METER_TYPE_UNSPECIFIED } func (x *CreatePolicerRequest) GetMode() PolicerMode { - if x != nil { - return x.Mode + if x != nil && x.Mode != nil { + return *x.Mode } return PolicerMode_POLICER_MODE_UNSPECIFIED } func (x *CreatePolicerRequest) GetColorSource() PolicerColorSource { - if x != nil { - return x.ColorSource + if x != nil && x.ColorSource != nil { + return *x.ColorSource } return PolicerColorSource_POLICER_COLOR_SOURCE_UNSPECIFIED } func (x *CreatePolicerRequest) GetCbs() uint64 { - if x != nil { - return x.Cbs + if x != nil && x.Cbs != nil { + return *x.Cbs } return 0 } func (x *CreatePolicerRequest) GetCir() uint64 { - if x != nil { - return x.Cir + if x != nil && x.Cir != nil { + return *x.Cir } return 0 } func (x *CreatePolicerRequest) GetPbs() uint64 { - if x != nil { - return x.Pbs + if x != nil && x.Pbs != nil { + return *x.Pbs } return 0 } func (x *CreatePolicerRequest) GetPir() uint64 { - if x != nil { - return x.Pir + if x != nil && x.Pir != nil { + return *x.Pir } return 0 } func (x *CreatePolicerRequest) GetGreenPacketAction() PacketAction { - if x != nil { - return x.GreenPacketAction + if x != nil && x.GreenPacketAction != nil { + return *x.GreenPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreatePolicerRequest) GetYellowPacketAction() PacketAction { - if x != nil { - return x.YellowPacketAction + if x != nil && x.YellowPacketAction != nil { + return *x.YellowPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreatePolicerRequest) GetRedPacketAction() PacketAction { - if x != nil { - return x.RedPacketAction + if x != nil && x.RedPacketAction != nil { + return *x.RedPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } @@ -372,18 +372,15 @@ type SetPolicerAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetPolicerAttributeRequest_Cbs - // *SetPolicerAttributeRequest_Cir - // *SetPolicerAttributeRequest_Pbs - // *SetPolicerAttributeRequest_Pir - // *SetPolicerAttributeRequest_GreenPacketAction - // *SetPolicerAttributeRequest_YellowPacketAction - // *SetPolicerAttributeRequest_RedPacketAction - // *SetPolicerAttributeRequest_EnableCounterPacketActionList - Attr isSetPolicerAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Cbs *uint64 `protobuf:"varint,2,opt,name=cbs,proto3,oneof" json:"cbs,omitempty"` + Cir *uint64 `protobuf:"varint,3,opt,name=cir,proto3,oneof" json:"cir,omitempty"` + Pbs *uint64 `protobuf:"varint,4,opt,name=pbs,proto3,oneof" json:"pbs,omitempty"` + Pir *uint64 `protobuf:"varint,5,opt,name=pir,proto3,oneof" json:"pir,omitempty"` + GreenPacketAction *PacketAction `protobuf:"varint,6,opt,name=green_packet_action,json=greenPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"green_packet_action,omitempty"` + YellowPacketAction *PacketAction `protobuf:"varint,7,opt,name=yellow_packet_action,json=yellowPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"yellow_packet_action,omitempty"` + RedPacketAction *PacketAction `protobuf:"varint,8,opt,name=red_packet_action,json=redPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"red_packet_action,omitempty"` + EnableCounterPacketActionList []PacketAction `protobuf:"varint,9,rep,packed,name=enable_counter_packet_action_list,json=enableCounterPacketActionList,proto3,enum=lemming.dataplane.sai.PacketAction" json:"enable_counter_packet_action_list,omitempty"` } func (x *SetPolicerAttributeRequest) Reset() { @@ -425,122 +422,62 @@ func (x *SetPolicerAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetPolicerAttributeRequest) GetAttr() isSetPolicerAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetPolicerAttributeRequest) GetCbs() uint64 { - if x, ok := x.GetAttr().(*SetPolicerAttributeRequest_Cbs); ok { - return x.Cbs + if x != nil && x.Cbs != nil { + return *x.Cbs } return 0 } func (x *SetPolicerAttributeRequest) GetCir() uint64 { - if x, ok := x.GetAttr().(*SetPolicerAttributeRequest_Cir); ok { - return x.Cir + if x != nil && x.Cir != nil { + return *x.Cir } return 0 } func (x *SetPolicerAttributeRequest) GetPbs() uint64 { - if x, ok := x.GetAttr().(*SetPolicerAttributeRequest_Pbs); ok { - return x.Pbs + if x != nil && x.Pbs != nil { + return *x.Pbs } return 0 } func (x *SetPolicerAttributeRequest) GetPir() uint64 { - if x, ok := x.GetAttr().(*SetPolicerAttributeRequest_Pir); ok { - return x.Pir + if x != nil && x.Pir != nil { + return *x.Pir } return 0 } func (x *SetPolicerAttributeRequest) GetGreenPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetPolicerAttributeRequest_GreenPacketAction); ok { - return x.GreenPacketAction + if x != nil && x.GreenPacketAction != nil { + return *x.GreenPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetPolicerAttributeRequest) GetYellowPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetPolicerAttributeRequest_YellowPacketAction); ok { - return x.YellowPacketAction + if x != nil && x.YellowPacketAction != nil { + return *x.YellowPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetPolicerAttributeRequest) GetRedPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetPolicerAttributeRequest_RedPacketAction); ok { - return x.RedPacketAction + if x != nil && x.RedPacketAction != nil { + return *x.RedPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } -func (x *SetPolicerAttributeRequest) GetEnableCounterPacketActionList() *PacketActionList { - if x, ok := x.GetAttr().(*SetPolicerAttributeRequest_EnableCounterPacketActionList); ok { +func (x *SetPolicerAttributeRequest) GetEnableCounterPacketActionList() []PacketAction { + if x != nil { return x.EnableCounterPacketActionList } return nil } -type isSetPolicerAttributeRequest_Attr interface { - isSetPolicerAttributeRequest_Attr() -} - -type SetPolicerAttributeRequest_Cbs struct { - Cbs uint64 `protobuf:"varint,2,opt,name=cbs,proto3,oneof"` -} - -type SetPolicerAttributeRequest_Cir struct { - Cir uint64 `protobuf:"varint,3,opt,name=cir,proto3,oneof"` -} - -type SetPolicerAttributeRequest_Pbs struct { - Pbs uint64 `protobuf:"varint,4,opt,name=pbs,proto3,oneof"` -} - -type SetPolicerAttributeRequest_Pir struct { - Pir uint64 `protobuf:"varint,5,opt,name=pir,proto3,oneof"` -} - -type SetPolicerAttributeRequest_GreenPacketAction struct { - GreenPacketAction PacketAction `protobuf:"varint,6,opt,name=green_packet_action,json=greenPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetPolicerAttributeRequest_YellowPacketAction struct { - YellowPacketAction PacketAction `protobuf:"varint,7,opt,name=yellow_packet_action,json=yellowPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetPolicerAttributeRequest_RedPacketAction struct { - RedPacketAction PacketAction `protobuf:"varint,8,opt,name=red_packet_action,json=redPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetPolicerAttributeRequest_EnableCounterPacketActionList struct { - EnableCounterPacketActionList *PacketActionList `protobuf:"bytes,9,opt,name=enable_counter_packet_action_list,json=enableCounterPacketActionList,proto3,oneof"` -} - -func (*SetPolicerAttributeRequest_Cbs) isSetPolicerAttributeRequest_Attr() {} - -func (*SetPolicerAttributeRequest_Cir) isSetPolicerAttributeRequest_Attr() {} - -func (*SetPolicerAttributeRequest_Pbs) isSetPolicerAttributeRequest_Attr() {} - -func (*SetPolicerAttributeRequest_Pir) isSetPolicerAttributeRequest_Attr() {} - -func (*SetPolicerAttributeRequest_GreenPacketAction) isSetPolicerAttributeRequest_Attr() {} - -func (*SetPolicerAttributeRequest_YellowPacketAction) isSetPolicerAttributeRequest_Attr() {} - -func (*SetPolicerAttributeRequest_RedPacketAction) isSetPolicerAttributeRequest_Attr() {} - -func (*SetPolicerAttributeRequest_EnableCounterPacketActionList) isSetPolicerAttributeRequest_Attr() { -} - type SetPolicerAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -639,7 +576,7 @@ type GetPolicerAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*PolicerAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *PolicerAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetPolicerAttributeResponse) Reset() { @@ -674,7 +611,7 @@ func (*GetPolicerAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_policer_proto_rawDescGZIP(), []int{7} } -func (x *GetPolicerAttributeResponse) GetAttr() []*PolicerAttribute { +func (x *GetPolicerAttributeResponse) GetAttr() *PolicerAttribute { if x != nil { return x.Attr } @@ -690,162 +627,188 @@ var file_dataplane_standalone_proto_policer_proto_rawDesc = []byte{ 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa9, 0x05, 0x0a, 0x14, 0x43, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xad, 0x07, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3f, 0x0a, 0x0a, 0x6d, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x04, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, - 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x62, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x63, 0x62, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x63, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x62, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x70, 0x62, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x72, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x70, 0x69, 0x72, 0x12, 0x53, 0x0a, 0x13, 0x67, 0x72, - 0x65, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x67, 0x72, - 0x65, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x55, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, 0x0a, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x03, 0x63, 0x62, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x03, 0x63, 0x62, 0x73, 0x12, 0x12, 0x0a, 0x03, 0x63, 0x69, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x03, 0x63, 0x69, 0x72, 0x12, 0x12, 0x0a, - 0x03, 0x70, 0x62, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x03, 0x70, 0x62, - 0x73, 0x12, 0x12, 0x0a, 0x03, 0x70, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x03, 0x70, 0x69, 0x72, 0x12, 0x55, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x14, - 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0c, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x63, 0x62, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x03, 0x63, 0x62, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x03, 0x63, 0x69, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x03, 0x63, 0x69, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x03, 0x70, 0x62, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, + 0x48, 0x05, 0x52, 0x03, 0x70, 0x62, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, + 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, + 0x03, 0x70, 0x69, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, + 0x07, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, + 0x48, 0x08, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x11, 0x72, 0x65, 0x64, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, + 0x09, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x73, 0x0a, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x73, 0x0a, 0x21, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1d, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x2a, 0xfb, 0x02, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, - 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x43, 0x42, 0x53, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x4c, 0x49, - 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x49, 0x52, 0x10, 0x05, 0x12, 0x14, - 0x0a, 0x10, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, - 0x42, 0x53, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x49, 0x52, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, - 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, - 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, - 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x4c, 0x49, 0x43, - 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x32, 0x0a, 0x2e, 0x50, - 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, - 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x0b, 0x32, - 0xe5, 0x03, 0x0a, 0x07, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, 0x6c, 0x0a, 0x0d, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x6c, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x52, 0x1d, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x62, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x63, 0x69, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x70, 0x69, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x05, 0x0a, 0x1a, 0x53, 0x65, 0x74, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x03, 0x63, 0x62, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x00, 0x52, 0x03, + 0x63, 0x62, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x63, 0x69, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x01, 0x52, 0x03, 0x63, 0x69, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x62, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x02, 0x52, 0x03, 0x70, 0x62, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x07, 0x48, 0x03, 0x52, 0x03, 0x70, 0x69, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, + 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x04, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, + 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x05, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x5a, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x73, 0x0a, 0x21, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0b, 0x52, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x62, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x69, 0x72, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x69, 0x72, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x79, 0x65, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, + 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x2a, 0xfb, 0x02, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, + 0x74, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x15, + 0x0a, 0x11, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x42, 0x53, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, + 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x49, 0x52, 0x10, 0x05, + 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x50, 0x42, 0x53, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x49, 0x52, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, + 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, + 0x45, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x4c, + 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x32, 0x0a, + 0x2e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0x0b, 0x32, 0xe5, 0x03, 0x0a, 0x07, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, 0x6c, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, 0x2b, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x53, 0x65, 0x74, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -876,8 +839,7 @@ var file_dataplane_standalone_proto_policer_proto_goTypes = []interface{}{ (PolicerMode)(0), // 10: lemming.dataplane.sai.PolicerMode (PolicerColorSource)(0), // 11: lemming.dataplane.sai.PolicerColorSource (PacketAction)(0), // 12: lemming.dataplane.sai.PacketAction - (*PacketActionList)(nil), // 13: lemming.dataplane.sai.PacketActionList - (*PolicerAttribute)(nil), // 14: lemming.dataplane.sai.PolicerAttribute + (*PolicerAttribute)(nil), // 13: lemming.dataplane.sai.PolicerAttribute } var file_dataplane_standalone_proto_policer_proto_depIdxs = []int32{ 9, // 0: lemming.dataplane.sai.CreatePolicerRequest.meter_type:type_name -> lemming.dataplane.sai.MeterType @@ -890,9 +852,9 @@ var file_dataplane_standalone_proto_policer_proto_depIdxs = []int32{ 12, // 7: lemming.dataplane.sai.SetPolicerAttributeRequest.green_packet_action:type_name -> lemming.dataplane.sai.PacketAction 12, // 8: lemming.dataplane.sai.SetPolicerAttributeRequest.yellow_packet_action:type_name -> lemming.dataplane.sai.PacketAction 12, // 9: lemming.dataplane.sai.SetPolicerAttributeRequest.red_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 13, // 10: lemming.dataplane.sai.SetPolicerAttributeRequest.enable_counter_packet_action_list:type_name -> lemming.dataplane.sai.PacketActionList + 12, // 10: lemming.dataplane.sai.SetPolicerAttributeRequest.enable_counter_packet_action_list:type_name -> lemming.dataplane.sai.PacketAction 0, // 11: lemming.dataplane.sai.GetPolicerAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PolicerAttr - 14, // 12: lemming.dataplane.sai.GetPolicerAttributeResponse.attr:type_name -> lemming.dataplane.sai.PolicerAttribute + 13, // 12: lemming.dataplane.sai.GetPolicerAttributeResponse.attr:type_name -> lemming.dataplane.sai.PolicerAttribute 1, // 13: lemming.dataplane.sai.Policer.CreatePolicer:input_type -> lemming.dataplane.sai.CreatePolicerRequest 3, // 14: lemming.dataplane.sai.Policer.RemovePolicer:input_type -> lemming.dataplane.sai.RemovePolicerRequest 5, // 15: lemming.dataplane.sai.Policer.SetPolicerAttribute:input_type -> lemming.dataplane.sai.SetPolicerAttributeRequest @@ -1012,16 +974,8 @@ func file_dataplane_standalone_proto_policer_proto_init() { } } } - file_dataplane_standalone_proto_policer_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetPolicerAttributeRequest_Cbs)(nil), - (*SetPolicerAttributeRequest_Cir)(nil), - (*SetPolicerAttributeRequest_Pbs)(nil), - (*SetPolicerAttributeRequest_Pir)(nil), - (*SetPolicerAttributeRequest_GreenPacketAction)(nil), - (*SetPolicerAttributeRequest_YellowPacketAction)(nil), - (*SetPolicerAttributeRequest_RedPacketAction)(nil), - (*SetPolicerAttributeRequest_EnableCounterPacketActionList)(nil), - } + file_dataplane_standalone_proto_policer_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_policer_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/policer.proto b/dataplane/standalone/proto/policer.proto index 75d739e9..b0995404 100644 --- a/dataplane/standalone/proto/policer.proto +++ b/dataplane/standalone/proto/policer.proto @@ -7,92 +7,76 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum PolicerAttr { - POLICER_ATTR_UNSPECIFIED = 0; - POLICER_ATTR_METER_TYPE = 1; - POLICER_ATTR_MODE = 2; - POLICER_ATTR_COLOR_SOURCE = 3; - POLICER_ATTR_CBS = 4; - POLICER_ATTR_CIR = 5; - POLICER_ATTR_PBS = 6; - POLICER_ATTR_PIR = 7; - POLICER_ATTR_GREEN_PACKET_ACTION = 8; - POLICER_ATTR_YELLOW_PACKET_ACTION = 9; - POLICER_ATTR_RED_PACKET_ACTION = 10; - POLICER_ATTR_ENABLE_COUNTER_PACKET_ACTION_LIST = 11; + POLICER_ATTR_UNSPECIFIED = 0; + POLICER_ATTR_METER_TYPE = 1; + POLICER_ATTR_MODE = 2; + POLICER_ATTR_COLOR_SOURCE = 3; + POLICER_ATTR_CBS = 4; + POLICER_ATTR_CIR = 5; + POLICER_ATTR_PBS = 6; + POLICER_ATTR_PIR = 7; + POLICER_ATTR_GREEN_PACKET_ACTION = 8; + POLICER_ATTR_YELLOW_PACKET_ACTION = 9; + POLICER_ATTR_RED_PACKET_ACTION = 10; + POLICER_ATTR_ENABLE_COUNTER_PACKET_ACTION_LIST = 11; } message CreatePolicerRequest { - uint64 switch = 1; - - MeterType meter_type = 2; - PolicerMode mode = 3; - PolicerColorSource color_source = 4; - uint64 cbs = 5; - uint64 cir = 6; - uint64 pbs = 7; - uint64 pir = 8; - PacketAction green_packet_action = 9; - PacketAction yellow_packet_action = 10; - PacketAction red_packet_action = 11; - repeated PacketAction enable_counter_packet_action_list = 12; - + uint64 switch = 1; + optional MeterType meter_type = 2 [(attr_enum_value) = 1]; + optional PolicerMode mode = 3 [(attr_enum_value) = 2]; + optional PolicerColorSource color_source = 4 [(attr_enum_value) = 3]; + optional uint64 cbs = 5 [(attr_enum_value) = 4]; + optional uint64 cir = 6 [(attr_enum_value) = 5]; + optional uint64 pbs = 7 [(attr_enum_value) = 6]; + optional uint64 pir = 8 [(attr_enum_value) = 7]; + optional PacketAction green_packet_action = 9 [(attr_enum_value) = 8]; + optional PacketAction yellow_packet_action = 10 [(attr_enum_value) = 9]; + optional PacketAction red_packet_action = 11 [(attr_enum_value) = 10]; + repeated PacketAction enable_counter_packet_action_list = 12 + [(attr_enum_value) = 11]; } message CreatePolicerResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemovePolicerRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemovePolicerResponse { - - -} +message RemovePolicerResponse {} message SetPolicerAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 cbs = 2; - uint64 cir = 3; - uint64 pbs = 4; - uint64 pir = 5; - PacketAction green_packet_action = 6; - PacketAction yellow_packet_action = 7; - PacketAction red_packet_action = 8; - PacketActionList enable_counter_packet_action_list = 9; - } + uint64 oid = 1; + optional uint64 cbs = 2 [(attr_enum_value) = 4]; + optional uint64 cir = 3 [(attr_enum_value) = 5]; + optional uint64 pbs = 4 [(attr_enum_value) = 6]; + optional uint64 pir = 5 [(attr_enum_value) = 7]; + optional PacketAction green_packet_action = 6 [(attr_enum_value) = 8]; + optional PacketAction yellow_packet_action = 7 [(attr_enum_value) = 9]; + optional PacketAction red_packet_action = 8 [(attr_enum_value) = 10]; + repeated PacketAction enable_counter_packet_action_list = 9 + [(attr_enum_value) = 11]; } -message SetPolicerAttributeResponse { - - -} +message SetPolicerAttributeResponse {} message GetPolicerAttributeRequest { - uint64 oid = 1; - repeated PolicerAttr attr_type = 2; - - + uint64 oid = 1; + repeated PolicerAttr attr_type = 2; } message GetPolicerAttributeResponse { - repeated PolicerAttribute attr = 1; - - + PolicerAttribute attr = 1; } - service Policer { - rpc CreatePolicer (CreatePolicerRequest) returns (CreatePolicerResponse) {} - rpc RemovePolicer (RemovePolicerRequest) returns (RemovePolicerResponse) {} - rpc SetPolicerAttribute (SetPolicerAttributeRequest) returns (SetPolicerAttributeResponse) {} - rpc GetPolicerAttribute (GetPolicerAttributeRequest) returns (GetPolicerAttributeResponse) {} + rpc CreatePolicer(CreatePolicerRequest) returns (CreatePolicerResponse) {} + rpc RemovePolicer(RemovePolicerRequest) returns (RemovePolicerResponse) {} + rpc SetPolicerAttribute(SetPolicerAttributeRequest) + returns (SetPolicerAttributeResponse) {} + rpc GetPolicerAttribute(GetPolicerAttributeRequest) + returns (GetPolicerAttributeResponse) {} } diff --git a/dataplane/standalone/proto/port.pb.go b/dataplane/standalone/proto/port.pb.go index 8719bb1b..6b8497d4 100755 --- a/dataplane/standalone/proto/port.pb.go +++ b/dataplane/standalone/proto/port.pb.go @@ -693,101 +693,101 @@ type CreatePortRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - HwLaneList []uint32 `protobuf:"varint,2,rep,packed,name=hw_lane_list,json=hwLaneList,proto3" json:"hw_lane_list,omitempty"` - Speed uint32 `protobuf:"varint,3,opt,name=speed,proto3" json:"speed,omitempty"` - FullDuplexMode bool `protobuf:"varint,4,opt,name=full_duplex_mode,json=fullDuplexMode,proto3" json:"full_duplex_mode,omitempty"` - AutoNegMode bool `protobuf:"varint,5,opt,name=auto_neg_mode,json=autoNegMode,proto3" json:"auto_neg_mode,omitempty"` - AdminState bool `protobuf:"varint,6,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - MediaType PortMediaType `protobuf:"varint,7,opt,name=media_type,json=mediaType,proto3,enum=lemming.dataplane.sai.PortMediaType" json:"media_type,omitempty"` - AdvertisedSpeed []uint32 `protobuf:"varint,8,rep,packed,name=advertised_speed,json=advertisedSpeed,proto3" json:"advertised_speed,omitempty"` - AdvertisedFecMode []PortFecMode `protobuf:"varint,9,rep,packed,name=advertised_fec_mode,json=advertisedFecMode,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"advertised_fec_mode,omitempty"` - AdvertisedFecModeExtended []PortFecModeExtended `protobuf:"varint,10,rep,packed,name=advertised_fec_mode_extended,json=advertisedFecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"advertised_fec_mode_extended,omitempty"` - AdvertisedHalfDuplexSpeed []uint32 `protobuf:"varint,11,rep,packed,name=advertised_half_duplex_speed,json=advertisedHalfDuplexSpeed,proto3" json:"advertised_half_duplex_speed,omitempty"` - AdvertisedAutoNegMode bool `protobuf:"varint,12,opt,name=advertised_auto_neg_mode,json=advertisedAutoNegMode,proto3" json:"advertised_auto_neg_mode,omitempty"` - AdvertisedFlowControlMode PortFlowControlMode `protobuf:"varint,13,opt,name=advertised_flow_control_mode,json=advertisedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode" json:"advertised_flow_control_mode,omitempty"` - AdvertisedAsymmetricPauseMode bool `protobuf:"varint,14,opt,name=advertised_asymmetric_pause_mode,json=advertisedAsymmetricPauseMode,proto3" json:"advertised_asymmetric_pause_mode,omitempty"` - AdvertisedMediaType PortMediaType `protobuf:"varint,15,opt,name=advertised_media_type,json=advertisedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType" json:"advertised_media_type,omitempty"` - AdvertisedOuiCode uint32 `protobuf:"varint,16,opt,name=advertised_oui_code,json=advertisedOuiCode,proto3" json:"advertised_oui_code,omitempty"` - PortVlanId uint32 `protobuf:"varint,17,opt,name=port_vlan_id,json=portVlanId,proto3" json:"port_vlan_id,omitempty"` - DefaultVlanPriority uint32 `protobuf:"varint,18,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3" json:"default_vlan_priority,omitempty"` - DropUntagged bool `protobuf:"varint,19,opt,name=drop_untagged,json=dropUntagged,proto3" json:"drop_untagged,omitempty"` - DropTagged bool `protobuf:"varint,20,opt,name=drop_tagged,json=dropTagged,proto3" json:"drop_tagged,omitempty"` - InternalLoopbackMode PortInternalLoopbackMode `protobuf:"varint,21,opt,name=internal_loopback_mode,json=internalLoopbackMode,proto3,enum=lemming.dataplane.sai.PortInternalLoopbackMode" json:"internal_loopback_mode,omitempty"` - UseExtendedFec bool `protobuf:"varint,22,opt,name=use_extended_fec,json=useExtendedFec,proto3" json:"use_extended_fec,omitempty"` - FecMode PortFecMode `protobuf:"varint,23,opt,name=fec_mode,json=fecMode,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"fec_mode,omitempty"` - FecModeExtended PortFecModeExtended `protobuf:"varint,24,opt,name=fec_mode_extended,json=fecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"fec_mode_extended,omitempty"` - UpdateDscp bool `protobuf:"varint,25,opt,name=update_dscp,json=updateDscp,proto3" json:"update_dscp,omitempty"` - Mtu uint32 `protobuf:"varint,26,opt,name=mtu,proto3" json:"mtu,omitempty"` - FloodStormControlPolicerId uint64 `protobuf:"varint,27,opt,name=flood_storm_control_policer_id,json=floodStormControlPolicerId,proto3" json:"flood_storm_control_policer_id,omitempty"` - BroadcastStormControlPolicerId uint64 `protobuf:"varint,28,opt,name=broadcast_storm_control_policer_id,json=broadcastStormControlPolicerId,proto3" json:"broadcast_storm_control_policer_id,omitempty"` - MulticastStormControlPolicerId uint64 `protobuf:"varint,29,opt,name=multicast_storm_control_policer_id,json=multicastStormControlPolicerId,proto3" json:"multicast_storm_control_policer_id,omitempty"` - GlobalFlowControlMode PortFlowControlMode `protobuf:"varint,30,opt,name=global_flow_control_mode,json=globalFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode" json:"global_flow_control_mode,omitempty"` - IngressAcl uint64 `protobuf:"varint,31,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,32,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - IngressMacsecAcl uint64 `protobuf:"varint,33,opt,name=ingress_macsec_acl,json=ingressMacsecAcl,proto3" json:"ingress_macsec_acl,omitempty"` - EgressMacsecAcl uint64 `protobuf:"varint,34,opt,name=egress_macsec_acl,json=egressMacsecAcl,proto3" json:"egress_macsec_acl,omitempty"` - IngressMirrorSession []uint64 `protobuf:"varint,35,rep,packed,name=ingress_mirror_session,json=ingressMirrorSession,proto3" json:"ingress_mirror_session,omitempty"` - EgressMirrorSession []uint64 `protobuf:"varint,36,rep,packed,name=egress_mirror_session,json=egressMirrorSession,proto3" json:"egress_mirror_session,omitempty"` - IngressSamplepacketEnable uint64 `protobuf:"varint,37,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3" json:"ingress_samplepacket_enable,omitempty"` - EgressSamplepacketEnable uint64 `protobuf:"varint,38,opt,name=egress_samplepacket_enable,json=egressSamplepacketEnable,proto3" json:"egress_samplepacket_enable,omitempty"` - IngressSampleMirrorSession []uint64 `protobuf:"varint,39,rep,packed,name=ingress_sample_mirror_session,json=ingressSampleMirrorSession,proto3" json:"ingress_sample_mirror_session,omitempty"` - EgressSampleMirrorSession []uint64 `protobuf:"varint,40,rep,packed,name=egress_sample_mirror_session,json=egressSampleMirrorSession,proto3" json:"egress_sample_mirror_session,omitempty"` - PolicerId uint64 `protobuf:"varint,41,opt,name=policer_id,json=policerId,proto3" json:"policer_id,omitempty"` - QosDefaultTc uint32 `protobuf:"varint,42,opt,name=qos_default_tc,json=qosDefaultTc,proto3" json:"qos_default_tc,omitempty"` - QosDot1PToTcMap uint64 `protobuf:"varint,43,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3" json:"qos_dot1p_to_tc_map,omitempty"` - QosDot1PToColorMap uint64 `protobuf:"varint,44,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3" json:"qos_dot1p_to_color_map,omitempty"` - QosDscpToTcMap uint64 `protobuf:"varint,45,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3" json:"qos_dscp_to_tc_map,omitempty"` - QosDscpToColorMap uint64 `protobuf:"varint,46,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3" json:"qos_dscp_to_color_map,omitempty"` - QosTcToQueueMap uint64 `protobuf:"varint,47,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3" json:"qos_tc_to_queue_map,omitempty"` - QosTcAndColorToDot1PMap uint64 `protobuf:"varint,48,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3" json:"qos_tc_and_color_to_dot1p_map,omitempty"` - QosTcAndColorToDscpMap uint64 `protobuf:"varint,49,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3" json:"qos_tc_and_color_to_dscp_map,omitempty"` - QosTcToPriorityGroupMap uint64 `protobuf:"varint,50,opt,name=qos_tc_to_priority_group_map,json=qosTcToPriorityGroupMap,proto3" json:"qos_tc_to_priority_group_map,omitempty"` - QosPfcPriorityToPriorityGroupMap uint64 `protobuf:"varint,51,opt,name=qos_pfc_priority_to_priority_group_map,json=qosPfcPriorityToPriorityGroupMap,proto3" json:"qos_pfc_priority_to_priority_group_map,omitempty"` - QosPfcPriorityToQueueMap uint64 `protobuf:"varint,52,opt,name=qos_pfc_priority_to_queue_map,json=qosPfcPriorityToQueueMap,proto3" json:"qos_pfc_priority_to_queue_map,omitempty"` - QosSchedulerProfileId uint64 `protobuf:"varint,53,opt,name=qos_scheduler_profile_id,json=qosSchedulerProfileId,proto3" json:"qos_scheduler_profile_id,omitempty"` - QosIngressBufferProfileList []uint64 `protobuf:"varint,54,rep,packed,name=qos_ingress_buffer_profile_list,json=qosIngressBufferProfileList,proto3" json:"qos_ingress_buffer_profile_list,omitempty"` - QosEgressBufferProfileList []uint64 `protobuf:"varint,55,rep,packed,name=qos_egress_buffer_profile_list,json=qosEgressBufferProfileList,proto3" json:"qos_egress_buffer_profile_list,omitempty"` - PriorityFlowControlMode PortPriorityFlowControlMode `protobuf:"varint,56,opt,name=priority_flow_control_mode,json=priorityFlowControlMode,proto3,enum=lemming.dataplane.sai.PortPriorityFlowControlMode" json:"priority_flow_control_mode,omitempty"` - PriorityFlowControl uint32 `protobuf:"varint,57,opt,name=priority_flow_control,json=priorityFlowControl,proto3" json:"priority_flow_control,omitempty"` - PriorityFlowControlRx uint32 `protobuf:"varint,58,opt,name=priority_flow_control_rx,json=priorityFlowControlRx,proto3" json:"priority_flow_control_rx,omitempty"` - PriorityFlowControlTx uint32 `protobuf:"varint,59,opt,name=priority_flow_control_tx,json=priorityFlowControlTx,proto3" json:"priority_flow_control_tx,omitempty"` - MetaData uint32 `protobuf:"varint,60,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - EgressBlockPortList []uint64 `protobuf:"varint,61,rep,packed,name=egress_block_port_list,json=egressBlockPortList,proto3" json:"egress_block_port_list,omitempty"` - HwProfileId uint64 `protobuf:"varint,62,opt,name=hw_profile_id,json=hwProfileId,proto3" json:"hw_profile_id,omitempty"` - EeeEnable bool `protobuf:"varint,63,opt,name=eee_enable,json=eeeEnable,proto3" json:"eee_enable,omitempty"` - EeeIdleTime uint32 `protobuf:"varint,64,opt,name=eee_idle_time,json=eeeIdleTime,proto3" json:"eee_idle_time,omitempty"` - EeeWakeTime uint32 `protobuf:"varint,65,opt,name=eee_wake_time,json=eeeWakeTime,proto3" json:"eee_wake_time,omitempty"` - IsolationGroup uint64 `protobuf:"varint,66,opt,name=isolation_group,json=isolationGroup,proto3" json:"isolation_group,omitempty"` - PktTxEnable bool `protobuf:"varint,67,opt,name=pkt_tx_enable,json=pktTxEnable,proto3" json:"pkt_tx_enable,omitempty"` - TamObject []uint64 `protobuf:"varint,68,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` - SerdesPreemphasis []uint32 `protobuf:"varint,69,rep,packed,name=serdes_preemphasis,json=serdesPreemphasis,proto3" json:"serdes_preemphasis,omitempty"` - SerdesIdriver []uint32 `protobuf:"varint,70,rep,packed,name=serdes_idriver,json=serdesIdriver,proto3" json:"serdes_idriver,omitempty"` - SerdesIpredriver []uint32 `protobuf:"varint,71,rep,packed,name=serdes_ipredriver,json=serdesIpredriver,proto3" json:"serdes_ipredriver,omitempty"` - LinkTrainingEnable bool `protobuf:"varint,72,opt,name=link_training_enable,json=linkTrainingEnable,proto3" json:"link_training_enable,omitempty"` - PtpMode PortPtpMode `protobuf:"varint,73,opt,name=ptp_mode,json=ptpMode,proto3,enum=lemming.dataplane.sai.PortPtpMode" json:"ptp_mode,omitempty"` - InterfaceType PortInterfaceType `protobuf:"varint,74,opt,name=interface_type,json=interfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType" json:"interface_type,omitempty"` - AdvertisedInterfaceType []PortInterfaceType `protobuf:"varint,75,rep,packed,name=advertised_interface_type,json=advertisedInterfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType" json:"advertised_interface_type,omitempty"` - ReferenceClock uint64 `protobuf:"varint,76,opt,name=reference_clock,json=referenceClock,proto3" json:"reference_clock,omitempty"` - PrbsPolynomial uint32 `protobuf:"varint,77,opt,name=prbs_polynomial,json=prbsPolynomial,proto3" json:"prbs_polynomial,omitempty"` - PrbsConfig PortPrbsConfig `protobuf:"varint,78,opt,name=prbs_config,json=prbsConfig,proto3,enum=lemming.dataplane.sai.PortPrbsConfig" json:"prbs_config,omitempty"` - DisableDecrementTtl bool `protobuf:"varint,79,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3" json:"disable_decrement_ttl,omitempty"` - QosMplsExpToTcMap uint64 `protobuf:"varint,80,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3" json:"qos_mpls_exp_to_tc_map,omitempty"` - QosMplsExpToColorMap uint64 `protobuf:"varint,81,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3" json:"qos_mpls_exp_to_color_map,omitempty"` - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,82,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` - Tpid uint32 `protobuf:"varint,83,opt,name=tpid,proto3" json:"tpid,omitempty"` - AutoNegFecModeOverride bool `protobuf:"varint,84,opt,name=auto_neg_fec_mode_override,json=autoNegFecModeOverride,proto3" json:"auto_neg_fec_mode_override,omitempty"` - LoopbackMode PortLoopbackMode `protobuf:"varint,85,opt,name=loopback_mode,json=loopbackMode,proto3,enum=lemming.dataplane.sai.PortLoopbackMode" json:"loopback_mode,omitempty"` - MdixModeConfig PortMdixModeConfig `protobuf:"varint,86,opt,name=mdix_mode_config,json=mdixModeConfig,proto3,enum=lemming.dataplane.sai.PortMdixModeConfig" json:"mdix_mode_config,omitempty"` - AutoNegConfigMode PortAutoNegConfigMode `protobuf:"varint,87,opt,name=auto_neg_config_mode,json=autoNegConfigMode,proto3,enum=lemming.dataplane.sai.PortAutoNegConfigMode" json:"auto_neg_config_mode,omitempty"` - X1000XSgmiiSlaveAutodetect bool `protobuf:"varint,88,opt,name=_1000x_sgmii_slave_autodetect,json=1000xSgmiiSlaveAutodetect,proto3" json:"_1000x_sgmii_slave_autodetect,omitempty"` - ModuleType PortModuleType `protobuf:"varint,89,opt,name=module_type,json=moduleType,proto3,enum=lemming.dataplane.sai.PortModuleType" json:"module_type,omitempty"` - DualMedia PortDualMedia `protobuf:"varint,90,opt,name=dual_media,json=dualMedia,proto3,enum=lemming.dataplane.sai.PortDualMedia" json:"dual_media,omitempty"` - Ipg uint32 `protobuf:"varint,91,opt,name=ipg,proto3" json:"ipg,omitempty"` - GlobalFlowControlForward bool `protobuf:"varint,92,opt,name=global_flow_control_forward,json=globalFlowControlForward,proto3" json:"global_flow_control_forward,omitempty"` - PriorityFlowControlForward bool `protobuf:"varint,93,opt,name=priority_flow_control_forward,json=priorityFlowControlForward,proto3" json:"priority_flow_control_forward,omitempty"` - QosDscpToForwardingClassMap uint64 `protobuf:"varint,94,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3" json:"qos_dscp_to_forwarding_class_map,omitempty"` - QosMplsExpToForwardingClassMap uint64 `protobuf:"varint,95,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + HwLaneList []uint32 `protobuf:"varint,2,rep,packed,name=hw_lane_list,json=hwLaneList,proto3" json:"hw_lane_list,omitempty"` + Speed *uint32 `protobuf:"varint,3,opt,name=speed,proto3,oneof" json:"speed,omitempty"` + FullDuplexMode *bool `protobuf:"varint,4,opt,name=full_duplex_mode,json=fullDuplexMode,proto3,oneof" json:"full_duplex_mode,omitempty"` + AutoNegMode *bool `protobuf:"varint,5,opt,name=auto_neg_mode,json=autoNegMode,proto3,oneof" json:"auto_neg_mode,omitempty"` + AdminState *bool `protobuf:"varint,6,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + MediaType *PortMediaType `protobuf:"varint,7,opt,name=media_type,json=mediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof" json:"media_type,omitempty"` + AdvertisedSpeed []uint32 `protobuf:"varint,8,rep,packed,name=advertised_speed,json=advertisedSpeed,proto3" json:"advertised_speed,omitempty"` + AdvertisedFecMode []PortFecMode `protobuf:"varint,9,rep,packed,name=advertised_fec_mode,json=advertisedFecMode,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"advertised_fec_mode,omitempty"` + AdvertisedFecModeExtended []PortFecModeExtended `protobuf:"varint,10,rep,packed,name=advertised_fec_mode_extended,json=advertisedFecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"advertised_fec_mode_extended,omitempty"` + AdvertisedHalfDuplexSpeed []uint32 `protobuf:"varint,11,rep,packed,name=advertised_half_duplex_speed,json=advertisedHalfDuplexSpeed,proto3" json:"advertised_half_duplex_speed,omitempty"` + AdvertisedAutoNegMode *bool `protobuf:"varint,12,opt,name=advertised_auto_neg_mode,json=advertisedAutoNegMode,proto3,oneof" json:"advertised_auto_neg_mode,omitempty"` + AdvertisedFlowControlMode *PortFlowControlMode `protobuf:"varint,13,opt,name=advertised_flow_control_mode,json=advertisedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof" json:"advertised_flow_control_mode,omitempty"` + AdvertisedAsymmetricPauseMode *bool `protobuf:"varint,14,opt,name=advertised_asymmetric_pause_mode,json=advertisedAsymmetricPauseMode,proto3,oneof" json:"advertised_asymmetric_pause_mode,omitempty"` + AdvertisedMediaType *PortMediaType `protobuf:"varint,15,opt,name=advertised_media_type,json=advertisedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof" json:"advertised_media_type,omitempty"` + AdvertisedOuiCode *uint32 `protobuf:"varint,16,opt,name=advertised_oui_code,json=advertisedOuiCode,proto3,oneof" json:"advertised_oui_code,omitempty"` + PortVlanId *uint32 `protobuf:"varint,17,opt,name=port_vlan_id,json=portVlanId,proto3,oneof" json:"port_vlan_id,omitempty"` + DefaultVlanPriority *uint32 `protobuf:"varint,18,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3,oneof" json:"default_vlan_priority,omitempty"` + DropUntagged *bool `protobuf:"varint,19,opt,name=drop_untagged,json=dropUntagged,proto3,oneof" json:"drop_untagged,omitempty"` + DropTagged *bool `protobuf:"varint,20,opt,name=drop_tagged,json=dropTagged,proto3,oneof" json:"drop_tagged,omitempty"` + InternalLoopbackMode *PortInternalLoopbackMode `protobuf:"varint,21,opt,name=internal_loopback_mode,json=internalLoopbackMode,proto3,enum=lemming.dataplane.sai.PortInternalLoopbackMode,oneof" json:"internal_loopback_mode,omitempty"` + UseExtendedFec *bool `protobuf:"varint,22,opt,name=use_extended_fec,json=useExtendedFec,proto3,oneof" json:"use_extended_fec,omitempty"` + FecMode *PortFecMode `protobuf:"varint,23,opt,name=fec_mode,json=fecMode,proto3,enum=lemming.dataplane.sai.PortFecMode,oneof" json:"fec_mode,omitempty"` + FecModeExtended *PortFecModeExtended `protobuf:"varint,24,opt,name=fec_mode_extended,json=fecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended,oneof" json:"fec_mode_extended,omitempty"` + UpdateDscp *bool `protobuf:"varint,25,opt,name=update_dscp,json=updateDscp,proto3,oneof" json:"update_dscp,omitempty"` + Mtu *uint32 `protobuf:"varint,26,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` + FloodStormControlPolicerId *uint64 `protobuf:"varint,27,opt,name=flood_storm_control_policer_id,json=floodStormControlPolicerId,proto3,oneof" json:"flood_storm_control_policer_id,omitempty"` + BroadcastStormControlPolicerId *uint64 `protobuf:"varint,28,opt,name=broadcast_storm_control_policer_id,json=broadcastStormControlPolicerId,proto3,oneof" json:"broadcast_storm_control_policer_id,omitempty"` + MulticastStormControlPolicerId *uint64 `protobuf:"varint,29,opt,name=multicast_storm_control_policer_id,json=multicastStormControlPolicerId,proto3,oneof" json:"multicast_storm_control_policer_id,omitempty"` + GlobalFlowControlMode *PortFlowControlMode `protobuf:"varint,30,opt,name=global_flow_control_mode,json=globalFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof" json:"global_flow_control_mode,omitempty"` + IngressAcl *uint64 `protobuf:"varint,31,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,32,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + IngressMacsecAcl *uint64 `protobuf:"varint,33,opt,name=ingress_macsec_acl,json=ingressMacsecAcl,proto3,oneof" json:"ingress_macsec_acl,omitempty"` + EgressMacsecAcl *uint64 `protobuf:"varint,34,opt,name=egress_macsec_acl,json=egressMacsecAcl,proto3,oneof" json:"egress_macsec_acl,omitempty"` + IngressMirrorSession []uint64 `protobuf:"varint,35,rep,packed,name=ingress_mirror_session,json=ingressMirrorSession,proto3" json:"ingress_mirror_session,omitempty"` + EgressMirrorSession []uint64 `protobuf:"varint,36,rep,packed,name=egress_mirror_session,json=egressMirrorSession,proto3" json:"egress_mirror_session,omitempty"` + IngressSamplepacketEnable *uint64 `protobuf:"varint,37,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3,oneof" json:"ingress_samplepacket_enable,omitempty"` + EgressSamplepacketEnable *uint64 `protobuf:"varint,38,opt,name=egress_samplepacket_enable,json=egressSamplepacketEnable,proto3,oneof" json:"egress_samplepacket_enable,omitempty"` + IngressSampleMirrorSession []uint64 `protobuf:"varint,39,rep,packed,name=ingress_sample_mirror_session,json=ingressSampleMirrorSession,proto3" json:"ingress_sample_mirror_session,omitempty"` + EgressSampleMirrorSession []uint64 `protobuf:"varint,40,rep,packed,name=egress_sample_mirror_session,json=egressSampleMirrorSession,proto3" json:"egress_sample_mirror_session,omitempty"` + PolicerId *uint64 `protobuf:"varint,41,opt,name=policer_id,json=policerId,proto3,oneof" json:"policer_id,omitempty"` + QosDefaultTc *uint32 `protobuf:"varint,42,opt,name=qos_default_tc,json=qosDefaultTc,proto3,oneof" json:"qos_default_tc,omitempty"` + QosDot1PToTcMap *uint64 `protobuf:"varint,43,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3,oneof" json:"qos_dot1p_to_tc_map,omitempty"` + QosDot1PToColorMap *uint64 `protobuf:"varint,44,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3,oneof" json:"qos_dot1p_to_color_map,omitempty"` + QosDscpToTcMap *uint64 `protobuf:"varint,45,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3,oneof" json:"qos_dscp_to_tc_map,omitempty"` + QosDscpToColorMap *uint64 `protobuf:"varint,46,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3,oneof" json:"qos_dscp_to_color_map,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,47,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` + QosTcAndColorToDot1PMap *uint64 `protobuf:"varint,48,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3,oneof" json:"qos_tc_and_color_to_dot1p_map,omitempty"` + QosTcAndColorToDscpMap *uint64 `protobuf:"varint,49,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3,oneof" json:"qos_tc_and_color_to_dscp_map,omitempty"` + QosTcToPriorityGroupMap *uint64 `protobuf:"varint,50,opt,name=qos_tc_to_priority_group_map,json=qosTcToPriorityGroupMap,proto3,oneof" json:"qos_tc_to_priority_group_map,omitempty"` + QosPfcPriorityToPriorityGroupMap *uint64 `protobuf:"varint,51,opt,name=qos_pfc_priority_to_priority_group_map,json=qosPfcPriorityToPriorityGroupMap,proto3,oneof" json:"qos_pfc_priority_to_priority_group_map,omitempty"` + QosPfcPriorityToQueueMap *uint64 `protobuf:"varint,52,opt,name=qos_pfc_priority_to_queue_map,json=qosPfcPriorityToQueueMap,proto3,oneof" json:"qos_pfc_priority_to_queue_map,omitempty"` + QosSchedulerProfileId *uint64 `protobuf:"varint,53,opt,name=qos_scheduler_profile_id,json=qosSchedulerProfileId,proto3,oneof" json:"qos_scheduler_profile_id,omitempty"` + QosIngressBufferProfileList []uint64 `protobuf:"varint,54,rep,packed,name=qos_ingress_buffer_profile_list,json=qosIngressBufferProfileList,proto3" json:"qos_ingress_buffer_profile_list,omitempty"` + QosEgressBufferProfileList []uint64 `protobuf:"varint,55,rep,packed,name=qos_egress_buffer_profile_list,json=qosEgressBufferProfileList,proto3" json:"qos_egress_buffer_profile_list,omitempty"` + PriorityFlowControlMode *PortPriorityFlowControlMode `protobuf:"varint,56,opt,name=priority_flow_control_mode,json=priorityFlowControlMode,proto3,enum=lemming.dataplane.sai.PortPriorityFlowControlMode,oneof" json:"priority_flow_control_mode,omitempty"` + PriorityFlowControl *uint32 `protobuf:"varint,57,opt,name=priority_flow_control,json=priorityFlowControl,proto3,oneof" json:"priority_flow_control,omitempty"` + PriorityFlowControlRx *uint32 `protobuf:"varint,58,opt,name=priority_flow_control_rx,json=priorityFlowControlRx,proto3,oneof" json:"priority_flow_control_rx,omitempty"` + PriorityFlowControlTx *uint32 `protobuf:"varint,59,opt,name=priority_flow_control_tx,json=priorityFlowControlTx,proto3,oneof" json:"priority_flow_control_tx,omitempty"` + MetaData *uint32 `protobuf:"varint,60,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + EgressBlockPortList []uint64 `protobuf:"varint,61,rep,packed,name=egress_block_port_list,json=egressBlockPortList,proto3" json:"egress_block_port_list,omitempty"` + HwProfileId *uint64 `protobuf:"varint,62,opt,name=hw_profile_id,json=hwProfileId,proto3,oneof" json:"hw_profile_id,omitempty"` + EeeEnable *bool `protobuf:"varint,63,opt,name=eee_enable,json=eeeEnable,proto3,oneof" json:"eee_enable,omitempty"` + EeeIdleTime *uint32 `protobuf:"varint,64,opt,name=eee_idle_time,json=eeeIdleTime,proto3,oneof" json:"eee_idle_time,omitempty"` + EeeWakeTime *uint32 `protobuf:"varint,65,opt,name=eee_wake_time,json=eeeWakeTime,proto3,oneof" json:"eee_wake_time,omitempty"` + IsolationGroup *uint64 `protobuf:"varint,66,opt,name=isolation_group,json=isolationGroup,proto3,oneof" json:"isolation_group,omitempty"` + PktTxEnable *bool `protobuf:"varint,67,opt,name=pkt_tx_enable,json=pktTxEnable,proto3,oneof" json:"pkt_tx_enable,omitempty"` + TamObject []uint64 `protobuf:"varint,68,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` + SerdesPreemphasis []uint32 `protobuf:"varint,69,rep,packed,name=serdes_preemphasis,json=serdesPreemphasis,proto3" json:"serdes_preemphasis,omitempty"` + SerdesIdriver []uint32 `protobuf:"varint,70,rep,packed,name=serdes_idriver,json=serdesIdriver,proto3" json:"serdes_idriver,omitempty"` + SerdesIpredriver []uint32 `protobuf:"varint,71,rep,packed,name=serdes_ipredriver,json=serdesIpredriver,proto3" json:"serdes_ipredriver,omitempty"` + LinkTrainingEnable *bool `protobuf:"varint,72,opt,name=link_training_enable,json=linkTrainingEnable,proto3,oneof" json:"link_training_enable,omitempty"` + PtpMode *PortPtpMode `protobuf:"varint,73,opt,name=ptp_mode,json=ptpMode,proto3,enum=lemming.dataplane.sai.PortPtpMode,oneof" json:"ptp_mode,omitempty"` + InterfaceType *PortInterfaceType `protobuf:"varint,74,opt,name=interface_type,json=interfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType,oneof" json:"interface_type,omitempty"` + AdvertisedInterfaceType []PortInterfaceType `protobuf:"varint,75,rep,packed,name=advertised_interface_type,json=advertisedInterfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType" json:"advertised_interface_type,omitempty"` + ReferenceClock *uint64 `protobuf:"varint,76,opt,name=reference_clock,json=referenceClock,proto3,oneof" json:"reference_clock,omitempty"` + PrbsPolynomial *uint32 `protobuf:"varint,77,opt,name=prbs_polynomial,json=prbsPolynomial,proto3,oneof" json:"prbs_polynomial,omitempty"` + PrbsConfig *PortPrbsConfig `protobuf:"varint,78,opt,name=prbs_config,json=prbsConfig,proto3,enum=lemming.dataplane.sai.PortPrbsConfig,oneof" json:"prbs_config,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,79,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + QosMplsExpToTcMap *uint64 `protobuf:"varint,80,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3,oneof" json:"qos_mpls_exp_to_tc_map,omitempty"` + QosMplsExpToColorMap *uint64 `protobuf:"varint,81,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3,oneof" json:"qos_mpls_exp_to_color_map,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,82,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` + Tpid *uint32 `protobuf:"varint,83,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + AutoNegFecModeOverride *bool `protobuf:"varint,84,opt,name=auto_neg_fec_mode_override,json=autoNegFecModeOverride,proto3,oneof" json:"auto_neg_fec_mode_override,omitempty"` + LoopbackMode *PortLoopbackMode `protobuf:"varint,85,opt,name=loopback_mode,json=loopbackMode,proto3,enum=lemming.dataplane.sai.PortLoopbackMode,oneof" json:"loopback_mode,omitempty"` + MdixModeConfig *PortMdixModeConfig `protobuf:"varint,86,opt,name=mdix_mode_config,json=mdixModeConfig,proto3,enum=lemming.dataplane.sai.PortMdixModeConfig,oneof" json:"mdix_mode_config,omitempty"` + AutoNegConfigMode *PortAutoNegConfigMode `protobuf:"varint,87,opt,name=auto_neg_config_mode,json=autoNegConfigMode,proto3,enum=lemming.dataplane.sai.PortAutoNegConfigMode,oneof" json:"auto_neg_config_mode,omitempty"` + X1000XSgmiiSlaveAutodetect *bool `protobuf:"varint,88,opt,name=_1000x_sgmii_slave_autodetect,json=1000xSgmiiSlaveAutodetect,proto3,oneof" json:"_1000x_sgmii_slave_autodetect,omitempty"` + ModuleType *PortModuleType `protobuf:"varint,89,opt,name=module_type,json=moduleType,proto3,enum=lemming.dataplane.sai.PortModuleType,oneof" json:"module_type,omitempty"` + DualMedia *PortDualMedia `protobuf:"varint,90,opt,name=dual_media,json=dualMedia,proto3,enum=lemming.dataplane.sai.PortDualMedia,oneof" json:"dual_media,omitempty"` + Ipg *uint32 `protobuf:"varint,91,opt,name=ipg,proto3,oneof" json:"ipg,omitempty"` + GlobalFlowControlForward *bool `protobuf:"varint,92,opt,name=global_flow_control_forward,json=globalFlowControlForward,proto3,oneof" json:"global_flow_control_forward,omitempty"` + PriorityFlowControlForward *bool `protobuf:"varint,93,opt,name=priority_flow_control_forward,json=priorityFlowControlForward,proto3,oneof" json:"priority_flow_control_forward,omitempty"` + QosDscpToForwardingClassMap *uint64 `protobuf:"varint,94,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3,oneof" json:"qos_dscp_to_forwarding_class_map,omitempty"` + QosMplsExpToForwardingClassMap *uint64 `protobuf:"varint,95,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3,oneof" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` } func (x *CreatePortRequest) Reset() { @@ -837,36 +837,36 @@ func (x *CreatePortRequest) GetHwLaneList() []uint32 { } func (x *CreatePortRequest) GetSpeed() uint32 { - if x != nil { - return x.Speed + if x != nil && x.Speed != nil { + return *x.Speed } return 0 } func (x *CreatePortRequest) GetFullDuplexMode() bool { - if x != nil { - return x.FullDuplexMode + if x != nil && x.FullDuplexMode != nil { + return *x.FullDuplexMode } return false } func (x *CreatePortRequest) GetAutoNegMode() bool { - if x != nil { - return x.AutoNegMode + if x != nil && x.AutoNegMode != nil { + return *x.AutoNegMode } return false } func (x *CreatePortRequest) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *CreatePortRequest) GetMediaType() PortMediaType { - if x != nil { - return x.MediaType + if x != nil && x.MediaType != nil { + return *x.MediaType } return PortMediaType_PORT_MEDIA_TYPE_UNSPECIFIED } @@ -900,162 +900,162 @@ func (x *CreatePortRequest) GetAdvertisedHalfDuplexSpeed() []uint32 { } func (x *CreatePortRequest) GetAdvertisedAutoNegMode() bool { - if x != nil { - return x.AdvertisedAutoNegMode + if x != nil && x.AdvertisedAutoNegMode != nil { + return *x.AdvertisedAutoNegMode } return false } func (x *CreatePortRequest) GetAdvertisedFlowControlMode() PortFlowControlMode { - if x != nil { - return x.AdvertisedFlowControlMode + if x != nil && x.AdvertisedFlowControlMode != nil { + return *x.AdvertisedFlowControlMode } return PortFlowControlMode_PORT_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *CreatePortRequest) GetAdvertisedAsymmetricPauseMode() bool { - if x != nil { - return x.AdvertisedAsymmetricPauseMode + if x != nil && x.AdvertisedAsymmetricPauseMode != nil { + return *x.AdvertisedAsymmetricPauseMode } return false } func (x *CreatePortRequest) GetAdvertisedMediaType() PortMediaType { - if x != nil { - return x.AdvertisedMediaType + if x != nil && x.AdvertisedMediaType != nil { + return *x.AdvertisedMediaType } return PortMediaType_PORT_MEDIA_TYPE_UNSPECIFIED } func (x *CreatePortRequest) GetAdvertisedOuiCode() uint32 { - if x != nil { - return x.AdvertisedOuiCode + if x != nil && x.AdvertisedOuiCode != nil { + return *x.AdvertisedOuiCode } return 0 } func (x *CreatePortRequest) GetPortVlanId() uint32 { - if x != nil { - return x.PortVlanId + if x != nil && x.PortVlanId != nil { + return *x.PortVlanId } return 0 } func (x *CreatePortRequest) GetDefaultVlanPriority() uint32 { - if x != nil { - return x.DefaultVlanPriority + if x != nil && x.DefaultVlanPriority != nil { + return *x.DefaultVlanPriority } return 0 } func (x *CreatePortRequest) GetDropUntagged() bool { - if x != nil { - return x.DropUntagged + if x != nil && x.DropUntagged != nil { + return *x.DropUntagged } return false } func (x *CreatePortRequest) GetDropTagged() bool { - if x != nil { - return x.DropTagged + if x != nil && x.DropTagged != nil { + return *x.DropTagged } return false } func (x *CreatePortRequest) GetInternalLoopbackMode() PortInternalLoopbackMode { - if x != nil { - return x.InternalLoopbackMode + if x != nil && x.InternalLoopbackMode != nil { + return *x.InternalLoopbackMode } return PortInternalLoopbackMode_PORT_INTERNAL_LOOPBACK_MODE_UNSPECIFIED } func (x *CreatePortRequest) GetUseExtendedFec() bool { - if x != nil { - return x.UseExtendedFec + if x != nil && x.UseExtendedFec != nil { + return *x.UseExtendedFec } return false } func (x *CreatePortRequest) GetFecMode() PortFecMode { - if x != nil { - return x.FecMode + if x != nil && x.FecMode != nil { + return *x.FecMode } return PortFecMode_PORT_FEC_MODE_UNSPECIFIED } func (x *CreatePortRequest) GetFecModeExtended() PortFecModeExtended { - if x != nil { - return x.FecModeExtended + if x != nil && x.FecModeExtended != nil { + return *x.FecModeExtended } return PortFecModeExtended_PORT_FEC_MODE_EXTENDED_UNSPECIFIED } func (x *CreatePortRequest) GetUpdateDscp() bool { - if x != nil { - return x.UpdateDscp + if x != nil && x.UpdateDscp != nil { + return *x.UpdateDscp } return false } func (x *CreatePortRequest) GetMtu() uint32 { - if x != nil { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } func (x *CreatePortRequest) GetFloodStormControlPolicerId() uint64 { - if x != nil { - return x.FloodStormControlPolicerId + if x != nil && x.FloodStormControlPolicerId != nil { + return *x.FloodStormControlPolicerId } return 0 } func (x *CreatePortRequest) GetBroadcastStormControlPolicerId() uint64 { - if x != nil { - return x.BroadcastStormControlPolicerId + if x != nil && x.BroadcastStormControlPolicerId != nil { + return *x.BroadcastStormControlPolicerId } return 0 } func (x *CreatePortRequest) GetMulticastStormControlPolicerId() uint64 { - if x != nil { - return x.MulticastStormControlPolicerId + if x != nil && x.MulticastStormControlPolicerId != nil { + return *x.MulticastStormControlPolicerId } return 0 } func (x *CreatePortRequest) GetGlobalFlowControlMode() PortFlowControlMode { - if x != nil { - return x.GlobalFlowControlMode + if x != nil && x.GlobalFlowControlMode != nil { + return *x.GlobalFlowControlMode } return PortFlowControlMode_PORT_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *CreatePortRequest) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *CreatePortRequest) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *CreatePortRequest) GetIngressMacsecAcl() uint64 { - if x != nil { - return x.IngressMacsecAcl + if x != nil && x.IngressMacsecAcl != nil { + return *x.IngressMacsecAcl } return 0 } func (x *CreatePortRequest) GetEgressMacsecAcl() uint64 { - if x != nil { - return x.EgressMacsecAcl + if x != nil && x.EgressMacsecAcl != nil { + return *x.EgressMacsecAcl } return 0 } @@ -1075,15 +1075,15 @@ func (x *CreatePortRequest) GetEgressMirrorSession() []uint64 { } func (x *CreatePortRequest) GetIngressSamplepacketEnable() uint64 { - if x != nil { - return x.IngressSamplepacketEnable + if x != nil && x.IngressSamplepacketEnable != nil { + return *x.IngressSamplepacketEnable } return 0 } func (x *CreatePortRequest) GetEgressSamplepacketEnable() uint64 { - if x != nil { - return x.EgressSamplepacketEnable + if x != nil && x.EgressSamplepacketEnable != nil { + return *x.EgressSamplepacketEnable } return 0 } @@ -1103,92 +1103,92 @@ func (x *CreatePortRequest) GetEgressSampleMirrorSession() []uint64 { } func (x *CreatePortRequest) GetPolicerId() uint64 { - if x != nil { - return x.PolicerId + if x != nil && x.PolicerId != nil { + return *x.PolicerId } return 0 } func (x *CreatePortRequest) GetQosDefaultTc() uint32 { - if x != nil { - return x.QosDefaultTc + if x != nil && x.QosDefaultTc != nil { + return *x.QosDefaultTc } return 0 } func (x *CreatePortRequest) GetQosDot1PToTcMap() uint64 { - if x != nil { - return x.QosDot1PToTcMap + if x != nil && x.QosDot1PToTcMap != nil { + return *x.QosDot1PToTcMap } return 0 } func (x *CreatePortRequest) GetQosDot1PToColorMap() uint64 { - if x != nil { - return x.QosDot1PToColorMap + if x != nil && x.QosDot1PToColorMap != nil { + return *x.QosDot1PToColorMap } return 0 } func (x *CreatePortRequest) GetQosDscpToTcMap() uint64 { - if x != nil { - return x.QosDscpToTcMap + if x != nil && x.QosDscpToTcMap != nil { + return *x.QosDscpToTcMap } return 0 } func (x *CreatePortRequest) GetQosDscpToColorMap() uint64 { - if x != nil { - return x.QosDscpToColorMap + if x != nil && x.QosDscpToColorMap != nil { + return *x.QosDscpToColorMap } return 0 } func (x *CreatePortRequest) GetQosTcToQueueMap() uint64 { - if x != nil { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } func (x *CreatePortRequest) GetQosTcAndColorToDot1PMap() uint64 { - if x != nil { - return x.QosTcAndColorToDot1PMap + if x != nil && x.QosTcAndColorToDot1PMap != nil { + return *x.QosTcAndColorToDot1PMap } return 0 } func (x *CreatePortRequest) GetQosTcAndColorToDscpMap() uint64 { - if x != nil { - return x.QosTcAndColorToDscpMap + if x != nil && x.QosTcAndColorToDscpMap != nil { + return *x.QosTcAndColorToDscpMap } return 0 } func (x *CreatePortRequest) GetQosTcToPriorityGroupMap() uint64 { - if x != nil { - return x.QosTcToPriorityGroupMap + if x != nil && x.QosTcToPriorityGroupMap != nil { + return *x.QosTcToPriorityGroupMap } return 0 } func (x *CreatePortRequest) GetQosPfcPriorityToPriorityGroupMap() uint64 { - if x != nil { - return x.QosPfcPriorityToPriorityGroupMap + if x != nil && x.QosPfcPriorityToPriorityGroupMap != nil { + return *x.QosPfcPriorityToPriorityGroupMap } return 0 } func (x *CreatePortRequest) GetQosPfcPriorityToQueueMap() uint64 { - if x != nil { - return x.QosPfcPriorityToQueueMap + if x != nil && x.QosPfcPriorityToQueueMap != nil { + return *x.QosPfcPriorityToQueueMap } return 0 } func (x *CreatePortRequest) GetQosSchedulerProfileId() uint64 { - if x != nil { - return x.QosSchedulerProfileId + if x != nil && x.QosSchedulerProfileId != nil { + return *x.QosSchedulerProfileId } return 0 } @@ -1208,36 +1208,36 @@ func (x *CreatePortRequest) GetQosEgressBufferProfileList() []uint64 { } func (x *CreatePortRequest) GetPriorityFlowControlMode() PortPriorityFlowControlMode { - if x != nil { - return x.PriorityFlowControlMode + if x != nil && x.PriorityFlowControlMode != nil { + return *x.PriorityFlowControlMode } return PortPriorityFlowControlMode_PORT_PRIORITY_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *CreatePortRequest) GetPriorityFlowControl() uint32 { - if x != nil { - return x.PriorityFlowControl + if x != nil && x.PriorityFlowControl != nil { + return *x.PriorityFlowControl } return 0 } func (x *CreatePortRequest) GetPriorityFlowControlRx() uint32 { - if x != nil { - return x.PriorityFlowControlRx + if x != nil && x.PriorityFlowControlRx != nil { + return *x.PriorityFlowControlRx } return 0 } func (x *CreatePortRequest) GetPriorityFlowControlTx() uint32 { - if x != nil { - return x.PriorityFlowControlTx + if x != nil && x.PriorityFlowControlTx != nil { + return *x.PriorityFlowControlTx } return 0 } func (x *CreatePortRequest) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } @@ -1250,43 +1250,43 @@ func (x *CreatePortRequest) GetEgressBlockPortList() []uint64 { } func (x *CreatePortRequest) GetHwProfileId() uint64 { - if x != nil { - return x.HwProfileId + if x != nil && x.HwProfileId != nil { + return *x.HwProfileId } return 0 } func (x *CreatePortRequest) GetEeeEnable() bool { - if x != nil { - return x.EeeEnable + if x != nil && x.EeeEnable != nil { + return *x.EeeEnable } return false } func (x *CreatePortRequest) GetEeeIdleTime() uint32 { - if x != nil { - return x.EeeIdleTime + if x != nil && x.EeeIdleTime != nil { + return *x.EeeIdleTime } return 0 } func (x *CreatePortRequest) GetEeeWakeTime() uint32 { - if x != nil { - return x.EeeWakeTime + if x != nil && x.EeeWakeTime != nil { + return *x.EeeWakeTime } return 0 } func (x *CreatePortRequest) GetIsolationGroup() uint64 { - if x != nil { - return x.IsolationGroup + if x != nil && x.IsolationGroup != nil { + return *x.IsolationGroup } return 0 } func (x *CreatePortRequest) GetPktTxEnable() bool { - if x != nil { - return x.PktTxEnable + if x != nil && x.PktTxEnable != nil { + return *x.PktTxEnable } return false } @@ -1320,22 +1320,22 @@ func (x *CreatePortRequest) GetSerdesIpredriver() []uint32 { } func (x *CreatePortRequest) GetLinkTrainingEnable() bool { - if x != nil { - return x.LinkTrainingEnable + if x != nil && x.LinkTrainingEnable != nil { + return *x.LinkTrainingEnable } return false } func (x *CreatePortRequest) GetPtpMode() PortPtpMode { - if x != nil { - return x.PtpMode + if x != nil && x.PtpMode != nil { + return *x.PtpMode } return PortPtpMode_PORT_PTP_MODE_UNSPECIFIED } func (x *CreatePortRequest) GetInterfaceType() PortInterfaceType { - if x != nil { - return x.InterfaceType + if x != nil && x.InterfaceType != nil { + return *x.InterfaceType } return PortInterfaceType_PORT_INTERFACE_TYPE_UNSPECIFIED } @@ -1348,141 +1348,141 @@ func (x *CreatePortRequest) GetAdvertisedInterfaceType() []PortInterfaceType { } func (x *CreatePortRequest) GetReferenceClock() uint64 { - if x != nil { - return x.ReferenceClock + if x != nil && x.ReferenceClock != nil { + return *x.ReferenceClock } return 0 } func (x *CreatePortRequest) GetPrbsPolynomial() uint32 { - if x != nil { - return x.PrbsPolynomial + if x != nil && x.PrbsPolynomial != nil { + return *x.PrbsPolynomial } return 0 } func (x *CreatePortRequest) GetPrbsConfig() PortPrbsConfig { - if x != nil { - return x.PrbsConfig + if x != nil && x.PrbsConfig != nil { + return *x.PrbsConfig } return PortPrbsConfig_PORT_PRBS_CONFIG_UNSPECIFIED } func (x *CreatePortRequest) GetDisableDecrementTtl() bool { - if x != nil { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *CreatePortRequest) GetQosMplsExpToTcMap() uint64 { - if x != nil { - return x.QosMplsExpToTcMap + if x != nil && x.QosMplsExpToTcMap != nil { + return *x.QosMplsExpToTcMap } return 0 } func (x *CreatePortRequest) GetQosMplsExpToColorMap() uint64 { - if x != nil { - return x.QosMplsExpToColorMap + if x != nil && x.QosMplsExpToColorMap != nil { + return *x.QosMplsExpToColorMap } return 0 } func (x *CreatePortRequest) GetQosTcAndColorToMplsExpMap() uint64 { - if x != nil { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } func (x *CreatePortRequest) GetTpid() uint32 { - if x != nil { - return x.Tpid + if x != nil && x.Tpid != nil { + return *x.Tpid } return 0 } func (x *CreatePortRequest) GetAutoNegFecModeOverride() bool { - if x != nil { - return x.AutoNegFecModeOverride + if x != nil && x.AutoNegFecModeOverride != nil { + return *x.AutoNegFecModeOverride } return false } func (x *CreatePortRequest) GetLoopbackMode() PortLoopbackMode { - if x != nil { - return x.LoopbackMode + if x != nil && x.LoopbackMode != nil { + return *x.LoopbackMode } return PortLoopbackMode_PORT_LOOPBACK_MODE_UNSPECIFIED } func (x *CreatePortRequest) GetMdixModeConfig() PortMdixModeConfig { - if x != nil { - return x.MdixModeConfig + if x != nil && x.MdixModeConfig != nil { + return *x.MdixModeConfig } return PortMdixModeConfig_PORT_MDIX_MODE_CONFIG_UNSPECIFIED } func (x *CreatePortRequest) GetAutoNegConfigMode() PortAutoNegConfigMode { - if x != nil { - return x.AutoNegConfigMode + if x != nil && x.AutoNegConfigMode != nil { + return *x.AutoNegConfigMode } return PortAutoNegConfigMode_PORT_AUTO_NEG_CONFIG_MODE_UNSPECIFIED } func (x *CreatePortRequest) GetX1000XSgmiiSlaveAutodetect() bool { - if x != nil { - return x.X1000XSgmiiSlaveAutodetect + if x != nil && x.X1000XSgmiiSlaveAutodetect != nil { + return *x.X1000XSgmiiSlaveAutodetect } return false } func (x *CreatePortRequest) GetModuleType() PortModuleType { - if x != nil { - return x.ModuleType + if x != nil && x.ModuleType != nil { + return *x.ModuleType } return PortModuleType_PORT_MODULE_TYPE_UNSPECIFIED } func (x *CreatePortRequest) GetDualMedia() PortDualMedia { - if x != nil { - return x.DualMedia + if x != nil && x.DualMedia != nil { + return *x.DualMedia } return PortDualMedia_PORT_DUAL_MEDIA_UNSPECIFIED } func (x *CreatePortRequest) GetIpg() uint32 { - if x != nil { - return x.Ipg + if x != nil && x.Ipg != nil { + return *x.Ipg } return 0 } func (x *CreatePortRequest) GetGlobalFlowControlForward() bool { - if x != nil { - return x.GlobalFlowControlForward + if x != nil && x.GlobalFlowControlForward != nil { + return *x.GlobalFlowControlForward } return false } func (x *CreatePortRequest) GetPriorityFlowControlForward() bool { - if x != nil { - return x.PriorityFlowControlForward + if x != nil && x.PriorityFlowControlForward != nil { + return *x.PriorityFlowControlForward } return false } func (x *CreatePortRequest) GetQosDscpToForwardingClassMap() uint64 { - if x != nil { - return x.QosDscpToForwardingClassMap + if x != nil && x.QosDscpToForwardingClassMap != nil { + return *x.QosDscpToForwardingClassMap } return 0 } func (x *CreatePortRequest) GetQosMplsExpToForwardingClassMap() uint64 { - if x != nil { - return x.QosMplsExpToForwardingClassMap + if x != nil && x.QosMplsExpToForwardingClassMap != nil { + return *x.QosMplsExpToForwardingClassMap } return 0 } @@ -1624,101 +1624,98 @@ type SetPortAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetPortAttributeRequest_Speed - // *SetPortAttributeRequest_AutoNegMode - // *SetPortAttributeRequest_AdminState - // *SetPortAttributeRequest_MediaType - // *SetPortAttributeRequest_AdvertisedSpeed - // *SetPortAttributeRequest_AdvertisedFecMode - // *SetPortAttributeRequest_AdvertisedFecModeExtended - // *SetPortAttributeRequest_AdvertisedHalfDuplexSpeed - // *SetPortAttributeRequest_AdvertisedAutoNegMode - // *SetPortAttributeRequest_AdvertisedFlowControlMode - // *SetPortAttributeRequest_AdvertisedAsymmetricPauseMode - // *SetPortAttributeRequest_AdvertisedMediaType - // *SetPortAttributeRequest_AdvertisedOuiCode - // *SetPortAttributeRequest_PortVlanId - // *SetPortAttributeRequest_DefaultVlanPriority - // *SetPortAttributeRequest_DropUntagged - // *SetPortAttributeRequest_DropTagged - // *SetPortAttributeRequest_InternalLoopbackMode - // *SetPortAttributeRequest_UseExtendedFec - // *SetPortAttributeRequest_FecMode - // *SetPortAttributeRequest_FecModeExtended - // *SetPortAttributeRequest_UpdateDscp - // *SetPortAttributeRequest_Mtu - // *SetPortAttributeRequest_FloodStormControlPolicerId - // *SetPortAttributeRequest_BroadcastStormControlPolicerId - // *SetPortAttributeRequest_MulticastStormControlPolicerId - // *SetPortAttributeRequest_GlobalFlowControlMode - // *SetPortAttributeRequest_IngressAcl - // *SetPortAttributeRequest_EgressAcl - // *SetPortAttributeRequest_IngressMacsecAcl - // *SetPortAttributeRequest_EgressMacsecAcl - // *SetPortAttributeRequest_IngressMirrorSession - // *SetPortAttributeRequest_EgressMirrorSession - // *SetPortAttributeRequest_IngressSamplepacketEnable - // *SetPortAttributeRequest_EgressSamplepacketEnable - // *SetPortAttributeRequest_IngressSampleMirrorSession - // *SetPortAttributeRequest_EgressSampleMirrorSession - // *SetPortAttributeRequest_PolicerId - // *SetPortAttributeRequest_QosDefaultTc - // *SetPortAttributeRequest_QosDot1PToTcMap - // *SetPortAttributeRequest_QosDot1PToColorMap - // *SetPortAttributeRequest_QosDscpToTcMap - // *SetPortAttributeRequest_QosDscpToColorMap - // *SetPortAttributeRequest_QosTcToQueueMap - // *SetPortAttributeRequest_QosTcAndColorToDot1PMap - // *SetPortAttributeRequest_QosTcAndColorToDscpMap - // *SetPortAttributeRequest_QosTcToPriorityGroupMap - // *SetPortAttributeRequest_QosPfcPriorityToPriorityGroupMap - // *SetPortAttributeRequest_QosPfcPriorityToQueueMap - // *SetPortAttributeRequest_QosSchedulerProfileId - // *SetPortAttributeRequest_QosIngressBufferProfileList - // *SetPortAttributeRequest_QosEgressBufferProfileList - // *SetPortAttributeRequest_PriorityFlowControlMode - // *SetPortAttributeRequest_PriorityFlowControl - // *SetPortAttributeRequest_PriorityFlowControlRx - // *SetPortAttributeRequest_PriorityFlowControlTx - // *SetPortAttributeRequest_MetaData - // *SetPortAttributeRequest_EgressBlockPortList - // *SetPortAttributeRequest_HwProfileId - // *SetPortAttributeRequest_EeeEnable - // *SetPortAttributeRequest_EeeIdleTime - // *SetPortAttributeRequest_EeeWakeTime - // *SetPortAttributeRequest_IsolationGroup - // *SetPortAttributeRequest_PktTxEnable - // *SetPortAttributeRequest_TamObject - // *SetPortAttributeRequest_SerdesPreemphasis - // *SetPortAttributeRequest_SerdesIdriver - // *SetPortAttributeRequest_SerdesIpredriver - // *SetPortAttributeRequest_LinkTrainingEnable - // *SetPortAttributeRequest_PtpMode - // *SetPortAttributeRequest_InterfaceType - // *SetPortAttributeRequest_AdvertisedInterfaceType - // *SetPortAttributeRequest_PrbsPolynomial - // *SetPortAttributeRequest_PrbsConfig - // *SetPortAttributeRequest_DisableDecrementTtl - // *SetPortAttributeRequest_QosMplsExpToTcMap - // *SetPortAttributeRequest_QosMplsExpToColorMap - // *SetPortAttributeRequest_QosTcAndColorToMplsExpMap - // *SetPortAttributeRequest_Tpid - // *SetPortAttributeRequest_AutoNegFecModeOverride - // *SetPortAttributeRequest_LoopbackMode - // *SetPortAttributeRequest_MdixModeConfig - // *SetPortAttributeRequest_AutoNegConfigMode - // *SetPortAttributeRequest_X1000XSgmiiSlaveAutodetect - // *SetPortAttributeRequest_ModuleType - // *SetPortAttributeRequest_DualMedia - // *SetPortAttributeRequest_Ipg - // *SetPortAttributeRequest_GlobalFlowControlForward - // *SetPortAttributeRequest_PriorityFlowControlForward - // *SetPortAttributeRequest_QosDscpToForwardingClassMap - // *SetPortAttributeRequest_QosMplsExpToForwardingClassMap - Attr isSetPortAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Speed *uint32 `protobuf:"varint,2,opt,name=speed,proto3,oneof" json:"speed,omitempty"` + AutoNegMode *bool `protobuf:"varint,3,opt,name=auto_neg_mode,json=autoNegMode,proto3,oneof" json:"auto_neg_mode,omitempty"` + AdminState *bool `protobuf:"varint,4,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + MediaType *PortMediaType `protobuf:"varint,5,opt,name=media_type,json=mediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof" json:"media_type,omitempty"` + AdvertisedSpeed []uint32 `protobuf:"varint,6,rep,packed,name=advertised_speed,json=advertisedSpeed,proto3" json:"advertised_speed,omitempty"` + AdvertisedFecMode []PortFecMode `protobuf:"varint,7,rep,packed,name=advertised_fec_mode,json=advertisedFecMode,proto3,enum=lemming.dataplane.sai.PortFecMode" json:"advertised_fec_mode,omitempty"` + AdvertisedFecModeExtended []PortFecModeExtended `protobuf:"varint,8,rep,packed,name=advertised_fec_mode_extended,json=advertisedFecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended" json:"advertised_fec_mode_extended,omitempty"` + AdvertisedHalfDuplexSpeed []uint32 `protobuf:"varint,9,rep,packed,name=advertised_half_duplex_speed,json=advertisedHalfDuplexSpeed,proto3" json:"advertised_half_duplex_speed,omitempty"` + AdvertisedAutoNegMode *bool `protobuf:"varint,10,opt,name=advertised_auto_neg_mode,json=advertisedAutoNegMode,proto3,oneof" json:"advertised_auto_neg_mode,omitempty"` + AdvertisedFlowControlMode *PortFlowControlMode `protobuf:"varint,11,opt,name=advertised_flow_control_mode,json=advertisedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof" json:"advertised_flow_control_mode,omitempty"` + AdvertisedAsymmetricPauseMode *bool `protobuf:"varint,12,opt,name=advertised_asymmetric_pause_mode,json=advertisedAsymmetricPauseMode,proto3,oneof" json:"advertised_asymmetric_pause_mode,omitempty"` + AdvertisedMediaType *PortMediaType `protobuf:"varint,13,opt,name=advertised_media_type,json=advertisedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof" json:"advertised_media_type,omitempty"` + AdvertisedOuiCode *uint32 `protobuf:"varint,14,opt,name=advertised_oui_code,json=advertisedOuiCode,proto3,oneof" json:"advertised_oui_code,omitempty"` + PortVlanId *uint32 `protobuf:"varint,15,opt,name=port_vlan_id,json=portVlanId,proto3,oneof" json:"port_vlan_id,omitempty"` + DefaultVlanPriority *uint32 `protobuf:"varint,16,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3,oneof" json:"default_vlan_priority,omitempty"` + DropUntagged *bool `protobuf:"varint,17,opt,name=drop_untagged,json=dropUntagged,proto3,oneof" json:"drop_untagged,omitempty"` + DropTagged *bool `protobuf:"varint,18,opt,name=drop_tagged,json=dropTagged,proto3,oneof" json:"drop_tagged,omitempty"` + InternalLoopbackMode *PortInternalLoopbackMode `protobuf:"varint,19,opt,name=internal_loopback_mode,json=internalLoopbackMode,proto3,enum=lemming.dataplane.sai.PortInternalLoopbackMode,oneof" json:"internal_loopback_mode,omitempty"` + UseExtendedFec *bool `protobuf:"varint,20,opt,name=use_extended_fec,json=useExtendedFec,proto3,oneof" json:"use_extended_fec,omitempty"` + FecMode *PortFecMode `protobuf:"varint,21,opt,name=fec_mode,json=fecMode,proto3,enum=lemming.dataplane.sai.PortFecMode,oneof" json:"fec_mode,omitempty"` + FecModeExtended *PortFecModeExtended `protobuf:"varint,22,opt,name=fec_mode_extended,json=fecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended,oneof" json:"fec_mode_extended,omitempty"` + UpdateDscp *bool `protobuf:"varint,23,opt,name=update_dscp,json=updateDscp,proto3,oneof" json:"update_dscp,omitempty"` + Mtu *uint32 `protobuf:"varint,24,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` + FloodStormControlPolicerId *uint64 `protobuf:"varint,25,opt,name=flood_storm_control_policer_id,json=floodStormControlPolicerId,proto3,oneof" json:"flood_storm_control_policer_id,omitempty"` + BroadcastStormControlPolicerId *uint64 `protobuf:"varint,26,opt,name=broadcast_storm_control_policer_id,json=broadcastStormControlPolicerId,proto3,oneof" json:"broadcast_storm_control_policer_id,omitempty"` + MulticastStormControlPolicerId *uint64 `protobuf:"varint,27,opt,name=multicast_storm_control_policer_id,json=multicastStormControlPolicerId,proto3,oneof" json:"multicast_storm_control_policer_id,omitempty"` + GlobalFlowControlMode *PortFlowControlMode `protobuf:"varint,28,opt,name=global_flow_control_mode,json=globalFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof" json:"global_flow_control_mode,omitempty"` + IngressAcl *uint64 `protobuf:"varint,29,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,30,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + IngressMacsecAcl *uint64 `protobuf:"varint,31,opt,name=ingress_macsec_acl,json=ingressMacsecAcl,proto3,oneof" json:"ingress_macsec_acl,omitempty"` + EgressMacsecAcl *uint64 `protobuf:"varint,32,opt,name=egress_macsec_acl,json=egressMacsecAcl,proto3,oneof" json:"egress_macsec_acl,omitempty"` + IngressMirrorSession []uint64 `protobuf:"varint,33,rep,packed,name=ingress_mirror_session,json=ingressMirrorSession,proto3" json:"ingress_mirror_session,omitempty"` + EgressMirrorSession []uint64 `protobuf:"varint,34,rep,packed,name=egress_mirror_session,json=egressMirrorSession,proto3" json:"egress_mirror_session,omitempty"` + IngressSamplepacketEnable *uint64 `protobuf:"varint,35,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3,oneof" json:"ingress_samplepacket_enable,omitempty"` + EgressSamplepacketEnable *uint64 `protobuf:"varint,36,opt,name=egress_samplepacket_enable,json=egressSamplepacketEnable,proto3,oneof" json:"egress_samplepacket_enable,omitempty"` + IngressSampleMirrorSession []uint64 `protobuf:"varint,37,rep,packed,name=ingress_sample_mirror_session,json=ingressSampleMirrorSession,proto3" json:"ingress_sample_mirror_session,omitempty"` + EgressSampleMirrorSession []uint64 `protobuf:"varint,38,rep,packed,name=egress_sample_mirror_session,json=egressSampleMirrorSession,proto3" json:"egress_sample_mirror_session,omitempty"` + PolicerId *uint64 `protobuf:"varint,39,opt,name=policer_id,json=policerId,proto3,oneof" json:"policer_id,omitempty"` + QosDefaultTc *uint32 `protobuf:"varint,40,opt,name=qos_default_tc,json=qosDefaultTc,proto3,oneof" json:"qos_default_tc,omitempty"` + QosDot1PToTcMap *uint64 `protobuf:"varint,41,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3,oneof" json:"qos_dot1p_to_tc_map,omitempty"` + QosDot1PToColorMap *uint64 `protobuf:"varint,42,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3,oneof" json:"qos_dot1p_to_color_map,omitempty"` + QosDscpToTcMap *uint64 `protobuf:"varint,43,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3,oneof" json:"qos_dscp_to_tc_map,omitempty"` + QosDscpToColorMap *uint64 `protobuf:"varint,44,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3,oneof" json:"qos_dscp_to_color_map,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,45,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` + QosTcAndColorToDot1PMap *uint64 `protobuf:"varint,46,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3,oneof" json:"qos_tc_and_color_to_dot1p_map,omitempty"` + QosTcAndColorToDscpMap *uint64 `protobuf:"varint,47,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3,oneof" json:"qos_tc_and_color_to_dscp_map,omitempty"` + QosTcToPriorityGroupMap *uint64 `protobuf:"varint,48,opt,name=qos_tc_to_priority_group_map,json=qosTcToPriorityGroupMap,proto3,oneof" json:"qos_tc_to_priority_group_map,omitempty"` + QosPfcPriorityToPriorityGroupMap *uint64 `protobuf:"varint,49,opt,name=qos_pfc_priority_to_priority_group_map,json=qosPfcPriorityToPriorityGroupMap,proto3,oneof" json:"qos_pfc_priority_to_priority_group_map,omitempty"` + QosPfcPriorityToQueueMap *uint64 `protobuf:"varint,50,opt,name=qos_pfc_priority_to_queue_map,json=qosPfcPriorityToQueueMap,proto3,oneof" json:"qos_pfc_priority_to_queue_map,omitempty"` + QosSchedulerProfileId *uint64 `protobuf:"varint,51,opt,name=qos_scheduler_profile_id,json=qosSchedulerProfileId,proto3,oneof" json:"qos_scheduler_profile_id,omitempty"` + QosIngressBufferProfileList []uint64 `protobuf:"varint,52,rep,packed,name=qos_ingress_buffer_profile_list,json=qosIngressBufferProfileList,proto3" json:"qos_ingress_buffer_profile_list,omitempty"` + QosEgressBufferProfileList []uint64 `protobuf:"varint,53,rep,packed,name=qos_egress_buffer_profile_list,json=qosEgressBufferProfileList,proto3" json:"qos_egress_buffer_profile_list,omitempty"` + PriorityFlowControlMode *PortPriorityFlowControlMode `protobuf:"varint,54,opt,name=priority_flow_control_mode,json=priorityFlowControlMode,proto3,enum=lemming.dataplane.sai.PortPriorityFlowControlMode,oneof" json:"priority_flow_control_mode,omitempty"` + PriorityFlowControl *uint32 `protobuf:"varint,55,opt,name=priority_flow_control,json=priorityFlowControl,proto3,oneof" json:"priority_flow_control,omitempty"` + PriorityFlowControlRx *uint32 `protobuf:"varint,56,opt,name=priority_flow_control_rx,json=priorityFlowControlRx,proto3,oneof" json:"priority_flow_control_rx,omitempty"` + PriorityFlowControlTx *uint32 `protobuf:"varint,57,opt,name=priority_flow_control_tx,json=priorityFlowControlTx,proto3,oneof" json:"priority_flow_control_tx,omitempty"` + MetaData *uint32 `protobuf:"varint,58,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + EgressBlockPortList []uint64 `protobuf:"varint,59,rep,packed,name=egress_block_port_list,json=egressBlockPortList,proto3" json:"egress_block_port_list,omitempty"` + HwProfileId *uint64 `protobuf:"varint,60,opt,name=hw_profile_id,json=hwProfileId,proto3,oneof" json:"hw_profile_id,omitempty"` + EeeEnable *bool `protobuf:"varint,61,opt,name=eee_enable,json=eeeEnable,proto3,oneof" json:"eee_enable,omitempty"` + EeeIdleTime *uint32 `protobuf:"varint,62,opt,name=eee_idle_time,json=eeeIdleTime,proto3,oneof" json:"eee_idle_time,omitempty"` + EeeWakeTime *uint32 `protobuf:"varint,63,opt,name=eee_wake_time,json=eeeWakeTime,proto3,oneof" json:"eee_wake_time,omitempty"` + IsolationGroup *uint64 `protobuf:"varint,64,opt,name=isolation_group,json=isolationGroup,proto3,oneof" json:"isolation_group,omitempty"` + PktTxEnable *bool `protobuf:"varint,65,opt,name=pkt_tx_enable,json=pktTxEnable,proto3,oneof" json:"pkt_tx_enable,omitempty"` + TamObject []uint64 `protobuf:"varint,66,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` + SerdesPreemphasis []uint32 `protobuf:"varint,67,rep,packed,name=serdes_preemphasis,json=serdesPreemphasis,proto3" json:"serdes_preemphasis,omitempty"` + SerdesIdriver []uint32 `protobuf:"varint,68,rep,packed,name=serdes_idriver,json=serdesIdriver,proto3" json:"serdes_idriver,omitempty"` + SerdesIpredriver []uint32 `protobuf:"varint,69,rep,packed,name=serdes_ipredriver,json=serdesIpredriver,proto3" json:"serdes_ipredriver,omitempty"` + LinkTrainingEnable *bool `protobuf:"varint,70,opt,name=link_training_enable,json=linkTrainingEnable,proto3,oneof" json:"link_training_enable,omitempty"` + PtpMode *PortPtpMode `protobuf:"varint,71,opt,name=ptp_mode,json=ptpMode,proto3,enum=lemming.dataplane.sai.PortPtpMode,oneof" json:"ptp_mode,omitempty"` + InterfaceType *PortInterfaceType `protobuf:"varint,72,opt,name=interface_type,json=interfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType,oneof" json:"interface_type,omitempty"` + AdvertisedInterfaceType []PortInterfaceType `protobuf:"varint,73,rep,packed,name=advertised_interface_type,json=advertisedInterfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType" json:"advertised_interface_type,omitempty"` + PrbsPolynomial *uint32 `protobuf:"varint,74,opt,name=prbs_polynomial,json=prbsPolynomial,proto3,oneof" json:"prbs_polynomial,omitempty"` + PrbsConfig *PortPrbsConfig `protobuf:"varint,75,opt,name=prbs_config,json=prbsConfig,proto3,enum=lemming.dataplane.sai.PortPrbsConfig,oneof" json:"prbs_config,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,76,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + QosMplsExpToTcMap *uint64 `protobuf:"varint,77,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3,oneof" json:"qos_mpls_exp_to_tc_map,omitempty"` + QosMplsExpToColorMap *uint64 `protobuf:"varint,78,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3,oneof" json:"qos_mpls_exp_to_color_map,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,79,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` + Tpid *uint32 `protobuf:"varint,80,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + AutoNegFecModeOverride *bool `protobuf:"varint,81,opt,name=auto_neg_fec_mode_override,json=autoNegFecModeOverride,proto3,oneof" json:"auto_neg_fec_mode_override,omitempty"` + LoopbackMode *PortLoopbackMode `protobuf:"varint,82,opt,name=loopback_mode,json=loopbackMode,proto3,enum=lemming.dataplane.sai.PortLoopbackMode,oneof" json:"loopback_mode,omitempty"` + MdixModeConfig *PortMdixModeConfig `protobuf:"varint,83,opt,name=mdix_mode_config,json=mdixModeConfig,proto3,enum=lemming.dataplane.sai.PortMdixModeConfig,oneof" json:"mdix_mode_config,omitempty"` + AutoNegConfigMode *PortAutoNegConfigMode `protobuf:"varint,84,opt,name=auto_neg_config_mode,json=autoNegConfigMode,proto3,enum=lemming.dataplane.sai.PortAutoNegConfigMode,oneof" json:"auto_neg_config_mode,omitempty"` + X1000XSgmiiSlaveAutodetect *bool `protobuf:"varint,85,opt,name=_1000x_sgmii_slave_autodetect,json=1000xSgmiiSlaveAutodetect,proto3,oneof" json:"_1000x_sgmii_slave_autodetect,omitempty"` + ModuleType *PortModuleType `protobuf:"varint,86,opt,name=module_type,json=moduleType,proto3,enum=lemming.dataplane.sai.PortModuleType,oneof" json:"module_type,omitempty"` + DualMedia *PortDualMedia `protobuf:"varint,87,opt,name=dual_media,json=dualMedia,proto3,enum=lemming.dataplane.sai.PortDualMedia,oneof" json:"dual_media,omitempty"` + Ipg *uint32 `protobuf:"varint,88,opt,name=ipg,proto3,oneof" json:"ipg,omitempty"` + GlobalFlowControlForward *bool `protobuf:"varint,89,opt,name=global_flow_control_forward,json=globalFlowControlForward,proto3,oneof" json:"global_flow_control_forward,omitempty"` + PriorityFlowControlForward *bool `protobuf:"varint,90,opt,name=priority_flow_control_forward,json=priorityFlowControlForward,proto3,oneof" json:"priority_flow_control_forward,omitempty"` + QosDscpToForwardingClassMap *uint64 `protobuf:"varint,91,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3,oneof" json:"qos_dscp_to_forwarding_class_map,omitempty"` + QosMplsExpToForwardingClassMap *uint64 `protobuf:"varint,92,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3,oneof" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` } func (x *SetPortAttributeRequest) Reset() { @@ -1760,1199 +1757,642 @@ func (x *SetPortAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetPortAttributeRequest) GetAttr() isSetPortAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetPortAttributeRequest) GetSpeed() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_Speed); ok { - return x.Speed + if x != nil && x.Speed != nil { + return *x.Speed } return 0 } func (x *SetPortAttributeRequest) GetAutoNegMode() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AutoNegMode); ok { - return x.AutoNegMode + if x != nil && x.AutoNegMode != nil { + return *x.AutoNegMode } return false } func (x *SetPortAttributeRequest) GetAdminState() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdminState); ok { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *SetPortAttributeRequest) GetMediaType() PortMediaType { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_MediaType); ok { - return x.MediaType + if x != nil && x.MediaType != nil { + return *x.MediaType } return PortMediaType_PORT_MEDIA_TYPE_UNSPECIFIED } -func (x *SetPortAttributeRequest) GetAdvertisedSpeed() *Uint32List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedSpeed); ok { +func (x *SetPortAttributeRequest) GetAdvertisedSpeed() []uint32 { + if x != nil { return x.AdvertisedSpeed } return nil } -func (x *SetPortAttributeRequest) GetAdvertisedFecMode() *PortFecModeList { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedFecMode); ok { +func (x *SetPortAttributeRequest) GetAdvertisedFecMode() []PortFecMode { + if x != nil { return x.AdvertisedFecMode } return nil } -func (x *SetPortAttributeRequest) GetAdvertisedFecModeExtended() *PortFecModeExtendedList { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedFecModeExtended); ok { +func (x *SetPortAttributeRequest) GetAdvertisedFecModeExtended() []PortFecModeExtended { + if x != nil { return x.AdvertisedFecModeExtended } return nil } -func (x *SetPortAttributeRequest) GetAdvertisedHalfDuplexSpeed() *Uint32List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedHalfDuplexSpeed); ok { +func (x *SetPortAttributeRequest) GetAdvertisedHalfDuplexSpeed() []uint32 { + if x != nil { return x.AdvertisedHalfDuplexSpeed } return nil } func (x *SetPortAttributeRequest) GetAdvertisedAutoNegMode() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedAutoNegMode); ok { - return x.AdvertisedAutoNegMode + if x != nil && x.AdvertisedAutoNegMode != nil { + return *x.AdvertisedAutoNegMode } return false } func (x *SetPortAttributeRequest) GetAdvertisedFlowControlMode() PortFlowControlMode { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedFlowControlMode); ok { - return x.AdvertisedFlowControlMode + if x != nil && x.AdvertisedFlowControlMode != nil { + return *x.AdvertisedFlowControlMode } return PortFlowControlMode_PORT_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *SetPortAttributeRequest) GetAdvertisedAsymmetricPauseMode() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedAsymmetricPauseMode); ok { - return x.AdvertisedAsymmetricPauseMode + if x != nil && x.AdvertisedAsymmetricPauseMode != nil { + return *x.AdvertisedAsymmetricPauseMode } return false } func (x *SetPortAttributeRequest) GetAdvertisedMediaType() PortMediaType { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedMediaType); ok { - return x.AdvertisedMediaType + if x != nil && x.AdvertisedMediaType != nil { + return *x.AdvertisedMediaType } return PortMediaType_PORT_MEDIA_TYPE_UNSPECIFIED } func (x *SetPortAttributeRequest) GetAdvertisedOuiCode() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedOuiCode); ok { - return x.AdvertisedOuiCode + if x != nil && x.AdvertisedOuiCode != nil { + return *x.AdvertisedOuiCode } return 0 } func (x *SetPortAttributeRequest) GetPortVlanId() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PortVlanId); ok { - return x.PortVlanId + if x != nil && x.PortVlanId != nil { + return *x.PortVlanId } return 0 } func (x *SetPortAttributeRequest) GetDefaultVlanPriority() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_DefaultVlanPriority); ok { - return x.DefaultVlanPriority + if x != nil && x.DefaultVlanPriority != nil { + return *x.DefaultVlanPriority } return 0 } func (x *SetPortAttributeRequest) GetDropUntagged() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_DropUntagged); ok { - return x.DropUntagged + if x != nil && x.DropUntagged != nil { + return *x.DropUntagged } return false } func (x *SetPortAttributeRequest) GetDropTagged() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_DropTagged); ok { - return x.DropTagged + if x != nil && x.DropTagged != nil { + return *x.DropTagged } return false } func (x *SetPortAttributeRequest) GetInternalLoopbackMode() PortInternalLoopbackMode { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_InternalLoopbackMode); ok { - return x.InternalLoopbackMode + if x != nil && x.InternalLoopbackMode != nil { + return *x.InternalLoopbackMode } return PortInternalLoopbackMode_PORT_INTERNAL_LOOPBACK_MODE_UNSPECIFIED } func (x *SetPortAttributeRequest) GetUseExtendedFec() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_UseExtendedFec); ok { - return x.UseExtendedFec + if x != nil && x.UseExtendedFec != nil { + return *x.UseExtendedFec } return false } func (x *SetPortAttributeRequest) GetFecMode() PortFecMode { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_FecMode); ok { - return x.FecMode + if x != nil && x.FecMode != nil { + return *x.FecMode } return PortFecMode_PORT_FEC_MODE_UNSPECIFIED } func (x *SetPortAttributeRequest) GetFecModeExtended() PortFecModeExtended { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_FecModeExtended); ok { - return x.FecModeExtended + if x != nil && x.FecModeExtended != nil { + return *x.FecModeExtended } return PortFecModeExtended_PORT_FEC_MODE_EXTENDED_UNSPECIFIED } func (x *SetPortAttributeRequest) GetUpdateDscp() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_UpdateDscp); ok { - return x.UpdateDscp + if x != nil && x.UpdateDscp != nil { + return *x.UpdateDscp } return false } func (x *SetPortAttributeRequest) GetMtu() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_Mtu); ok { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } func (x *SetPortAttributeRequest) GetFloodStormControlPolicerId() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_FloodStormControlPolicerId); ok { - return x.FloodStormControlPolicerId + if x != nil && x.FloodStormControlPolicerId != nil { + return *x.FloodStormControlPolicerId } return 0 } func (x *SetPortAttributeRequest) GetBroadcastStormControlPolicerId() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_BroadcastStormControlPolicerId); ok { - return x.BroadcastStormControlPolicerId + if x != nil && x.BroadcastStormControlPolicerId != nil { + return *x.BroadcastStormControlPolicerId } return 0 } func (x *SetPortAttributeRequest) GetMulticastStormControlPolicerId() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_MulticastStormControlPolicerId); ok { - return x.MulticastStormControlPolicerId + if x != nil && x.MulticastStormControlPolicerId != nil { + return *x.MulticastStormControlPolicerId } return 0 } func (x *SetPortAttributeRequest) GetGlobalFlowControlMode() PortFlowControlMode { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_GlobalFlowControlMode); ok { - return x.GlobalFlowControlMode + if x != nil && x.GlobalFlowControlMode != nil { + return *x.GlobalFlowControlMode } return PortFlowControlMode_PORT_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *SetPortAttributeRequest) GetIngressAcl() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_IngressAcl); ok { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *SetPortAttributeRequest) GetEgressAcl() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EgressAcl); ok { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *SetPortAttributeRequest) GetIngressMacsecAcl() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_IngressMacsecAcl); ok { - return x.IngressMacsecAcl + if x != nil && x.IngressMacsecAcl != nil { + return *x.IngressMacsecAcl } return 0 } func (x *SetPortAttributeRequest) GetEgressMacsecAcl() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EgressMacsecAcl); ok { - return x.EgressMacsecAcl + if x != nil && x.EgressMacsecAcl != nil { + return *x.EgressMacsecAcl } return 0 } -func (x *SetPortAttributeRequest) GetIngressMirrorSession() *Uint64List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_IngressMirrorSession); ok { +func (x *SetPortAttributeRequest) GetIngressMirrorSession() []uint64 { + if x != nil { return x.IngressMirrorSession } return nil } -func (x *SetPortAttributeRequest) GetEgressMirrorSession() *Uint64List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EgressMirrorSession); ok { +func (x *SetPortAttributeRequest) GetEgressMirrorSession() []uint64 { + if x != nil { return x.EgressMirrorSession } return nil } func (x *SetPortAttributeRequest) GetIngressSamplepacketEnable() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_IngressSamplepacketEnable); ok { - return x.IngressSamplepacketEnable + if x != nil && x.IngressSamplepacketEnable != nil { + return *x.IngressSamplepacketEnable } return 0 } func (x *SetPortAttributeRequest) GetEgressSamplepacketEnable() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EgressSamplepacketEnable); ok { - return x.EgressSamplepacketEnable + if x != nil && x.EgressSamplepacketEnable != nil { + return *x.EgressSamplepacketEnable } return 0 } -func (x *SetPortAttributeRequest) GetIngressSampleMirrorSession() *Uint64List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_IngressSampleMirrorSession); ok { +func (x *SetPortAttributeRequest) GetIngressSampleMirrorSession() []uint64 { + if x != nil { return x.IngressSampleMirrorSession } return nil } -func (x *SetPortAttributeRequest) GetEgressSampleMirrorSession() *Uint64List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EgressSampleMirrorSession); ok { +func (x *SetPortAttributeRequest) GetEgressSampleMirrorSession() []uint64 { + if x != nil { return x.EgressSampleMirrorSession } return nil } func (x *SetPortAttributeRequest) GetPolicerId() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PolicerId); ok { - return x.PolicerId + if x != nil && x.PolicerId != nil { + return *x.PolicerId } return 0 } func (x *SetPortAttributeRequest) GetQosDefaultTc() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosDefaultTc); ok { - return x.QosDefaultTc + if x != nil && x.QosDefaultTc != nil { + return *x.QosDefaultTc } return 0 } func (x *SetPortAttributeRequest) GetQosDot1PToTcMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosDot1PToTcMap); ok { - return x.QosDot1PToTcMap + if x != nil && x.QosDot1PToTcMap != nil { + return *x.QosDot1PToTcMap } return 0 } func (x *SetPortAttributeRequest) GetQosDot1PToColorMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosDot1PToColorMap); ok { - return x.QosDot1PToColorMap + if x != nil && x.QosDot1PToColorMap != nil { + return *x.QosDot1PToColorMap } return 0 } func (x *SetPortAttributeRequest) GetQosDscpToTcMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosDscpToTcMap); ok { - return x.QosDscpToTcMap + if x != nil && x.QosDscpToTcMap != nil { + return *x.QosDscpToTcMap } return 0 } func (x *SetPortAttributeRequest) GetQosDscpToColorMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosDscpToColorMap); ok { - return x.QosDscpToColorMap + if x != nil && x.QosDscpToColorMap != nil { + return *x.QosDscpToColorMap } return 0 } func (x *SetPortAttributeRequest) GetQosTcToQueueMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosTcToQueueMap); ok { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } func (x *SetPortAttributeRequest) GetQosTcAndColorToDot1PMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosTcAndColorToDot1PMap); ok { - return x.QosTcAndColorToDot1PMap + if x != nil && x.QosTcAndColorToDot1PMap != nil { + return *x.QosTcAndColorToDot1PMap } return 0 } func (x *SetPortAttributeRequest) GetQosTcAndColorToDscpMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosTcAndColorToDscpMap); ok { - return x.QosTcAndColorToDscpMap + if x != nil && x.QosTcAndColorToDscpMap != nil { + return *x.QosTcAndColorToDscpMap } return 0 } func (x *SetPortAttributeRequest) GetQosTcToPriorityGroupMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosTcToPriorityGroupMap); ok { - return x.QosTcToPriorityGroupMap + if x != nil && x.QosTcToPriorityGroupMap != nil { + return *x.QosTcToPriorityGroupMap } return 0 } func (x *SetPortAttributeRequest) GetQosPfcPriorityToPriorityGroupMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosPfcPriorityToPriorityGroupMap); ok { - return x.QosPfcPriorityToPriorityGroupMap + if x != nil && x.QosPfcPriorityToPriorityGroupMap != nil { + return *x.QosPfcPriorityToPriorityGroupMap } return 0 } func (x *SetPortAttributeRequest) GetQosPfcPriorityToQueueMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosPfcPriorityToQueueMap); ok { - return x.QosPfcPriorityToQueueMap + if x != nil && x.QosPfcPriorityToQueueMap != nil { + return *x.QosPfcPriorityToQueueMap } return 0 } func (x *SetPortAttributeRequest) GetQosSchedulerProfileId() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosSchedulerProfileId); ok { - return x.QosSchedulerProfileId + if x != nil && x.QosSchedulerProfileId != nil { + return *x.QosSchedulerProfileId } return 0 } -func (x *SetPortAttributeRequest) GetQosIngressBufferProfileList() *Uint64List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosIngressBufferProfileList); ok { +func (x *SetPortAttributeRequest) GetQosIngressBufferProfileList() []uint64 { + if x != nil { return x.QosIngressBufferProfileList } return nil } -func (x *SetPortAttributeRequest) GetQosEgressBufferProfileList() *Uint64List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosEgressBufferProfileList); ok { +func (x *SetPortAttributeRequest) GetQosEgressBufferProfileList() []uint64 { + if x != nil { return x.QosEgressBufferProfileList } return nil } func (x *SetPortAttributeRequest) GetPriorityFlowControlMode() PortPriorityFlowControlMode { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PriorityFlowControlMode); ok { - return x.PriorityFlowControlMode + if x != nil && x.PriorityFlowControlMode != nil { + return *x.PriorityFlowControlMode } return PortPriorityFlowControlMode_PORT_PRIORITY_FLOW_CONTROL_MODE_UNSPECIFIED } func (x *SetPortAttributeRequest) GetPriorityFlowControl() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PriorityFlowControl); ok { - return x.PriorityFlowControl + if x != nil && x.PriorityFlowControl != nil { + return *x.PriorityFlowControl } return 0 } func (x *SetPortAttributeRequest) GetPriorityFlowControlRx() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PriorityFlowControlRx); ok { - return x.PriorityFlowControlRx + if x != nil && x.PriorityFlowControlRx != nil { + return *x.PriorityFlowControlRx } return 0 } func (x *SetPortAttributeRequest) GetPriorityFlowControlTx() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PriorityFlowControlTx); ok { - return x.PriorityFlowControlTx + if x != nil && x.PriorityFlowControlTx != nil { + return *x.PriorityFlowControlTx } return 0 } func (x *SetPortAttributeRequest) GetMetaData() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_MetaData); ok { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } -func (x *SetPortAttributeRequest) GetEgressBlockPortList() *Uint64List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EgressBlockPortList); ok { +func (x *SetPortAttributeRequest) GetEgressBlockPortList() []uint64 { + if x != nil { return x.EgressBlockPortList } return nil } func (x *SetPortAttributeRequest) GetHwProfileId() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_HwProfileId); ok { - return x.HwProfileId + if x != nil && x.HwProfileId != nil { + return *x.HwProfileId } return 0 } func (x *SetPortAttributeRequest) GetEeeEnable() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EeeEnable); ok { - return x.EeeEnable + if x != nil && x.EeeEnable != nil { + return *x.EeeEnable } return false } func (x *SetPortAttributeRequest) GetEeeIdleTime() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EeeIdleTime); ok { - return x.EeeIdleTime + if x != nil && x.EeeIdleTime != nil { + return *x.EeeIdleTime } return 0 } func (x *SetPortAttributeRequest) GetEeeWakeTime() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_EeeWakeTime); ok { - return x.EeeWakeTime + if x != nil && x.EeeWakeTime != nil { + return *x.EeeWakeTime } return 0 } func (x *SetPortAttributeRequest) GetIsolationGroup() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_IsolationGroup); ok { - return x.IsolationGroup + if x != nil && x.IsolationGroup != nil { + return *x.IsolationGroup } return 0 } func (x *SetPortAttributeRequest) GetPktTxEnable() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PktTxEnable); ok { - return x.PktTxEnable + if x != nil && x.PktTxEnable != nil { + return *x.PktTxEnable } return false } -func (x *SetPortAttributeRequest) GetTamObject() *Uint64List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_TamObject); ok { +func (x *SetPortAttributeRequest) GetTamObject() []uint64 { + if x != nil { return x.TamObject } return nil } -func (x *SetPortAttributeRequest) GetSerdesPreemphasis() *Uint32List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_SerdesPreemphasis); ok { +func (x *SetPortAttributeRequest) GetSerdesPreemphasis() []uint32 { + if x != nil { return x.SerdesPreemphasis } return nil } -func (x *SetPortAttributeRequest) GetSerdesIdriver() *Uint32List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_SerdesIdriver); ok { +func (x *SetPortAttributeRequest) GetSerdesIdriver() []uint32 { + if x != nil { return x.SerdesIdriver } return nil } -func (x *SetPortAttributeRequest) GetSerdesIpredriver() *Uint32List { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_SerdesIpredriver); ok { +func (x *SetPortAttributeRequest) GetSerdesIpredriver() []uint32 { + if x != nil { return x.SerdesIpredriver } return nil } func (x *SetPortAttributeRequest) GetLinkTrainingEnable() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_LinkTrainingEnable); ok { - return x.LinkTrainingEnable + if x != nil && x.LinkTrainingEnable != nil { + return *x.LinkTrainingEnable } return false } func (x *SetPortAttributeRequest) GetPtpMode() PortPtpMode { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PtpMode); ok { - return x.PtpMode + if x != nil && x.PtpMode != nil { + return *x.PtpMode } return PortPtpMode_PORT_PTP_MODE_UNSPECIFIED } func (x *SetPortAttributeRequest) GetInterfaceType() PortInterfaceType { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_InterfaceType); ok { - return x.InterfaceType + if x != nil && x.InterfaceType != nil { + return *x.InterfaceType } return PortInterfaceType_PORT_INTERFACE_TYPE_UNSPECIFIED } -func (x *SetPortAttributeRequest) GetAdvertisedInterfaceType() *PortInterfaceTypeList { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AdvertisedInterfaceType); ok { +func (x *SetPortAttributeRequest) GetAdvertisedInterfaceType() []PortInterfaceType { + if x != nil { return x.AdvertisedInterfaceType } return nil } func (x *SetPortAttributeRequest) GetPrbsPolynomial() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PrbsPolynomial); ok { - return x.PrbsPolynomial + if x != nil && x.PrbsPolynomial != nil { + return *x.PrbsPolynomial } return 0 } func (x *SetPortAttributeRequest) GetPrbsConfig() PortPrbsConfig { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PrbsConfig); ok { - return x.PrbsConfig + if x != nil && x.PrbsConfig != nil { + return *x.PrbsConfig } return PortPrbsConfig_PORT_PRBS_CONFIG_UNSPECIFIED } func (x *SetPortAttributeRequest) GetDisableDecrementTtl() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_DisableDecrementTtl); ok { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *SetPortAttributeRequest) GetQosMplsExpToTcMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosMplsExpToTcMap); ok { - return x.QosMplsExpToTcMap + if x != nil && x.QosMplsExpToTcMap != nil { + return *x.QosMplsExpToTcMap } return 0 } func (x *SetPortAttributeRequest) GetQosMplsExpToColorMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosMplsExpToColorMap); ok { - return x.QosMplsExpToColorMap + if x != nil && x.QosMplsExpToColorMap != nil { + return *x.QosMplsExpToColorMap } return 0 } func (x *SetPortAttributeRequest) GetQosTcAndColorToMplsExpMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosTcAndColorToMplsExpMap); ok { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } func (x *SetPortAttributeRequest) GetTpid() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_Tpid); ok { - return x.Tpid + if x != nil && x.Tpid != nil { + return *x.Tpid } return 0 } func (x *SetPortAttributeRequest) GetAutoNegFecModeOverride() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AutoNegFecModeOverride); ok { - return x.AutoNegFecModeOverride + if x != nil && x.AutoNegFecModeOverride != nil { + return *x.AutoNegFecModeOverride } return false } func (x *SetPortAttributeRequest) GetLoopbackMode() PortLoopbackMode { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_LoopbackMode); ok { - return x.LoopbackMode + if x != nil && x.LoopbackMode != nil { + return *x.LoopbackMode } return PortLoopbackMode_PORT_LOOPBACK_MODE_UNSPECIFIED } -func (x *SetPortAttributeRequest) GetMdixModeConfig() PortMdixModeConfig { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_MdixModeConfig); ok { - return x.MdixModeConfig - } - return PortMdixModeConfig_PORT_MDIX_MODE_CONFIG_UNSPECIFIED -} - -func (x *SetPortAttributeRequest) GetAutoNegConfigMode() PortAutoNegConfigMode { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_AutoNegConfigMode); ok { - return x.AutoNegConfigMode - } - return PortAutoNegConfigMode_PORT_AUTO_NEG_CONFIG_MODE_UNSPECIFIED -} - -func (x *SetPortAttributeRequest) GetX1000XSgmiiSlaveAutodetect() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_X1000XSgmiiSlaveAutodetect); ok { - return x.X1000XSgmiiSlaveAutodetect - } - return false -} - -func (x *SetPortAttributeRequest) GetModuleType() PortModuleType { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_ModuleType); ok { - return x.ModuleType - } - return PortModuleType_PORT_MODULE_TYPE_UNSPECIFIED -} - -func (x *SetPortAttributeRequest) GetDualMedia() PortDualMedia { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_DualMedia); ok { - return x.DualMedia - } - return PortDualMedia_PORT_DUAL_MEDIA_UNSPECIFIED -} - -func (x *SetPortAttributeRequest) GetIpg() uint32 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_Ipg); ok { - return x.Ipg - } - return 0 -} - -func (x *SetPortAttributeRequest) GetGlobalFlowControlForward() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_GlobalFlowControlForward); ok { - return x.GlobalFlowControlForward - } - return false -} - -func (x *SetPortAttributeRequest) GetPriorityFlowControlForward() bool { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_PriorityFlowControlForward); ok { - return x.PriorityFlowControlForward - } - return false -} - -func (x *SetPortAttributeRequest) GetQosDscpToForwardingClassMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosDscpToForwardingClassMap); ok { - return x.QosDscpToForwardingClassMap - } - return 0 -} - -func (x *SetPortAttributeRequest) GetQosMplsExpToForwardingClassMap() uint64 { - if x, ok := x.GetAttr().(*SetPortAttributeRequest_QosMplsExpToForwardingClassMap); ok { - return x.QosMplsExpToForwardingClassMap - } - return 0 -} - -type isSetPortAttributeRequest_Attr interface { - isSetPortAttributeRequest_Attr() -} - -type SetPortAttributeRequest_Speed struct { - Speed uint32 `protobuf:"varint,2,opt,name=speed,proto3,oneof"` -} - -type SetPortAttributeRequest_AutoNegMode struct { - AutoNegMode bool `protobuf:"varint,3,opt,name=auto_neg_mode,json=autoNegMode,proto3,oneof"` -} - -type SetPortAttributeRequest_AdminState struct { - AdminState bool `protobuf:"varint,4,opt,name=admin_state,json=adminState,proto3,oneof"` -} - -type SetPortAttributeRequest_MediaType struct { - MediaType PortMediaType `protobuf:"varint,5,opt,name=media_type,json=mediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof"` -} - -type SetPortAttributeRequest_AdvertisedSpeed struct { - AdvertisedSpeed *Uint32List `protobuf:"bytes,6,opt,name=advertised_speed,json=advertisedSpeed,proto3,oneof"` -} - -type SetPortAttributeRequest_AdvertisedFecMode struct { - AdvertisedFecMode *PortFecModeList `protobuf:"bytes,7,opt,name=advertised_fec_mode,json=advertisedFecMode,proto3,oneof"` -} - -type SetPortAttributeRequest_AdvertisedFecModeExtended struct { - AdvertisedFecModeExtended *PortFecModeExtendedList `protobuf:"bytes,8,opt,name=advertised_fec_mode_extended,json=advertisedFecModeExtended,proto3,oneof"` -} - -type SetPortAttributeRequest_AdvertisedHalfDuplexSpeed struct { - AdvertisedHalfDuplexSpeed *Uint32List `protobuf:"bytes,9,opt,name=advertised_half_duplex_speed,json=advertisedHalfDuplexSpeed,proto3,oneof"` -} - -type SetPortAttributeRequest_AdvertisedAutoNegMode struct { - AdvertisedAutoNegMode bool `protobuf:"varint,10,opt,name=advertised_auto_neg_mode,json=advertisedAutoNegMode,proto3,oneof"` -} - -type SetPortAttributeRequest_AdvertisedFlowControlMode struct { - AdvertisedFlowControlMode PortFlowControlMode `protobuf:"varint,11,opt,name=advertised_flow_control_mode,json=advertisedFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof"` -} - -type SetPortAttributeRequest_AdvertisedAsymmetricPauseMode struct { - AdvertisedAsymmetricPauseMode bool `protobuf:"varint,12,opt,name=advertised_asymmetric_pause_mode,json=advertisedAsymmetricPauseMode,proto3,oneof"` -} - -type SetPortAttributeRequest_AdvertisedMediaType struct { - AdvertisedMediaType PortMediaType `protobuf:"varint,13,opt,name=advertised_media_type,json=advertisedMediaType,proto3,enum=lemming.dataplane.sai.PortMediaType,oneof"` -} - -type SetPortAttributeRequest_AdvertisedOuiCode struct { - AdvertisedOuiCode uint32 `protobuf:"varint,14,opt,name=advertised_oui_code,json=advertisedOuiCode,proto3,oneof"` -} - -type SetPortAttributeRequest_PortVlanId struct { - PortVlanId uint32 `protobuf:"varint,15,opt,name=port_vlan_id,json=portVlanId,proto3,oneof"` -} - -type SetPortAttributeRequest_DefaultVlanPriority struct { - DefaultVlanPriority uint32 `protobuf:"varint,16,opt,name=default_vlan_priority,json=defaultVlanPriority,proto3,oneof"` -} - -type SetPortAttributeRequest_DropUntagged struct { - DropUntagged bool `protobuf:"varint,17,opt,name=drop_untagged,json=dropUntagged,proto3,oneof"` -} - -type SetPortAttributeRequest_DropTagged struct { - DropTagged bool `protobuf:"varint,18,opt,name=drop_tagged,json=dropTagged,proto3,oneof"` -} - -type SetPortAttributeRequest_InternalLoopbackMode struct { - InternalLoopbackMode PortInternalLoopbackMode `protobuf:"varint,19,opt,name=internal_loopback_mode,json=internalLoopbackMode,proto3,enum=lemming.dataplane.sai.PortInternalLoopbackMode,oneof"` -} - -type SetPortAttributeRequest_UseExtendedFec struct { - UseExtendedFec bool `protobuf:"varint,20,opt,name=use_extended_fec,json=useExtendedFec,proto3,oneof"` -} - -type SetPortAttributeRequest_FecMode struct { - FecMode PortFecMode `protobuf:"varint,21,opt,name=fec_mode,json=fecMode,proto3,enum=lemming.dataplane.sai.PortFecMode,oneof"` -} - -type SetPortAttributeRequest_FecModeExtended struct { - FecModeExtended PortFecModeExtended `protobuf:"varint,22,opt,name=fec_mode_extended,json=fecModeExtended,proto3,enum=lemming.dataplane.sai.PortFecModeExtended,oneof"` -} - -type SetPortAttributeRequest_UpdateDscp struct { - UpdateDscp bool `protobuf:"varint,23,opt,name=update_dscp,json=updateDscp,proto3,oneof"` -} - -type SetPortAttributeRequest_Mtu struct { - Mtu uint32 `protobuf:"varint,24,opt,name=mtu,proto3,oneof"` -} - -type SetPortAttributeRequest_FloodStormControlPolicerId struct { - FloodStormControlPolicerId uint64 `protobuf:"varint,25,opt,name=flood_storm_control_policer_id,json=floodStormControlPolicerId,proto3,oneof"` -} - -type SetPortAttributeRequest_BroadcastStormControlPolicerId struct { - BroadcastStormControlPolicerId uint64 `protobuf:"varint,26,opt,name=broadcast_storm_control_policer_id,json=broadcastStormControlPolicerId,proto3,oneof"` -} - -type SetPortAttributeRequest_MulticastStormControlPolicerId struct { - MulticastStormControlPolicerId uint64 `protobuf:"varint,27,opt,name=multicast_storm_control_policer_id,json=multicastStormControlPolicerId,proto3,oneof"` -} - -type SetPortAttributeRequest_GlobalFlowControlMode struct { - GlobalFlowControlMode PortFlowControlMode `protobuf:"varint,28,opt,name=global_flow_control_mode,json=globalFlowControlMode,proto3,enum=lemming.dataplane.sai.PortFlowControlMode,oneof"` -} - -type SetPortAttributeRequest_IngressAcl struct { - IngressAcl uint64 `protobuf:"varint,29,opt,name=ingress_acl,json=ingressAcl,proto3,oneof"` -} - -type SetPortAttributeRequest_EgressAcl struct { - EgressAcl uint64 `protobuf:"varint,30,opt,name=egress_acl,json=egressAcl,proto3,oneof"` -} - -type SetPortAttributeRequest_IngressMacsecAcl struct { - IngressMacsecAcl uint64 `protobuf:"varint,31,opt,name=ingress_macsec_acl,json=ingressMacsecAcl,proto3,oneof"` -} - -type SetPortAttributeRequest_EgressMacsecAcl struct { - EgressMacsecAcl uint64 `protobuf:"varint,32,opt,name=egress_macsec_acl,json=egressMacsecAcl,proto3,oneof"` -} - -type SetPortAttributeRequest_IngressMirrorSession struct { - IngressMirrorSession *Uint64List `protobuf:"bytes,33,opt,name=ingress_mirror_session,json=ingressMirrorSession,proto3,oneof"` -} - -type SetPortAttributeRequest_EgressMirrorSession struct { - EgressMirrorSession *Uint64List `protobuf:"bytes,34,opt,name=egress_mirror_session,json=egressMirrorSession,proto3,oneof"` -} - -type SetPortAttributeRequest_IngressSamplepacketEnable struct { - IngressSamplepacketEnable uint64 `protobuf:"varint,35,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3,oneof"` -} - -type SetPortAttributeRequest_EgressSamplepacketEnable struct { - EgressSamplepacketEnable uint64 `protobuf:"varint,36,opt,name=egress_samplepacket_enable,json=egressSamplepacketEnable,proto3,oneof"` -} - -type SetPortAttributeRequest_IngressSampleMirrorSession struct { - IngressSampleMirrorSession *Uint64List `protobuf:"bytes,37,opt,name=ingress_sample_mirror_session,json=ingressSampleMirrorSession,proto3,oneof"` -} - -type SetPortAttributeRequest_EgressSampleMirrorSession struct { - EgressSampleMirrorSession *Uint64List `protobuf:"bytes,38,opt,name=egress_sample_mirror_session,json=egressSampleMirrorSession,proto3,oneof"` -} - -type SetPortAttributeRequest_PolicerId struct { - PolicerId uint64 `protobuf:"varint,39,opt,name=policer_id,json=policerId,proto3,oneof"` -} - -type SetPortAttributeRequest_QosDefaultTc struct { - QosDefaultTc uint32 `protobuf:"varint,40,opt,name=qos_default_tc,json=qosDefaultTc,proto3,oneof"` -} - -type SetPortAttributeRequest_QosDot1PToTcMap struct { - QosDot1PToTcMap uint64 `protobuf:"varint,41,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosDot1PToColorMap struct { - QosDot1PToColorMap uint64 `protobuf:"varint,42,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosDscpToTcMap struct { - QosDscpToTcMap uint64 `protobuf:"varint,43,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosDscpToColorMap struct { - QosDscpToColorMap uint64 `protobuf:"varint,44,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosTcToQueueMap struct { - QosTcToQueueMap uint64 `protobuf:"varint,45,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosTcAndColorToDot1PMap struct { - QosTcAndColorToDot1PMap uint64 `protobuf:"varint,46,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosTcAndColorToDscpMap struct { - QosTcAndColorToDscpMap uint64 `protobuf:"varint,47,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosTcToPriorityGroupMap struct { - QosTcToPriorityGroupMap uint64 `protobuf:"varint,48,opt,name=qos_tc_to_priority_group_map,json=qosTcToPriorityGroupMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosPfcPriorityToPriorityGroupMap struct { - QosPfcPriorityToPriorityGroupMap uint64 `protobuf:"varint,49,opt,name=qos_pfc_priority_to_priority_group_map,json=qosPfcPriorityToPriorityGroupMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosPfcPriorityToQueueMap struct { - QosPfcPriorityToQueueMap uint64 `protobuf:"varint,50,opt,name=qos_pfc_priority_to_queue_map,json=qosPfcPriorityToQueueMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosSchedulerProfileId struct { - QosSchedulerProfileId uint64 `protobuf:"varint,51,opt,name=qos_scheduler_profile_id,json=qosSchedulerProfileId,proto3,oneof"` -} - -type SetPortAttributeRequest_QosIngressBufferProfileList struct { - QosIngressBufferProfileList *Uint64List `protobuf:"bytes,52,opt,name=qos_ingress_buffer_profile_list,json=qosIngressBufferProfileList,proto3,oneof"` -} - -type SetPortAttributeRequest_QosEgressBufferProfileList struct { - QosEgressBufferProfileList *Uint64List `protobuf:"bytes,53,opt,name=qos_egress_buffer_profile_list,json=qosEgressBufferProfileList,proto3,oneof"` -} - -type SetPortAttributeRequest_PriorityFlowControlMode struct { - PriorityFlowControlMode PortPriorityFlowControlMode `protobuf:"varint,54,opt,name=priority_flow_control_mode,json=priorityFlowControlMode,proto3,enum=lemming.dataplane.sai.PortPriorityFlowControlMode,oneof"` -} - -type SetPortAttributeRequest_PriorityFlowControl struct { - PriorityFlowControl uint32 `protobuf:"varint,55,opt,name=priority_flow_control,json=priorityFlowControl,proto3,oneof"` -} - -type SetPortAttributeRequest_PriorityFlowControlRx struct { - PriorityFlowControlRx uint32 `protobuf:"varint,56,opt,name=priority_flow_control_rx,json=priorityFlowControlRx,proto3,oneof"` -} - -type SetPortAttributeRequest_PriorityFlowControlTx struct { - PriorityFlowControlTx uint32 `protobuf:"varint,57,opt,name=priority_flow_control_tx,json=priorityFlowControlTx,proto3,oneof"` -} - -type SetPortAttributeRequest_MetaData struct { - MetaData uint32 `protobuf:"varint,58,opt,name=meta_data,json=metaData,proto3,oneof"` -} - -type SetPortAttributeRequest_EgressBlockPortList struct { - EgressBlockPortList *Uint64List `protobuf:"bytes,59,opt,name=egress_block_port_list,json=egressBlockPortList,proto3,oneof"` -} - -type SetPortAttributeRequest_HwProfileId struct { - HwProfileId uint64 `protobuf:"varint,60,opt,name=hw_profile_id,json=hwProfileId,proto3,oneof"` -} - -type SetPortAttributeRequest_EeeEnable struct { - EeeEnable bool `protobuf:"varint,61,opt,name=eee_enable,json=eeeEnable,proto3,oneof"` -} - -type SetPortAttributeRequest_EeeIdleTime struct { - EeeIdleTime uint32 `protobuf:"varint,62,opt,name=eee_idle_time,json=eeeIdleTime,proto3,oneof"` -} - -type SetPortAttributeRequest_EeeWakeTime struct { - EeeWakeTime uint32 `protobuf:"varint,63,opt,name=eee_wake_time,json=eeeWakeTime,proto3,oneof"` -} - -type SetPortAttributeRequest_IsolationGroup struct { - IsolationGroup uint64 `protobuf:"varint,64,opt,name=isolation_group,json=isolationGroup,proto3,oneof"` -} - -type SetPortAttributeRequest_PktTxEnable struct { - PktTxEnable bool `protobuf:"varint,65,opt,name=pkt_tx_enable,json=pktTxEnable,proto3,oneof"` -} - -type SetPortAttributeRequest_TamObject struct { - TamObject *Uint64List `protobuf:"bytes,66,opt,name=tam_object,json=tamObject,proto3,oneof"` -} - -type SetPortAttributeRequest_SerdesPreemphasis struct { - SerdesPreemphasis *Uint32List `protobuf:"bytes,67,opt,name=serdes_preemphasis,json=serdesPreemphasis,proto3,oneof"` -} - -type SetPortAttributeRequest_SerdesIdriver struct { - SerdesIdriver *Uint32List `protobuf:"bytes,68,opt,name=serdes_idriver,json=serdesIdriver,proto3,oneof"` -} - -type SetPortAttributeRequest_SerdesIpredriver struct { - SerdesIpredriver *Uint32List `protobuf:"bytes,69,opt,name=serdes_ipredriver,json=serdesIpredriver,proto3,oneof"` -} - -type SetPortAttributeRequest_LinkTrainingEnable struct { - LinkTrainingEnable bool `protobuf:"varint,70,opt,name=link_training_enable,json=linkTrainingEnable,proto3,oneof"` -} - -type SetPortAttributeRequest_PtpMode struct { - PtpMode PortPtpMode `protobuf:"varint,71,opt,name=ptp_mode,json=ptpMode,proto3,enum=lemming.dataplane.sai.PortPtpMode,oneof"` -} - -type SetPortAttributeRequest_InterfaceType struct { - InterfaceType PortInterfaceType `protobuf:"varint,72,opt,name=interface_type,json=interfaceType,proto3,enum=lemming.dataplane.sai.PortInterfaceType,oneof"` -} - -type SetPortAttributeRequest_AdvertisedInterfaceType struct { - AdvertisedInterfaceType *PortInterfaceTypeList `protobuf:"bytes,73,opt,name=advertised_interface_type,json=advertisedInterfaceType,proto3,oneof"` -} - -type SetPortAttributeRequest_PrbsPolynomial struct { - PrbsPolynomial uint32 `protobuf:"varint,74,opt,name=prbs_polynomial,json=prbsPolynomial,proto3,oneof"` -} - -type SetPortAttributeRequest_PrbsConfig struct { - PrbsConfig PortPrbsConfig `protobuf:"varint,75,opt,name=prbs_config,json=prbsConfig,proto3,enum=lemming.dataplane.sai.PortPrbsConfig,oneof"` -} - -type SetPortAttributeRequest_DisableDecrementTtl struct { - DisableDecrementTtl bool `protobuf:"varint,76,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof"` -} - -type SetPortAttributeRequest_QosMplsExpToTcMap struct { - QosMplsExpToTcMap uint64 `protobuf:"varint,77,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosMplsExpToColorMap struct { - QosMplsExpToColorMap uint64 `protobuf:"varint,78,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosTcAndColorToMplsExpMap struct { - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,79,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof"` -} - -type SetPortAttributeRequest_Tpid struct { - Tpid uint32 `protobuf:"varint,80,opt,name=tpid,proto3,oneof"` -} - -type SetPortAttributeRequest_AutoNegFecModeOverride struct { - AutoNegFecModeOverride bool `protobuf:"varint,81,opt,name=auto_neg_fec_mode_override,json=autoNegFecModeOverride,proto3,oneof"` -} - -type SetPortAttributeRequest_LoopbackMode struct { - LoopbackMode PortLoopbackMode `protobuf:"varint,82,opt,name=loopback_mode,json=loopbackMode,proto3,enum=lemming.dataplane.sai.PortLoopbackMode,oneof"` -} - -type SetPortAttributeRequest_MdixModeConfig struct { - MdixModeConfig PortMdixModeConfig `protobuf:"varint,83,opt,name=mdix_mode_config,json=mdixModeConfig,proto3,enum=lemming.dataplane.sai.PortMdixModeConfig,oneof"` -} - -type SetPortAttributeRequest_AutoNegConfigMode struct { - AutoNegConfigMode PortAutoNegConfigMode `protobuf:"varint,84,opt,name=auto_neg_config_mode,json=autoNegConfigMode,proto3,enum=lemming.dataplane.sai.PortAutoNegConfigMode,oneof"` -} - -type SetPortAttributeRequest_X1000XSgmiiSlaveAutodetect struct { - X1000XSgmiiSlaveAutodetect bool `protobuf:"varint,85,opt,name=_1000x_sgmii_slave_autodetect,json=1000xSgmiiSlaveAutodetect,proto3,oneof"` -} - -type SetPortAttributeRequest_ModuleType struct { - ModuleType PortModuleType `protobuf:"varint,86,opt,name=module_type,json=moduleType,proto3,enum=lemming.dataplane.sai.PortModuleType,oneof"` -} - -type SetPortAttributeRequest_DualMedia struct { - DualMedia PortDualMedia `protobuf:"varint,87,opt,name=dual_media,json=dualMedia,proto3,enum=lemming.dataplane.sai.PortDualMedia,oneof"` -} - -type SetPortAttributeRequest_Ipg struct { - Ipg uint32 `protobuf:"varint,88,opt,name=ipg,proto3,oneof"` -} - -type SetPortAttributeRequest_GlobalFlowControlForward struct { - GlobalFlowControlForward bool `protobuf:"varint,89,opt,name=global_flow_control_forward,json=globalFlowControlForward,proto3,oneof"` -} - -type SetPortAttributeRequest_PriorityFlowControlForward struct { - PriorityFlowControlForward bool `protobuf:"varint,90,opt,name=priority_flow_control_forward,json=priorityFlowControlForward,proto3,oneof"` -} - -type SetPortAttributeRequest_QosDscpToForwardingClassMap struct { - QosDscpToForwardingClassMap uint64 `protobuf:"varint,91,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3,oneof"` -} - -type SetPortAttributeRequest_QosMplsExpToForwardingClassMap struct { - QosMplsExpToForwardingClassMap uint64 `protobuf:"varint,92,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3,oneof"` -} - -func (*SetPortAttributeRequest_Speed) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AutoNegMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdminState) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_MediaType) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedSpeed) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedFecMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedFecModeExtended) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedHalfDuplexSpeed) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedAutoNegMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedFlowControlMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedAsymmetricPauseMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedMediaType) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedOuiCode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PortVlanId) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_DefaultVlanPriority) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_DropUntagged) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_DropTagged) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_InternalLoopbackMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_UseExtendedFec) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_FecMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_FecModeExtended) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_UpdateDscp) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_Mtu) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_FloodStormControlPolicerId) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_BroadcastStormControlPolicerId) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_MulticastStormControlPolicerId) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_GlobalFlowControlMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_IngressAcl) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EgressAcl) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_IngressMacsecAcl) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EgressMacsecAcl) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_IngressMirrorSession) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EgressMirrorSession) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_IngressSamplepacketEnable) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EgressSamplepacketEnable) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_IngressSampleMirrorSession) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EgressSampleMirrorSession) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PolicerId) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosDefaultTc) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosDot1PToTcMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosDot1PToColorMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosDscpToTcMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosDscpToColorMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosTcToQueueMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosTcAndColorToDot1PMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosTcAndColorToDscpMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosTcToPriorityGroupMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosPfcPriorityToPriorityGroupMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosPfcPriorityToQueueMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosSchedulerProfileId) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosIngressBufferProfileList) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosEgressBufferProfileList) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PriorityFlowControlMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PriorityFlowControl) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PriorityFlowControlRx) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PriorityFlowControlTx) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_MetaData) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EgressBlockPortList) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_HwProfileId) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EeeEnable) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EeeIdleTime) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_EeeWakeTime) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_IsolationGroup) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PktTxEnable) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_TamObject) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_SerdesPreemphasis) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_SerdesIdriver) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_SerdesIpredriver) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_LinkTrainingEnable) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PtpMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_InterfaceType) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AdvertisedInterfaceType) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PrbsPolynomial) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_PrbsConfig) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_DisableDecrementTtl) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosMplsExpToTcMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosMplsExpToColorMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_QosTcAndColorToMplsExpMap) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_Tpid) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_AutoNegFecModeOverride) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_LoopbackMode) isSetPortAttributeRequest_Attr() {} - -func (*SetPortAttributeRequest_MdixModeConfig) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetMdixModeConfig() PortMdixModeConfig { + if x != nil && x.MdixModeConfig != nil { + return *x.MdixModeConfig + } + return PortMdixModeConfig_PORT_MDIX_MODE_CONFIG_UNSPECIFIED +} -func (*SetPortAttributeRequest_AutoNegConfigMode) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetAutoNegConfigMode() PortAutoNegConfigMode { + if x != nil && x.AutoNegConfigMode != nil { + return *x.AutoNegConfigMode + } + return PortAutoNegConfigMode_PORT_AUTO_NEG_CONFIG_MODE_UNSPECIFIED +} -func (*SetPortAttributeRequest_X1000XSgmiiSlaveAutodetect) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetX1000XSgmiiSlaveAutodetect() bool { + if x != nil && x.X1000XSgmiiSlaveAutodetect != nil { + return *x.X1000XSgmiiSlaveAutodetect + } + return false +} -func (*SetPortAttributeRequest_ModuleType) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetModuleType() PortModuleType { + if x != nil && x.ModuleType != nil { + return *x.ModuleType + } + return PortModuleType_PORT_MODULE_TYPE_UNSPECIFIED +} -func (*SetPortAttributeRequest_DualMedia) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetDualMedia() PortDualMedia { + if x != nil && x.DualMedia != nil { + return *x.DualMedia + } + return PortDualMedia_PORT_DUAL_MEDIA_UNSPECIFIED +} -func (*SetPortAttributeRequest_Ipg) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetIpg() uint32 { + if x != nil && x.Ipg != nil { + return *x.Ipg + } + return 0 +} -func (*SetPortAttributeRequest_GlobalFlowControlForward) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetGlobalFlowControlForward() bool { + if x != nil && x.GlobalFlowControlForward != nil { + return *x.GlobalFlowControlForward + } + return false +} -func (*SetPortAttributeRequest_PriorityFlowControlForward) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetPriorityFlowControlForward() bool { + if x != nil && x.PriorityFlowControlForward != nil { + return *x.PriorityFlowControlForward + } + return false +} -func (*SetPortAttributeRequest_QosDscpToForwardingClassMap) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetQosDscpToForwardingClassMap() uint64 { + if x != nil && x.QosDscpToForwardingClassMap != nil { + return *x.QosDscpToForwardingClassMap + } + return 0 +} -func (*SetPortAttributeRequest_QosMplsExpToForwardingClassMap) isSetPortAttributeRequest_Attr() {} +func (x *SetPortAttributeRequest) GetQosMplsExpToForwardingClassMap() uint64 { + if x != nil && x.QosMplsExpToForwardingClassMap != nil { + return *x.QosMplsExpToForwardingClassMap + } + return 0 +} type SetPortAttributeResponse struct { state protoimpl.MessageState @@ -3052,7 +2492,7 @@ type GetPortAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*PortAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *PortAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetPortAttributeResponse) Reset() { @@ -3087,7 +2527,7 @@ func (*GetPortAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_port_proto_rawDescGZIP(), []int{7} } -func (x *GetPortAttributeResponse) GetAttr() []*PortAttribute { +func (x *GetPortAttributeResponse) GetAttr() *PortAttribute { if x != nil { return x.Attr } @@ -3099,10 +2539,10 @@ type CreatePortPoolRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - PortId uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - BufferPoolId uint64 `protobuf:"varint,3,opt,name=buffer_pool_id,json=bufferPoolId,proto3" json:"buffer_pool_id,omitempty"` - QosWredProfileId uint64 `protobuf:"varint,4,opt,name=qos_wred_profile_id,json=qosWredProfileId,proto3" json:"qos_wred_profile_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + PortId *uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + BufferPoolId *uint64 `protobuf:"varint,3,opt,name=buffer_pool_id,json=bufferPoolId,proto3,oneof" json:"buffer_pool_id,omitempty"` + QosWredProfileId *uint64 `protobuf:"varint,4,opt,name=qos_wred_profile_id,json=qosWredProfileId,proto3,oneof" json:"qos_wred_profile_id,omitempty"` } func (x *CreatePortPoolRequest) Reset() { @@ -3145,22 +2585,22 @@ func (x *CreatePortPoolRequest) GetSwitch() uint64 { } func (x *CreatePortPoolRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *CreatePortPoolRequest) GetBufferPoolId() uint64 { - if x != nil { - return x.BufferPoolId + if x != nil && x.BufferPoolId != nil { + return *x.BufferPoolId } return 0 } func (x *CreatePortPoolRequest) GetQosWredProfileId() uint64 { - if x != nil { - return x.QosWredProfileId + if x != nil && x.QosWredProfileId != nil { + return *x.QosWredProfileId } return 0 } @@ -3302,11 +2742,8 @@ type SetPortPoolAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetPortPoolAttributeRequest_QosWredProfileId - Attr isSetPortPoolAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + QosWredProfileId *uint64 `protobuf:"varint,2,opt,name=qos_wred_profile_id,json=qosWredProfileId,proto3,oneof" json:"qos_wred_profile_id,omitempty"` } func (x *SetPortPoolAttributeRequest) Reset() { @@ -3348,30 +2785,13 @@ func (x *SetPortPoolAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetPortPoolAttributeRequest) GetAttr() isSetPortPoolAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetPortPoolAttributeRequest) GetQosWredProfileId() uint64 { - if x, ok := x.GetAttr().(*SetPortPoolAttributeRequest_QosWredProfileId); ok { - return x.QosWredProfileId + if x != nil && x.QosWredProfileId != nil { + return *x.QosWredProfileId } return 0 } -type isSetPortPoolAttributeRequest_Attr interface { - isSetPortPoolAttributeRequest_Attr() -} - -type SetPortPoolAttributeRequest_QosWredProfileId struct { - QosWredProfileId uint64 `protobuf:"varint,2,opt,name=qos_wred_profile_id,json=qosWredProfileId,proto3,oneof"` -} - -func (*SetPortPoolAttributeRequest_QosWredProfileId) isSetPortPoolAttributeRequest_Attr() {} - type SetPortPoolAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3470,7 +2890,7 @@ type GetPortPoolAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*PortPoolAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *PortPoolAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetPortPoolAttributeResponse) Reset() { @@ -3505,7 +2925,7 @@ func (*GetPortPoolAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_port_proto_rawDescGZIP(), []int{15} } -func (x *GetPortPoolAttributeResponse) GetAttr() []*PortPoolAttribute { +func (x *GetPortPoolAttributeResponse) GetAttr() *PortPoolAttribute { if x != nil { return x.Attr } @@ -3517,12 +2937,12 @@ type CreatePortConnectorRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - SystemSidePortId uint64 `protobuf:"varint,2,opt,name=system_side_port_id,json=systemSidePortId,proto3" json:"system_side_port_id,omitempty"` - LineSidePortId uint64 `protobuf:"varint,3,opt,name=line_side_port_id,json=lineSidePortId,proto3" json:"line_side_port_id,omitempty"` - SystemSideFailoverPortId uint64 `protobuf:"varint,4,opt,name=system_side_failover_port_id,json=systemSideFailoverPortId,proto3" json:"system_side_failover_port_id,omitempty"` - LineSideFailoverPortId uint64 `protobuf:"varint,5,opt,name=line_side_failover_port_id,json=lineSideFailoverPortId,proto3" json:"line_side_failover_port_id,omitempty"` - FailoverMode PortConnectorFailoverMode `protobuf:"varint,6,opt,name=failover_mode,json=failoverMode,proto3,enum=lemming.dataplane.sai.PortConnectorFailoverMode" json:"failover_mode,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + SystemSidePortId *uint64 `protobuf:"varint,2,opt,name=system_side_port_id,json=systemSidePortId,proto3,oneof" json:"system_side_port_id,omitempty"` + LineSidePortId *uint64 `protobuf:"varint,3,opt,name=line_side_port_id,json=lineSidePortId,proto3,oneof" json:"line_side_port_id,omitempty"` + SystemSideFailoverPortId *uint64 `protobuf:"varint,4,opt,name=system_side_failover_port_id,json=systemSideFailoverPortId,proto3,oneof" json:"system_side_failover_port_id,omitempty"` + LineSideFailoverPortId *uint64 `protobuf:"varint,5,opt,name=line_side_failover_port_id,json=lineSideFailoverPortId,proto3,oneof" json:"line_side_failover_port_id,omitempty"` + FailoverMode *PortConnectorFailoverMode `protobuf:"varint,6,opt,name=failover_mode,json=failoverMode,proto3,enum=lemming.dataplane.sai.PortConnectorFailoverMode,oneof" json:"failover_mode,omitempty"` } func (x *CreatePortConnectorRequest) Reset() { @@ -3565,36 +2985,36 @@ func (x *CreatePortConnectorRequest) GetSwitch() uint64 { } func (x *CreatePortConnectorRequest) GetSystemSidePortId() uint64 { - if x != nil { - return x.SystemSidePortId + if x != nil && x.SystemSidePortId != nil { + return *x.SystemSidePortId } return 0 } func (x *CreatePortConnectorRequest) GetLineSidePortId() uint64 { - if x != nil { - return x.LineSidePortId + if x != nil && x.LineSidePortId != nil { + return *x.LineSidePortId } return 0 } func (x *CreatePortConnectorRequest) GetSystemSideFailoverPortId() uint64 { - if x != nil { - return x.SystemSideFailoverPortId + if x != nil && x.SystemSideFailoverPortId != nil { + return *x.SystemSideFailoverPortId } return 0 } func (x *CreatePortConnectorRequest) GetLineSideFailoverPortId() uint64 { - if x != nil { - return x.LineSideFailoverPortId + if x != nil && x.LineSideFailoverPortId != nil { + return *x.LineSideFailoverPortId } return 0 } func (x *CreatePortConnectorRequest) GetFailoverMode() PortConnectorFailoverMode { - if x != nil { - return x.FailoverMode + if x != nil && x.FailoverMode != nil { + return *x.FailoverMode } return PortConnectorFailoverMode_PORT_CONNECTOR_FAILOVER_MODE_UNSPECIFIED } @@ -3736,11 +3156,8 @@ type SetPortConnectorAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetPortConnectorAttributeRequest_FailoverMode - Attr isSetPortConnectorAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + FailoverMode *PortConnectorFailoverMode `protobuf:"varint,2,opt,name=failover_mode,json=failoverMode,proto3,enum=lemming.dataplane.sai.PortConnectorFailoverMode,oneof" json:"failover_mode,omitempty"` } func (x *SetPortConnectorAttributeRequest) Reset() { @@ -3782,30 +3199,13 @@ func (x *SetPortConnectorAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetPortConnectorAttributeRequest) GetAttr() isSetPortConnectorAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetPortConnectorAttributeRequest) GetFailoverMode() PortConnectorFailoverMode { - if x, ok := x.GetAttr().(*SetPortConnectorAttributeRequest_FailoverMode); ok { - return x.FailoverMode + if x != nil && x.FailoverMode != nil { + return *x.FailoverMode } return PortConnectorFailoverMode_PORT_CONNECTOR_FAILOVER_MODE_UNSPECIFIED } -type isSetPortConnectorAttributeRequest_Attr interface { - isSetPortConnectorAttributeRequest_Attr() -} - -type SetPortConnectorAttributeRequest_FailoverMode struct { - FailoverMode PortConnectorFailoverMode `protobuf:"varint,2,opt,name=failover_mode,json=failoverMode,proto3,enum=lemming.dataplane.sai.PortConnectorFailoverMode,oneof"` -} - -func (*SetPortConnectorAttributeRequest_FailoverMode) isSetPortConnectorAttributeRequest_Attr() {} - type SetPortConnectorAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3904,7 +3304,7 @@ type GetPortConnectorAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*PortConnectorAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *PortConnectorAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetPortConnectorAttributeResponse) Reset() { @@ -3939,7 +3339,7 @@ func (*GetPortConnectorAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_port_proto_rawDescGZIP(), []int{23} } -func (x *GetPortConnectorAttributeResponse) GetAttr() []*PortConnectorAttribute { +func (x *GetPortConnectorAttributeResponse) GetAttr() *PortConnectorAttribute { if x != nil { return x.Attr } @@ -3952,7 +3352,7 @@ type CreatePortSerdesRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - PortId uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` + PortId *uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` Preemphasis []int32 `protobuf:"varint,3,rep,packed,name=preemphasis,proto3" json:"preemphasis,omitempty"` Idriver []int32 `protobuf:"varint,4,rep,packed,name=idriver,proto3" json:"idriver,omitempty"` Ipredriver []int32 `protobuf:"varint,5,rep,packed,name=ipredriver,proto3" json:"ipredriver,omitempty"` @@ -4006,8 +3406,8 @@ func (x *CreatePortSerdesRequest) GetSwitch() uint64 { } func (x *CreatePortSerdesRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } @@ -4281,7 +3681,7 @@ type GetPortSerdesAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*PortSerdesAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *PortSerdesAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetPortSerdesAttributeResponse) Reset() { @@ -4316,7 +3716,7 @@ func (*GetPortSerdesAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_port_proto_rawDescGZIP(), []int{29} } -func (x *GetPortSerdesAttributeResponse) GetAttr() []*PortSerdesAttribute { +func (x *GetPortSerdesAttributeResponse) GetAttr() *PortSerdesAttribute { if x != nil { return x.Attr } @@ -4332,1386 +3732,1717 @@ var file_dataplane_standalone_proto_port_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x2a, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8e, 0x40, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x77, 0x5f, 0x6c, 0x61, 0x6e, 0x65, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x77, 0x4c, - 0x61, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x28, 0x0a, - 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 0x44, 0x75, 0x70, - 0x6c, 0x65, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0a, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, - 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x64, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x13, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x6b, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, - 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, - 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x3f, 0x0a, - 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6c, 0x66, - 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x48, - 0x61, 0x6c, 0x66, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x37, - 0x0a, 0x18, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, - 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x6b, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x26, 0x0a, 0x0c, 0x68, 0x77, 0x5f, 0x6c, 0x61, 0x6e, 0x65, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x1f, 0x52, 0x0a, 0x68, 0x77, 0x4c, 0x61, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x0a, + 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x20, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, + 0x0a, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x21, 0x48, 0x01, + 0x52, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x4d, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, + 0x48, 0x02, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x23, 0x48, 0x03, 0x52, + 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, + 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x24, 0x48, 0x04, + 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x10, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x25, 0x52, 0x0f, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, + 0x58, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, + 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x71, 0x0a, 0x1c, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, + 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x27, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x1c, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, + 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x28, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x73, 0x65, 0x64, 0x48, 0x61, 0x6c, 0x66, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x18, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x29, 0x48, 0x05, 0x52, 0x15, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x20, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x73, 0x79, 0x6d, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x58, 0x0a, - 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x4d, 0x65, - 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, - 0x4f, 0x75, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, - 0x6f, 0x72, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, - 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, 0x61, 0x67, 0x67, - 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, - 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x67, - 0x67, 0x65, 0x64, 0x12, 0x65, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, - 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, - 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x46, 0x65, 0x63, 0x12, 0x3d, 0x0a, 0x08, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x66, 0x65, 0x63, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x56, 0x0a, 0x11, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x0f, 0x66, 0x65, 0x63, 0x4d, - 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x73, 0x63, 0x70, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x74, 0x75, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x42, - 0x0a, 0x1e, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x53, 0x74, 0x6f, - 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x22, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, - 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x12, 0x4a, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2a, 0x48, + 0x06, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x52, 0x0a, 0x20, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, + 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, + 0x07, 0x52, 0x1d, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x73, 0x79, + 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2c, 0x48, 0x08, + 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2d, 0x48, 0x09, 0x52, 0x11, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x4f, 0x75, 0x69, 0x43, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2e, 0x48, + 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x2f, 0x48, 0x0b, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x30, 0x48, 0x0c, 0x52, 0x0c, + 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2a, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x31, 0x48, 0x0d, 0x52, 0x0a, 0x64, 0x72, + 0x6f, 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x70, 0x0a, 0x16, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x32, 0x48, 0x0e, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, + 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x10, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x65, + 0x63, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x33, 0x48, 0x0f, 0x52, + 0x0e, 0x75, 0x73, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x46, 0x65, 0x63, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x08, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x34, 0x48, 0x10, + 0x52, 0x07, 0x66, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x11, + 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x35, 0x48, 0x11, 0x52, 0x0f, 0x66, 0x65, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2a, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x36, 0x48, 0x12, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x44, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x6d, + 0x74, 0x75, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x37, 0x48, 0x13, + 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x1e, 0x66, 0x6c, 0x6f, 0x6f, + 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x38, 0x48, 0x14, 0x52, 0x1a, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x53, + 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x39, 0x48, 0x15, 0x52, 0x1e, 0x62, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, - 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x20, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, - 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, - 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x12, 0x2a, 0x0a, - 0x11, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, - 0x63, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x23, 0x20, 0x03, 0x28, 0x04, 0x52, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x32, 0x0a, 0x15, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x24, 0x20, 0x03, 0x28, 0x04, 0x52, 0x13, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x03, 0x28, 0x04, 0x52, 0x1a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x1c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x03, 0x28, 0x04, 0x52, 0x19, 0x65, 0x67, 0x72, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3a, + 0x48, 0x16, 0x52, 0x1e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, + 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x18, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3b, 0x48, 0x17, 0x52, 0x15, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3c, + 0x48, 0x18, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3d, 0x48, 0x19, 0x52, 0x09, 0x65, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, + 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3e, 0x48, 0x1a, 0x52, + 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, 0x1b, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, + 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x23, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x41, 0x52, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x15, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x24, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x42, 0x52, 0x13, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x49, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x25, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x43, 0x48, 0x1c, 0x52, 0x19, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1a, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x44, 0x48, 0x1d, 0x52, 0x18, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x45, 0x52, 0x1a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, + 0x0a, 0x1c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, + 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x28, + 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x46, 0x52, 0x19, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x71, 0x6f, - 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x63, 0x12, 0x2c, 0x0a, 0x13, 0x71, 0x6f, - 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, - 0x70, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, - 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, - 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, - 0x31, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2a, 0x0a, 0x12, - 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, - 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, - 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, - 0x70, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, - 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2c, 0x0a, 0x13, 0x71, 0x6f, - 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, - 0x70, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x3e, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, - 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, - 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x30, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, - 0x44, 0x6f, 0x74, 0x31, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3c, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, - 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, - 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x31, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x47, 0x48, + 0x1e, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, + 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x48, 0x48, 0x1f, 0x52, + 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x63, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, + 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x49, 0x48, 0x20, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, + 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x16, 0x71, 0x6f, 0x73, + 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x6d, 0x61, 0x70, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4a, 0x48, + 0x21, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x12, 0x71, 0x6f, 0x73, 0x5f, + 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2d, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4b, 0x48, 0x22, 0x52, 0x0e, 0x71, 0x6f, + 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x4c, 0x48, 0x23, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, + 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, + 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, + 0x6d, 0x61, 0x70, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4d, 0x48, + 0x24, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, + 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, + 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, + 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x30, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x4e, 0x48, 0x25, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x47, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, + 0x18, 0x31, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4f, 0x48, 0x26, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, - 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3d, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, - 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x32, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x71, 0x6f, - 0x73, 0x54, 0x63, 0x54, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x50, 0x0a, 0x26, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, - 0x33, 0x20, 0x01, 0x28, 0x04, 0x52, 0x20, 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3f, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x70, - 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x34, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, - 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x37, 0x0a, 0x18, 0x71, 0x6f, 0x73, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x71, 0x6f, 0x73, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x12, 0x44, 0x0a, 0x1f, 0x71, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x36, 0x20, 0x03, 0x28, 0x04, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x49, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x1e, 0x71, 0x6f, 0x73, 0x5f, 0x65, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x37, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x1a, 0x71, 0x6f, 0x73, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x1a, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x15, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x12, 0x37, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x78, 0x18, 0x3a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x78, 0x12, 0x37, 0x0a, 0x18, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x5f, 0x74, 0x78, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x70, 0x72, 0x69, + 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1c, 0x71, 0x6f, 0x73, + 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x32, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x50, 0x48, 0x27, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x26, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x33, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x51, 0x48, 0x28, 0x52, 0x20, 0x71, 0x6f, 0x73, + 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x4a, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x34, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x52, 0x48, 0x29, 0x52, + 0x18, 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, + 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, + 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x53, 0x48, 0x2a, 0x52, 0x15, 0x71, 0x6f, 0x73, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x4a, 0x0a, 0x1f, 0x71, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x36, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x54, 0x52, + 0x1b, 0x71, 0x6f, 0x73, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x1e, + 0x71, 0x6f, 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x37, + 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x55, 0x52, 0x1a, 0x71, 0x6f, 0x73, 0x45, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x7a, 0x0a, 0x1a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x56, 0x48, 0x2b, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x39, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x57, 0x48, 0x2c, 0x52, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x42, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x78, 0x18, 0x3a, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x2d, 0x52, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x54, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x33, 0x0a, 0x16, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x77, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x65, 0x65, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x65, - 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x65, 0x65, 0x5f, 0x69, - 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x65, 0x65, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x65, - 0x65, 0x65, 0x5f, 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x41, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x65, 0x65, 0x57, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x42, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x6b, 0x74, 0x5f, - 0x74, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x70, 0x6b, 0x74, 0x54, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x44, 0x20, 0x03, 0x28, 0x04, - 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, + 0x78, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x59, 0x48, 0x2e, 0x52, + 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x5a, 0x48, 0x2f, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x16, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x3d, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0d, + 0x68, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x3e, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, 0x48, 0x30, 0x52, 0x0b, 0x68, 0x77, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, + 0x65, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x5d, 0x48, 0x31, 0x52, 0x09, 0x65, 0x65, 0x65, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x6c, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x5e, 0x48, 0x32, 0x52, 0x0b, 0x65, 0x65, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x65, 0x65, 0x5f, 0x77, 0x61, 0x6b, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x5f, 0x48, 0x33, 0x52, 0x0b, 0x65, 0x65, 0x65, 0x57, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x42, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x61, 0x48, 0x34, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x70, 0x6b, 0x74, 0x5f, 0x74, + 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x62, 0x48, 0x35, 0x52, 0x0b, 0x70, 0x6b, 0x74, 0x54, 0x78, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x44, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x63, + 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, - 0x73, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x50, - 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, - 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x46, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x64, 0x72, 0x69, 0x76, 0x65, - 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x70, 0x72, 0x65, - 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x65, - 0x72, 0x64, 0x65, 0x73, 0x49, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x30, - 0x0a, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6c, 0x69, - 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x74, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x49, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, - 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x70, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x4f, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x64, 0x0a, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x4b, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x17, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, - 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, - 0x61, 0x6c, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, 0x6f, - 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x72, 0x62, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x70, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x54, 0x74, 0x6c, 0x12, 0x31, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x50, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, - 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x37, 0x0a, 0x19, 0x71, 0x6f, 0x73, 0x5f, 0x6d, - 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x51, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, - 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, - 0x12, 0x43, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x52, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, - 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, - 0x78, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x53, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x1a, 0x61, 0x75, 0x74, - 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x6f, - 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x54, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x61, - 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, - 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, + 0x73, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x52, 0x11, 0x73, + 0x65, 0x72, 0x64, 0x65, 0x73, 0x50, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, + 0x12, 0x2b, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x65, 0x52, 0x0d, + 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x31, 0x0a, + 0x11, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x66, 0x52, 0x10, + 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, + 0x12, 0x3b, 0x0a, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x67, 0x48, 0x36, 0x52, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, + 0x08, 0x70, 0x74, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x74, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x68, 0x48, 0x37, 0x52, 0x07, 0x70, 0x74, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x69, 0x48, + 0x38, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x4b, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6a, 0x52, 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x32, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6b, 0x48, 0x39, + 0x52, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x63, 0x6b, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, + 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x6c, 0x48, 0x3a, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, + 0x6d, 0x69, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x72, 0x62, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, - 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x10, 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, 0x6f, - 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x6d, 0x64, 0x69, 0x78, 0x4d, 0x6f, - 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5d, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x57, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x70, 0x48, 0x3b, 0x52, 0x0a, 0x70, 0x72, 0x62, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x74, 0x6c, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x76, 0x48, + 0x3c, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x16, 0x71, 0x6f, 0x73, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, + 0x6d, 0x61, 0x70, 0x18, 0x50, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x77, 0x48, + 0x3d, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, + 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x19, 0x71, 0x6f, 0x73, 0x5f, 0x6d, + 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x51, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x78, + 0x48, 0x3e, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x20, 0x71, + 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, + 0x52, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x79, 0x48, 0x3f, 0x52, 0x19, 0x71, + 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, 0x70, + 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x74, + 0x70, 0x69, 0x64, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7a, 0x48, + 0x40, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x61, 0x75, + 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x54, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x82, 0x01, 0x48, 0x41, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, + 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x83, 0x01, 0x48, 0x42, 0x52, 0x0c, 0x6c, 0x6f, 0x6f, + 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x10, + 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x56, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x40, 0x0a, 0x1d, 0x5f, 0x31, 0x30, 0x30, 0x30, - 0x78, 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x5f, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x75, - 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, - 0x31, 0x30, 0x30, 0x30, 0x78, 0x53, 0x67, 0x6d, 0x69, 0x69, 0x53, 0x6c, 0x61, 0x76, 0x65, 0x41, - 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x85, 0x01, 0x48, 0x43, 0x52, 0x0e, 0x6d, 0x64, 0x69, 0x78, + 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, + 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x86, 0x01, + 0x48, 0x44, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x1d, 0x5f, 0x31, 0x30, 0x30, + 0x30, 0x78, 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x5f, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x18, 0x58, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0x87, 0x01, 0x48, 0x45, 0x52, 0x19, 0x31, 0x30, 0x30, 0x30, 0x78, 0x53, + 0x67, 0x6d, 0x69, 0x69, 0x53, 0x6c, 0x61, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x88, 0x01, 0x48, 0x46, 0x52, 0x0a, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0a, 0x64, 0x75, + 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x64, 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, - 0x5a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x44, 0x75, 0x61, 0x6c, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, 0x01, 0x48, 0x47, 0x52, 0x09, 0x64, + 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x03, 0x69, + 0x70, 0x67, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8b, 0x01, 0x48, + 0x48, 0x52, 0x03, 0x69, 0x70, 0x67, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1b, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x8c, 0x01, 0x48, 0x49, 0x52, 0x18, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x1d, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0x8d, 0x01, 0x48, 0x4a, 0x52, 0x1a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, + 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x8e, 0x01, 0x48, 0x4b, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, + 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x24, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x5f, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8f, 0x01, 0x48, 0x4c, 0x52, 0x1e, 0x71, + 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x66, + 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1f, 0x0a, + 0x1d, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x23, + 0x0a, 0x21, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, + 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x66, + 0x65, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x21, 0x0a, + 0x1f, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, + 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x1b, + 0x0a, 0x19, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, + 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, + 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, + 0x61, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, + 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, + 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, + 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, + 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, + 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x29, 0x0a, 0x27, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x6d, 0x61, 0x70, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x78, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x6c, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x77, + 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x73, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x6b, 0x74, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x74, 0x70, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, 0x6f, + 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, + 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, + 0x61, 0x70, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, + 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, + 0x6e, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x20, 0x0a, 0x1e, 0x58, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x78, 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, + 0x5f, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x70, 0x67, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, + 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x42, + 0x27, 0x0a, 0x25, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x22, 0x26, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd4, 0x3e, + 0x0a, 0x17, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x05, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x20, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x22, 0x48, 0x01, 0x52, 0x0b, 0x61, 0x75, 0x74, + 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x23, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x24, 0x48, 0x03, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x10, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x25, 0x52, 0x0f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x44, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x09, 0x64, 0x75, 0x61, - 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x70, 0x67, 0x18, 0x5b, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x70, 0x67, 0x12, 0x3d, 0x0a, 0x1b, 0x67, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, - 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x41, 0x0a, 0x1d, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x20, 0x71, 0x6f, - 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x5e, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, - 0x70, 0x12, 0x4c, 0x0a, 0x24, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, - 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x22, - 0x26, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, - 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb1, 0x2e, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x16, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, - 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x21, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, - 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, - 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x13, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x71, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x19, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, - 0x78, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, - 0x48, 0x00, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x48, 0x61, - 0x6c, 0x66, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x39, 0x0a, - 0x18, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x75, 0x74, - 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x6d, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x19, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x49, 0x0a, 0x20, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x1d, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, - 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x5a, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, - 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, - 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, - 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x4f, 0x75, 0x69, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x6c, - 0x61, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, - 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0d, 0x64, 0x72, - 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, - 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x61, - 0x67, 0x67, 0x65, 0x64, 0x12, 0x67, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x26, 0x52, + 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x71, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x27, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x28, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x48, 0x61, 0x6c, + 0x66, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x18, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, + 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x29, 0x48, 0x04, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x76, 0x0a, 0x1c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2a, 0x48, 0x05, 0x52, 0x19, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x20, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, 0x06, 0x52, 0x1d, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x41, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x15, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2c, 0x48, 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, + 0x6f, 0x75, 0x69, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x2d, 0x48, 0x08, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x4f, 0x75, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2e, 0x48, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, + 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2f, 0x48, 0x0a, + 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, + 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x30, 0x48, 0x0b, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x55, 0x6e, 0x74, + 0x61, 0x67, 0x67, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, + 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x31, 0x48, 0x0c, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x70, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, - 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, - 0x10, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x65, - 0x63, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x46, 0x65, 0x63, 0x12, 0x3f, 0x0a, 0x08, 0x66, 0x65, 0x63, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x48, - 0x00, 0x52, 0x07, 0x66, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x66, 0x65, - 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, - 0x73, 0x63, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x44, 0x73, 0x63, 0x70, 0x12, 0x12, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x44, 0x0a, 0x1e, 0x66, - 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1a, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x53, 0x74, 0x6f, 0x72, - 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x4c, 0x0a, 0x22, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, - 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x1e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x4c, 0x0a, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, - 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1e, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x12, 0x65, 0x0a, - 0x18, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x15, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x61, 0x63, 0x6c, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x65, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x20, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, - 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x12, 0x59, 0x0a, 0x16, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x57, 0x0a, 0x15, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, - 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x1b, 0x69, 0x6e, + 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x32, 0x48, 0x0d, 0x52, 0x14, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x33, 0x48, 0x0e, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x46, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x08, 0x66, + 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x34, 0x48, 0x0f, 0x52, 0x07, 0x66, 0x65, 0x63, 0x4d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x11, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x35, 0x48, 0x10, 0x52, 0x0f, 0x66, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x36, 0x48, 0x11, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x73, 0x63, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x37, 0x48, 0x12, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, + 0x01, 0x12, 0x4d, 0x0a, 0x1e, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x38, 0x48, + 0x13, 0x52, 0x1a, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x55, 0x0a, 0x22, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, + 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x39, 0x48, 0x14, 0x52, 0x1e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, + 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3a, 0x48, 0x15, 0x52, 0x1e, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6e, + 0x0a, 0x18, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x3b, 0x48, 0x16, 0x52, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3c, 0x48, 0x17, 0x52, 0x0a, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x3d, 0x48, 0x18, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3e, 0x48, 0x19, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x11, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, + 0x63, 0x6c, 0x18, 0x20, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x3f, 0x48, 0x1a, + 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x41, 0x63, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x21, + 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x41, 0x52, 0x14, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x38, 0x0a, 0x15, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x42, 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x72, + 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x1a, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x18, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x66, 0x0a, 0x1d, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, - 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x25, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x1c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, - 0x19, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x69, 0x72, - 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0a, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x27, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x71, - 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x28, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x54, 0x63, 0x12, 0x2e, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, - 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, 0x63, - 0x4d, 0x61, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, - 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2a, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, - 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2c, 0x0a, 0x12, 0x71, 0x6f, 0x73, - 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, - 0x2b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, - 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, 0x64, - 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, - 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, - 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x71, - 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, - 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x40, 0x0a, 0x1d, 0x71, - 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, - 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2e, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3e, 0x0a, - 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2f, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3f, 0x0a, - 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x30, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x52, - 0x0a, 0x26, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x31, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x20, 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x54, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x61, 0x70, 0x12, 0x41, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x32, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x18, 0x71, 0x6f, 0x73, - 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x39, 0x0a, 0x18, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x43, 0x48, 0x1b, 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x44, 0x48, + 0x1c, 0x52, 0x18, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x47, + 0x0a, 0x1d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x25, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x45, 0x52, 0x1a, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x1c, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x26, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x46, 0x52, 0x19, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, + 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x27, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x47, 0x48, 0x1d, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x48, 0x48, 0x1e, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, + 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, + 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x49, 0x48, 0x1f, 0x52, 0x0f, + 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, + 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2a, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4a, 0x48, 0x20, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, + 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x12, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, + 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x4b, 0x48, 0x21, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, + 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, + 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4c, 0x48, 0x22, 0x52, + 0x11, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, + 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, + 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4d, 0x48, 0x23, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, + 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x49, + 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, + 0x2e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x4e, 0x48, 0x24, 0x52, 0x17, 0x71, + 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, + 0x74, 0x31, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1c, 0x71, 0x6f, 0x73, + 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x4f, 0x48, 0x25, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, + 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, + 0x61, 0x70, 0x18, 0x30, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x50, 0x48, 0x26, + 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x26, + 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x31, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x51, 0x48, 0x27, 0x52, 0x20, 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1d, 0x71, 0x6f, 0x73, + 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, + 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x32, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x52, 0x48, 0x28, 0x52, 0x18, 0x71, 0x6f, 0x73, 0x50, 0x66, 0x63, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, + 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x33, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x15, 0x71, 0x6f, 0x73, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, - 0x12, 0x69, 0x0a, 0x1f, 0x71, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1b, - 0x71, 0x6f, 0x73, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x1e, 0x71, - 0x6f, 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x35, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x71, 0x6f, 0x73, 0x45, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x71, 0x0a, 0x1a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x17, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x39, 0x0a, - 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x78, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x78, 0x12, 0x39, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x5f, 0x74, 0x78, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x15, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x54, 0x78, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x58, 0x0a, 0x16, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x3b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, - 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, - 0x68, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x3c, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x68, 0x77, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x65, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x65, 0x65, 0x65, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x65, - 0x65, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x65, 0x65, - 0x5f, 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x0b, 0x65, 0x65, 0x65, 0x57, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x29, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x40, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x6f, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x6b, - 0x74, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x6b, 0x74, 0x54, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x42, 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x42, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x52, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x70, - 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x50, 0x72, 0x65, - 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x64, - 0x65, 0x73, 0x5f, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x64, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x69, - 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, 0x70, 0x72, 0x65, - 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, - 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x46, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x70, 0x74, - 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x48, 0x00, 0x52, 0x07, 0x70, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x48, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x64, 0x18, 0x33, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x53, 0x48, 0x29, 0x52, + 0x15, 0x71, 0x6f, 0x73, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, 0x71, 0x6f, 0x73, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x34, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x54, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x1e, 0x71, 0x6f, 0x73, 0x5f, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x35, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x55, 0x52, 0x1a, 0x71, 0x6f, 0x73, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x7a, 0x0a, 0x1a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x36, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, - 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x6a, - 0x0a, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x49, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x70, 0x72, - 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x18, 0x4a, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79, 0x6e, - 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x34, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x33, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, - 0x4d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, - 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x39, 0x0a, 0x19, 0x71, 0x6f, - 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x14, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x45, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, - 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x04, - 0x74, 0x70, 0x69, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x70, - 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, - 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, - 0x18, 0x51, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, - 0x67, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, - 0x12, 0x4e, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, - 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x55, 0x0a, 0x10, 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x6e, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x54, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, - 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x1d, 0x5f, 0x31, 0x30, 0x30, - 0x30, 0x78, 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x5f, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x18, 0x55, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x19, 0x31, 0x30, 0x30, 0x30, 0x78, 0x53, 0x67, 0x6d, 0x69, 0x69, 0x53, 0x6c, 0x61, - 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x12, 0x48, 0x0a, 0x0b, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x56, 0x20, 0x01, 0x28, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x56, 0x48, 0x2a, 0x52, + 0x17, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x57, + 0x48, 0x2b, 0x52, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x78, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x58, 0x48, 0x2c, 0x52, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x78, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x59, 0x48, 0x2d, 0x52, 0x15, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x3a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5a, 0x48, 0x2e, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, + 0x52, 0x13, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0d, 0x68, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x5c, 0x48, 0x2f, 0x52, 0x0b, 0x68, 0x77, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x65, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5d, 0x48, 0x30, + 0x52, 0x09, 0x65, 0x65, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x0d, 0x65, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x48, 0x31, 0x52, 0x0b, 0x65, + 0x65, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x0d, 0x65, 0x65, 0x65, 0x5f, 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x3f, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x32, 0x52, 0x0b, 0x65, 0x65, + 0x65, 0x57, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, + 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x40, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x61, 0x48, 0x33, 0x52, 0x0e, 0x69, + 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x2d, 0x0a, 0x0d, 0x70, 0x6b, 0x74, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x62, 0x48, 0x34, 0x52, + 0x0b, 0x70, 0x6b, 0x74, 0x54, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x23, 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x42, 0x20, + 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x63, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x5f, 0x70, + 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x18, 0x43, 0x20, 0x03, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x52, 0x11, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x50, 0x72, + 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x12, 0x2b, 0x0a, 0x0e, 0x73, 0x65, 0x72, + 0x64, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x44, 0x20, 0x03, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x65, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, + 0x5f, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x45, 0x20, 0x03, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x66, 0x52, 0x10, 0x73, 0x65, 0x72, 0x64, 0x65, 0x73, 0x49, + 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x14, 0x6c, 0x69, 0x6e, + 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x67, 0x48, 0x35, 0x52, + 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x08, 0x70, 0x74, 0x70, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x68, 0x48, 0x36, 0x52, 0x07, 0x70, 0x74, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x5a, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x69, 0x48, 0x37, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x19, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x49, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6a, 0x52, + 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x0f, 0x70, 0x72, 0x62, 0x73, + 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x18, 0x4a, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6c, 0x48, 0x38, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, + 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0b, + 0x70, 0x72, 0x62, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x64, 0x75, 0x61, 0x6c, 0x5f, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x44, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x48, 0x00, 0x52, 0x09, 0x64, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x12, 0x0a, - 0x03, 0x69, 0x70, 0x67, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x70, - 0x67, 0x12, 0x3f, 0x0a, 0x1b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x59, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x18, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x43, 0x0a, 0x1d, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x1a, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x47, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, + 0x62, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x70, 0x48, 0x39, + 0x52, 0x0a, 0x70, 0x72, 0x62, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x76, 0x48, 0x3a, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, + 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, + 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x77, 0x48, 0x3b, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, + 0x78, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x19, + 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x78, 0x48, 0x3c, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, + 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x4e, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x79, + 0x48, 0x3d, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x7a, 0x48, 0x3e, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x46, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, 0x63, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x51, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x82, 0x01, 0x48, 0x3f, 0x52, 0x16, 0x61, 0x75, + 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x46, 0x65, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, + 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x62, + 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x83, 0x01, 0x48, 0x40, + 0x52, 0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x5f, 0x0a, 0x10, 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x85, 0x01, 0x48, 0x41, 0x52, + 0x0e, 0x6d, 0x64, 0x69, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x69, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, + 0x6f, 0x4e, 0x65, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x86, 0x01, 0x48, 0x42, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x1d, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x78, 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x5f, 0x73, 0x6c, + 0x61, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x18, 0x55, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x87, 0x01, 0x48, 0x43, 0x52, 0x19, 0x31, + 0x30, 0x30, 0x30, 0x78, 0x53, 0x67, 0x6d, 0x69, 0x69, 0x53, 0x6c, 0x61, 0x76, 0x65, 0x41, 0x75, + 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x88, 0x01, 0x48, 0x44, + 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x4f, 0x0a, 0x0a, 0x64, 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x57, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, + 0x44, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, 0x01, + 0x48, 0x45, 0x52, 0x09, 0x64, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x1c, 0x0a, 0x03, 0x69, 0x70, 0x67, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x8b, 0x01, 0x48, 0x46, 0x52, 0x03, 0x69, 0x70, 0x67, 0x88, 0x01, 0x01, 0x12, 0x49, + 0x0a, 0x1b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x59, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8c, 0x01, 0x48, 0x47, 0x52, 0x18, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x1d, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8d, 0x01, 0x48, 0x48, 0x52, 0x1a, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, + 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x5b, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8e, 0x01, 0x48, 0x49, 0x52, 0x1b, 0x71, 0x6f, 0x73, + 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x24, 0x71, + 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, + 0x6d, 0x61, 0x70, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8f, 0x01, + 0x48, 0x4a, 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, + 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, + 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1f, 0x0a, + 0x1d, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x23, + 0x0a, 0x21, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, + 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x69, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x6e, 0x74, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x66, + 0x65, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x21, 0x0a, + 0x1f, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, + 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x1b, + 0x0a, 0x19, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, + 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x63, + 0x73, 0x65, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, + 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, + 0x61, 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, + 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, + 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, + 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, + 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, + 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x29, 0x0a, 0x27, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x6d, 0x61, 0x70, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x78, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x6c, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x65, 0x65, 0x5f, 0x77, + 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x73, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x6b, 0x74, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x74, 0x70, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x62, 0x73, + 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x70, 0x72, 0x62, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x23, + 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, + 0x6d, 0x61, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, + 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, 0x66, 0x65, 0x63, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x6d, 0x64, 0x69, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x58, + 0x5f, 0x31, 0x30, 0x30, 0x30, 0x78, 0x5f, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x5f, 0x73, 0x6c, 0x61, + 0x76, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x64, 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x69, 0x70, 0x67, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x5b, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, - 0x12, 0x4e, 0x0a, 0x24, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, - 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x54, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x77, 0x72, - 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x10, 0x71, 0x6f, 0x73, 0x57, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, - 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x77, - 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x10, 0x71, 0x6f, 0x73, 0x57, 0x72, 0x65, 0x64, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, + 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, + 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, + 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x6d, 0x61, 0x70, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, - 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, - 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, - 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0xe1, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x69, 0x64, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x11, 0x6c, 0x69, 0x6e, 0x65, 0x5f, - 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x69, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, - 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x53, 0x69, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x1a, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, - 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x69, 0x64, 0x65, - 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x55, - 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x22, 0x69, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3c, 0x0a, + 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x6f, - 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, - 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x22, 0xf5, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x62, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, + 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, + 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x10, 0x71, + 0x6f, 0x73, 0x57, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, + 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x53, + 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x57, 0x0a, 0x0d, - 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, - 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, - 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x23, 0x0a, - 0x21, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xac, 0x03, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, - 0x73, 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, - 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x31, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, 0x31, - 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x32, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, 0x32, - 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x33, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, 0x33, - 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x4d, 0x61, 0x69, 0x6e, - 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x31, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x6f, 0x73, - 0x74, 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, - 0x74, 0x32, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, - 0x6f, 0x73, 0x74, 0x32, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, - 0x6f, 0x73, 0x74, 0x33, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, - 0x72, 0x50, 0x6f, 0x73, 0x74, 0x33, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, - 0x5f, 0x61, 0x74, 0x74, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x74, 0x78, 0x46, - 0x69, 0x72, 0x41, 0x74, 0x74, 0x6e, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x13, + 0x71, 0x6f, 0x73, 0x5f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x00, 0x52, 0x10, 0x71, 0x6f, 0x73, 0x57, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x77, + 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x1e, + 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, + 0x98, 0x04, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x38, 0x0a, 0x13, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x53, 0x69, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x34, 0x0a, 0x11, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x69, 0x64, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x02, 0x52, 0x18, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x69, 0x64, 0x65, + 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x1a, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, + 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x16, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x69, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x50, + 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, + 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x6f, + 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, + 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x61, 0x69, + 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x20, 0x53, + 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, - 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, + 0x64, 0x12, 0x60, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x46, 0x61, + 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, + 0x48, 0x00, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x20, 0x47, 0x65, + 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, - 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, + 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, + 0x85, 0x04, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, + 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, + 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x12, + 0x1e, 0x0a, 0x07, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x07, 0x69, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, + 0x24, 0x0a, 0x0a, 0x69, 0x70, 0x72, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x52, 0x0a, 0x69, 0x70, 0x72, 0x65, 0x64, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, + 0x70, 0x72, 0x65, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, + 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, 0x31, 0x12, 0x24, 0x0a, 0x0b, 0x74, + 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, + 0x32, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x33, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x52, 0x09, 0x74, 0x78, + 0x46, 0x69, 0x72, 0x50, 0x72, 0x65, 0x33, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, + 0x72, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x08, 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x4d, 0x61, 0x69, 0x6e, 0x12, 0x26, 0x0a, + 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x31, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, + 0x50, 0x6f, 0x73, 0x74, 0x31, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, + 0x70, 0x6f, 0x73, 0x74, 0x32, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0a, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, 0x50, 0x6f, 0x73, 0x74, 0x32, 0x12, 0x26, 0x0a, + 0x0c, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x33, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x52, 0x0a, 0x74, 0x78, 0x46, 0x69, 0x72, + 0x50, 0x6f, 0x73, 0x74, 0x33, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x78, 0x5f, 0x66, 0x69, 0x72, 0x5f, + 0x61, 0x74, 0x74, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, + 0x52, 0x09, 0x74, 0x78, 0x46, 0x69, 0x72, 0x41, 0x74, 0x74, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, + 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, - 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xa2, 0x29, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x02, 0x12, 0x2a, 0x0a, - 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, - 0x52, 0x54, 0x45, 0x44, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x42, - 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x4c, - 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, - 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x53, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x58, - 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x53, 0x49, - 0x5a, 0x45, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x50, 0x45, 0x45, - 0x44, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x10, 0x0b, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x0c, - 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, - 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x4c, 0x46, 0x5f, 0x44, 0x55, 0x50, - 0x4c, 0x45, 0x58, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, - 0x45, 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x10, 0x0e, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x0f, 0x12, 0x2d, 0x0a, - 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, - 0x52, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, - 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x10, 0x12, 0x22, 0x0a, 0x1e, + 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, + 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, + 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xa2, 0x29, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x02, 0x12, 0x2a, + 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, + 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, + 0x42, 0x52, 0x45, 0x41, 0x4b, 0x4f, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, + 0x51, 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x4c, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, + 0x46, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x53, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, + 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x53, + 0x49, 0x5a, 0x45, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x50, 0x45, + 0x45, 0x44, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x0b, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x45, + 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, + 0x0c, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, + 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x4c, 0x46, 0x5f, 0x44, 0x55, + 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, - 0x54, 0x45, 0x44, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x11, - 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, - 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, - 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x12, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, - 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, - 0x13, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, + 0x54, 0x45, 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x10, 0x0e, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, + 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x0f, 0x12, 0x2d, + 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, + 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, + 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x10, 0x12, 0x22, 0x0a, + 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, + 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, + 0x11, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, - 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, - 0x45, 0x44, 0x10, 0x14, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, - 0x53, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x4c, 0x46, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x45, 0x58, 0x5f, - 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x15, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x12, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, + 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x10, 0x13, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, + 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, + 0x44, 0x45, 0x44, 0x10, 0x14, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, + 0x49, 0x53, 0x45, 0x44, 0x5f, 0x48, 0x41, 0x4c, 0x46, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x45, 0x58, + 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x15, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, + 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x16, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, - 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x16, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, + 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x17, 0x12, 0x35, 0x0a, 0x31, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, + 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, + 0x54, 0x52, 0x49, 0x43, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, + 0x18, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, + 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, + 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x19, 0x12, 0x28, 0x0a, + 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, + 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x49, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x1a, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x49, + 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x45, 0x59, 0x45, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x53, 0x10, 0x1d, 0x12, 0x18, 0x0a, + 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x1e, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x57, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0x1f, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x45, + 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x21, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x10, 0x22, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x23, + 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, + 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x24, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, + 0x45, 0x44, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x25, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, + 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x26, 0x12, 0x2a, 0x0a, + 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, + 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x27, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, + 0x44, 0x5f, 0x48, 0x41, 0x4c, 0x46, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x53, 0x50, + 0x45, 0x45, 0x44, 0x10, 0x28, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x41, 0x55, + 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x29, 0x12, 0x2a, 0x0a, + 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, - 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x17, 0x12, 0x35, 0x0a, 0x31, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, - 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, - 0x52, 0x49, 0x43, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x18, - 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, - 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, - 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x19, 0x12, 0x28, 0x0a, 0x24, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, - 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x49, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x10, 0x1a, 0x12, 0x2f, 0x0a, 0x2b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x49, 0x4e, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x49, 0x53, 0x54, - 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x45, 0x59, 0x45, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x53, 0x10, 0x1d, 0x12, 0x18, 0x0a, 0x14, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, - 0x50, 0x45, 0x45, 0x44, 0x10, 0x1e, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x48, 0x57, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, - 0x10, 0x1f, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x45, 0x58, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x21, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x10, 0x22, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x23, 0x12, - 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x44, - 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x24, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, + 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x2a, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, - 0x44, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x25, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, + 0x44, 0x5f, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x50, 0x41, 0x55, + 0x53, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x2b, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, - 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x26, 0x12, 0x2a, 0x0a, 0x26, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, - 0x49, 0x53, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, - 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x27, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, - 0x5f, 0x48, 0x41, 0x4c, 0x46, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x45, 0x58, 0x5f, 0x53, 0x50, 0x45, - 0x45, 0x44, 0x10, 0x28, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x41, 0x55, 0x54, - 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x29, 0x12, 0x2a, 0x0a, 0x26, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, - 0x49, 0x53, 0x45, 0x44, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, - 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x2a, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, - 0x5f, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x50, 0x41, 0x55, 0x53, - 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x2b, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, - 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x2c, 0x12, 0x21, 0x0a, - 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, - 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x49, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x2d, - 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x2e, 0x12, 0x23, 0x0a, 0x1f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, - 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, - 0x2f, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, - 0x52, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x30, 0x12, 0x19, - 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x31, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, - 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x32, 0x12, - 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x53, 0x45, - 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x10, 0x33, 0x12, - 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x45, 0x43, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x34, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, - 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x35, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x53, 0x43, - 0x50, 0x10, 0x36, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x37, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x4d, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, - 0x49, 0x44, 0x10, 0x38, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x52, - 0x4d, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, - 0x52, 0x5f, 0x49, 0x44, 0x10, 0x39, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x54, - 0x4f, 0x52, 0x4d, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x4c, 0x49, - 0x43, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x3a, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, - 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x3b, - 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x3c, 0x12, 0x18, 0x0a, 0x14, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, - 0x41, 0x43, 0x4c, 0x10, 0x3d, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, - 0x43, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x3e, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x43, 0x53, - 0x45, 0x43, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x3f, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x40, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x49, - 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x41, 0x12, 0x23, - 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, - 0x53, 0x53, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x10, 0x42, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x43, 0x12, 0x28, - 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, - 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x44, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, - 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, - 0x49, 0x4f, 0x4e, 0x10, 0x45, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, - 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, - 0x46, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, - 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x47, 0x12, 0x1c, 0x0a, 0x18, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x45, 0x46, - 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x43, 0x10, 0x48, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x4f, 0x54, 0x31, 0x50, - 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x49, 0x12, 0x24, 0x0a, 0x20, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x4f, - 0x54, 0x31, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, - 0x10, 0x4a, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, - 0x41, 0x50, 0x10, 0x4b, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, - 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x4c, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, - 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x4d, 0x12, 0x2b, 0x0a, 0x27, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, - 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x4f, - 0x54, 0x31, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x4e, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, - 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, - 0x4d, 0x41, 0x50, 0x10, 0x4f, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, - 0x50, 0x12, 0x34, 0x0a, 0x30, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, - 0x4f, 0x53, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, - 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x51, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x4f, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x4d, - 0x41, 0x50, 0x10, 0x52, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, - 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x53, 0x12, 0x2d, 0x0a, 0x29, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x49, 0x4e, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, - 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x54, 0x12, 0x2c, 0x0a, 0x28, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x45, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, - 0x4c, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x55, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, + 0x44, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x2c, 0x12, 0x21, + 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, + 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x49, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, + 0x2d, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x2e, 0x12, 0x23, 0x0a, + 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, + 0x4c, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, + 0x10, 0x2f, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x30, 0x12, + 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x31, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, + 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x32, + 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x53, + 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x46, 0x45, 0x43, 0x10, 0x33, + 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x45, + 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x34, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x35, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x53, + 0x43, 0x50, 0x10, 0x36, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x37, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x4d, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, + 0x5f, 0x49, 0x44, 0x10, 0x38, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x4f, + 0x52, 0x4d, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, + 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x39, 0x12, 0x30, 0x0a, 0x2c, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, + 0x54, 0x4f, 0x52, 0x4d, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x4c, + 0x49, 0x43, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x3a, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x46, 0x4c, + 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, + 0x3b, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, + 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x3c, 0x12, 0x18, 0x0a, 0x14, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x3d, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x43, 0x53, + 0x45, 0x43, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x3e, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x43, + 0x53, 0x45, 0x43, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x3f, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x40, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, + 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x41, 0x12, + 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x10, 0x42, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x43, 0x12, + 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x44, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, + 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, + 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x45, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, + 0x45, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x10, 0x46, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x47, 0x12, 0x1c, 0x0a, 0x18, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x45, + 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x43, 0x10, 0x48, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x4f, 0x54, 0x31, + 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x49, 0x12, 0x24, 0x0a, + 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, + 0x4f, 0x54, 0x31, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, + 0x50, 0x10, 0x4a, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, + 0x4d, 0x41, 0x50, 0x10, 0x4b, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, + 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x4c, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x54, + 0x4f, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x4d, 0x12, 0x2b, 0x0a, + 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, + 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, + 0x4f, 0x54, 0x31, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x4e, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x41, + 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x53, 0x43, 0x50, + 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x4f, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x50, + 0x10, 0x50, 0x12, 0x34, 0x0a, 0x30, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x51, 0x4f, 0x53, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, + 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x51, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x4f, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x4d, 0x41, 0x50, 0x10, 0x52, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, + 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x53, 0x12, 0x2d, 0x0a, + 0x29, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x49, + 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, + 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x54, 0x12, 0x2c, 0x0a, 0x28, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x45, 0x47, + 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, + 0x49, 0x4c, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x55, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, + 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x10, 0x56, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, + 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x57, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x10, 0x56, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x57, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x46, - 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x52, 0x58, 0x10, 0x58, - 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, - 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x58, 0x10, 0x59, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, - 0x5a, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x5b, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x57, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, - 0x49, 0x44, 0x10, 0x5c, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x5d, 0x12, 0x1b, - 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x45, 0x45, 0x5f, - 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x5e, 0x12, 0x1b, 0x0a, 0x17, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x57, 0x41, 0x4b, - 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x5f, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, - 0x4c, 0x49, 0x53, 0x54, 0x10, 0x60, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x10, 0x61, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x50, 0x4b, 0x54, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x10, 0x62, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x54, 0x41, 0x4d, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x63, 0x12, 0x20, 0x0a, 0x1c, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, - 0x5f, 0x50, 0x52, 0x45, 0x45, 0x4d, 0x50, 0x48, 0x41, 0x53, 0x49, 0x53, 0x10, 0x64, 0x12, 0x1c, - 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x45, 0x52, 0x44, - 0x45, 0x53, 0x5f, 0x49, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x65, 0x12, 0x1f, 0x0a, 0x1b, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, - 0x5f, 0x49, 0x50, 0x52, 0x45, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x66, 0x12, 0x22, 0x0a, - 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, - 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, - 0x67, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, - 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x68, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x69, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, 0x5f, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x6a, - 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, - 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x6b, 0x12, - 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, - 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x10, 0x6c, 0x12, 0x1c, - 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x49, 0x44, 0x10, 0x6d, 0x12, 0x2a, 0x0a, 0x26, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, - 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x6e, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, - 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x6f, 0x12, - 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, - 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x70, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x71, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x72, 0x12, - 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, - 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x73, 0x12, 0x1b, 0x0a, - 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, - 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x75, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, - 0x45, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x76, 0x12, 0x24, - 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, - 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, - 0x41, 0x50, 0x10, 0x77, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, - 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x78, 0x12, 0x2e, 0x0a, - 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, - 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, - 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x79, 0x12, 0x12, 0x0a, - 0x0e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, - 0x7a, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, - 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x7b, - 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, - 0x42, 0x52, 0x49, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x10, 0x7c, 0x12, - 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x42, - 0x52, 0x49, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x5f, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x7d, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x41, - 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x49, - 0x44, 0x10, 0x7e, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x7f, 0x12, 0x22, 0x0a, - 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, - 0x43, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x80, - 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, - 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x81, 0x01, 0x12, 0x29, 0x0a, - 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, - 0x4e, 0x45, 0x47, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x56, 0x45, - 0x52, 0x52, 0x49, 0x44, 0x45, 0x10, 0x82, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x10, 0x83, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x10, 0x84, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, - 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x85, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x43, - 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x86, 0x01, 0x12, 0x2b, 0x0a, - 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x58, - 0x5f, 0x53, 0x47, 0x4d, 0x49, 0x49, 0x5f, 0x53, 0x4c, 0x41, 0x56, 0x45, 0x5f, 0x41, 0x55, 0x54, - 0x4f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x10, 0x87, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x10, 0x88, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x10, 0x89, - 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, - 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x8a, 0x01, 0x12, 0x12, 0x0a, 0x0d, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x47, 0x10, 0x8b, 0x01, - 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x4c, - 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, - 0x4c, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x8c, 0x01, 0x12, 0x2c, 0x0a, 0x27, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, - 0x54, 0x59, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, - 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x8d, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, - 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, - 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x8e, 0x01, 0x12, 0x33, 0x0a, 0x2e, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x50, 0x4c, - 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, - 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x8f, 0x01, - 0x12, 0x19, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, - 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x90, 0x01, 0x2a, 0x95, 0x01, 0x0a, 0x0c, - 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, - 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, - 0x53, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, - 0x44, 0x10, 0x03, 0x2a, 0xa1, 0x02, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, - 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x34, 0x0a, 0x30, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, - 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, - 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x32, 0x0a, 0x2e, + 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x52, 0x58, 0x10, + 0x58, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x58, 0x10, 0x59, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x10, 0x5a, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x5b, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x57, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, + 0x5f, 0x49, 0x44, 0x10, 0x5c, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x5d, 0x12, + 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x45, 0x45, + 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x5e, 0x12, 0x1b, 0x0a, 0x17, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x45, 0x45, 0x5f, 0x57, 0x41, + 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x5f, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, + 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x60, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x10, 0x61, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4b, 0x54, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x62, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x63, 0x12, 0x20, 0x0a, + 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, + 0x53, 0x5f, 0x50, 0x52, 0x45, 0x45, 0x4d, 0x50, 0x48, 0x41, 0x53, 0x49, 0x53, 0x10, 0x64, 0x12, + 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x45, 0x52, + 0x44, 0x45, 0x53, 0x5f, 0x49, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x65, 0x12, 0x1f, 0x0a, + 0x1b, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, + 0x53, 0x5f, 0x49, 0x50, 0x52, 0x45, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x66, 0x12, 0x22, + 0x0a, 0x1e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, + 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x67, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x50, 0x54, 0x50, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x68, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x69, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x44, + 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, + 0x6a, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, + 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x6b, + 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, + 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x10, 0x6c, 0x12, + 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x49, 0x44, 0x10, 0x6d, 0x12, 0x2a, 0x0a, + 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, + 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x6e, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x49, + 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x6f, + 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, + 0x42, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x70, 0x12, 0x1e, 0x0a, 0x1a, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x71, 0x12, 0x23, 0x0a, 0x1f, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x72, + 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, + 0x42, 0x53, 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x73, 0x12, 0x1b, + 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x42, 0x53, + 0x5f, 0x52, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, + 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x75, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x44, 0x45, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x76, 0x12, + 0x24, 0x0a, 0x20, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, + 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, + 0x4d, 0x41, 0x50, 0x10, 0x77, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, + 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x78, 0x12, 0x2e, + 0x0a, 0x2a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, + 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, + 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x79, 0x12, 0x12, + 0x0a, 0x0e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x50, 0x49, 0x44, + 0x10, 0x7a, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x45, 0x52, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0x7b, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x10, 0x7c, + 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, + 0x42, 0x52, 0x49, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x5f, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x7d, 0x12, 0x27, 0x0a, 0x23, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, + 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, 0x44, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x49, 0x44, 0x10, 0x7e, 0x12, 0x28, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x45, + 0x44, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x7f, 0x12, 0x22, + 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x42, 0x52, + 0x49, 0x43, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, + 0x80, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x81, 0x01, 0x12, 0x29, + 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x4f, + 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x56, + 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x10, 0x82, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x83, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x84, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x44, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x85, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x86, 0x01, 0x12, 0x2b, + 0x0a, 0x26, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x31, 0x30, 0x30, 0x30, + 0x58, 0x5f, 0x53, 0x47, 0x4d, 0x49, 0x49, 0x5f, 0x53, 0x4c, 0x41, 0x56, 0x45, 0x5f, 0x41, 0x55, + 0x54, 0x4f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x10, 0x87, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x10, 0x88, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x10, + 0x89, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4e, 0x45, 0x47, 0x5f, 0x46, 0x45, 0x43, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x8a, 0x01, 0x12, 0x12, 0x0a, + 0x0d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x47, 0x10, 0x8b, + 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, + 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, + 0x4f, 0x4c, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x8c, 0x01, 0x12, 0x2c, 0x0a, + 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, + 0x49, 0x54, 0x59, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x8d, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, + 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, + 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x8e, 0x01, 0x12, 0x33, 0x0a, 0x2e, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x50, + 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, + 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x8f, + 0x01, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, + 0x50, 0x53, 0x45, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x90, 0x01, 0x2a, 0x95, 0x01, 0x0a, + 0x0c, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, + 0x1a, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, + 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x55, 0x46, 0x46, + 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, + 0x4f, 0x53, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, + 0x49, 0x44, 0x10, 0x03, 0x2a, 0xa1, 0x02, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x2b, 0x0a, 0x27, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x46, 0x41, - 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x04, - 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x2a, 0xc4, 0x03, 0x0a, 0x0e, 0x50, 0x6f, 0x72, 0x74, - 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, - 0x52, 0x45, 0x45, 0x4d, 0x50, 0x48, 0x41, 0x53, 0x49, 0x53, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x49, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, - 0x50, 0x52, 0x45, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x50, + 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x34, 0x0a, 0x30, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, + 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, + 0x56, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x32, 0x0a, + 0x2e, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, + 0x04, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, + 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x2a, 0xc4, 0x03, 0x0a, 0x0e, 0x50, 0x6f, 0x72, + 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x31, 0x10, 0x05, 0x12, 0x20, 0x0a, - 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x32, 0x10, 0x06, 0x12, - 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x33, 0x10, - 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x4d, 0x41, 0x49, - 0x4e, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, - 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, - 0x4f, 0x53, 0x54, 0x31, 0x10, 0x09, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, - 0x52, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x32, 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, - 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x33, 0x10, 0x0b, 0x12, 0x20, 0x0a, 0x1c, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, + 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x50, 0x52, 0x45, 0x45, 0x4d, 0x50, 0x48, 0x41, 0x53, 0x49, 0x53, 0x10, 0x02, 0x12, 0x1c, 0x0a, + 0x18, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x49, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x49, 0x50, 0x52, 0x45, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x4e, 0x10, 0x0c, 0x32, 0xc6, - 0x0e, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x75, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, - 0x6c, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, + 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x31, 0x10, 0x05, 0x12, 0x20, + 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x32, 0x10, 0x06, + 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x33, + 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, + 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x4d, 0x41, + 0x49, 0x4e, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, + 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, + 0x50, 0x4f, 0x53, 0x54, 0x31, 0x10, 0x09, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, + 0x49, 0x52, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x32, 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x33, 0x10, 0x0b, 0x12, 0x20, 0x0a, + 0x1c, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x44, 0x45, 0x53, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x49, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x4e, 0x10, 0x0c, 0x32, + 0xc6, 0x0e, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, + 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, - 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, - 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, - 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x53, 0x65, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, + 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, - 0x64, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, - 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, - 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x53, + 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, - 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, + 0x72, 0x64, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, + 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, + 0x72, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x53, + 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5777,16 +5508,11 @@ var file_dataplane_standalone_proto_port_proto_goTypes = []interface{}{ (PortAutoNegConfigMode)(0), // 45: lemming.dataplane.sai.PortAutoNegConfigMode (PortModuleType)(0), // 46: lemming.dataplane.sai.PortModuleType (PortDualMedia)(0), // 47: lemming.dataplane.sai.PortDualMedia - (*Uint32List)(nil), // 48: lemming.dataplane.sai.Uint32List - (*PortFecModeList)(nil), // 49: lemming.dataplane.sai.PortFecModeList - (*PortFecModeExtendedList)(nil), // 50: lemming.dataplane.sai.PortFecModeExtendedList - (*Uint64List)(nil), // 51: lemming.dataplane.sai.Uint64List - (*PortInterfaceTypeList)(nil), // 52: lemming.dataplane.sai.PortInterfaceTypeList - (*PortAttribute)(nil), // 53: lemming.dataplane.sai.PortAttribute - (*PortPoolAttribute)(nil), // 54: lemming.dataplane.sai.PortPoolAttribute - (PortConnectorFailoverMode)(0), // 55: lemming.dataplane.sai.PortConnectorFailoverMode - (*PortConnectorAttribute)(nil), // 56: lemming.dataplane.sai.PortConnectorAttribute - (*PortSerdesAttribute)(nil), // 57: lemming.dataplane.sai.PortSerdesAttribute + (*PortAttribute)(nil), // 48: lemming.dataplane.sai.PortAttribute + (*PortPoolAttribute)(nil), // 49: lemming.dataplane.sai.PortPoolAttribute + (PortConnectorFailoverMode)(0), // 50: lemming.dataplane.sai.PortConnectorFailoverMode + (*PortConnectorAttribute)(nil), // 51: lemming.dataplane.sai.PortConnectorAttribute + (*PortSerdesAttribute)(nil), // 52: lemming.dataplane.sai.PortSerdesAttribute } var file_dataplane_standalone_proto_port_proto_depIdxs = []int32{ 34, // 0: lemming.dataplane.sai.CreatePortRequest.media_type:type_name -> lemming.dataplane.sai.PortMediaType @@ -5809,82 +5535,69 @@ var file_dataplane_standalone_proto_port_proto_depIdxs = []int32{ 46, // 17: lemming.dataplane.sai.CreatePortRequest.module_type:type_name -> lemming.dataplane.sai.PortModuleType 47, // 18: lemming.dataplane.sai.CreatePortRequest.dual_media:type_name -> lemming.dataplane.sai.PortDualMedia 34, // 19: lemming.dataplane.sai.SetPortAttributeRequest.media_type:type_name -> lemming.dataplane.sai.PortMediaType - 48, // 20: lemming.dataplane.sai.SetPortAttributeRequest.advertised_speed:type_name -> lemming.dataplane.sai.Uint32List - 49, // 21: lemming.dataplane.sai.SetPortAttributeRequest.advertised_fec_mode:type_name -> lemming.dataplane.sai.PortFecModeList - 50, // 22: lemming.dataplane.sai.SetPortAttributeRequest.advertised_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtendedList - 48, // 23: lemming.dataplane.sai.SetPortAttributeRequest.advertised_half_duplex_speed:type_name -> lemming.dataplane.sai.Uint32List - 37, // 24: lemming.dataplane.sai.SetPortAttributeRequest.advertised_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode - 34, // 25: lemming.dataplane.sai.SetPortAttributeRequest.advertised_media_type:type_name -> lemming.dataplane.sai.PortMediaType - 38, // 26: lemming.dataplane.sai.SetPortAttributeRequest.internal_loopback_mode:type_name -> lemming.dataplane.sai.PortInternalLoopbackMode - 35, // 27: lemming.dataplane.sai.SetPortAttributeRequest.fec_mode:type_name -> lemming.dataplane.sai.PortFecMode - 36, // 28: lemming.dataplane.sai.SetPortAttributeRequest.fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended - 37, // 29: lemming.dataplane.sai.SetPortAttributeRequest.global_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode - 51, // 30: lemming.dataplane.sai.SetPortAttributeRequest.ingress_mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 51, // 31: lemming.dataplane.sai.SetPortAttributeRequest.egress_mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 51, // 32: lemming.dataplane.sai.SetPortAttributeRequest.ingress_sample_mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 51, // 33: lemming.dataplane.sai.SetPortAttributeRequest.egress_sample_mirror_session:type_name -> lemming.dataplane.sai.Uint64List - 51, // 34: lemming.dataplane.sai.SetPortAttributeRequest.qos_ingress_buffer_profile_list:type_name -> lemming.dataplane.sai.Uint64List - 51, // 35: lemming.dataplane.sai.SetPortAttributeRequest.qos_egress_buffer_profile_list:type_name -> lemming.dataplane.sai.Uint64List - 39, // 36: lemming.dataplane.sai.SetPortAttributeRequest.priority_flow_control_mode:type_name -> lemming.dataplane.sai.PortPriorityFlowControlMode - 51, // 37: lemming.dataplane.sai.SetPortAttributeRequest.egress_block_port_list:type_name -> lemming.dataplane.sai.Uint64List - 51, // 38: lemming.dataplane.sai.SetPortAttributeRequest.tam_object:type_name -> lemming.dataplane.sai.Uint64List - 48, // 39: lemming.dataplane.sai.SetPortAttributeRequest.serdes_preemphasis:type_name -> lemming.dataplane.sai.Uint32List - 48, // 40: lemming.dataplane.sai.SetPortAttributeRequest.serdes_idriver:type_name -> lemming.dataplane.sai.Uint32List - 48, // 41: lemming.dataplane.sai.SetPortAttributeRequest.serdes_ipredriver:type_name -> lemming.dataplane.sai.Uint32List - 40, // 42: lemming.dataplane.sai.SetPortAttributeRequest.ptp_mode:type_name -> lemming.dataplane.sai.PortPtpMode - 41, // 43: lemming.dataplane.sai.SetPortAttributeRequest.interface_type:type_name -> lemming.dataplane.sai.PortInterfaceType - 52, // 44: lemming.dataplane.sai.SetPortAttributeRequest.advertised_interface_type:type_name -> lemming.dataplane.sai.PortInterfaceTypeList - 42, // 45: lemming.dataplane.sai.SetPortAttributeRequest.prbs_config:type_name -> lemming.dataplane.sai.PortPrbsConfig - 43, // 46: lemming.dataplane.sai.SetPortAttributeRequest.loopback_mode:type_name -> lemming.dataplane.sai.PortLoopbackMode - 44, // 47: lemming.dataplane.sai.SetPortAttributeRequest.mdix_mode_config:type_name -> lemming.dataplane.sai.PortMdixModeConfig - 45, // 48: lemming.dataplane.sai.SetPortAttributeRequest.auto_neg_config_mode:type_name -> lemming.dataplane.sai.PortAutoNegConfigMode - 46, // 49: lemming.dataplane.sai.SetPortAttributeRequest.module_type:type_name -> lemming.dataplane.sai.PortModuleType - 47, // 50: lemming.dataplane.sai.SetPortAttributeRequest.dual_media:type_name -> lemming.dataplane.sai.PortDualMedia - 0, // 51: lemming.dataplane.sai.GetPortAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PortAttr - 53, // 52: lemming.dataplane.sai.GetPortAttributeResponse.attr:type_name -> lemming.dataplane.sai.PortAttribute - 1, // 53: lemming.dataplane.sai.GetPortPoolAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PortPoolAttr - 54, // 54: lemming.dataplane.sai.GetPortPoolAttributeResponse.attr:type_name -> lemming.dataplane.sai.PortPoolAttribute - 55, // 55: lemming.dataplane.sai.CreatePortConnectorRequest.failover_mode:type_name -> lemming.dataplane.sai.PortConnectorFailoverMode - 55, // 56: lemming.dataplane.sai.SetPortConnectorAttributeRequest.failover_mode:type_name -> lemming.dataplane.sai.PortConnectorFailoverMode - 2, // 57: lemming.dataplane.sai.GetPortConnectorAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PortConnectorAttr - 56, // 58: lemming.dataplane.sai.GetPortConnectorAttributeResponse.attr:type_name -> lemming.dataplane.sai.PortConnectorAttribute - 3, // 59: lemming.dataplane.sai.GetPortSerdesAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PortSerdesAttr - 57, // 60: lemming.dataplane.sai.GetPortSerdesAttributeResponse.attr:type_name -> lemming.dataplane.sai.PortSerdesAttribute - 4, // 61: lemming.dataplane.sai.Port.CreatePort:input_type -> lemming.dataplane.sai.CreatePortRequest - 6, // 62: lemming.dataplane.sai.Port.RemovePort:input_type -> lemming.dataplane.sai.RemovePortRequest - 8, // 63: lemming.dataplane.sai.Port.SetPortAttribute:input_type -> lemming.dataplane.sai.SetPortAttributeRequest - 10, // 64: lemming.dataplane.sai.Port.GetPortAttribute:input_type -> lemming.dataplane.sai.GetPortAttributeRequest - 12, // 65: lemming.dataplane.sai.Port.CreatePortPool:input_type -> lemming.dataplane.sai.CreatePortPoolRequest - 14, // 66: lemming.dataplane.sai.Port.RemovePortPool:input_type -> lemming.dataplane.sai.RemovePortPoolRequest - 16, // 67: lemming.dataplane.sai.Port.SetPortPoolAttribute:input_type -> lemming.dataplane.sai.SetPortPoolAttributeRequest - 18, // 68: lemming.dataplane.sai.Port.GetPortPoolAttribute:input_type -> lemming.dataplane.sai.GetPortPoolAttributeRequest - 20, // 69: lemming.dataplane.sai.Port.CreatePortConnector:input_type -> lemming.dataplane.sai.CreatePortConnectorRequest - 22, // 70: lemming.dataplane.sai.Port.RemovePortConnector:input_type -> lemming.dataplane.sai.RemovePortConnectorRequest - 24, // 71: lemming.dataplane.sai.Port.SetPortConnectorAttribute:input_type -> lemming.dataplane.sai.SetPortConnectorAttributeRequest - 26, // 72: lemming.dataplane.sai.Port.GetPortConnectorAttribute:input_type -> lemming.dataplane.sai.GetPortConnectorAttributeRequest - 28, // 73: lemming.dataplane.sai.Port.CreatePortSerdes:input_type -> lemming.dataplane.sai.CreatePortSerdesRequest - 30, // 74: lemming.dataplane.sai.Port.RemovePortSerdes:input_type -> lemming.dataplane.sai.RemovePortSerdesRequest - 32, // 75: lemming.dataplane.sai.Port.GetPortSerdesAttribute:input_type -> lemming.dataplane.sai.GetPortSerdesAttributeRequest - 5, // 76: lemming.dataplane.sai.Port.CreatePort:output_type -> lemming.dataplane.sai.CreatePortResponse - 7, // 77: lemming.dataplane.sai.Port.RemovePort:output_type -> lemming.dataplane.sai.RemovePortResponse - 9, // 78: lemming.dataplane.sai.Port.SetPortAttribute:output_type -> lemming.dataplane.sai.SetPortAttributeResponse - 11, // 79: lemming.dataplane.sai.Port.GetPortAttribute:output_type -> lemming.dataplane.sai.GetPortAttributeResponse - 13, // 80: lemming.dataplane.sai.Port.CreatePortPool:output_type -> lemming.dataplane.sai.CreatePortPoolResponse - 15, // 81: lemming.dataplane.sai.Port.RemovePortPool:output_type -> lemming.dataplane.sai.RemovePortPoolResponse - 17, // 82: lemming.dataplane.sai.Port.SetPortPoolAttribute:output_type -> lemming.dataplane.sai.SetPortPoolAttributeResponse - 19, // 83: lemming.dataplane.sai.Port.GetPortPoolAttribute:output_type -> lemming.dataplane.sai.GetPortPoolAttributeResponse - 21, // 84: lemming.dataplane.sai.Port.CreatePortConnector:output_type -> lemming.dataplane.sai.CreatePortConnectorResponse - 23, // 85: lemming.dataplane.sai.Port.RemovePortConnector:output_type -> lemming.dataplane.sai.RemovePortConnectorResponse - 25, // 86: lemming.dataplane.sai.Port.SetPortConnectorAttribute:output_type -> lemming.dataplane.sai.SetPortConnectorAttributeResponse - 27, // 87: lemming.dataplane.sai.Port.GetPortConnectorAttribute:output_type -> lemming.dataplane.sai.GetPortConnectorAttributeResponse - 29, // 88: lemming.dataplane.sai.Port.CreatePortSerdes:output_type -> lemming.dataplane.sai.CreatePortSerdesResponse - 31, // 89: lemming.dataplane.sai.Port.RemovePortSerdes:output_type -> lemming.dataplane.sai.RemovePortSerdesResponse - 33, // 90: lemming.dataplane.sai.Port.GetPortSerdesAttribute:output_type -> lemming.dataplane.sai.GetPortSerdesAttributeResponse - 76, // [76:91] is the sub-list for method output_type - 61, // [61:76] is the sub-list for method input_type - 61, // [61:61] is the sub-list for extension type_name - 61, // [61:61] is the sub-list for extension extendee - 0, // [0:61] is the sub-list for field type_name + 35, // 20: lemming.dataplane.sai.SetPortAttributeRequest.advertised_fec_mode:type_name -> lemming.dataplane.sai.PortFecMode + 36, // 21: lemming.dataplane.sai.SetPortAttributeRequest.advertised_fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended + 37, // 22: lemming.dataplane.sai.SetPortAttributeRequest.advertised_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode + 34, // 23: lemming.dataplane.sai.SetPortAttributeRequest.advertised_media_type:type_name -> lemming.dataplane.sai.PortMediaType + 38, // 24: lemming.dataplane.sai.SetPortAttributeRequest.internal_loopback_mode:type_name -> lemming.dataplane.sai.PortInternalLoopbackMode + 35, // 25: lemming.dataplane.sai.SetPortAttributeRequest.fec_mode:type_name -> lemming.dataplane.sai.PortFecMode + 36, // 26: lemming.dataplane.sai.SetPortAttributeRequest.fec_mode_extended:type_name -> lemming.dataplane.sai.PortFecModeExtended + 37, // 27: lemming.dataplane.sai.SetPortAttributeRequest.global_flow_control_mode:type_name -> lemming.dataplane.sai.PortFlowControlMode + 39, // 28: lemming.dataplane.sai.SetPortAttributeRequest.priority_flow_control_mode:type_name -> lemming.dataplane.sai.PortPriorityFlowControlMode + 40, // 29: lemming.dataplane.sai.SetPortAttributeRequest.ptp_mode:type_name -> lemming.dataplane.sai.PortPtpMode + 41, // 30: lemming.dataplane.sai.SetPortAttributeRequest.interface_type:type_name -> lemming.dataplane.sai.PortInterfaceType + 41, // 31: lemming.dataplane.sai.SetPortAttributeRequest.advertised_interface_type:type_name -> lemming.dataplane.sai.PortInterfaceType + 42, // 32: lemming.dataplane.sai.SetPortAttributeRequest.prbs_config:type_name -> lemming.dataplane.sai.PortPrbsConfig + 43, // 33: lemming.dataplane.sai.SetPortAttributeRequest.loopback_mode:type_name -> lemming.dataplane.sai.PortLoopbackMode + 44, // 34: lemming.dataplane.sai.SetPortAttributeRequest.mdix_mode_config:type_name -> lemming.dataplane.sai.PortMdixModeConfig + 45, // 35: lemming.dataplane.sai.SetPortAttributeRequest.auto_neg_config_mode:type_name -> lemming.dataplane.sai.PortAutoNegConfigMode + 46, // 36: lemming.dataplane.sai.SetPortAttributeRequest.module_type:type_name -> lemming.dataplane.sai.PortModuleType + 47, // 37: lemming.dataplane.sai.SetPortAttributeRequest.dual_media:type_name -> lemming.dataplane.sai.PortDualMedia + 0, // 38: lemming.dataplane.sai.GetPortAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PortAttr + 48, // 39: lemming.dataplane.sai.GetPortAttributeResponse.attr:type_name -> lemming.dataplane.sai.PortAttribute + 1, // 40: lemming.dataplane.sai.GetPortPoolAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PortPoolAttr + 49, // 41: lemming.dataplane.sai.GetPortPoolAttributeResponse.attr:type_name -> lemming.dataplane.sai.PortPoolAttribute + 50, // 42: lemming.dataplane.sai.CreatePortConnectorRequest.failover_mode:type_name -> lemming.dataplane.sai.PortConnectorFailoverMode + 50, // 43: lemming.dataplane.sai.SetPortConnectorAttributeRequest.failover_mode:type_name -> lemming.dataplane.sai.PortConnectorFailoverMode + 2, // 44: lemming.dataplane.sai.GetPortConnectorAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PortConnectorAttr + 51, // 45: lemming.dataplane.sai.GetPortConnectorAttributeResponse.attr:type_name -> lemming.dataplane.sai.PortConnectorAttribute + 3, // 46: lemming.dataplane.sai.GetPortSerdesAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.PortSerdesAttr + 52, // 47: lemming.dataplane.sai.GetPortSerdesAttributeResponse.attr:type_name -> lemming.dataplane.sai.PortSerdesAttribute + 4, // 48: lemming.dataplane.sai.Port.CreatePort:input_type -> lemming.dataplane.sai.CreatePortRequest + 6, // 49: lemming.dataplane.sai.Port.RemovePort:input_type -> lemming.dataplane.sai.RemovePortRequest + 8, // 50: lemming.dataplane.sai.Port.SetPortAttribute:input_type -> lemming.dataplane.sai.SetPortAttributeRequest + 10, // 51: lemming.dataplane.sai.Port.GetPortAttribute:input_type -> lemming.dataplane.sai.GetPortAttributeRequest + 12, // 52: lemming.dataplane.sai.Port.CreatePortPool:input_type -> lemming.dataplane.sai.CreatePortPoolRequest + 14, // 53: lemming.dataplane.sai.Port.RemovePortPool:input_type -> lemming.dataplane.sai.RemovePortPoolRequest + 16, // 54: lemming.dataplane.sai.Port.SetPortPoolAttribute:input_type -> lemming.dataplane.sai.SetPortPoolAttributeRequest + 18, // 55: lemming.dataplane.sai.Port.GetPortPoolAttribute:input_type -> lemming.dataplane.sai.GetPortPoolAttributeRequest + 20, // 56: lemming.dataplane.sai.Port.CreatePortConnector:input_type -> lemming.dataplane.sai.CreatePortConnectorRequest + 22, // 57: lemming.dataplane.sai.Port.RemovePortConnector:input_type -> lemming.dataplane.sai.RemovePortConnectorRequest + 24, // 58: lemming.dataplane.sai.Port.SetPortConnectorAttribute:input_type -> lemming.dataplane.sai.SetPortConnectorAttributeRequest + 26, // 59: lemming.dataplane.sai.Port.GetPortConnectorAttribute:input_type -> lemming.dataplane.sai.GetPortConnectorAttributeRequest + 28, // 60: lemming.dataplane.sai.Port.CreatePortSerdes:input_type -> lemming.dataplane.sai.CreatePortSerdesRequest + 30, // 61: lemming.dataplane.sai.Port.RemovePortSerdes:input_type -> lemming.dataplane.sai.RemovePortSerdesRequest + 32, // 62: lemming.dataplane.sai.Port.GetPortSerdesAttribute:input_type -> lemming.dataplane.sai.GetPortSerdesAttributeRequest + 5, // 63: lemming.dataplane.sai.Port.CreatePort:output_type -> lemming.dataplane.sai.CreatePortResponse + 7, // 64: lemming.dataplane.sai.Port.RemovePort:output_type -> lemming.dataplane.sai.RemovePortResponse + 9, // 65: lemming.dataplane.sai.Port.SetPortAttribute:output_type -> lemming.dataplane.sai.SetPortAttributeResponse + 11, // 66: lemming.dataplane.sai.Port.GetPortAttribute:output_type -> lemming.dataplane.sai.GetPortAttributeResponse + 13, // 67: lemming.dataplane.sai.Port.CreatePortPool:output_type -> lemming.dataplane.sai.CreatePortPoolResponse + 15, // 68: lemming.dataplane.sai.Port.RemovePortPool:output_type -> lemming.dataplane.sai.RemovePortPoolResponse + 17, // 69: lemming.dataplane.sai.Port.SetPortPoolAttribute:output_type -> lemming.dataplane.sai.SetPortPoolAttributeResponse + 19, // 70: lemming.dataplane.sai.Port.GetPortPoolAttribute:output_type -> lemming.dataplane.sai.GetPortPoolAttributeResponse + 21, // 71: lemming.dataplane.sai.Port.CreatePortConnector:output_type -> lemming.dataplane.sai.CreatePortConnectorResponse + 23, // 72: lemming.dataplane.sai.Port.RemovePortConnector:output_type -> lemming.dataplane.sai.RemovePortConnectorResponse + 25, // 73: lemming.dataplane.sai.Port.SetPortConnectorAttribute:output_type -> lemming.dataplane.sai.SetPortConnectorAttributeResponse + 27, // 74: lemming.dataplane.sai.Port.GetPortConnectorAttribute:output_type -> lemming.dataplane.sai.GetPortConnectorAttributeResponse + 29, // 75: lemming.dataplane.sai.Port.CreatePortSerdes:output_type -> lemming.dataplane.sai.CreatePortSerdesResponse + 31, // 76: lemming.dataplane.sai.Port.RemovePortSerdes:output_type -> lemming.dataplane.sai.RemovePortSerdesResponse + 33, // 77: lemming.dataplane.sai.Port.GetPortSerdesAttribute:output_type -> lemming.dataplane.sai.GetPortSerdesAttributeResponse + 63, // [63:78] is the sub-list for method output_type + 48, // [48:63] is the sub-list for method input_type + 48, // [48:48] is the sub-list for extension type_name + 48, // [48:48] is the sub-list for extension extendee + 0, // [0:48] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_port_proto_init() } @@ -6255,105 +5968,13 @@ func file_dataplane_standalone_proto_port_proto_init() { } } } - file_dataplane_standalone_proto_port_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetPortAttributeRequest_Speed)(nil), - (*SetPortAttributeRequest_AutoNegMode)(nil), - (*SetPortAttributeRequest_AdminState)(nil), - (*SetPortAttributeRequest_MediaType)(nil), - (*SetPortAttributeRequest_AdvertisedSpeed)(nil), - (*SetPortAttributeRequest_AdvertisedFecMode)(nil), - (*SetPortAttributeRequest_AdvertisedFecModeExtended)(nil), - (*SetPortAttributeRequest_AdvertisedHalfDuplexSpeed)(nil), - (*SetPortAttributeRequest_AdvertisedAutoNegMode)(nil), - (*SetPortAttributeRequest_AdvertisedFlowControlMode)(nil), - (*SetPortAttributeRequest_AdvertisedAsymmetricPauseMode)(nil), - (*SetPortAttributeRequest_AdvertisedMediaType)(nil), - (*SetPortAttributeRequest_AdvertisedOuiCode)(nil), - (*SetPortAttributeRequest_PortVlanId)(nil), - (*SetPortAttributeRequest_DefaultVlanPriority)(nil), - (*SetPortAttributeRequest_DropUntagged)(nil), - (*SetPortAttributeRequest_DropTagged)(nil), - (*SetPortAttributeRequest_InternalLoopbackMode)(nil), - (*SetPortAttributeRequest_UseExtendedFec)(nil), - (*SetPortAttributeRequest_FecMode)(nil), - (*SetPortAttributeRequest_FecModeExtended)(nil), - (*SetPortAttributeRequest_UpdateDscp)(nil), - (*SetPortAttributeRequest_Mtu)(nil), - (*SetPortAttributeRequest_FloodStormControlPolicerId)(nil), - (*SetPortAttributeRequest_BroadcastStormControlPolicerId)(nil), - (*SetPortAttributeRequest_MulticastStormControlPolicerId)(nil), - (*SetPortAttributeRequest_GlobalFlowControlMode)(nil), - (*SetPortAttributeRequest_IngressAcl)(nil), - (*SetPortAttributeRequest_EgressAcl)(nil), - (*SetPortAttributeRequest_IngressMacsecAcl)(nil), - (*SetPortAttributeRequest_EgressMacsecAcl)(nil), - (*SetPortAttributeRequest_IngressMirrorSession)(nil), - (*SetPortAttributeRequest_EgressMirrorSession)(nil), - (*SetPortAttributeRequest_IngressSamplepacketEnable)(nil), - (*SetPortAttributeRequest_EgressSamplepacketEnable)(nil), - (*SetPortAttributeRequest_IngressSampleMirrorSession)(nil), - (*SetPortAttributeRequest_EgressSampleMirrorSession)(nil), - (*SetPortAttributeRequest_PolicerId)(nil), - (*SetPortAttributeRequest_QosDefaultTc)(nil), - (*SetPortAttributeRequest_QosDot1PToTcMap)(nil), - (*SetPortAttributeRequest_QosDot1PToColorMap)(nil), - (*SetPortAttributeRequest_QosDscpToTcMap)(nil), - (*SetPortAttributeRequest_QosDscpToColorMap)(nil), - (*SetPortAttributeRequest_QosTcToQueueMap)(nil), - (*SetPortAttributeRequest_QosTcAndColorToDot1PMap)(nil), - (*SetPortAttributeRequest_QosTcAndColorToDscpMap)(nil), - (*SetPortAttributeRequest_QosTcToPriorityGroupMap)(nil), - (*SetPortAttributeRequest_QosPfcPriorityToPriorityGroupMap)(nil), - (*SetPortAttributeRequest_QosPfcPriorityToQueueMap)(nil), - (*SetPortAttributeRequest_QosSchedulerProfileId)(nil), - (*SetPortAttributeRequest_QosIngressBufferProfileList)(nil), - (*SetPortAttributeRequest_QosEgressBufferProfileList)(nil), - (*SetPortAttributeRequest_PriorityFlowControlMode)(nil), - (*SetPortAttributeRequest_PriorityFlowControl)(nil), - (*SetPortAttributeRequest_PriorityFlowControlRx)(nil), - (*SetPortAttributeRequest_PriorityFlowControlTx)(nil), - (*SetPortAttributeRequest_MetaData)(nil), - (*SetPortAttributeRequest_EgressBlockPortList)(nil), - (*SetPortAttributeRequest_HwProfileId)(nil), - (*SetPortAttributeRequest_EeeEnable)(nil), - (*SetPortAttributeRequest_EeeIdleTime)(nil), - (*SetPortAttributeRequest_EeeWakeTime)(nil), - (*SetPortAttributeRequest_IsolationGroup)(nil), - (*SetPortAttributeRequest_PktTxEnable)(nil), - (*SetPortAttributeRequest_TamObject)(nil), - (*SetPortAttributeRequest_SerdesPreemphasis)(nil), - (*SetPortAttributeRequest_SerdesIdriver)(nil), - (*SetPortAttributeRequest_SerdesIpredriver)(nil), - (*SetPortAttributeRequest_LinkTrainingEnable)(nil), - (*SetPortAttributeRequest_PtpMode)(nil), - (*SetPortAttributeRequest_InterfaceType)(nil), - (*SetPortAttributeRequest_AdvertisedInterfaceType)(nil), - (*SetPortAttributeRequest_PrbsPolynomial)(nil), - (*SetPortAttributeRequest_PrbsConfig)(nil), - (*SetPortAttributeRequest_DisableDecrementTtl)(nil), - (*SetPortAttributeRequest_QosMplsExpToTcMap)(nil), - (*SetPortAttributeRequest_QosMplsExpToColorMap)(nil), - (*SetPortAttributeRequest_QosTcAndColorToMplsExpMap)(nil), - (*SetPortAttributeRequest_Tpid)(nil), - (*SetPortAttributeRequest_AutoNegFecModeOverride)(nil), - (*SetPortAttributeRequest_LoopbackMode)(nil), - (*SetPortAttributeRequest_MdixModeConfig)(nil), - (*SetPortAttributeRequest_AutoNegConfigMode)(nil), - (*SetPortAttributeRequest_X1000XSgmiiSlaveAutodetect)(nil), - (*SetPortAttributeRequest_ModuleType)(nil), - (*SetPortAttributeRequest_DualMedia)(nil), - (*SetPortAttributeRequest_Ipg)(nil), - (*SetPortAttributeRequest_GlobalFlowControlForward)(nil), - (*SetPortAttributeRequest_PriorityFlowControlForward)(nil), - (*SetPortAttributeRequest_QosDscpToForwardingClassMap)(nil), - (*SetPortAttributeRequest_QosMplsExpToForwardingClassMap)(nil), - } - file_dataplane_standalone_proto_port_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetPortPoolAttributeRequest_QosWredProfileId)(nil), - } - file_dataplane_standalone_proto_port_proto_msgTypes[20].OneofWrappers = []interface{}{ - (*SetPortConnectorAttributeRequest_FailoverMode)(nil), - } + file_dataplane_standalone_proto_port_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_port_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_port_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_port_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_port_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_port_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_port_proto_msgTypes[24].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/port.proto b/dataplane/standalone/proto/port.proto index 3e8cd604..41980b4c 100644 --- a/dataplane/standalone/proto/port.proto +++ b/dataplane/standalone/proto/port.proto @@ -7,586 +7,554 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum PortAttr { - PORT_ATTR_UNSPECIFIED = 0; - PORT_ATTR_TYPE = 1; - PORT_ATTR_OPER_STATUS = 2; - PORT_ATTR_SUPPORTED_BREAKOUT_MODE_TYPE = 3; - PORT_ATTR_CURRENT_BREAKOUT_MODE_TYPE = 4; - PORT_ATTR_QOS_NUMBER_OF_QUEUES = 5; - PORT_ATTR_QOS_QUEUE_LIST = 6; - PORT_ATTR_QOS_NUMBER_OF_SCHEDULER_GROUPS = 7; - PORT_ATTR_QOS_SCHEDULER_GROUP_LIST = 8; - PORT_ATTR_QOS_MAXIMUM_HEADROOM_SIZE = 9; - PORT_ATTR_SUPPORTED_SPEED = 10; - PORT_ATTR_SUPPORTED_FEC_MODE = 11; - PORT_ATTR_SUPPORTED_FEC_MODE_EXTENDED = 12; - PORT_ATTR_SUPPORTED_HALF_DUPLEX_SPEED = 13; - PORT_ATTR_SUPPORTED_AUTO_NEG_MODE = 14; - PORT_ATTR_SUPPORTED_FLOW_CONTROL_MODE = 15; - PORT_ATTR_SUPPORTED_ASYMMETRIC_PAUSE_MODE = 16; - PORT_ATTR_SUPPORTED_MEDIA_TYPE = 17; - PORT_ATTR_REMOTE_ADVERTISED_SPEED = 18; - PORT_ATTR_REMOTE_ADVERTISED_FEC_MODE = 19; - PORT_ATTR_REMOTE_ADVERTISED_FEC_MODE_EXTENDED = 20; - PORT_ATTR_REMOTE_ADVERTISED_HALF_DUPLEX_SPEED = 21; - PORT_ATTR_REMOTE_ADVERTISED_AUTO_NEG_MODE = 22; - PORT_ATTR_REMOTE_ADVERTISED_FLOW_CONTROL_MODE = 23; - PORT_ATTR_REMOTE_ADVERTISED_ASYMMETRIC_PAUSE_MODE = 24; - PORT_ATTR_REMOTE_ADVERTISED_MEDIA_TYPE = 25; - PORT_ATTR_REMOTE_ADVERTISED_OUI_CODE = 26; - PORT_ATTR_NUMBER_OF_INGRESS_PRIORITY_GROUPS = 27; - PORT_ATTR_INGRESS_PRIORITY_GROUP_LIST = 28; - PORT_ATTR_EYE_VALUES = 29; - PORT_ATTR_OPER_SPEED = 30; - PORT_ATTR_HW_LANE_LIST = 31; - PORT_ATTR_SPEED = 32; - PORT_ATTR_FULL_DUPLEX_MODE = 33; - PORT_ATTR_AUTO_NEG_MODE = 34; - PORT_ATTR_ADMIN_STATE = 35; - PORT_ATTR_MEDIA_TYPE = 36; - PORT_ATTR_ADVERTISED_SPEED = 37; - PORT_ATTR_ADVERTISED_FEC_MODE = 38; - PORT_ATTR_ADVERTISED_FEC_MODE_EXTENDED = 39; - PORT_ATTR_ADVERTISED_HALF_DUPLEX_SPEED = 40; - PORT_ATTR_ADVERTISED_AUTO_NEG_MODE = 41; - PORT_ATTR_ADVERTISED_FLOW_CONTROL_MODE = 42; - PORT_ATTR_ADVERTISED_ASYMMETRIC_PAUSE_MODE = 43; - PORT_ATTR_ADVERTISED_MEDIA_TYPE = 44; - PORT_ATTR_ADVERTISED_OUI_CODE = 45; - PORT_ATTR_PORT_VLAN_ID = 46; - PORT_ATTR_DEFAULT_VLAN_PRIORITY = 47; - PORT_ATTR_DROP_UNTAGGED = 48; - PORT_ATTR_DROP_TAGGED = 49; - PORT_ATTR_INTERNAL_LOOPBACK_MODE = 50; - PORT_ATTR_USE_EXTENDED_FEC = 51; - PORT_ATTR_FEC_MODE = 52; - PORT_ATTR_FEC_MODE_EXTENDED = 53; - PORT_ATTR_UPDATE_DSCP = 54; - PORT_ATTR_MTU = 55; - PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID = 56; - PORT_ATTR_BROADCAST_STORM_CONTROL_POLICER_ID = 57; - PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID = 58; - PORT_ATTR_GLOBAL_FLOW_CONTROL_MODE = 59; - PORT_ATTR_INGRESS_ACL = 60; - PORT_ATTR_EGRESS_ACL = 61; - PORT_ATTR_INGRESS_MACSEC_ACL = 62; - PORT_ATTR_EGRESS_MACSEC_ACL = 63; - PORT_ATTR_MACSEC_PORT_LIST = 64; - PORT_ATTR_INGRESS_MIRROR_SESSION = 65; - PORT_ATTR_EGRESS_MIRROR_SESSION = 66; - PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE = 67; - PORT_ATTR_EGRESS_SAMPLEPACKET_ENABLE = 68; - PORT_ATTR_INGRESS_SAMPLE_MIRROR_SESSION = 69; - PORT_ATTR_EGRESS_SAMPLE_MIRROR_SESSION = 70; - PORT_ATTR_POLICER_ID = 71; - PORT_ATTR_QOS_DEFAULT_TC = 72; - PORT_ATTR_QOS_DOT1P_TO_TC_MAP = 73; - PORT_ATTR_QOS_DOT1P_TO_COLOR_MAP = 74; - PORT_ATTR_QOS_DSCP_TO_TC_MAP = 75; - PORT_ATTR_QOS_DSCP_TO_COLOR_MAP = 76; - PORT_ATTR_QOS_TC_TO_QUEUE_MAP = 77; - PORT_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP = 78; - PORT_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP = 79; - PORT_ATTR_QOS_TC_TO_PRIORITY_GROUP_MAP = 80; - PORT_ATTR_QOS_PFC_PRIORITY_TO_PRIORITY_GROUP_MAP = 81; - PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP = 82; - PORT_ATTR_QOS_SCHEDULER_PROFILE_ID = 83; - PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST = 84; - PORT_ATTR_QOS_EGRESS_BUFFER_PROFILE_LIST = 85; - PORT_ATTR_PRIORITY_FLOW_CONTROL_MODE = 86; - PORT_ATTR_PRIORITY_FLOW_CONTROL = 87; - PORT_ATTR_PRIORITY_FLOW_CONTROL_RX = 88; - PORT_ATTR_PRIORITY_FLOW_CONTROL_TX = 89; - PORT_ATTR_META_DATA = 90; - PORT_ATTR_EGRESS_BLOCK_PORT_LIST = 91; - PORT_ATTR_HW_PROFILE_ID = 92; - PORT_ATTR_EEE_ENABLE = 93; - PORT_ATTR_EEE_IDLE_TIME = 94; - PORT_ATTR_EEE_WAKE_TIME = 95; - PORT_ATTR_PORT_POOL_LIST = 96; - PORT_ATTR_ISOLATION_GROUP = 97; - PORT_ATTR_PKT_TX_ENABLE = 98; - PORT_ATTR_TAM_OBJECT = 99; - PORT_ATTR_SERDES_PREEMPHASIS = 100; - PORT_ATTR_SERDES_IDRIVER = 101; - PORT_ATTR_SERDES_IPREDRIVER = 102; - PORT_ATTR_LINK_TRAINING_ENABLE = 103; - PORT_ATTR_PTP_MODE = 104; - PORT_ATTR_INTERFACE_TYPE = 105; - PORT_ATTR_ADVERTISED_INTERFACE_TYPE = 106; - PORT_ATTR_REFERENCE_CLOCK = 107; - PORT_ATTR_PRBS_POLYNOMIAL = 108; - PORT_ATTR_PORT_SERDES_ID = 109; - PORT_ATTR_LINK_TRAINING_FAILURE_STATUS = 110; - PORT_ATTR_LINK_TRAINING_RX_STATUS = 111; - PORT_ATTR_PRBS_CONFIG = 112; - PORT_ATTR_PRBS_LOCK_STATUS = 113; - PORT_ATTR_PRBS_LOCK_LOSS_STATUS = 114; - PORT_ATTR_PRBS_RX_STATUS = 115; - PORT_ATTR_PRBS_RX_STATE = 116; - PORT_ATTR_AUTO_NEG_STATUS = 117; - PORT_ATTR_DISABLE_DECREMENT_TTL = 118; - PORT_ATTR_QOS_MPLS_EXP_TO_TC_MAP = 119; - PORT_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP = 120; - PORT_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP = 121; - PORT_ATTR_TPID = 122; - PORT_ATTR_ERR_STATUS_LIST = 123; - PORT_ATTR_FABRIC_ATTACHED = 124; - PORT_ATTR_FABRIC_ATTACHED_SWITCH_TYPE = 125; - PORT_ATTR_FABRIC_ATTACHED_SWITCH_ID = 126; - PORT_ATTR_FABRIC_ATTACHED_PORT_INDEX = 127; - PORT_ATTR_FABRIC_REACHABILITY = 128; - PORT_ATTR_SYSTEM_PORT = 129; - PORT_ATTR_AUTO_NEG_FEC_MODE_OVERRIDE = 130; - PORT_ATTR_LOOPBACK_MODE = 131; - PORT_ATTR_MDIX_MODE_STATUS = 132; - PORT_ATTR_MDIX_MODE_CONFIG = 133; - PORT_ATTR_AUTO_NEG_CONFIG_MODE = 134; - PORT_ATTR_1000X_SGMII_SLAVE_AUTODETECT = 135; - PORT_ATTR_MODULE_TYPE = 136; - PORT_ATTR_DUAL_MEDIA = 137; - PORT_ATTR_AUTO_NEG_FEC_MODE_EXTENDED = 138; - PORT_ATTR_IPG = 139; - PORT_ATTR_GLOBAL_FLOW_CONTROL_FORWARD = 140; - PORT_ATTR_PRIORITY_FLOW_CONTROL_FORWARD = 141; - PORT_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP = 142; - PORT_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP = 143; - PORT_ATTR_IPSEC_PORT = 144; + PORT_ATTR_UNSPECIFIED = 0; + PORT_ATTR_TYPE = 1; + PORT_ATTR_OPER_STATUS = 2; + PORT_ATTR_SUPPORTED_BREAKOUT_MODE_TYPE = 3; + PORT_ATTR_CURRENT_BREAKOUT_MODE_TYPE = 4; + PORT_ATTR_QOS_NUMBER_OF_QUEUES = 5; + PORT_ATTR_QOS_QUEUE_LIST = 6; + PORT_ATTR_QOS_NUMBER_OF_SCHEDULER_GROUPS = 7; + PORT_ATTR_QOS_SCHEDULER_GROUP_LIST = 8; + PORT_ATTR_QOS_MAXIMUM_HEADROOM_SIZE = 9; + PORT_ATTR_SUPPORTED_SPEED = 10; + PORT_ATTR_SUPPORTED_FEC_MODE = 11; + PORT_ATTR_SUPPORTED_FEC_MODE_EXTENDED = 12; + PORT_ATTR_SUPPORTED_HALF_DUPLEX_SPEED = 13; + PORT_ATTR_SUPPORTED_AUTO_NEG_MODE = 14; + PORT_ATTR_SUPPORTED_FLOW_CONTROL_MODE = 15; + PORT_ATTR_SUPPORTED_ASYMMETRIC_PAUSE_MODE = 16; + PORT_ATTR_SUPPORTED_MEDIA_TYPE = 17; + PORT_ATTR_REMOTE_ADVERTISED_SPEED = 18; + PORT_ATTR_REMOTE_ADVERTISED_FEC_MODE = 19; + PORT_ATTR_REMOTE_ADVERTISED_FEC_MODE_EXTENDED = 20; + PORT_ATTR_REMOTE_ADVERTISED_HALF_DUPLEX_SPEED = 21; + PORT_ATTR_REMOTE_ADVERTISED_AUTO_NEG_MODE = 22; + PORT_ATTR_REMOTE_ADVERTISED_FLOW_CONTROL_MODE = 23; + PORT_ATTR_REMOTE_ADVERTISED_ASYMMETRIC_PAUSE_MODE = 24; + PORT_ATTR_REMOTE_ADVERTISED_MEDIA_TYPE = 25; + PORT_ATTR_REMOTE_ADVERTISED_OUI_CODE = 26; + PORT_ATTR_NUMBER_OF_INGRESS_PRIORITY_GROUPS = 27; + PORT_ATTR_INGRESS_PRIORITY_GROUP_LIST = 28; + PORT_ATTR_EYE_VALUES = 29; + PORT_ATTR_OPER_SPEED = 30; + PORT_ATTR_HW_LANE_LIST = 31; + PORT_ATTR_SPEED = 32; + PORT_ATTR_FULL_DUPLEX_MODE = 33; + PORT_ATTR_AUTO_NEG_MODE = 34; + PORT_ATTR_ADMIN_STATE = 35; + PORT_ATTR_MEDIA_TYPE = 36; + PORT_ATTR_ADVERTISED_SPEED = 37; + PORT_ATTR_ADVERTISED_FEC_MODE = 38; + PORT_ATTR_ADVERTISED_FEC_MODE_EXTENDED = 39; + PORT_ATTR_ADVERTISED_HALF_DUPLEX_SPEED = 40; + PORT_ATTR_ADVERTISED_AUTO_NEG_MODE = 41; + PORT_ATTR_ADVERTISED_FLOW_CONTROL_MODE = 42; + PORT_ATTR_ADVERTISED_ASYMMETRIC_PAUSE_MODE = 43; + PORT_ATTR_ADVERTISED_MEDIA_TYPE = 44; + PORT_ATTR_ADVERTISED_OUI_CODE = 45; + PORT_ATTR_PORT_VLAN_ID = 46; + PORT_ATTR_DEFAULT_VLAN_PRIORITY = 47; + PORT_ATTR_DROP_UNTAGGED = 48; + PORT_ATTR_DROP_TAGGED = 49; + PORT_ATTR_INTERNAL_LOOPBACK_MODE = 50; + PORT_ATTR_USE_EXTENDED_FEC = 51; + PORT_ATTR_FEC_MODE = 52; + PORT_ATTR_FEC_MODE_EXTENDED = 53; + PORT_ATTR_UPDATE_DSCP = 54; + PORT_ATTR_MTU = 55; + PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID = 56; + PORT_ATTR_BROADCAST_STORM_CONTROL_POLICER_ID = 57; + PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID = 58; + PORT_ATTR_GLOBAL_FLOW_CONTROL_MODE = 59; + PORT_ATTR_INGRESS_ACL = 60; + PORT_ATTR_EGRESS_ACL = 61; + PORT_ATTR_INGRESS_MACSEC_ACL = 62; + PORT_ATTR_EGRESS_MACSEC_ACL = 63; + PORT_ATTR_MACSEC_PORT_LIST = 64; + PORT_ATTR_INGRESS_MIRROR_SESSION = 65; + PORT_ATTR_EGRESS_MIRROR_SESSION = 66; + PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE = 67; + PORT_ATTR_EGRESS_SAMPLEPACKET_ENABLE = 68; + PORT_ATTR_INGRESS_SAMPLE_MIRROR_SESSION = 69; + PORT_ATTR_EGRESS_SAMPLE_MIRROR_SESSION = 70; + PORT_ATTR_POLICER_ID = 71; + PORT_ATTR_QOS_DEFAULT_TC = 72; + PORT_ATTR_QOS_DOT1P_TO_TC_MAP = 73; + PORT_ATTR_QOS_DOT1P_TO_COLOR_MAP = 74; + PORT_ATTR_QOS_DSCP_TO_TC_MAP = 75; + PORT_ATTR_QOS_DSCP_TO_COLOR_MAP = 76; + PORT_ATTR_QOS_TC_TO_QUEUE_MAP = 77; + PORT_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP = 78; + PORT_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP = 79; + PORT_ATTR_QOS_TC_TO_PRIORITY_GROUP_MAP = 80; + PORT_ATTR_QOS_PFC_PRIORITY_TO_PRIORITY_GROUP_MAP = 81; + PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP = 82; + PORT_ATTR_QOS_SCHEDULER_PROFILE_ID = 83; + PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST = 84; + PORT_ATTR_QOS_EGRESS_BUFFER_PROFILE_LIST = 85; + PORT_ATTR_PRIORITY_FLOW_CONTROL_MODE = 86; + PORT_ATTR_PRIORITY_FLOW_CONTROL = 87; + PORT_ATTR_PRIORITY_FLOW_CONTROL_RX = 88; + PORT_ATTR_PRIORITY_FLOW_CONTROL_TX = 89; + PORT_ATTR_META_DATA = 90; + PORT_ATTR_EGRESS_BLOCK_PORT_LIST = 91; + PORT_ATTR_HW_PROFILE_ID = 92; + PORT_ATTR_EEE_ENABLE = 93; + PORT_ATTR_EEE_IDLE_TIME = 94; + PORT_ATTR_EEE_WAKE_TIME = 95; + PORT_ATTR_PORT_POOL_LIST = 96; + PORT_ATTR_ISOLATION_GROUP = 97; + PORT_ATTR_PKT_TX_ENABLE = 98; + PORT_ATTR_TAM_OBJECT = 99; + PORT_ATTR_SERDES_PREEMPHASIS = 100; + PORT_ATTR_SERDES_IDRIVER = 101; + PORT_ATTR_SERDES_IPREDRIVER = 102; + PORT_ATTR_LINK_TRAINING_ENABLE = 103; + PORT_ATTR_PTP_MODE = 104; + PORT_ATTR_INTERFACE_TYPE = 105; + PORT_ATTR_ADVERTISED_INTERFACE_TYPE = 106; + PORT_ATTR_REFERENCE_CLOCK = 107; + PORT_ATTR_PRBS_POLYNOMIAL = 108; + PORT_ATTR_PORT_SERDES_ID = 109; + PORT_ATTR_LINK_TRAINING_FAILURE_STATUS = 110; + PORT_ATTR_LINK_TRAINING_RX_STATUS = 111; + PORT_ATTR_PRBS_CONFIG = 112; + PORT_ATTR_PRBS_LOCK_STATUS = 113; + PORT_ATTR_PRBS_LOCK_LOSS_STATUS = 114; + PORT_ATTR_PRBS_RX_STATUS = 115; + PORT_ATTR_PRBS_RX_STATE = 116; + PORT_ATTR_AUTO_NEG_STATUS = 117; + PORT_ATTR_DISABLE_DECREMENT_TTL = 118; + PORT_ATTR_QOS_MPLS_EXP_TO_TC_MAP = 119; + PORT_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP = 120; + PORT_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP = 121; + PORT_ATTR_TPID = 122; + PORT_ATTR_ERR_STATUS_LIST = 123; + PORT_ATTR_FABRIC_ATTACHED = 124; + PORT_ATTR_FABRIC_ATTACHED_SWITCH_TYPE = 125; + PORT_ATTR_FABRIC_ATTACHED_SWITCH_ID = 126; + PORT_ATTR_FABRIC_ATTACHED_PORT_INDEX = 127; + PORT_ATTR_FABRIC_REACHABILITY = 128; + PORT_ATTR_SYSTEM_PORT = 129; + PORT_ATTR_AUTO_NEG_FEC_MODE_OVERRIDE = 130; + PORT_ATTR_LOOPBACK_MODE = 131; + PORT_ATTR_MDIX_MODE_STATUS = 132; + PORT_ATTR_MDIX_MODE_CONFIG = 133; + PORT_ATTR_AUTO_NEG_CONFIG_MODE = 134; + PORT_ATTR_1000X_SGMII_SLAVE_AUTODETECT = 135; + PORT_ATTR_MODULE_TYPE = 136; + PORT_ATTR_DUAL_MEDIA = 137; + PORT_ATTR_AUTO_NEG_FEC_MODE_EXTENDED = 138; + PORT_ATTR_IPG = 139; + PORT_ATTR_GLOBAL_FLOW_CONTROL_FORWARD = 140; + PORT_ATTR_PRIORITY_FLOW_CONTROL_FORWARD = 141; + PORT_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP = 142; + PORT_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP = 143; + PORT_ATTR_IPSEC_PORT = 144; } enum PortPoolAttr { - PORT_POOL_ATTR_UNSPECIFIED = 0; - PORT_POOL_ATTR_PORT_ID = 1; - PORT_POOL_ATTR_BUFFER_POOL_ID = 2; - PORT_POOL_ATTR_QOS_WRED_PROFILE_ID = 3; + PORT_POOL_ATTR_UNSPECIFIED = 0; + PORT_POOL_ATTR_PORT_ID = 1; + PORT_POOL_ATTR_BUFFER_POOL_ID = 2; + PORT_POOL_ATTR_QOS_WRED_PROFILE_ID = 3; } enum PortConnectorAttr { - PORT_CONNECTOR_ATTR_UNSPECIFIED = 0; - PORT_CONNECTOR_ATTR_SYSTEM_SIDE_PORT_ID = 1; - PORT_CONNECTOR_ATTR_LINE_SIDE_PORT_ID = 2; - PORT_CONNECTOR_ATTR_SYSTEM_SIDE_FAILOVER_PORT_ID = 3; - PORT_CONNECTOR_ATTR_LINE_SIDE_FAILOVER_PORT_ID = 4; - PORT_CONNECTOR_ATTR_FAILOVER_MODE = 5; + PORT_CONNECTOR_ATTR_UNSPECIFIED = 0; + PORT_CONNECTOR_ATTR_SYSTEM_SIDE_PORT_ID = 1; + PORT_CONNECTOR_ATTR_LINE_SIDE_PORT_ID = 2; + PORT_CONNECTOR_ATTR_SYSTEM_SIDE_FAILOVER_PORT_ID = 3; + PORT_CONNECTOR_ATTR_LINE_SIDE_FAILOVER_PORT_ID = 4; + PORT_CONNECTOR_ATTR_FAILOVER_MODE = 5; } enum PortSerdesAttr { - PORT_SERDES_ATTR_UNSPECIFIED = 0; - PORT_SERDES_ATTR_PORT_ID = 1; - PORT_SERDES_ATTR_PREEMPHASIS = 2; - PORT_SERDES_ATTR_IDRIVER = 3; - PORT_SERDES_ATTR_IPREDRIVER = 4; - PORT_SERDES_ATTR_TX_FIR_PRE1 = 5; - PORT_SERDES_ATTR_TX_FIR_PRE2 = 6; - PORT_SERDES_ATTR_TX_FIR_PRE3 = 7; - PORT_SERDES_ATTR_TX_FIR_MAIN = 8; - PORT_SERDES_ATTR_TX_FIR_POST1 = 9; - PORT_SERDES_ATTR_TX_FIR_POST2 = 10; - PORT_SERDES_ATTR_TX_FIR_POST3 = 11; - PORT_SERDES_ATTR_TX_FIR_ATTN = 12; + PORT_SERDES_ATTR_UNSPECIFIED = 0; + PORT_SERDES_ATTR_PORT_ID = 1; + PORT_SERDES_ATTR_PREEMPHASIS = 2; + PORT_SERDES_ATTR_IDRIVER = 3; + PORT_SERDES_ATTR_IPREDRIVER = 4; + PORT_SERDES_ATTR_TX_FIR_PRE1 = 5; + PORT_SERDES_ATTR_TX_FIR_PRE2 = 6; + PORT_SERDES_ATTR_TX_FIR_PRE3 = 7; + PORT_SERDES_ATTR_TX_FIR_MAIN = 8; + PORT_SERDES_ATTR_TX_FIR_POST1 = 9; + PORT_SERDES_ATTR_TX_FIR_POST2 = 10; + PORT_SERDES_ATTR_TX_FIR_POST3 = 11; + PORT_SERDES_ATTR_TX_FIR_ATTN = 12; } message CreatePortRequest { - uint64 switch = 1; - - repeated uint32 hw_lane_list = 2; - uint32 speed = 3; - bool full_duplex_mode = 4; - bool auto_neg_mode = 5; - bool admin_state = 6; - PortMediaType media_type = 7; - repeated uint32 advertised_speed = 8; - repeated PortFecMode advertised_fec_mode = 9; - repeated PortFecModeExtended advertised_fec_mode_extended = 10; - repeated uint32 advertised_half_duplex_speed = 11; - bool advertised_auto_neg_mode = 12; - PortFlowControlMode advertised_flow_control_mode = 13; - bool advertised_asymmetric_pause_mode = 14; - PortMediaType advertised_media_type = 15; - uint32 advertised_oui_code = 16; - uint32 port_vlan_id = 17; - uint32 default_vlan_priority = 18; - bool drop_untagged = 19; - bool drop_tagged = 20; - PortInternalLoopbackMode internal_loopback_mode = 21; - bool use_extended_fec = 22; - PortFecMode fec_mode = 23; - PortFecModeExtended fec_mode_extended = 24; - bool update_dscp = 25; - uint32 mtu = 26; - uint64 flood_storm_control_policer_id = 27; - uint64 broadcast_storm_control_policer_id = 28; - uint64 multicast_storm_control_policer_id = 29; - PortFlowControlMode global_flow_control_mode = 30; - uint64 ingress_acl = 31; - uint64 egress_acl = 32; - uint64 ingress_macsec_acl = 33; - uint64 egress_macsec_acl = 34; - repeated uint64 ingress_mirror_session = 35; - repeated uint64 egress_mirror_session = 36; - uint64 ingress_samplepacket_enable = 37; - uint64 egress_samplepacket_enable = 38; - repeated uint64 ingress_sample_mirror_session = 39; - repeated uint64 egress_sample_mirror_session = 40; - uint64 policer_id = 41; - uint32 qos_default_tc = 42; - uint64 qos_dot1p_to_tc_map = 43; - uint64 qos_dot1p_to_color_map = 44; - uint64 qos_dscp_to_tc_map = 45; - uint64 qos_dscp_to_color_map = 46; - uint64 qos_tc_to_queue_map = 47; - uint64 qos_tc_and_color_to_dot1p_map = 48; - uint64 qos_tc_and_color_to_dscp_map = 49; - uint64 qos_tc_to_priority_group_map = 50; - uint64 qos_pfc_priority_to_priority_group_map = 51; - uint64 qos_pfc_priority_to_queue_map = 52; - uint64 qos_scheduler_profile_id = 53; - repeated uint64 qos_ingress_buffer_profile_list = 54; - repeated uint64 qos_egress_buffer_profile_list = 55; - PortPriorityFlowControlMode priority_flow_control_mode = 56; - uint32 priority_flow_control = 57; - uint32 priority_flow_control_rx = 58; - uint32 priority_flow_control_tx = 59; - uint32 meta_data = 60; - repeated uint64 egress_block_port_list = 61; - uint64 hw_profile_id = 62; - bool eee_enable = 63; - uint32 eee_idle_time = 64; - uint32 eee_wake_time = 65; - uint64 isolation_group = 66; - bool pkt_tx_enable = 67; - repeated uint64 tam_object = 68; - repeated uint32 serdes_preemphasis = 69; - repeated uint32 serdes_idriver = 70; - repeated uint32 serdes_ipredriver = 71; - bool link_training_enable = 72; - PortPtpMode ptp_mode = 73; - PortInterfaceType interface_type = 74; - repeated PortInterfaceType advertised_interface_type = 75; - uint64 reference_clock = 76; - uint32 prbs_polynomial = 77; - PortPrbsConfig prbs_config = 78; - bool disable_decrement_ttl = 79; - uint64 qos_mpls_exp_to_tc_map = 80; - uint64 qos_mpls_exp_to_color_map = 81; - uint64 qos_tc_and_color_to_mpls_exp_map = 82; - uint32 tpid = 83; - bool auto_neg_fec_mode_override = 84; - PortLoopbackMode loopback_mode = 85; - PortMdixModeConfig mdix_mode_config = 86; - PortAutoNegConfigMode auto_neg_config_mode = 87; - bool _1000x_sgmii_slave_autodetect = 88; - PortModuleType module_type = 89; - PortDualMedia dual_media = 90; - uint32 ipg = 91; - bool global_flow_control_forward = 92; - bool priority_flow_control_forward = 93; - uint64 qos_dscp_to_forwarding_class_map = 94; - uint64 qos_mpls_exp_to_forwarding_class_map = 95; - + uint64 switch = 1; + repeated uint32 hw_lane_list = 2 [(attr_enum_value) = 31]; + optional uint32 speed = 3 [(attr_enum_value) = 32]; + optional bool full_duplex_mode = 4 [(attr_enum_value) = 33]; + optional bool auto_neg_mode = 5 [(attr_enum_value) = 34]; + optional bool admin_state = 6 [(attr_enum_value) = 35]; + optional PortMediaType media_type = 7 [(attr_enum_value) = 36]; + repeated uint32 advertised_speed = 8 [(attr_enum_value) = 37]; + repeated PortFecMode advertised_fec_mode = 9 [(attr_enum_value) = 38]; + repeated PortFecModeExtended advertised_fec_mode_extended = 10 + [(attr_enum_value) = 39]; + repeated uint32 advertised_half_duplex_speed = 11 [(attr_enum_value) = 40]; + optional bool advertised_auto_neg_mode = 12 [(attr_enum_value) = 41]; + optional PortFlowControlMode advertised_flow_control_mode = 13 + [(attr_enum_value) = 42]; + optional bool advertised_asymmetric_pause_mode = 14 [(attr_enum_value) = 43]; + optional PortMediaType advertised_media_type = 15 [(attr_enum_value) = 44]; + optional uint32 advertised_oui_code = 16 [(attr_enum_value) = 45]; + optional uint32 port_vlan_id = 17 [(attr_enum_value) = 46]; + optional uint32 default_vlan_priority = 18 [(attr_enum_value) = 47]; + optional bool drop_untagged = 19 [(attr_enum_value) = 48]; + optional bool drop_tagged = 20 [(attr_enum_value) = 49]; + optional PortInternalLoopbackMode internal_loopback_mode = 21 + [(attr_enum_value) = 50]; + optional bool use_extended_fec = 22 [(attr_enum_value) = 51]; + optional PortFecMode fec_mode = 23 [(attr_enum_value) = 52]; + optional PortFecModeExtended fec_mode_extended = 24 [(attr_enum_value) = 53]; + optional bool update_dscp = 25 [(attr_enum_value) = 54]; + optional uint32 mtu = 26 [(attr_enum_value) = 55]; + optional uint64 flood_storm_control_policer_id = 27 [(attr_enum_value) = 56]; + optional uint64 broadcast_storm_control_policer_id = 28 + [(attr_enum_value) = 57]; + optional uint64 multicast_storm_control_policer_id = 29 + [(attr_enum_value) = 58]; + optional PortFlowControlMode global_flow_control_mode = 30 + [(attr_enum_value) = 59]; + optional uint64 ingress_acl = 31 [(attr_enum_value) = 60]; + optional uint64 egress_acl = 32 [(attr_enum_value) = 61]; + optional uint64 ingress_macsec_acl = 33 [(attr_enum_value) = 62]; + optional uint64 egress_macsec_acl = 34 [(attr_enum_value) = 63]; + repeated uint64 ingress_mirror_session = 35 [(attr_enum_value) = 65]; + repeated uint64 egress_mirror_session = 36 [(attr_enum_value) = 66]; + optional uint64 ingress_samplepacket_enable = 37 [(attr_enum_value) = 67]; + optional uint64 egress_samplepacket_enable = 38 [(attr_enum_value) = 68]; + repeated uint64 ingress_sample_mirror_session = 39 [(attr_enum_value) = 69]; + repeated uint64 egress_sample_mirror_session = 40 [(attr_enum_value) = 70]; + optional uint64 policer_id = 41 [(attr_enum_value) = 71]; + optional uint32 qos_default_tc = 42 [(attr_enum_value) = 72]; + optional uint64 qos_dot1p_to_tc_map = 43 [(attr_enum_value) = 73]; + optional uint64 qos_dot1p_to_color_map = 44 [(attr_enum_value) = 74]; + optional uint64 qos_dscp_to_tc_map = 45 [(attr_enum_value) = 75]; + optional uint64 qos_dscp_to_color_map = 46 [(attr_enum_value) = 76]; + optional uint64 qos_tc_to_queue_map = 47 [(attr_enum_value) = 77]; + optional uint64 qos_tc_and_color_to_dot1p_map = 48 [(attr_enum_value) = 78]; + optional uint64 qos_tc_and_color_to_dscp_map = 49 [(attr_enum_value) = 79]; + optional uint64 qos_tc_to_priority_group_map = 50 [(attr_enum_value) = 80]; + optional uint64 qos_pfc_priority_to_priority_group_map = 51 + [(attr_enum_value) = 81]; + optional uint64 qos_pfc_priority_to_queue_map = 52 [(attr_enum_value) = 82]; + optional uint64 qos_scheduler_profile_id = 53 [(attr_enum_value) = 83]; + repeated uint64 qos_ingress_buffer_profile_list = 54 [(attr_enum_value) = 84]; + repeated uint64 qos_egress_buffer_profile_list = 55 [(attr_enum_value) = 85]; + optional PortPriorityFlowControlMode priority_flow_control_mode = 56 + [(attr_enum_value) = 86]; + optional uint32 priority_flow_control = 57 [(attr_enum_value) = 87]; + optional uint32 priority_flow_control_rx = 58 [(attr_enum_value) = 88]; + optional uint32 priority_flow_control_tx = 59 [(attr_enum_value) = 89]; + optional uint32 meta_data = 60 [(attr_enum_value) = 90]; + repeated uint64 egress_block_port_list = 61 [(attr_enum_value) = 91]; + optional uint64 hw_profile_id = 62 [(attr_enum_value) = 92]; + optional bool eee_enable = 63 [(attr_enum_value) = 93]; + optional uint32 eee_idle_time = 64 [(attr_enum_value) = 94]; + optional uint32 eee_wake_time = 65 [(attr_enum_value) = 95]; + optional uint64 isolation_group = 66 [(attr_enum_value) = 97]; + optional bool pkt_tx_enable = 67 [(attr_enum_value) = 98]; + repeated uint64 tam_object = 68 [(attr_enum_value) = 99]; + repeated uint32 serdes_preemphasis = 69 [(attr_enum_value) = 100]; + repeated uint32 serdes_idriver = 70 [(attr_enum_value) = 101]; + repeated uint32 serdes_ipredriver = 71 [(attr_enum_value) = 102]; + optional bool link_training_enable = 72 [(attr_enum_value) = 103]; + optional PortPtpMode ptp_mode = 73 [(attr_enum_value) = 104]; + optional PortInterfaceType interface_type = 74 [(attr_enum_value) = 105]; + repeated PortInterfaceType advertised_interface_type = 75 + [(attr_enum_value) = 106]; + optional uint64 reference_clock = 76 [(attr_enum_value) = 107]; + optional uint32 prbs_polynomial = 77 [(attr_enum_value) = 108]; + optional PortPrbsConfig prbs_config = 78 [(attr_enum_value) = 112]; + optional bool disable_decrement_ttl = 79 [(attr_enum_value) = 118]; + optional uint64 qos_mpls_exp_to_tc_map = 80 [(attr_enum_value) = 119]; + optional uint64 qos_mpls_exp_to_color_map = 81 [(attr_enum_value) = 120]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 82 + [(attr_enum_value) = 121]; + optional uint32 tpid = 83 [(attr_enum_value) = 122]; + optional bool auto_neg_fec_mode_override = 84 [(attr_enum_value) = 130]; + optional PortLoopbackMode loopback_mode = 85 [(attr_enum_value) = 131]; + optional PortMdixModeConfig mdix_mode_config = 86 [(attr_enum_value) = 133]; + optional PortAutoNegConfigMode auto_neg_config_mode = 87 + [(attr_enum_value) = 134]; + optional bool _1000x_sgmii_slave_autodetect = 88 [(attr_enum_value) = 135]; + optional PortModuleType module_type = 89 [(attr_enum_value) = 136]; + optional PortDualMedia dual_media = 90 [(attr_enum_value) = 137]; + optional uint32 ipg = 91 [(attr_enum_value) = 139]; + optional bool global_flow_control_forward = 92 [(attr_enum_value) = 140]; + optional bool priority_flow_control_forward = 93 [(attr_enum_value) = 141]; + optional uint64 qos_dscp_to_forwarding_class_map = 94 + [(attr_enum_value) = 142]; + optional uint64 qos_mpls_exp_to_forwarding_class_map = 95 + [(attr_enum_value) = 143]; } message CreatePortResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemovePortRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemovePortResponse { - - -} +message RemovePortResponse {} message SetPortAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 speed = 2; - bool auto_neg_mode = 3; - bool admin_state = 4; - PortMediaType media_type = 5; - Uint32List advertised_speed = 6; - PortFecModeList advertised_fec_mode = 7; - PortFecModeExtendedList advertised_fec_mode_extended = 8; - Uint32List advertised_half_duplex_speed = 9; - bool advertised_auto_neg_mode = 10; - PortFlowControlMode advertised_flow_control_mode = 11; - bool advertised_asymmetric_pause_mode = 12; - PortMediaType advertised_media_type = 13; - uint32 advertised_oui_code = 14; - uint32 port_vlan_id = 15; - uint32 default_vlan_priority = 16; - bool drop_untagged = 17; - bool drop_tagged = 18; - PortInternalLoopbackMode internal_loopback_mode = 19; - bool use_extended_fec = 20; - PortFecMode fec_mode = 21; - PortFecModeExtended fec_mode_extended = 22; - bool update_dscp = 23; - uint32 mtu = 24; - uint64 flood_storm_control_policer_id = 25; - uint64 broadcast_storm_control_policer_id = 26; - uint64 multicast_storm_control_policer_id = 27; - PortFlowControlMode global_flow_control_mode = 28; - uint64 ingress_acl = 29; - uint64 egress_acl = 30; - uint64 ingress_macsec_acl = 31; - uint64 egress_macsec_acl = 32; - Uint64List ingress_mirror_session = 33; - Uint64List egress_mirror_session = 34; - uint64 ingress_samplepacket_enable = 35; - uint64 egress_samplepacket_enable = 36; - Uint64List ingress_sample_mirror_session = 37; - Uint64List egress_sample_mirror_session = 38; - uint64 policer_id = 39; - uint32 qos_default_tc = 40; - uint64 qos_dot1p_to_tc_map = 41; - uint64 qos_dot1p_to_color_map = 42; - uint64 qos_dscp_to_tc_map = 43; - uint64 qos_dscp_to_color_map = 44; - uint64 qos_tc_to_queue_map = 45; - uint64 qos_tc_and_color_to_dot1p_map = 46; - uint64 qos_tc_and_color_to_dscp_map = 47; - uint64 qos_tc_to_priority_group_map = 48; - uint64 qos_pfc_priority_to_priority_group_map = 49; - uint64 qos_pfc_priority_to_queue_map = 50; - uint64 qos_scheduler_profile_id = 51; - Uint64List qos_ingress_buffer_profile_list = 52; - Uint64List qos_egress_buffer_profile_list = 53; - PortPriorityFlowControlMode priority_flow_control_mode = 54; - uint32 priority_flow_control = 55; - uint32 priority_flow_control_rx = 56; - uint32 priority_flow_control_tx = 57; - uint32 meta_data = 58; - Uint64List egress_block_port_list = 59; - uint64 hw_profile_id = 60; - bool eee_enable = 61; - uint32 eee_idle_time = 62; - uint32 eee_wake_time = 63; - uint64 isolation_group = 64; - bool pkt_tx_enable = 65; - Uint64List tam_object = 66; - Uint32List serdes_preemphasis = 67; - Uint32List serdes_idriver = 68; - Uint32List serdes_ipredriver = 69; - bool link_training_enable = 70; - PortPtpMode ptp_mode = 71; - PortInterfaceType interface_type = 72; - PortInterfaceTypeList advertised_interface_type = 73; - uint32 prbs_polynomial = 74; - PortPrbsConfig prbs_config = 75; - bool disable_decrement_ttl = 76; - uint64 qos_mpls_exp_to_tc_map = 77; - uint64 qos_mpls_exp_to_color_map = 78; - uint64 qos_tc_and_color_to_mpls_exp_map = 79; - uint32 tpid = 80; - bool auto_neg_fec_mode_override = 81; - PortLoopbackMode loopback_mode = 82; - PortMdixModeConfig mdix_mode_config = 83; - PortAutoNegConfigMode auto_neg_config_mode = 84; - bool _1000x_sgmii_slave_autodetect = 85; - PortModuleType module_type = 86; - PortDualMedia dual_media = 87; - uint32 ipg = 88; - bool global_flow_control_forward = 89; - bool priority_flow_control_forward = 90; - uint64 qos_dscp_to_forwarding_class_map = 91; - uint64 qos_mpls_exp_to_forwarding_class_map = 92; - } -} - -message SetPortAttributeResponse { - - -} + uint64 oid = 1; + optional uint32 speed = 2 [(attr_enum_value) = 32]; + optional bool auto_neg_mode = 3 [(attr_enum_value) = 34]; + optional bool admin_state = 4 [(attr_enum_value) = 35]; + optional PortMediaType media_type = 5 [(attr_enum_value) = 36]; + repeated uint32 advertised_speed = 6 [(attr_enum_value) = 37]; + repeated PortFecMode advertised_fec_mode = 7 [(attr_enum_value) = 38]; + repeated PortFecModeExtended advertised_fec_mode_extended = 8 + [(attr_enum_value) = 39]; + repeated uint32 advertised_half_duplex_speed = 9 [(attr_enum_value) = 40]; + optional bool advertised_auto_neg_mode = 10 [(attr_enum_value) = 41]; + optional PortFlowControlMode advertised_flow_control_mode = 11 + [(attr_enum_value) = 42]; + optional bool advertised_asymmetric_pause_mode = 12 [(attr_enum_value) = 43]; + optional PortMediaType advertised_media_type = 13 [(attr_enum_value) = 44]; + optional uint32 advertised_oui_code = 14 [(attr_enum_value) = 45]; + optional uint32 port_vlan_id = 15 [(attr_enum_value) = 46]; + optional uint32 default_vlan_priority = 16 [(attr_enum_value) = 47]; + optional bool drop_untagged = 17 [(attr_enum_value) = 48]; + optional bool drop_tagged = 18 [(attr_enum_value) = 49]; + optional PortInternalLoopbackMode internal_loopback_mode = 19 + [(attr_enum_value) = 50]; + optional bool use_extended_fec = 20 [(attr_enum_value) = 51]; + optional PortFecMode fec_mode = 21 [(attr_enum_value) = 52]; + optional PortFecModeExtended fec_mode_extended = 22 [(attr_enum_value) = 53]; + optional bool update_dscp = 23 [(attr_enum_value) = 54]; + optional uint32 mtu = 24 [(attr_enum_value) = 55]; + optional uint64 flood_storm_control_policer_id = 25 [(attr_enum_value) = 56]; + optional uint64 broadcast_storm_control_policer_id = 26 + [(attr_enum_value) = 57]; + optional uint64 multicast_storm_control_policer_id = 27 + [(attr_enum_value) = 58]; + optional PortFlowControlMode global_flow_control_mode = 28 + [(attr_enum_value) = 59]; + optional uint64 ingress_acl = 29 [(attr_enum_value) = 60]; + optional uint64 egress_acl = 30 [(attr_enum_value) = 61]; + optional uint64 ingress_macsec_acl = 31 [(attr_enum_value) = 62]; + optional uint64 egress_macsec_acl = 32 [(attr_enum_value) = 63]; + repeated uint64 ingress_mirror_session = 33 [(attr_enum_value) = 65]; + repeated uint64 egress_mirror_session = 34 [(attr_enum_value) = 66]; + optional uint64 ingress_samplepacket_enable = 35 [(attr_enum_value) = 67]; + optional uint64 egress_samplepacket_enable = 36 [(attr_enum_value) = 68]; + repeated uint64 ingress_sample_mirror_session = 37 [(attr_enum_value) = 69]; + repeated uint64 egress_sample_mirror_session = 38 [(attr_enum_value) = 70]; + optional uint64 policer_id = 39 [(attr_enum_value) = 71]; + optional uint32 qos_default_tc = 40 [(attr_enum_value) = 72]; + optional uint64 qos_dot1p_to_tc_map = 41 [(attr_enum_value) = 73]; + optional uint64 qos_dot1p_to_color_map = 42 [(attr_enum_value) = 74]; + optional uint64 qos_dscp_to_tc_map = 43 [(attr_enum_value) = 75]; + optional uint64 qos_dscp_to_color_map = 44 [(attr_enum_value) = 76]; + optional uint64 qos_tc_to_queue_map = 45 [(attr_enum_value) = 77]; + optional uint64 qos_tc_and_color_to_dot1p_map = 46 [(attr_enum_value) = 78]; + optional uint64 qos_tc_and_color_to_dscp_map = 47 [(attr_enum_value) = 79]; + optional uint64 qos_tc_to_priority_group_map = 48 [(attr_enum_value) = 80]; + optional uint64 qos_pfc_priority_to_priority_group_map = 49 + [(attr_enum_value) = 81]; + optional uint64 qos_pfc_priority_to_queue_map = 50 [(attr_enum_value) = 82]; + optional uint64 qos_scheduler_profile_id = 51 [(attr_enum_value) = 83]; + repeated uint64 qos_ingress_buffer_profile_list = 52 [(attr_enum_value) = 84]; + repeated uint64 qos_egress_buffer_profile_list = 53 [(attr_enum_value) = 85]; + optional PortPriorityFlowControlMode priority_flow_control_mode = 54 + [(attr_enum_value) = 86]; + optional uint32 priority_flow_control = 55 [(attr_enum_value) = 87]; + optional uint32 priority_flow_control_rx = 56 [(attr_enum_value) = 88]; + optional uint32 priority_flow_control_tx = 57 [(attr_enum_value) = 89]; + optional uint32 meta_data = 58 [(attr_enum_value) = 90]; + repeated uint64 egress_block_port_list = 59 [(attr_enum_value) = 91]; + optional uint64 hw_profile_id = 60 [(attr_enum_value) = 92]; + optional bool eee_enable = 61 [(attr_enum_value) = 93]; + optional uint32 eee_idle_time = 62 [(attr_enum_value) = 94]; + optional uint32 eee_wake_time = 63 [(attr_enum_value) = 95]; + optional uint64 isolation_group = 64 [(attr_enum_value) = 97]; + optional bool pkt_tx_enable = 65 [(attr_enum_value) = 98]; + repeated uint64 tam_object = 66 [(attr_enum_value) = 99]; + repeated uint32 serdes_preemphasis = 67 [(attr_enum_value) = 100]; + repeated uint32 serdes_idriver = 68 [(attr_enum_value) = 101]; + repeated uint32 serdes_ipredriver = 69 [(attr_enum_value) = 102]; + optional bool link_training_enable = 70 [(attr_enum_value) = 103]; + optional PortPtpMode ptp_mode = 71 [(attr_enum_value) = 104]; + optional PortInterfaceType interface_type = 72 [(attr_enum_value) = 105]; + repeated PortInterfaceType advertised_interface_type = 73 + [(attr_enum_value) = 106]; + optional uint32 prbs_polynomial = 74 [(attr_enum_value) = 108]; + optional PortPrbsConfig prbs_config = 75 [(attr_enum_value) = 112]; + optional bool disable_decrement_ttl = 76 [(attr_enum_value) = 118]; + optional uint64 qos_mpls_exp_to_tc_map = 77 [(attr_enum_value) = 119]; + optional uint64 qos_mpls_exp_to_color_map = 78 [(attr_enum_value) = 120]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 79 + [(attr_enum_value) = 121]; + optional uint32 tpid = 80 [(attr_enum_value) = 122]; + optional bool auto_neg_fec_mode_override = 81 [(attr_enum_value) = 130]; + optional PortLoopbackMode loopback_mode = 82 [(attr_enum_value) = 131]; + optional PortMdixModeConfig mdix_mode_config = 83 [(attr_enum_value) = 133]; + optional PortAutoNegConfigMode auto_neg_config_mode = 84 + [(attr_enum_value) = 134]; + optional bool _1000x_sgmii_slave_autodetect = 85 [(attr_enum_value) = 135]; + optional PortModuleType module_type = 86 [(attr_enum_value) = 136]; + optional PortDualMedia dual_media = 87 [(attr_enum_value) = 137]; + optional uint32 ipg = 88 [(attr_enum_value) = 139]; + optional bool global_flow_control_forward = 89 [(attr_enum_value) = 140]; + optional bool priority_flow_control_forward = 90 [(attr_enum_value) = 141]; + optional uint64 qos_dscp_to_forwarding_class_map = 91 + [(attr_enum_value) = 142]; + optional uint64 qos_mpls_exp_to_forwarding_class_map = 92 + [(attr_enum_value) = 143]; +} + +message SetPortAttributeResponse {} message GetPortAttributeRequest { - uint64 oid = 1; - repeated PortAttr attr_type = 2; - - + uint64 oid = 1; + repeated PortAttr attr_type = 2; } message GetPortAttributeResponse { - repeated PortAttribute attr = 1; - - + PortAttribute attr = 1; } message CreatePortPoolRequest { - uint64 switch = 1; - - uint64 port_id = 2; - uint64 buffer_pool_id = 3; - uint64 qos_wred_profile_id = 4; - + uint64 switch = 1; + optional uint64 port_id = 2 [(attr_enum_value) = 1]; + optional uint64 buffer_pool_id = 3 [(attr_enum_value) = 2]; + optional uint64 qos_wred_profile_id = 4 [(attr_enum_value) = 3]; } message CreatePortPoolResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemovePortPoolRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemovePortPoolResponse { - - -} +message RemovePortPoolResponse {} message SetPortPoolAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 qos_wred_profile_id = 2; - } + uint64 oid = 1; + optional uint64 qos_wred_profile_id = 2 [(attr_enum_value) = 3]; } -message SetPortPoolAttributeResponse { - - -} +message SetPortPoolAttributeResponse {} message GetPortPoolAttributeRequest { - uint64 oid = 1; - repeated PortPoolAttr attr_type = 2; - - + uint64 oid = 1; + repeated PortPoolAttr attr_type = 2; } message GetPortPoolAttributeResponse { - repeated PortPoolAttribute attr = 1; - - + PortPoolAttribute attr = 1; } message CreatePortConnectorRequest { - uint64 switch = 1; - - uint64 system_side_port_id = 2; - uint64 line_side_port_id = 3; - uint64 system_side_failover_port_id = 4; - uint64 line_side_failover_port_id = 5; - PortConnectorFailoverMode failover_mode = 6; - + uint64 switch = 1; + optional uint64 system_side_port_id = 2 [(attr_enum_value) = 1]; + optional uint64 line_side_port_id = 3 [(attr_enum_value) = 2]; + optional uint64 system_side_failover_port_id = 4 [(attr_enum_value) = 3]; + optional uint64 line_side_failover_port_id = 5 [(attr_enum_value) = 4]; + optional PortConnectorFailoverMode failover_mode = 6 [(attr_enum_value) = 5]; } message CreatePortConnectorResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemovePortConnectorRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemovePortConnectorResponse { - - -} +message RemovePortConnectorResponse {} message SetPortConnectorAttributeRequest { - uint64 oid = 1; - oneof attr { - PortConnectorFailoverMode failover_mode = 2; - } + uint64 oid = 1; + optional PortConnectorFailoverMode failover_mode = 2 [(attr_enum_value) = 5]; } -message SetPortConnectorAttributeResponse { - - -} +message SetPortConnectorAttributeResponse {} message GetPortConnectorAttributeRequest { - uint64 oid = 1; - repeated PortConnectorAttr attr_type = 2; - - + uint64 oid = 1; + repeated PortConnectorAttr attr_type = 2; } message GetPortConnectorAttributeResponse { - repeated PortConnectorAttribute attr = 1; - - + PortConnectorAttribute attr = 1; } message CreatePortSerdesRequest { - uint64 switch = 1; - - uint64 port_id = 2; - repeated int32 preemphasis = 3; - repeated int32 idriver = 4; - repeated int32 ipredriver = 5; - repeated int32 tx_fir_pre1 = 6; - repeated int32 tx_fir_pre2 = 7; - repeated int32 tx_fir_pre3 = 8; - repeated int32 tx_fir_main = 9; - repeated int32 tx_fir_post1 = 10; - repeated int32 tx_fir_post2 = 11; - repeated int32 tx_fir_post3 = 12; - repeated int32 tx_fir_attn = 13; - + uint64 switch = 1; + optional uint64 port_id = 2 [(attr_enum_value) = 1]; + repeated int32 preemphasis = 3 [(attr_enum_value) = 2]; + repeated int32 idriver = 4 [(attr_enum_value) = 3]; + repeated int32 ipredriver = 5 [(attr_enum_value) = 4]; + repeated int32 tx_fir_pre1 = 6 [(attr_enum_value) = 5]; + repeated int32 tx_fir_pre2 = 7 [(attr_enum_value) = 6]; + repeated int32 tx_fir_pre3 = 8 [(attr_enum_value) = 7]; + repeated int32 tx_fir_main = 9 [(attr_enum_value) = 8]; + repeated int32 tx_fir_post1 = 10 [(attr_enum_value) = 9]; + repeated int32 tx_fir_post2 = 11 [(attr_enum_value) = 10]; + repeated int32 tx_fir_post3 = 12 [(attr_enum_value) = 11]; + repeated int32 tx_fir_attn = 13 [(attr_enum_value) = 12]; } message CreatePortSerdesResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemovePortSerdesRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemovePortSerdesResponse { - - -} +message RemovePortSerdesResponse {} message GetPortSerdesAttributeRequest { - uint64 oid = 1; - repeated PortSerdesAttr attr_type = 2; - - + uint64 oid = 1; + repeated PortSerdesAttr attr_type = 2; } message GetPortSerdesAttributeResponse { - repeated PortSerdesAttribute attr = 1; - - + PortSerdesAttribute attr = 1; } - service Port { - rpc CreatePort (CreatePortRequest) returns (CreatePortResponse) {} - rpc RemovePort (RemovePortRequest) returns (RemovePortResponse) {} - rpc SetPortAttribute (SetPortAttributeRequest) returns (SetPortAttributeResponse) {} - rpc GetPortAttribute (GetPortAttributeRequest) returns (GetPortAttributeResponse) {} - rpc CreatePortPool (CreatePortPoolRequest) returns (CreatePortPoolResponse) {} - rpc RemovePortPool (RemovePortPoolRequest) returns (RemovePortPoolResponse) {} - rpc SetPortPoolAttribute (SetPortPoolAttributeRequest) returns (SetPortPoolAttributeResponse) {} - rpc GetPortPoolAttribute (GetPortPoolAttributeRequest) returns (GetPortPoolAttributeResponse) {} - rpc CreatePortConnector (CreatePortConnectorRequest) returns (CreatePortConnectorResponse) {} - rpc RemovePortConnector (RemovePortConnectorRequest) returns (RemovePortConnectorResponse) {} - rpc SetPortConnectorAttribute (SetPortConnectorAttributeRequest) returns (SetPortConnectorAttributeResponse) {} - rpc GetPortConnectorAttribute (GetPortConnectorAttributeRequest) returns (GetPortConnectorAttributeResponse) {} - rpc CreatePortSerdes (CreatePortSerdesRequest) returns (CreatePortSerdesResponse) {} - rpc RemovePortSerdes (RemovePortSerdesRequest) returns (RemovePortSerdesResponse) {} - rpc GetPortSerdesAttribute (GetPortSerdesAttributeRequest) returns (GetPortSerdesAttributeResponse) {} + rpc CreatePort(CreatePortRequest) returns (CreatePortResponse) {} + rpc RemovePort(RemovePortRequest) returns (RemovePortResponse) {} + rpc SetPortAttribute(SetPortAttributeRequest) + returns (SetPortAttributeResponse) {} + rpc GetPortAttribute(GetPortAttributeRequest) + returns (GetPortAttributeResponse) {} + rpc CreatePortPool(CreatePortPoolRequest) returns (CreatePortPoolResponse) {} + rpc RemovePortPool(RemovePortPoolRequest) returns (RemovePortPoolResponse) {} + rpc SetPortPoolAttribute(SetPortPoolAttributeRequest) + returns (SetPortPoolAttributeResponse) {} + rpc GetPortPoolAttribute(GetPortPoolAttributeRequest) + returns (GetPortPoolAttributeResponse) {} + rpc CreatePortConnector(CreatePortConnectorRequest) + returns (CreatePortConnectorResponse) {} + rpc RemovePortConnector(RemovePortConnectorRequest) + returns (RemovePortConnectorResponse) {} + rpc SetPortConnectorAttribute(SetPortConnectorAttributeRequest) + returns (SetPortConnectorAttributeResponse) {} + rpc GetPortConnectorAttribute(GetPortConnectorAttributeRequest) + returns (GetPortConnectorAttributeResponse) {} + rpc CreatePortSerdes(CreatePortSerdesRequest) + returns (CreatePortSerdesResponse) {} + rpc RemovePortSerdes(RemovePortSerdesRequest) + returns (RemovePortSerdesResponse) {} + rpc GetPortSerdesAttribute(GetPortSerdesAttributeRequest) + returns (GetPortSerdesAttributeResponse) {} } diff --git a/dataplane/standalone/proto/qos_map.pb.go b/dataplane/standalone/proto/qos_map.pb.go index 87e8c04f..552d94f0 100755 --- a/dataplane/standalone/proto/qos_map.pb.go +++ b/dataplane/standalone/proto/qos_map.pb.go @@ -78,9 +78,9 @@ type CreateQosMapRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type QosMapType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.QosMapType" json:"type,omitempty"` - MapToValueList []*QOSMap `protobuf:"bytes,3,rep,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *QosMapType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.QosMapType,oneof" json:"type,omitempty"` + MapToValueList []*QOSMap `protobuf:"bytes,3,rep,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` } func (x *CreateQosMapRequest) Reset() { @@ -123,8 +123,8 @@ func (x *CreateQosMapRequest) GetSwitch() uint64 { } func (x *CreateQosMapRequest) GetType() QosMapType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return QosMapType_QOS_MAP_TYPE_UNSPECIFIED } @@ -273,11 +273,8 @@ type SetQosMapAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetQosMapAttributeRequest_MapToValueList - Attr isSetQosMapAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + MapToValueList []*QOSMap `protobuf:"bytes,2,rep,name=map_to_value_list,json=mapToValueList,proto3" json:"map_to_value_list,omitempty"` } func (x *SetQosMapAttributeRequest) Reset() { @@ -319,30 +316,13 @@ func (x *SetQosMapAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetQosMapAttributeRequest) GetAttr() isSetQosMapAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - -func (x *SetQosMapAttributeRequest) GetMapToValueList() *QosMapList { - if x, ok := x.GetAttr().(*SetQosMapAttributeRequest_MapToValueList); ok { +func (x *SetQosMapAttributeRequest) GetMapToValueList() []*QOSMap { + if x != nil { return x.MapToValueList } return nil } -type isSetQosMapAttributeRequest_Attr interface { - isSetQosMapAttributeRequest_Attr() -} - -type SetQosMapAttributeRequest_MapToValueList struct { - MapToValueList *QosMapList `protobuf:"bytes,2,opt,name=map_to_value_list,json=mapToValueList,proto3,oneof"` -} - -func (*SetQosMapAttributeRequest_MapToValueList) isSetQosMapAttributeRequest_Attr() {} - type SetQosMapAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -441,7 +421,7 @@ type GetQosMapAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*QosMapAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *QosMapAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetQosMapAttributeResponse) Reset() { @@ -476,7 +456,7 @@ func (*GetQosMapAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_qos_map_proto_rawDescGZIP(), []int{7} } -func (x *GetQosMapAttributeResponse) GetAttr() []*QosMapAttribute { +func (x *GetQosMapAttributeResponse) GetAttr() *QosMapAttribute { if x != nil { return x.Attr } @@ -492,88 +472,89 @@ var file_dataplane_standalone_proto_qos_map_proto_rawDesc = []byte{ 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x01, 0x0a, 0x13, 0x43, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x48, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x52, 0x0e, 0x6d, 0x61, 0x70, - 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x28, 0x0a, 0x14, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, - 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, - 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x51, 0x6f, - 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4e, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, - 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x54, 0x6f, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1c, - 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, - 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, - 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, - 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x2e, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, + 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0e, 0x6d, 0x61, + 0x70, 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, + 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x7d, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x4e, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x70, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, + 0x0e, 0x6d, 0x61, 0x70, 0x54, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, + 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x65, 0x0a, 0x0a, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x4f, 0x53, + 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x4f, + 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x32, 0xd8, 0x03, + 0x0a, 0x06, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x6f, 0x73, + 0x4d, 0x61, 0x70, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x6f, + 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, + 0x0a, 0x12, 0x53, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x65, 0x0a, 0x0a, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x15, 0x0a, 0x11, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x4f, 0x53, 0x5f, - 0x4d, 0x41, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x54, 0x4f, 0x5f, - 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x32, 0xd8, 0x03, 0x0a, - 0x06, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x6f, 0x73, 0x4d, - 0x61, 0x70, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x6f, 0x73, - 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, - 0x12, 0x53, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x51, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, + 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x51, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x4d, - 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x6f, - 0x73, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -602,15 +583,14 @@ var file_dataplane_standalone_proto_qos_map_proto_goTypes = []interface{}{ (*GetQosMapAttributeResponse)(nil), // 8: lemming.dataplane.sai.GetQosMapAttributeResponse (QosMapType)(0), // 9: lemming.dataplane.sai.QosMapType (*QOSMap)(nil), // 10: lemming.dataplane.sai.QOSMap - (*QosMapList)(nil), // 11: lemming.dataplane.sai.QosMapList - (*QosMapAttribute)(nil), // 12: lemming.dataplane.sai.QosMapAttribute + (*QosMapAttribute)(nil), // 11: lemming.dataplane.sai.QosMapAttribute } var file_dataplane_standalone_proto_qos_map_proto_depIdxs = []int32{ 9, // 0: lemming.dataplane.sai.CreateQosMapRequest.type:type_name -> lemming.dataplane.sai.QosMapType 10, // 1: lemming.dataplane.sai.CreateQosMapRequest.map_to_value_list:type_name -> lemming.dataplane.sai.QOSMap - 11, // 2: lemming.dataplane.sai.SetQosMapAttributeRequest.map_to_value_list:type_name -> lemming.dataplane.sai.QosMapList + 10, // 2: lemming.dataplane.sai.SetQosMapAttributeRequest.map_to_value_list:type_name -> lemming.dataplane.sai.QOSMap 0, // 3: lemming.dataplane.sai.GetQosMapAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.QosMapAttr - 12, // 4: lemming.dataplane.sai.GetQosMapAttributeResponse.attr:type_name -> lemming.dataplane.sai.QosMapAttribute + 11, // 4: lemming.dataplane.sai.GetQosMapAttributeResponse.attr:type_name -> lemming.dataplane.sai.QosMapAttribute 1, // 5: lemming.dataplane.sai.QosMap.CreateQosMap:input_type -> lemming.dataplane.sai.CreateQosMapRequest 3, // 6: lemming.dataplane.sai.QosMap.RemoveQosMap:input_type -> lemming.dataplane.sai.RemoveQosMapRequest 5, // 7: lemming.dataplane.sai.QosMap.SetQosMapAttribute:input_type -> lemming.dataplane.sai.SetQosMapAttributeRequest @@ -730,9 +710,7 @@ func file_dataplane_standalone_proto_qos_map_proto_init() { } } } - file_dataplane_standalone_proto_qos_map_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetQosMapAttributeRequest_MapToValueList)(nil), - } + file_dataplane_standalone_proto_qos_map_proto_msgTypes[0].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/qos_map.proto b/dataplane/standalone/proto/qos_map.proto index 9fcb2c3c..ad6b97a3 100644 --- a/dataplane/standalone/proto/qos_map.proto +++ b/dataplane/standalone/proto/qos_map.proto @@ -7,67 +7,49 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum QosMapAttr { - QOS_MAP_ATTR_UNSPECIFIED = 0; - QOS_MAP_ATTR_TYPE = 1; - QOS_MAP_ATTR_MAP_TO_VALUE_LIST = 2; + QOS_MAP_ATTR_UNSPECIFIED = 0; + QOS_MAP_ATTR_TYPE = 1; + QOS_MAP_ATTR_MAP_TO_VALUE_LIST = 2; } message CreateQosMapRequest { - uint64 switch = 1; - - QosMapType type = 2; - repeated QOSMap map_to_value_list = 3; - + uint64 switch = 1; + optional QosMapType type = 2 [(attr_enum_value) = 1]; + repeated QOSMap map_to_value_list = 3 [(attr_enum_value) = 2]; } message CreateQosMapResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveQosMapRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveQosMapResponse { - - -} +message RemoveQosMapResponse {} message SetQosMapAttributeRequest { - uint64 oid = 1; - oneof attr { - QosMapList map_to_value_list = 2; - } + uint64 oid = 1; + repeated QOSMap map_to_value_list = 2 [(attr_enum_value) = 2]; } -message SetQosMapAttributeResponse { - - -} +message SetQosMapAttributeResponse {} message GetQosMapAttributeRequest { - uint64 oid = 1; - repeated QosMapAttr attr_type = 2; - - + uint64 oid = 1; + repeated QosMapAttr attr_type = 2; } message GetQosMapAttributeResponse { - repeated QosMapAttribute attr = 1; - - + QosMapAttribute attr = 1; } - service QosMap { - rpc CreateQosMap (CreateQosMapRequest) returns (CreateQosMapResponse) {} - rpc RemoveQosMap (RemoveQosMapRequest) returns (RemoveQosMapResponse) {} - rpc SetQosMapAttribute (SetQosMapAttributeRequest) returns (SetQosMapAttributeResponse) {} - rpc GetQosMapAttribute (GetQosMapAttributeRequest) returns (GetQosMapAttributeResponse) {} + rpc CreateQosMap(CreateQosMapRequest) returns (CreateQosMapResponse) {} + rpc RemoveQosMap(RemoveQosMapRequest) returns (RemoveQosMapResponse) {} + rpc SetQosMapAttribute(SetQosMapAttributeRequest) + returns (SetQosMapAttributeResponse) {} + rpc GetQosMapAttribute(GetQosMapAttributeRequest) + returns (GetQosMapAttributeResponse) {} } diff --git a/dataplane/standalone/proto/queue.pb.go b/dataplane/standalone/proto/queue.pb.go index 981a7578..d6e4dbe9 100755 --- a/dataplane/standalone/proto/queue.pb.go +++ b/dataplane/standalone/proto/queue.pb.go @@ -105,17 +105,17 @@ type CreateQueueRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type QueueType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.QueueType" json:"type,omitempty"` - Port uint64 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"` - Index uint32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` - ParentSchedulerNode uint64 `protobuf:"varint,5,opt,name=parent_scheduler_node,json=parentSchedulerNode,proto3" json:"parent_scheduler_node,omitempty"` - WredProfileId uint64 `protobuf:"varint,6,opt,name=wred_profile_id,json=wredProfileId,proto3" json:"wred_profile_id,omitempty"` - BufferProfileId uint64 `protobuf:"varint,7,opt,name=buffer_profile_id,json=bufferProfileId,proto3" json:"buffer_profile_id,omitempty"` - SchedulerProfileId uint64 `protobuf:"varint,8,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3" json:"scheduler_profile_id,omitempty"` - EnablePfcDldr bool `protobuf:"varint,9,opt,name=enable_pfc_dldr,json=enablePfcDldr,proto3" json:"enable_pfc_dldr,omitempty"` - PfcDlrInit bool `protobuf:"varint,10,opt,name=pfc_dlr_init,json=pfcDlrInit,proto3" json:"pfc_dlr_init,omitempty"` - TamObject []uint64 `protobuf:"varint,11,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *QueueType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.QueueType,oneof" json:"type,omitempty"` + Port *uint64 `protobuf:"varint,3,opt,name=port,proto3,oneof" json:"port,omitempty"` + Index *uint32 `protobuf:"varint,4,opt,name=index,proto3,oneof" json:"index,omitempty"` + ParentSchedulerNode *uint64 `protobuf:"varint,5,opt,name=parent_scheduler_node,json=parentSchedulerNode,proto3,oneof" json:"parent_scheduler_node,omitempty"` + WredProfileId *uint64 `protobuf:"varint,6,opt,name=wred_profile_id,json=wredProfileId,proto3,oneof" json:"wred_profile_id,omitempty"` + BufferProfileId *uint64 `protobuf:"varint,7,opt,name=buffer_profile_id,json=bufferProfileId,proto3,oneof" json:"buffer_profile_id,omitempty"` + SchedulerProfileId *uint64 `protobuf:"varint,8,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3,oneof" json:"scheduler_profile_id,omitempty"` + EnablePfcDldr *bool `protobuf:"varint,9,opt,name=enable_pfc_dldr,json=enablePfcDldr,proto3,oneof" json:"enable_pfc_dldr,omitempty"` + PfcDlrInit *bool `protobuf:"varint,10,opt,name=pfc_dlr_init,json=pfcDlrInit,proto3,oneof" json:"pfc_dlr_init,omitempty"` + TamObject []uint64 `protobuf:"varint,11,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` } func (x *CreateQueueRequest) Reset() { @@ -158,64 +158,64 @@ func (x *CreateQueueRequest) GetSwitch() uint64 { } func (x *CreateQueueRequest) GetType() QueueType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return QueueType_QUEUE_TYPE_UNSPECIFIED } func (x *CreateQueueRequest) GetPort() uint64 { - if x != nil { - return x.Port + if x != nil && x.Port != nil { + return *x.Port } return 0 } func (x *CreateQueueRequest) GetIndex() uint32 { - if x != nil { - return x.Index + if x != nil && x.Index != nil { + return *x.Index } return 0 } func (x *CreateQueueRequest) GetParentSchedulerNode() uint64 { - if x != nil { - return x.ParentSchedulerNode + if x != nil && x.ParentSchedulerNode != nil { + return *x.ParentSchedulerNode } return 0 } func (x *CreateQueueRequest) GetWredProfileId() uint64 { - if x != nil { - return x.WredProfileId + if x != nil && x.WredProfileId != nil { + return *x.WredProfileId } return 0 } func (x *CreateQueueRequest) GetBufferProfileId() uint64 { - if x != nil { - return x.BufferProfileId + if x != nil && x.BufferProfileId != nil { + return *x.BufferProfileId } return 0 } func (x *CreateQueueRequest) GetSchedulerProfileId() uint64 { - if x != nil { - return x.SchedulerProfileId + if x != nil && x.SchedulerProfileId != nil { + return *x.SchedulerProfileId } return 0 } func (x *CreateQueueRequest) GetEnablePfcDldr() bool { - if x != nil { - return x.EnablePfcDldr + if x != nil && x.EnablePfcDldr != nil { + return *x.EnablePfcDldr } return false } func (x *CreateQueueRequest) GetPfcDlrInit() bool { - if x != nil { - return x.PfcDlrInit + if x != nil && x.PfcDlrInit != nil { + return *x.PfcDlrInit } return false } @@ -364,17 +364,14 @@ type SetQueueAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetQueueAttributeRequest_ParentSchedulerNode - // *SetQueueAttributeRequest_WredProfileId - // *SetQueueAttributeRequest_BufferProfileId - // *SetQueueAttributeRequest_SchedulerProfileId - // *SetQueueAttributeRequest_EnablePfcDldr - // *SetQueueAttributeRequest_PfcDlrInit - // *SetQueueAttributeRequest_TamObject - Attr isSetQueueAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + ParentSchedulerNode *uint64 `protobuf:"varint,2,opt,name=parent_scheduler_node,json=parentSchedulerNode,proto3,oneof" json:"parent_scheduler_node,omitempty"` + WredProfileId *uint64 `protobuf:"varint,3,opt,name=wred_profile_id,json=wredProfileId,proto3,oneof" json:"wred_profile_id,omitempty"` + BufferProfileId *uint64 `protobuf:"varint,4,opt,name=buffer_profile_id,json=bufferProfileId,proto3,oneof" json:"buffer_profile_id,omitempty"` + SchedulerProfileId *uint64 `protobuf:"varint,5,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3,oneof" json:"scheduler_profile_id,omitempty"` + EnablePfcDldr *bool `protobuf:"varint,6,opt,name=enable_pfc_dldr,json=enablePfcDldr,proto3,oneof" json:"enable_pfc_dldr,omitempty"` + PfcDlrInit *bool `protobuf:"varint,7,opt,name=pfc_dlr_init,json=pfcDlrInit,proto3,oneof" json:"pfc_dlr_init,omitempty"` + TamObject []uint64 `protobuf:"varint,8,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` } func (x *SetQueueAttributeRequest) Reset() { @@ -416,108 +413,55 @@ func (x *SetQueueAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetQueueAttributeRequest) GetAttr() isSetQueueAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetQueueAttributeRequest) GetParentSchedulerNode() uint64 { - if x, ok := x.GetAttr().(*SetQueueAttributeRequest_ParentSchedulerNode); ok { - return x.ParentSchedulerNode + if x != nil && x.ParentSchedulerNode != nil { + return *x.ParentSchedulerNode } return 0 } func (x *SetQueueAttributeRequest) GetWredProfileId() uint64 { - if x, ok := x.GetAttr().(*SetQueueAttributeRequest_WredProfileId); ok { - return x.WredProfileId + if x != nil && x.WredProfileId != nil { + return *x.WredProfileId } return 0 } func (x *SetQueueAttributeRequest) GetBufferProfileId() uint64 { - if x, ok := x.GetAttr().(*SetQueueAttributeRequest_BufferProfileId); ok { - return x.BufferProfileId + if x != nil && x.BufferProfileId != nil { + return *x.BufferProfileId } return 0 } func (x *SetQueueAttributeRequest) GetSchedulerProfileId() uint64 { - if x, ok := x.GetAttr().(*SetQueueAttributeRequest_SchedulerProfileId); ok { - return x.SchedulerProfileId + if x != nil && x.SchedulerProfileId != nil { + return *x.SchedulerProfileId } return 0 } func (x *SetQueueAttributeRequest) GetEnablePfcDldr() bool { - if x, ok := x.GetAttr().(*SetQueueAttributeRequest_EnablePfcDldr); ok { - return x.EnablePfcDldr + if x != nil && x.EnablePfcDldr != nil { + return *x.EnablePfcDldr } return false } func (x *SetQueueAttributeRequest) GetPfcDlrInit() bool { - if x, ok := x.GetAttr().(*SetQueueAttributeRequest_PfcDlrInit); ok { - return x.PfcDlrInit + if x != nil && x.PfcDlrInit != nil { + return *x.PfcDlrInit } return false } -func (x *SetQueueAttributeRequest) GetTamObject() *Uint64List { - if x, ok := x.GetAttr().(*SetQueueAttributeRequest_TamObject); ok { +func (x *SetQueueAttributeRequest) GetTamObject() []uint64 { + if x != nil { return x.TamObject } return nil } -type isSetQueueAttributeRequest_Attr interface { - isSetQueueAttributeRequest_Attr() -} - -type SetQueueAttributeRequest_ParentSchedulerNode struct { - ParentSchedulerNode uint64 `protobuf:"varint,2,opt,name=parent_scheduler_node,json=parentSchedulerNode,proto3,oneof"` -} - -type SetQueueAttributeRequest_WredProfileId struct { - WredProfileId uint64 `protobuf:"varint,3,opt,name=wred_profile_id,json=wredProfileId,proto3,oneof"` -} - -type SetQueueAttributeRequest_BufferProfileId struct { - BufferProfileId uint64 `protobuf:"varint,4,opt,name=buffer_profile_id,json=bufferProfileId,proto3,oneof"` -} - -type SetQueueAttributeRequest_SchedulerProfileId struct { - SchedulerProfileId uint64 `protobuf:"varint,5,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3,oneof"` -} - -type SetQueueAttributeRequest_EnablePfcDldr struct { - EnablePfcDldr bool `protobuf:"varint,6,opt,name=enable_pfc_dldr,json=enablePfcDldr,proto3,oneof"` -} - -type SetQueueAttributeRequest_PfcDlrInit struct { - PfcDlrInit bool `protobuf:"varint,7,opt,name=pfc_dlr_init,json=pfcDlrInit,proto3,oneof"` -} - -type SetQueueAttributeRequest_TamObject struct { - TamObject *Uint64List `protobuf:"bytes,8,opt,name=tam_object,json=tamObject,proto3,oneof"` -} - -func (*SetQueueAttributeRequest_ParentSchedulerNode) isSetQueueAttributeRequest_Attr() {} - -func (*SetQueueAttributeRequest_WredProfileId) isSetQueueAttributeRequest_Attr() {} - -func (*SetQueueAttributeRequest_BufferProfileId) isSetQueueAttributeRequest_Attr() {} - -func (*SetQueueAttributeRequest_SchedulerProfileId) isSetQueueAttributeRequest_Attr() {} - -func (*SetQueueAttributeRequest_EnablePfcDldr) isSetQueueAttributeRequest_Attr() {} - -func (*SetQueueAttributeRequest_PfcDlrInit) isSetQueueAttributeRequest_Attr() {} - -func (*SetQueueAttributeRequest_TamObject) isSetQueueAttributeRequest_Attr() {} - type SetQueueAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -616,7 +560,7 @@ type GetQueueAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*QueueAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *QueueAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetQueueAttributeResponse) Reset() { @@ -651,7 +595,7 @@ func (*GetQueueAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_queue_proto_rawDescGZIP(), []int{7} } -func (x *GetQueueAttributeResponse) GetAttr() []*QueueAttribute { +func (x *GetQueueAttributeResponse) GetAttr() *QueueAttribute { if x != nil { return x.Attr } @@ -667,135 +611,161 @@ var file_dataplane_standalone_proto_queue_proto_rawDesc = []byte{ 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaf, 0x03, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x05, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x77, - 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x30, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, 0x63, 0x5f, - 0x64, 0x6c, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x50, 0x66, 0x63, 0x44, 0x6c, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x66, 0x63, - 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, - 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x27, 0x0a, 0x13, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, - 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x32, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, - 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x66, 0x63, 0x44, 0x6c, 0x64, 0x72, 0x12, 0x22, 0x0a, - 0x0c, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x69, - 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, - 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1b, 0x0a, - 0x19, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x18, 0x47, 0x65, + 0x65, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, + 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, + 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x4e, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x0f, 0x62, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x64, + 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, + 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x66, 0x63, 0x44, 0x6c, 0x64, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x69, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, + 0x0a, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x72, + 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x72, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x69, + 0x74, 0x22, 0x27, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x99, 0x04, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, - 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x56, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, - 0xe9, 0x02, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, - 0x16, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x51, 0x55, 0x45, - 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x13, - 0x0a, 0x0f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x51, 0x55, 0x45, - 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x53, - 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, - 0x1e, 0x0a, 0x1a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x52, - 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x05, 0x12, - 0x20, 0x0a, 0x1c, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x55, - 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, - 0x06, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, - 0x45, 0x5f, 0x49, 0x44, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x10, 0x08, 0x12, 0x1e, 0x0a, 0x1a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x4c, 0x44, - 0x52, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x4c, 0x52, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x0a, - 0x12, 0x19, 0x0a, 0x15, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, - 0x41, 0x4d, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x0b, 0x32, 0xcb, 0x03, 0x0a, 0x05, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, - 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x6c, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x00, 0x52, + 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x4e, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x77, 0x72, 0x65, 0x64, 0x5f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x01, 0x52, 0x0d, 0x77, 0x72, 0x65, 0x64, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x02, 0x52, 0x0f, 0x62, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x03, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x64, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x04, 0x52, + 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x66, 0x63, 0x44, 0x6c, 0x64, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x69, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x05, 0x52, + 0x0a, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x77, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x64, 0x6c, 0x64, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, + 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x22, 0x1b, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x56, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe9, 0x02, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x51, + 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, + 0x03, 0x12, 0x24, 0x0a, 0x20, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x50, 0x41, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, + 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x51, 0x55, 0x45, 0x55, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, + 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x51, 0x55, 0x45, 0x55, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, + 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, + 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x07, 0x12, 0x1b, + 0x0a, 0x17, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x55, + 0x53, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x08, 0x12, 0x1e, 0x0a, 0x1a, 0x51, + 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x4c, 0x44, 0x52, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x51, + 0x55, 0x45, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x4c, + 0x52, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x51, 0x55, 0x45, 0x55, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x10, 0x0b, 0x32, 0xcb, 0x03, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x66, 0x0a, + 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, + 0x11, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -823,27 +793,25 @@ var file_dataplane_standalone_proto_queue_proto_goTypes = []interface{}{ (*GetQueueAttributeRequest)(nil), // 7: lemming.dataplane.sai.GetQueueAttributeRequest (*GetQueueAttributeResponse)(nil), // 8: lemming.dataplane.sai.GetQueueAttributeResponse (QueueType)(0), // 9: lemming.dataplane.sai.QueueType - (*Uint64List)(nil), // 10: lemming.dataplane.sai.Uint64List - (*QueueAttribute)(nil), // 11: lemming.dataplane.sai.QueueAttribute + (*QueueAttribute)(nil), // 10: lemming.dataplane.sai.QueueAttribute } var file_dataplane_standalone_proto_queue_proto_depIdxs = []int32{ 9, // 0: lemming.dataplane.sai.CreateQueueRequest.type:type_name -> lemming.dataplane.sai.QueueType - 10, // 1: lemming.dataplane.sai.SetQueueAttributeRequest.tam_object:type_name -> lemming.dataplane.sai.Uint64List - 0, // 2: lemming.dataplane.sai.GetQueueAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.QueueAttr - 11, // 3: lemming.dataplane.sai.GetQueueAttributeResponse.attr:type_name -> lemming.dataplane.sai.QueueAttribute - 1, // 4: lemming.dataplane.sai.Queue.CreateQueue:input_type -> lemming.dataplane.sai.CreateQueueRequest - 3, // 5: lemming.dataplane.sai.Queue.RemoveQueue:input_type -> lemming.dataplane.sai.RemoveQueueRequest - 5, // 6: lemming.dataplane.sai.Queue.SetQueueAttribute:input_type -> lemming.dataplane.sai.SetQueueAttributeRequest - 7, // 7: lemming.dataplane.sai.Queue.GetQueueAttribute:input_type -> lemming.dataplane.sai.GetQueueAttributeRequest - 2, // 8: lemming.dataplane.sai.Queue.CreateQueue:output_type -> lemming.dataplane.sai.CreateQueueResponse - 4, // 9: lemming.dataplane.sai.Queue.RemoveQueue:output_type -> lemming.dataplane.sai.RemoveQueueResponse - 6, // 10: lemming.dataplane.sai.Queue.SetQueueAttribute:output_type -> lemming.dataplane.sai.SetQueueAttributeResponse - 8, // 11: lemming.dataplane.sai.Queue.GetQueueAttribute:output_type -> lemming.dataplane.sai.GetQueueAttributeResponse - 8, // [8:12] is the sub-list for method output_type - 4, // [4:8] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 0, // 1: lemming.dataplane.sai.GetQueueAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.QueueAttr + 10, // 2: lemming.dataplane.sai.GetQueueAttributeResponse.attr:type_name -> lemming.dataplane.sai.QueueAttribute + 1, // 3: lemming.dataplane.sai.Queue.CreateQueue:input_type -> lemming.dataplane.sai.CreateQueueRequest + 3, // 4: lemming.dataplane.sai.Queue.RemoveQueue:input_type -> lemming.dataplane.sai.RemoveQueueRequest + 5, // 5: lemming.dataplane.sai.Queue.SetQueueAttribute:input_type -> lemming.dataplane.sai.SetQueueAttributeRequest + 7, // 6: lemming.dataplane.sai.Queue.GetQueueAttribute:input_type -> lemming.dataplane.sai.GetQueueAttributeRequest + 2, // 7: lemming.dataplane.sai.Queue.CreateQueue:output_type -> lemming.dataplane.sai.CreateQueueResponse + 4, // 8: lemming.dataplane.sai.Queue.RemoveQueue:output_type -> lemming.dataplane.sai.RemoveQueueResponse + 6, // 9: lemming.dataplane.sai.Queue.SetQueueAttribute:output_type -> lemming.dataplane.sai.SetQueueAttributeResponse + 8, // 10: lemming.dataplane.sai.Queue.GetQueueAttribute:output_type -> lemming.dataplane.sai.GetQueueAttributeResponse + 7, // [7:11] is the sub-list for method output_type + 3, // [3:7] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_queue_proto_init() } @@ -950,15 +918,8 @@ func file_dataplane_standalone_proto_queue_proto_init() { } } } - file_dataplane_standalone_proto_queue_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetQueueAttributeRequest_ParentSchedulerNode)(nil), - (*SetQueueAttributeRequest_WredProfileId)(nil), - (*SetQueueAttributeRequest_BufferProfileId)(nil), - (*SetQueueAttributeRequest_SchedulerProfileId)(nil), - (*SetQueueAttributeRequest_EnablePfcDldr)(nil), - (*SetQueueAttributeRequest_PfcDlrInit)(nil), - (*SetQueueAttributeRequest_TamObject)(nil), - } + file_dataplane_standalone_proto_queue_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_queue_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/queue.proto b/dataplane/standalone/proto/queue.proto index 717eaeac..704bf864 100644 --- a/dataplane/standalone/proto/queue.proto +++ b/dataplane/standalone/proto/queue.proto @@ -7,90 +7,72 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum QueueAttr { - QUEUE_ATTR_UNSPECIFIED = 0; - QUEUE_ATTR_TYPE = 1; - QUEUE_ATTR_PORT = 2; - QUEUE_ATTR_INDEX = 3; - QUEUE_ATTR_PARENT_SCHEDULER_NODE = 4; - QUEUE_ATTR_WRED_PROFILE_ID = 5; - QUEUE_ATTR_BUFFER_PROFILE_ID = 6; - QUEUE_ATTR_SCHEDULER_PROFILE_ID = 7; - QUEUE_ATTR_PAUSE_STATUS = 8; - QUEUE_ATTR_ENABLE_PFC_DLDR = 9; - QUEUE_ATTR_PFC_DLR_INIT = 10; - QUEUE_ATTR_TAM_OBJECT = 11; + QUEUE_ATTR_UNSPECIFIED = 0; + QUEUE_ATTR_TYPE = 1; + QUEUE_ATTR_PORT = 2; + QUEUE_ATTR_INDEX = 3; + QUEUE_ATTR_PARENT_SCHEDULER_NODE = 4; + QUEUE_ATTR_WRED_PROFILE_ID = 5; + QUEUE_ATTR_BUFFER_PROFILE_ID = 6; + QUEUE_ATTR_SCHEDULER_PROFILE_ID = 7; + QUEUE_ATTR_PAUSE_STATUS = 8; + QUEUE_ATTR_ENABLE_PFC_DLDR = 9; + QUEUE_ATTR_PFC_DLR_INIT = 10; + QUEUE_ATTR_TAM_OBJECT = 11; } message CreateQueueRequest { - uint64 switch = 1; - - QueueType type = 2; - uint64 port = 3; - uint32 index = 4; - uint64 parent_scheduler_node = 5; - uint64 wred_profile_id = 6; - uint64 buffer_profile_id = 7; - uint64 scheduler_profile_id = 8; - bool enable_pfc_dldr = 9; - bool pfc_dlr_init = 10; - repeated uint64 tam_object = 11; - + uint64 switch = 1; + optional QueueType type = 2 [(attr_enum_value) = 1]; + optional uint64 port = 3 [(attr_enum_value) = 2]; + optional uint32 index = 4 [(attr_enum_value) = 3]; + optional uint64 parent_scheduler_node = 5 [(attr_enum_value) = 4]; + optional uint64 wred_profile_id = 6 [(attr_enum_value) = 5]; + optional uint64 buffer_profile_id = 7 [(attr_enum_value) = 6]; + optional uint64 scheduler_profile_id = 8 [(attr_enum_value) = 7]; + optional bool enable_pfc_dldr = 9 [(attr_enum_value) = 9]; + optional bool pfc_dlr_init = 10 [(attr_enum_value) = 10]; + repeated uint64 tam_object = 11 [(attr_enum_value) = 11]; } message CreateQueueResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveQueueRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveQueueResponse { - - -} +message RemoveQueueResponse {} message SetQueueAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 parent_scheduler_node = 2; - uint64 wred_profile_id = 3; - uint64 buffer_profile_id = 4; - uint64 scheduler_profile_id = 5; - bool enable_pfc_dldr = 6; - bool pfc_dlr_init = 7; - Uint64List tam_object = 8; - } + uint64 oid = 1; + optional uint64 parent_scheduler_node = 2 [(attr_enum_value) = 4]; + optional uint64 wred_profile_id = 3 [(attr_enum_value) = 5]; + optional uint64 buffer_profile_id = 4 [(attr_enum_value) = 6]; + optional uint64 scheduler_profile_id = 5 [(attr_enum_value) = 7]; + optional bool enable_pfc_dldr = 6 [(attr_enum_value) = 9]; + optional bool pfc_dlr_init = 7 [(attr_enum_value) = 10]; + repeated uint64 tam_object = 8 [(attr_enum_value) = 11]; } -message SetQueueAttributeResponse { - - -} +message SetQueueAttributeResponse {} message GetQueueAttributeRequest { - uint64 oid = 1; - repeated QueueAttr attr_type = 2; - - + uint64 oid = 1; + repeated QueueAttr attr_type = 2; } message GetQueueAttributeResponse { - repeated QueueAttribute attr = 1; - - + QueueAttribute attr = 1; } - service Queue { - rpc CreateQueue (CreateQueueRequest) returns (CreateQueueResponse) {} - rpc RemoveQueue (RemoveQueueRequest) returns (RemoveQueueResponse) {} - rpc SetQueueAttribute (SetQueueAttributeRequest) returns (SetQueueAttributeResponse) {} - rpc GetQueueAttribute (GetQueueAttributeRequest) returns (GetQueueAttributeResponse) {} + rpc CreateQueue(CreateQueueRequest) returns (CreateQueueResponse) {} + rpc RemoveQueue(RemoveQueueRequest) returns (RemoveQueueResponse) {} + rpc SetQueueAttribute(SetQueueAttributeRequest) + returns (SetQueueAttributeResponse) {} + rpc GetQueueAttribute(GetQueueAttributeRequest) + returns (GetQueueAttributeResponse) {} } diff --git a/dataplane/standalone/proto/route.pb.go b/dataplane/standalone/proto/route.pb.go index 5d97019f..75c5803d 100755 --- a/dataplane/standalone/proto/route.pb.go +++ b/dataplane/standalone/proto/route.pb.go @@ -90,12 +90,12 @@ type CreateRouteEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *RouteEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - UserTrapId uint64 `protobuf:"varint,3,opt,name=user_trap_id,json=userTrapId,proto3" json:"user_trap_id,omitempty"` - NextHopId uint64 `protobuf:"varint,4,opt,name=next_hop_id,json=nextHopId,proto3" json:"next_hop_id,omitempty"` - MetaData uint32 `protobuf:"varint,5,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - CounterId uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + Entry *RouteEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,3,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + NextHopId *uint64 `protobuf:"varint,4,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + MetaData *uint32 `protobuf:"varint,5,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + CounterId *uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *CreateRouteEntryRequest) Reset() { @@ -138,36 +138,36 @@ func (x *CreateRouteEntryRequest) GetEntry() *RouteEntry { } func (x *CreateRouteEntryRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateRouteEntryRequest) GetUserTrapId() uint64 { - if x != nil { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *CreateRouteEntryRequest) GetNextHopId() uint64 { - if x != nil { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *CreateRouteEntryRequest) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *CreateRouteEntryRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -300,15 +300,12 @@ type SetRouteEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *RouteEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetRouteEntryAttributeRequest_PacketAction - // *SetRouteEntryAttributeRequest_UserTrapId - // *SetRouteEntryAttributeRequest_NextHopId - // *SetRouteEntryAttributeRequest_MetaData - // *SetRouteEntryAttributeRequest_CounterId - Attr isSetRouteEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *RouteEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + PacketAction *PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + UserTrapId *uint64 `protobuf:"varint,3,opt,name=user_trap_id,json=userTrapId,proto3,oneof" json:"user_trap_id,omitempty"` + NextHopId *uint64 `protobuf:"varint,4,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + MetaData *uint32 `protobuf:"varint,5,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + CounterId *uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *SetRouteEntryAttributeRequest) Reset() { @@ -350,82 +347,41 @@ func (x *SetRouteEntryAttributeRequest) GetEntry() *RouteEntry { return nil } -func (m *SetRouteEntryAttributeRequest) GetAttr() isSetRouteEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetRouteEntryAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetRouteEntryAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetRouteEntryAttributeRequest) GetUserTrapId() uint64 { - if x, ok := x.GetAttr().(*SetRouteEntryAttributeRequest_UserTrapId); ok { - return x.UserTrapId + if x != nil && x.UserTrapId != nil { + return *x.UserTrapId } return 0 } func (x *SetRouteEntryAttributeRequest) GetNextHopId() uint64 { - if x, ok := x.GetAttr().(*SetRouteEntryAttributeRequest_NextHopId); ok { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *SetRouteEntryAttributeRequest) GetMetaData() uint32 { - if x, ok := x.GetAttr().(*SetRouteEntryAttributeRequest_MetaData); ok { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *SetRouteEntryAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetRouteEntryAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } -type isSetRouteEntryAttributeRequest_Attr interface { - isSetRouteEntryAttributeRequest_Attr() -} - -type SetRouteEntryAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,2,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetRouteEntryAttributeRequest_UserTrapId struct { - UserTrapId uint64 `protobuf:"varint,3,opt,name=user_trap_id,json=userTrapId,proto3,oneof"` -} - -type SetRouteEntryAttributeRequest_NextHopId struct { - NextHopId uint64 `protobuf:"varint,4,opt,name=next_hop_id,json=nextHopId,proto3,oneof"` -} - -type SetRouteEntryAttributeRequest_MetaData struct { - MetaData uint32 `protobuf:"varint,5,opt,name=meta_data,json=metaData,proto3,oneof"` -} - -type SetRouteEntryAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,6,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -func (*SetRouteEntryAttributeRequest_PacketAction) isSetRouteEntryAttributeRequest_Attr() {} - -func (*SetRouteEntryAttributeRequest_UserTrapId) isSetRouteEntryAttributeRequest_Attr() {} - -func (*SetRouteEntryAttributeRequest_NextHopId) isSetRouteEntryAttributeRequest_Attr() {} - -func (*SetRouteEntryAttributeRequest_MetaData) isSetRouteEntryAttributeRequest_Attr() {} - -func (*SetRouteEntryAttributeRequest_CounterId) isSetRouteEntryAttributeRequest_Attr() {} - type SetRouteEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -524,7 +480,7 @@ type GetRouteEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*RouteEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *RouteEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetRouteEntryAttributeResponse) Reset() { @@ -559,7 +515,7 @@ func (*GetRouteEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_route_proto_rawDescGZIP(), []int{7} } -func (x *GetRouteEntryAttributeResponse) GetAttr() []*RouteEntryAttribute { +func (x *GetRouteEntryAttributeResponse) GetAttr() *RouteEntryAttribute { if x != nil { return x.Attr } @@ -575,124 +531,140 @@ var file_dataplane_standalone_proto_route_proto_rawDesc = []byte{ 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9a, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x03, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x48, 0x0a, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, - 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x74, - 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x52, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x6e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x09, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x0d, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, - 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x42, 0x06, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x1a, 0x0a, 0x18, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa7, 0x03, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, - 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x81, 0x02, 0x0a, 0x0e, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, - 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, - 0x0a, 0x1e, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, - 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, - 0x4f, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x4f, 0x55, 0x54, 0x45, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x4f, 0x55, 0x54, 0x45, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x5f, 0x41, - 0x44, 0x44, 0x52, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, - 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x32, 0x89, 0x04, - 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, - 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, + 0x74, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, + 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x70, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x02, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, + 0x61, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x81, 0x02, 0x0a, 0x0e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x4f, 0x55, 0x54, + 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x4f, + 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x21, + 0x0a, 0x1d, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x10, + 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x49, + 0x44, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x5f, + 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x4f, 0x55, 0x54, + 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x32, 0x89, 0x04, 0x0a, 0x05, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -851,13 +823,8 @@ func file_dataplane_standalone_proto_route_proto_init() { } } } - file_dataplane_standalone_proto_route_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetRouteEntryAttributeRequest_PacketAction)(nil), - (*SetRouteEntryAttributeRequest_UserTrapId)(nil), - (*SetRouteEntryAttributeRequest_NextHopId)(nil), - (*SetRouteEntryAttributeRequest_MetaData)(nil), - (*SetRouteEntryAttributeRequest_CounterId)(nil), - } + file_dataplane_standalone_proto_route_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_route_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/route.proto b/dataplane/standalone/proto/route.proto index aa979e1f..10f99501 100644 --- a/dataplane/standalone/proto/route.proto +++ b/dataplane/standalone/proto/route.proto @@ -7,77 +7,60 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum RouteEntryAttr { - ROUTE_ENTRY_ATTR_UNSPECIFIED = 0; - ROUTE_ENTRY_ATTR_PACKET_ACTION = 1; - ROUTE_ENTRY_ATTR_USER_TRAP_ID = 2; - ROUTE_ENTRY_ATTR_NEXT_HOP_ID = 3; - ROUTE_ENTRY_ATTR_META_DATA = 4; - ROUTE_ENTRY_ATTR_IP_ADDR_FAMILY = 5; - ROUTE_ENTRY_ATTR_COUNTER_ID = 6; + ROUTE_ENTRY_ATTR_UNSPECIFIED = 0; + ROUTE_ENTRY_ATTR_PACKET_ACTION = 1; + ROUTE_ENTRY_ATTR_USER_TRAP_ID = 2; + ROUTE_ENTRY_ATTR_NEXT_HOP_ID = 3; + ROUTE_ENTRY_ATTR_META_DATA = 4; + ROUTE_ENTRY_ATTR_IP_ADDR_FAMILY = 5; + ROUTE_ENTRY_ATTR_COUNTER_ID = 6; } message CreateRouteEntryRequest { - RouteEntry entry = 1; - - PacketAction packet_action = 2; - uint64 user_trap_id = 3; - uint64 next_hop_id = 4; - uint32 meta_data = 5; - uint64 counter_id = 6; - + RouteEntry entry = 1; + optional PacketAction packet_action = 2 [(attr_enum_value) = 1]; + optional uint64 user_trap_id = 3 [(attr_enum_value) = 2]; + optional uint64 next_hop_id = 4 [(attr_enum_value) = 3]; + optional uint32 meta_data = 5 [(attr_enum_value) = 4]; + optional uint64 counter_id = 6 [(attr_enum_value) = 6]; } -message CreateRouteEntryResponse { - - -} +message CreateRouteEntryResponse {} message RemoveRouteEntryRequest { - RouteEntry entry = 1; - - + RouteEntry entry = 1; } -message RemoveRouteEntryResponse { - - -} +message RemoveRouteEntryResponse {} message SetRouteEntryAttributeRequest { - RouteEntry entry = 1; - oneof attr { - PacketAction packet_action = 2; - uint64 user_trap_id = 3; - uint64 next_hop_id = 4; - uint32 meta_data = 5; - uint64 counter_id = 6; - } + RouteEntry entry = 1; + optional PacketAction packet_action = 2 [(attr_enum_value) = 1]; + optional uint64 user_trap_id = 3 [(attr_enum_value) = 2]; + optional uint64 next_hop_id = 4 [(attr_enum_value) = 3]; + optional uint32 meta_data = 5 [(attr_enum_value) = 4]; + optional uint64 counter_id = 6 [(attr_enum_value) = 6]; } -message SetRouteEntryAttributeResponse { - - -} +message SetRouteEntryAttributeResponse {} message GetRouteEntryAttributeRequest { - RouteEntry entry = 1; - repeated RouteEntryAttr attr_type = 2; - - + RouteEntry entry = 1; + repeated RouteEntryAttr attr_type = 2; } message GetRouteEntryAttributeResponse { - repeated RouteEntryAttribute attr = 1; - - + RouteEntryAttribute attr = 1; } - service Route { - rpc CreateRouteEntry (CreateRouteEntryRequest) returns (CreateRouteEntryResponse) {} - rpc RemoveRouteEntry (RemoveRouteEntryRequest) returns (RemoveRouteEntryResponse) {} - rpc SetRouteEntryAttribute (SetRouteEntryAttributeRequest) returns (SetRouteEntryAttributeResponse) {} - rpc GetRouteEntryAttribute (GetRouteEntryAttributeRequest) returns (GetRouteEntryAttributeResponse) {} + rpc CreateRouteEntry(CreateRouteEntryRequest) + returns (CreateRouteEntryResponse) {} + rpc RemoveRouteEntry(RemoveRouteEntryRequest) + returns (RemoveRouteEntryResponse) {} + rpc SetRouteEntryAttribute(SetRouteEntryAttributeRequest) + returns (SetRouteEntryAttributeResponse) {} + rpc GetRouteEntryAttribute(GetRouteEntryAttributeRequest) + returns (GetRouteEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/router_interface.pb.go b/dataplane/standalone/proto/router_interface.pb.go index 4c5b8ef1..862d902a 100755 --- a/dataplane/standalone/proto/router_interface.pb.go +++ b/dataplane/standalone/proto/router_interface.pb.go @@ -135,28 +135,28 @@ type CreateRouterInterfaceRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - VirtualRouterId uint64 `protobuf:"varint,2,opt,name=virtual_router_id,json=virtualRouterId,proto3" json:"virtual_router_id,omitempty"` - Type RouterInterfaceType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.RouterInterfaceType" json:"type,omitempty"` - PortId uint64 `protobuf:"varint,4,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - VlanId uint64 `protobuf:"varint,5,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - OuterVlanId uint32 `protobuf:"varint,6,opt,name=outer_vlan_id,json=outerVlanId,proto3" json:"outer_vlan_id,omitempty"` - InnerVlanId uint32 `protobuf:"varint,7,opt,name=inner_vlan_id,json=innerVlanId,proto3" json:"inner_vlan_id,omitempty"` - BridgeId uint64 `protobuf:"varint,8,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,9,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - AdminV4State bool `protobuf:"varint,10,opt,name=admin_v4_state,json=adminV4State,proto3" json:"admin_v4_state,omitempty"` - AdminV6State bool `protobuf:"varint,11,opt,name=admin_v6_state,json=adminV6State,proto3" json:"admin_v6_state,omitempty"` - Mtu uint32 `protobuf:"varint,12,opt,name=mtu,proto3" json:"mtu,omitempty"` - IngressAcl uint64 `protobuf:"varint,13,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,14,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - NeighborMissPacketAction PacketAction `protobuf:"varint,15,opt,name=neighbor_miss_packet_action,json=neighborMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"neighbor_miss_packet_action,omitempty"` - V4McastEnable bool `protobuf:"varint,16,opt,name=v4_mcast_enable,json=v4McastEnable,proto3" json:"v4_mcast_enable,omitempty"` - V6McastEnable bool `protobuf:"varint,17,opt,name=v6_mcast_enable,json=v6McastEnable,proto3" json:"v6_mcast_enable,omitempty"` - LoopbackPacketAction PacketAction `protobuf:"varint,18,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"loopback_packet_action,omitempty"` - IsVirtual bool `protobuf:"varint,19,opt,name=is_virtual,json=isVirtual,proto3" json:"is_virtual,omitempty"` - NatZoneId uint32 `protobuf:"varint,20,opt,name=nat_zone_id,json=natZoneId,proto3" json:"nat_zone_id,omitempty"` - DisableDecrementTtl bool `protobuf:"varint,21,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3" json:"disable_decrement_ttl,omitempty"` - AdminMplsState bool `protobuf:"varint,22,opt,name=admin_mpls_state,json=adminMplsState,proto3" json:"admin_mpls_state,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + VirtualRouterId *uint64 `protobuf:"varint,2,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof" json:"virtual_router_id,omitempty"` + Type *RouterInterfaceType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.RouterInterfaceType,oneof" json:"type,omitempty"` + PortId *uint64 `protobuf:"varint,4,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + VlanId *uint64 `protobuf:"varint,5,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + OuterVlanId *uint32 `protobuf:"varint,6,opt,name=outer_vlan_id,json=outerVlanId,proto3,oneof" json:"outer_vlan_id,omitempty"` + InnerVlanId *uint32 `protobuf:"varint,7,opt,name=inner_vlan_id,json=innerVlanId,proto3,oneof" json:"inner_vlan_id,omitempty"` + BridgeId *uint64 `protobuf:"varint,8,opt,name=bridge_id,json=bridgeId,proto3,oneof" json:"bridge_id,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,9,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + AdminV4State *bool `protobuf:"varint,10,opt,name=admin_v4_state,json=adminV4State,proto3,oneof" json:"admin_v4_state,omitempty"` + AdminV6State *bool `protobuf:"varint,11,opt,name=admin_v6_state,json=adminV6State,proto3,oneof" json:"admin_v6_state,omitempty"` + Mtu *uint32 `protobuf:"varint,12,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` + IngressAcl *uint64 `protobuf:"varint,13,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,14,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + NeighborMissPacketAction *PacketAction `protobuf:"varint,15,opt,name=neighbor_miss_packet_action,json=neighborMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"neighbor_miss_packet_action,omitempty"` + V4McastEnable *bool `protobuf:"varint,16,opt,name=v4_mcast_enable,json=v4McastEnable,proto3,oneof" json:"v4_mcast_enable,omitempty"` + V6McastEnable *bool `protobuf:"varint,17,opt,name=v6_mcast_enable,json=v6McastEnable,proto3,oneof" json:"v6_mcast_enable,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,18,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + IsVirtual *bool `protobuf:"varint,19,opt,name=is_virtual,json=isVirtual,proto3,oneof" json:"is_virtual,omitempty"` + NatZoneId *uint32 `protobuf:"varint,20,opt,name=nat_zone_id,json=natZoneId,proto3,oneof" json:"nat_zone_id,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,21,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + AdminMplsState *bool `protobuf:"varint,22,opt,name=admin_mpls_state,json=adminMplsState,proto3,oneof" json:"admin_mpls_state,omitempty"` } func (x *CreateRouterInterfaceRequest) Reset() { @@ -199,50 +199,50 @@ func (x *CreateRouterInterfaceRequest) GetSwitch() uint64 { } func (x *CreateRouterInterfaceRequest) GetVirtualRouterId() uint64 { - if x != nil { - return x.VirtualRouterId + if x != nil && x.VirtualRouterId != nil { + return *x.VirtualRouterId } return 0 } func (x *CreateRouterInterfaceRequest) GetType() RouterInterfaceType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return RouterInterfaceType_ROUTER_INTERFACE_TYPE_UNSPECIFIED } func (x *CreateRouterInterfaceRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *CreateRouterInterfaceRequest) GetVlanId() uint64 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *CreateRouterInterfaceRequest) GetOuterVlanId() uint32 { - if x != nil { - return x.OuterVlanId + if x != nil && x.OuterVlanId != nil { + return *x.OuterVlanId } return 0 } func (x *CreateRouterInterfaceRequest) GetInnerVlanId() uint32 { - if x != nil { - return x.InnerVlanId + if x != nil && x.InnerVlanId != nil { + return *x.InnerVlanId } return 0 } func (x *CreateRouterInterfaceRequest) GetBridgeId() uint64 { - if x != nil { - return x.BridgeId + if x != nil && x.BridgeId != nil { + return *x.BridgeId } return 0 } @@ -255,92 +255,92 @@ func (x *CreateRouterInterfaceRequest) GetSrcMacAddress() []byte { } func (x *CreateRouterInterfaceRequest) GetAdminV4State() bool { - if x != nil { - return x.AdminV4State + if x != nil && x.AdminV4State != nil { + return *x.AdminV4State } return false } func (x *CreateRouterInterfaceRequest) GetAdminV6State() bool { - if x != nil { - return x.AdminV6State + if x != nil && x.AdminV6State != nil { + return *x.AdminV6State } return false } func (x *CreateRouterInterfaceRequest) GetMtu() uint32 { - if x != nil { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } func (x *CreateRouterInterfaceRequest) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *CreateRouterInterfaceRequest) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *CreateRouterInterfaceRequest) GetNeighborMissPacketAction() PacketAction { - if x != nil { - return x.NeighborMissPacketAction + if x != nil && x.NeighborMissPacketAction != nil { + return *x.NeighborMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateRouterInterfaceRequest) GetV4McastEnable() bool { - if x != nil { - return x.V4McastEnable + if x != nil && x.V4McastEnable != nil { + return *x.V4McastEnable } return false } func (x *CreateRouterInterfaceRequest) GetV6McastEnable() bool { - if x != nil { - return x.V6McastEnable + if x != nil && x.V6McastEnable != nil { + return *x.V6McastEnable } return false } func (x *CreateRouterInterfaceRequest) GetLoopbackPacketAction() PacketAction { - if x != nil { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateRouterInterfaceRequest) GetIsVirtual() bool { - if x != nil { - return x.IsVirtual + if x != nil && x.IsVirtual != nil { + return *x.IsVirtual } return false } func (x *CreateRouterInterfaceRequest) GetNatZoneId() uint32 { - if x != nil { - return x.NatZoneId + if x != nil && x.NatZoneId != nil { + return *x.NatZoneId } return 0 } func (x *CreateRouterInterfaceRequest) GetDisableDecrementTtl() bool { - if x != nil { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *CreateRouterInterfaceRequest) GetAdminMplsState() bool { - if x != nil { - return x.AdminMplsState + if x != nil && x.AdminMplsState != nil { + return *x.AdminMplsState } return false } @@ -482,23 +482,20 @@ type SetRouterInterfaceAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetRouterInterfaceAttributeRequest_SrcMacAddress - // *SetRouterInterfaceAttributeRequest_AdminV4State - // *SetRouterInterfaceAttributeRequest_AdminV6State - // *SetRouterInterfaceAttributeRequest_Mtu - // *SetRouterInterfaceAttributeRequest_IngressAcl - // *SetRouterInterfaceAttributeRequest_EgressAcl - // *SetRouterInterfaceAttributeRequest_NeighborMissPacketAction - // *SetRouterInterfaceAttributeRequest_V4McastEnable - // *SetRouterInterfaceAttributeRequest_V6McastEnable - // *SetRouterInterfaceAttributeRequest_LoopbackPacketAction - // *SetRouterInterfaceAttributeRequest_NatZoneId - // *SetRouterInterfaceAttributeRequest_DisableDecrementTtl - // *SetRouterInterfaceAttributeRequest_AdminMplsState - Attr isSetRouterInterfaceAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,2,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + AdminV4State *bool `protobuf:"varint,3,opt,name=admin_v4_state,json=adminV4State,proto3,oneof" json:"admin_v4_state,omitempty"` + AdminV6State *bool `protobuf:"varint,4,opt,name=admin_v6_state,json=adminV6State,proto3,oneof" json:"admin_v6_state,omitempty"` + Mtu *uint32 `protobuf:"varint,5,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` + IngressAcl *uint64 `protobuf:"varint,6,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,7,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + NeighborMissPacketAction *PacketAction `protobuf:"varint,8,opt,name=neighbor_miss_packet_action,json=neighborMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"neighbor_miss_packet_action,omitempty"` + V4McastEnable *bool `protobuf:"varint,9,opt,name=v4_mcast_enable,json=v4McastEnable,proto3,oneof" json:"v4_mcast_enable,omitempty"` + V6McastEnable *bool `protobuf:"varint,10,opt,name=v6_mcast_enable,json=v6McastEnable,proto3,oneof" json:"v6_mcast_enable,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,11,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + NatZoneId *uint32 `protobuf:"varint,12,opt,name=nat_zone_id,json=natZoneId,proto3,oneof" json:"nat_zone_id,omitempty"` + DisableDecrementTtl *bool `protobuf:"varint,13,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof" json:"disable_decrement_ttl,omitempty"` + AdminMplsState *bool `protobuf:"varint,14,opt,name=admin_mpls_state,json=adminMplsState,proto3,oneof" json:"admin_mpls_state,omitempty"` } func (x *SetRouterInterfaceAttributeRequest) Reset() { @@ -540,193 +537,97 @@ func (x *SetRouterInterfaceAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetRouterInterfaceAttributeRequest) GetAttr() isSetRouterInterfaceAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetRouterInterfaceAttributeRequest) GetSrcMacAddress() []byte { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_SrcMacAddress); ok { + if x != nil { return x.SrcMacAddress } return nil } func (x *SetRouterInterfaceAttributeRequest) GetAdminV4State() bool { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_AdminV4State); ok { - return x.AdminV4State + if x != nil && x.AdminV4State != nil { + return *x.AdminV4State } return false } func (x *SetRouterInterfaceAttributeRequest) GetAdminV6State() bool { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_AdminV6State); ok { - return x.AdminV6State + if x != nil && x.AdminV6State != nil { + return *x.AdminV6State } return false } func (x *SetRouterInterfaceAttributeRequest) GetMtu() uint32 { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_Mtu); ok { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } func (x *SetRouterInterfaceAttributeRequest) GetIngressAcl() uint64 { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_IngressAcl); ok { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *SetRouterInterfaceAttributeRequest) GetEgressAcl() uint64 { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_EgressAcl); ok { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *SetRouterInterfaceAttributeRequest) GetNeighborMissPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_NeighborMissPacketAction); ok { - return x.NeighborMissPacketAction + if x != nil && x.NeighborMissPacketAction != nil { + return *x.NeighborMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetRouterInterfaceAttributeRequest) GetV4McastEnable() bool { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_V4McastEnable); ok { - return x.V4McastEnable + if x != nil && x.V4McastEnable != nil { + return *x.V4McastEnable } return false } func (x *SetRouterInterfaceAttributeRequest) GetV6McastEnable() bool { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_V6McastEnable); ok { - return x.V6McastEnable + if x != nil && x.V6McastEnable != nil { + return *x.V6McastEnable } return false } func (x *SetRouterInterfaceAttributeRequest) GetLoopbackPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_LoopbackPacketAction); ok { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetRouterInterfaceAttributeRequest) GetNatZoneId() uint32 { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_NatZoneId); ok { - return x.NatZoneId + if x != nil && x.NatZoneId != nil { + return *x.NatZoneId } return 0 } func (x *SetRouterInterfaceAttributeRequest) GetDisableDecrementTtl() bool { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_DisableDecrementTtl); ok { - return x.DisableDecrementTtl + if x != nil && x.DisableDecrementTtl != nil { + return *x.DisableDecrementTtl } return false } func (x *SetRouterInterfaceAttributeRequest) GetAdminMplsState() bool { - if x, ok := x.GetAttr().(*SetRouterInterfaceAttributeRequest_AdminMplsState); ok { - return x.AdminMplsState + if x != nil && x.AdminMplsState != nil { + return *x.AdminMplsState } return false } -type isSetRouterInterfaceAttributeRequest_Attr interface { - isSetRouterInterfaceAttributeRequest_Attr() -} - -type SetRouterInterfaceAttributeRequest_SrcMacAddress struct { - SrcMacAddress []byte `protobuf:"bytes,2,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_AdminV4State struct { - AdminV4State bool `protobuf:"varint,3,opt,name=admin_v4_state,json=adminV4State,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_AdminV6State struct { - AdminV6State bool `protobuf:"varint,4,opt,name=admin_v6_state,json=adminV6State,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_Mtu struct { - Mtu uint32 `protobuf:"varint,5,opt,name=mtu,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_IngressAcl struct { - IngressAcl uint64 `protobuf:"varint,6,opt,name=ingress_acl,json=ingressAcl,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_EgressAcl struct { - EgressAcl uint64 `protobuf:"varint,7,opt,name=egress_acl,json=egressAcl,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_NeighborMissPacketAction struct { - NeighborMissPacketAction PacketAction `protobuf:"varint,8,opt,name=neighbor_miss_packet_action,json=neighborMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetRouterInterfaceAttributeRequest_V4McastEnable struct { - V4McastEnable bool `protobuf:"varint,9,opt,name=v4_mcast_enable,json=v4McastEnable,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_V6McastEnable struct { - V6McastEnable bool `protobuf:"varint,10,opt,name=v6_mcast_enable,json=v6McastEnable,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_LoopbackPacketAction struct { - LoopbackPacketAction PacketAction `protobuf:"varint,11,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetRouterInterfaceAttributeRequest_NatZoneId struct { - NatZoneId uint32 `protobuf:"varint,12,opt,name=nat_zone_id,json=natZoneId,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_DisableDecrementTtl struct { - DisableDecrementTtl bool `protobuf:"varint,13,opt,name=disable_decrement_ttl,json=disableDecrementTtl,proto3,oneof"` -} - -type SetRouterInterfaceAttributeRequest_AdminMplsState struct { - AdminMplsState bool `protobuf:"varint,14,opt,name=admin_mpls_state,json=adminMplsState,proto3,oneof"` -} - -func (*SetRouterInterfaceAttributeRequest_SrcMacAddress) isSetRouterInterfaceAttributeRequest_Attr() { -} - -func (*SetRouterInterfaceAttributeRequest_AdminV4State) isSetRouterInterfaceAttributeRequest_Attr() {} - -func (*SetRouterInterfaceAttributeRequest_AdminV6State) isSetRouterInterfaceAttributeRequest_Attr() {} - -func (*SetRouterInterfaceAttributeRequest_Mtu) isSetRouterInterfaceAttributeRequest_Attr() {} - -func (*SetRouterInterfaceAttributeRequest_IngressAcl) isSetRouterInterfaceAttributeRequest_Attr() {} - -func (*SetRouterInterfaceAttributeRequest_EgressAcl) isSetRouterInterfaceAttributeRequest_Attr() {} - -func (*SetRouterInterfaceAttributeRequest_NeighborMissPacketAction) isSetRouterInterfaceAttributeRequest_Attr() { -} - -func (*SetRouterInterfaceAttributeRequest_V4McastEnable) isSetRouterInterfaceAttributeRequest_Attr() { -} - -func (*SetRouterInterfaceAttributeRequest_V6McastEnable) isSetRouterInterfaceAttributeRequest_Attr() { -} - -func (*SetRouterInterfaceAttributeRequest_LoopbackPacketAction) isSetRouterInterfaceAttributeRequest_Attr() { -} - -func (*SetRouterInterfaceAttributeRequest_NatZoneId) isSetRouterInterfaceAttributeRequest_Attr() {} - -func (*SetRouterInterfaceAttributeRequest_DisableDecrementTtl) isSetRouterInterfaceAttributeRequest_Attr() { -} - -func (*SetRouterInterfaceAttributeRequest_AdminMplsState) isSetRouterInterfaceAttributeRequest_Attr() { -} - type SetRouterInterfaceAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -825,7 +726,7 @@ type GetRouterInterfaceAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*RouterInterfaceAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *RouterInterfaceAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetRouterInterfaceAttributeResponse) Reset() { @@ -860,7 +761,7 @@ func (*GetRouterInterfaceAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_router_interface_proto_rawDescGZIP(), []int{7} } -func (x *GetRouterInterfaceAttributeResponse) GetAttr() []*RouterInterfaceAttribute { +func (x *GetRouterInterfaceAttributeResponse) GetAttr() *RouterInterfaceAttribute { if x != nil { return x.Attr } @@ -877,233 +778,294 @@ var file_dataplane_standalone_proto_router_interface_proto_rawDesc = []byte{ 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x07, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x0c, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x11, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x22, - 0x0a, 0x0d, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, - 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x62, 0x0a, 0x1b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x18, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x34, 0x5f, - 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x76, 0x36, 0x4d, 0x63, - 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, + 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x06, 0x76, 0x6c, 0x61, + 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, + 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, + 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0d, 0x73, + 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, + 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, + 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x0a, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x18, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x0d, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x0d, 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, - 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, - 0x61, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, - 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x31, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x09, 0x69, 0x73, 0x56, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x61, 0x74, + 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x13, 0x52, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x70, 0x6c, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, + 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x6d, 0x74, 0x75, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, + 0x63, 0x6c, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, + 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x36, 0x5f, 0x6d, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, + 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, + 0x65, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x31, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x05, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x72, 0x63, - 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x6d, 0x74, - 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x21, - 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, - 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, - 0x63, 0x6c, 0x12, 0x64, 0x0a, 0x1b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6d, - 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x18, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x34, 0x5f, 0x6d, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x76, - 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5b, 0x0a, 0x16, - 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, - 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x09, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, - 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x22, - 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, - 0x23, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x9a, 0x07, 0x0a, 0x13, 0x52, 0x6f, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x08, 0x0a, 0x22, 0x53, 0x65, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x08, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, + 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, + 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x02, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, + 0x75, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x61, 0x63, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, + 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x65, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1b, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x06, 0x52, 0x18, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x34, 0x5f, + 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x07, 0x52, 0x0d, 0x76, 0x34, 0x4d, 0x63, + 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, + 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x08, 0x52, 0x0d, 0x76, + 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x64, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x09, 0x52, 0x14, 0x6c, 0x6f, + 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, + 0x48, 0x0a, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x0b, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x10, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, + 0x0c, 0x52, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x36, + 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x74, + 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x74, 0x6c, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, - 0x72, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, - 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x52, 0x4f, 0x55, 0x54, - 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, - 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x4f, 0x55, 0x54, - 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x52, - 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x49, 0x44, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, - 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, 0x23, 0x0a, - 0x1f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x44, - 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, - 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x08, 0x12, 0x28, 0x0a, - 0x24, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x56, 0x34, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x09, 0x12, 0x28, 0x0a, 0x24, 0x52, 0x4f, 0x55, 0x54, 0x45, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, + 0x0a, 0x22, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x6a, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x9a, 0x07, 0x0a, 0x13, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, + 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x52, 0x4f, + 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, + 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x56, 0x36, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, - 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, - 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x0b, - 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, - 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, - 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x0c, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x4f, 0x55, 0x54, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x0d, 0x12, 0x35, 0x0a, - 0x31, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, - 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, - 0x4d, 0x49, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x0e, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x34, - 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0f, 0x12, - 0x29, 0x0a, 0x25, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, - 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x36, 0x5f, 0x4d, 0x43, 0x41, 0x53, - 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x10, 0x12, 0x30, 0x0a, 0x2c, 0x52, 0x4f, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x11, 0x12, 0x24, 0x0a, 0x20, - 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, - 0x10, 0x12, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, - 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x13, 0x12, 0x2f, 0x0a, 0x2b, 0x52, 0x4f, 0x55, + 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x27, 0x0a, + 0x23, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, + 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, + 0x23, 0x0a, 0x1f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, + 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, + 0x49, 0x44, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, + 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x08, 0x12, + 0x28, 0x0a, 0x24, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, + 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x56, + 0x34, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x09, 0x12, 0x28, 0x0a, 0x24, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x45, - 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x14, 0x12, 0x2a, 0x0a, 0x26, 0x52, 0x4f, - 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x10, 0x15, 0x32, 0xd1, 0x04, 0x0a, 0x0f, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x43, + 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x56, 0x36, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, + 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x54, 0x55, + 0x10, 0x0b, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, + 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x0c, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x4f, 0x55, + 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x0d, 0x12, + 0x35, 0x0a, 0x31, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, + 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, + 0x52, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0e, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, + 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x56, 0x34, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, + 0x0f, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, + 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x36, 0x5f, 0x4d, 0x43, + 0x41, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x10, 0x12, 0x30, 0x0a, 0x2c, + 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x11, 0x12, 0x24, + 0x0a, 0x20, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, + 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x53, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, + 0x41, 0x4c, 0x10, 0x12, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, + 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x13, 0x12, 0x2f, 0x0a, 0x2b, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x43, + 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x54, 0x4c, 0x10, 0x14, 0x12, 0x2a, 0x0a, 0x26, + 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x4d, 0x50, 0x4c, 0x53, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x15, 0x32, 0xd1, 0x04, 0x0a, 0x0f, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x84, 0x01, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, + 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x33, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x53, + 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x96, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, + 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1261,21 +1223,8 @@ func file_dataplane_standalone_proto_router_interface_proto_init() { } } } - file_dataplane_standalone_proto_router_interface_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetRouterInterfaceAttributeRequest_SrcMacAddress)(nil), - (*SetRouterInterfaceAttributeRequest_AdminV4State)(nil), - (*SetRouterInterfaceAttributeRequest_AdminV6State)(nil), - (*SetRouterInterfaceAttributeRequest_Mtu)(nil), - (*SetRouterInterfaceAttributeRequest_IngressAcl)(nil), - (*SetRouterInterfaceAttributeRequest_EgressAcl)(nil), - (*SetRouterInterfaceAttributeRequest_NeighborMissPacketAction)(nil), - (*SetRouterInterfaceAttributeRequest_V4McastEnable)(nil), - (*SetRouterInterfaceAttributeRequest_V6McastEnable)(nil), - (*SetRouterInterfaceAttributeRequest_LoopbackPacketAction)(nil), - (*SetRouterInterfaceAttributeRequest_NatZoneId)(nil), - (*SetRouterInterfaceAttributeRequest_DisableDecrementTtl)(nil), - (*SetRouterInterfaceAttributeRequest_AdminMplsState)(nil), - } + file_dataplane_standalone_proto_router_interface_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_router_interface_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/router_interface.proto b/dataplane/standalone/proto/router_interface.proto index dbc11f68..2d6f23ae 100644 --- a/dataplane/standalone/proto/router_interface.proto +++ b/dataplane/standalone/proto/router_interface.proto @@ -7,117 +7,103 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum RouterInterfaceAttr { - ROUTER_INTERFACE_ATTR_UNSPECIFIED = 0; - ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID = 1; - ROUTER_INTERFACE_ATTR_TYPE = 2; - ROUTER_INTERFACE_ATTR_PORT_ID = 3; - ROUTER_INTERFACE_ATTR_VLAN_ID = 4; - ROUTER_INTERFACE_ATTR_OUTER_VLAN_ID = 5; - ROUTER_INTERFACE_ATTR_INNER_VLAN_ID = 6; - ROUTER_INTERFACE_ATTR_BRIDGE_ID = 7; - ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS = 8; - ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE = 9; - ROUTER_INTERFACE_ATTR_ADMIN_V6_STATE = 10; - ROUTER_INTERFACE_ATTR_MTU = 11; - ROUTER_INTERFACE_ATTR_INGRESS_ACL = 12; - ROUTER_INTERFACE_ATTR_EGRESS_ACL = 13; - ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION = 14; - ROUTER_INTERFACE_ATTR_V4_MCAST_ENABLE = 15; - ROUTER_INTERFACE_ATTR_V6_MCAST_ENABLE = 16; - ROUTER_INTERFACE_ATTR_LOOPBACK_PACKET_ACTION = 17; - ROUTER_INTERFACE_ATTR_IS_VIRTUAL = 18; - ROUTER_INTERFACE_ATTR_NAT_ZONE_ID = 19; - ROUTER_INTERFACE_ATTR_DISABLE_DECREMENT_TTL = 20; - ROUTER_INTERFACE_ATTR_ADMIN_MPLS_STATE = 21; + ROUTER_INTERFACE_ATTR_UNSPECIFIED = 0; + ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID = 1; + ROUTER_INTERFACE_ATTR_TYPE = 2; + ROUTER_INTERFACE_ATTR_PORT_ID = 3; + ROUTER_INTERFACE_ATTR_VLAN_ID = 4; + ROUTER_INTERFACE_ATTR_OUTER_VLAN_ID = 5; + ROUTER_INTERFACE_ATTR_INNER_VLAN_ID = 6; + ROUTER_INTERFACE_ATTR_BRIDGE_ID = 7; + ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS = 8; + ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE = 9; + ROUTER_INTERFACE_ATTR_ADMIN_V6_STATE = 10; + ROUTER_INTERFACE_ATTR_MTU = 11; + ROUTER_INTERFACE_ATTR_INGRESS_ACL = 12; + ROUTER_INTERFACE_ATTR_EGRESS_ACL = 13; + ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION = 14; + ROUTER_INTERFACE_ATTR_V4_MCAST_ENABLE = 15; + ROUTER_INTERFACE_ATTR_V6_MCAST_ENABLE = 16; + ROUTER_INTERFACE_ATTR_LOOPBACK_PACKET_ACTION = 17; + ROUTER_INTERFACE_ATTR_IS_VIRTUAL = 18; + ROUTER_INTERFACE_ATTR_NAT_ZONE_ID = 19; + ROUTER_INTERFACE_ATTR_DISABLE_DECREMENT_TTL = 20; + ROUTER_INTERFACE_ATTR_ADMIN_MPLS_STATE = 21; } message CreateRouterInterfaceRequest { - uint64 switch = 1; - - uint64 virtual_router_id = 2; - RouterInterfaceType type = 3; - uint64 port_id = 4; - uint64 vlan_id = 5; - uint32 outer_vlan_id = 6; - uint32 inner_vlan_id = 7; - uint64 bridge_id = 8; - bytes src_mac_address = 9; - bool admin_v4_state = 10; - bool admin_v6_state = 11; - uint32 mtu = 12; - uint64 ingress_acl = 13; - uint64 egress_acl = 14; - PacketAction neighbor_miss_packet_action = 15; - bool v4_mcast_enable = 16; - bool v6_mcast_enable = 17; - PacketAction loopback_packet_action = 18; - bool is_virtual = 19; - uint32 nat_zone_id = 20; - bool disable_decrement_ttl = 21; - bool admin_mpls_state = 22; - + uint64 switch = 1; + optional uint64 virtual_router_id = 2 [(attr_enum_value) = 1]; + optional RouterInterfaceType type = 3 [(attr_enum_value) = 2]; + optional uint64 port_id = 4 [(attr_enum_value) = 3]; + optional uint64 vlan_id = 5 [(attr_enum_value) = 4]; + optional uint32 outer_vlan_id = 6 [(attr_enum_value) = 5]; + optional uint32 inner_vlan_id = 7 [(attr_enum_value) = 6]; + optional uint64 bridge_id = 8 [(attr_enum_value) = 7]; + optional bytes src_mac_address = 9 [(attr_enum_value) = 8]; + optional bool admin_v4_state = 10 [(attr_enum_value) = 9]; + optional bool admin_v6_state = 11 [(attr_enum_value) = 10]; + optional uint32 mtu = 12 [(attr_enum_value) = 11]; + optional uint64 ingress_acl = 13 [(attr_enum_value) = 12]; + optional uint64 egress_acl = 14 [(attr_enum_value) = 13]; + optional PacketAction neighbor_miss_packet_action = 15 + [(attr_enum_value) = 14]; + optional bool v4_mcast_enable = 16 [(attr_enum_value) = 15]; + optional bool v6_mcast_enable = 17 [(attr_enum_value) = 16]; + optional PacketAction loopback_packet_action = 18 [(attr_enum_value) = 17]; + optional bool is_virtual = 19 [(attr_enum_value) = 18]; + optional uint32 nat_zone_id = 20 [(attr_enum_value) = 19]; + optional bool disable_decrement_ttl = 21 [(attr_enum_value) = 20]; + optional bool admin_mpls_state = 22 [(attr_enum_value) = 21]; } message CreateRouterInterfaceResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveRouterInterfaceRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveRouterInterfaceResponse { - - -} +message RemoveRouterInterfaceResponse {} message SetRouterInterfaceAttributeRequest { - uint64 oid = 1; - oneof attr { - bytes src_mac_address = 2; - bool admin_v4_state = 3; - bool admin_v6_state = 4; - uint32 mtu = 5; - uint64 ingress_acl = 6; - uint64 egress_acl = 7; - PacketAction neighbor_miss_packet_action = 8; - bool v4_mcast_enable = 9; - bool v6_mcast_enable = 10; - PacketAction loopback_packet_action = 11; - uint32 nat_zone_id = 12; - bool disable_decrement_ttl = 13; - bool admin_mpls_state = 14; - } + uint64 oid = 1; + optional bytes src_mac_address = 2 [(attr_enum_value) = 8]; + optional bool admin_v4_state = 3 [(attr_enum_value) = 9]; + optional bool admin_v6_state = 4 [(attr_enum_value) = 10]; + optional uint32 mtu = 5 [(attr_enum_value) = 11]; + optional uint64 ingress_acl = 6 [(attr_enum_value) = 12]; + optional uint64 egress_acl = 7 [(attr_enum_value) = 13]; + optional PacketAction neighbor_miss_packet_action = 8 + [(attr_enum_value) = 14]; + optional bool v4_mcast_enable = 9 [(attr_enum_value) = 15]; + optional bool v6_mcast_enable = 10 [(attr_enum_value) = 16]; + optional PacketAction loopback_packet_action = 11 [(attr_enum_value) = 17]; + optional uint32 nat_zone_id = 12 [(attr_enum_value) = 19]; + optional bool disable_decrement_ttl = 13 [(attr_enum_value) = 20]; + optional bool admin_mpls_state = 14 [(attr_enum_value) = 21]; } -message SetRouterInterfaceAttributeResponse { - - -} +message SetRouterInterfaceAttributeResponse {} message GetRouterInterfaceAttributeRequest { - uint64 oid = 1; - repeated RouterInterfaceAttr attr_type = 2; - - + uint64 oid = 1; + repeated RouterInterfaceAttr attr_type = 2; } message GetRouterInterfaceAttributeResponse { - repeated RouterInterfaceAttribute attr = 1; - - + RouterInterfaceAttribute attr = 1; } - service RouterInterface { - rpc CreateRouterInterface (CreateRouterInterfaceRequest) returns (CreateRouterInterfaceResponse) {} - rpc RemoveRouterInterface (RemoveRouterInterfaceRequest) returns (RemoveRouterInterfaceResponse) {} - rpc SetRouterInterfaceAttribute (SetRouterInterfaceAttributeRequest) returns (SetRouterInterfaceAttributeResponse) {} - rpc GetRouterInterfaceAttribute (GetRouterInterfaceAttributeRequest) returns (GetRouterInterfaceAttributeResponse) {} + rpc CreateRouterInterface(CreateRouterInterfaceRequest) + returns (CreateRouterInterfaceResponse) {} + rpc RemoveRouterInterface(RemoveRouterInterfaceRequest) + returns (RemoveRouterInterfaceResponse) {} + rpc SetRouterInterfaceAttribute(SetRouterInterfaceAttributeRequest) + returns (SetRouterInterfaceAttributeResponse) {} + rpc GetRouterInterfaceAttribute(GetRouterInterfaceAttributeRequest) + returns (GetRouterInterfaceAttributeResponse) {} } diff --git a/dataplane/standalone/proto/rpf_group.pb.go b/dataplane/standalone/proto/rpf_group.pb.go index 34ef8289..e7a9f874 100755 --- a/dataplane/standalone/proto/rpf_group.pb.go +++ b/dataplane/standalone/proto/rpf_group.pb.go @@ -361,7 +361,7 @@ type GetRpfGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*RpfGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *RpfGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetRpfGroupAttributeResponse) Reset() { @@ -396,7 +396,7 @@ func (*GetRpfGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_rpf_group_proto_rawDescGZIP(), []int{5} } -func (x *GetRpfGroupAttributeResponse) GetAttr() []*RpfGroupAttribute { +func (x *GetRpfGroupAttributeResponse) GetAttr() *RpfGroupAttribute { if x != nil { return x.Attr } @@ -408,9 +408,9 @@ type CreateRpfGroupMemberRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - RpfGroupId uint64 `protobuf:"varint,2,opt,name=rpf_group_id,json=rpfGroupId,proto3" json:"rpf_group_id,omitempty"` - RpfInterfaceId uint64 `protobuf:"varint,3,opt,name=rpf_interface_id,json=rpfInterfaceId,proto3" json:"rpf_interface_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + RpfGroupId *uint64 `protobuf:"varint,2,opt,name=rpf_group_id,json=rpfGroupId,proto3,oneof" json:"rpf_group_id,omitempty"` + RpfInterfaceId *uint64 `protobuf:"varint,3,opt,name=rpf_interface_id,json=rpfInterfaceId,proto3,oneof" json:"rpf_interface_id,omitempty"` } func (x *CreateRpfGroupMemberRequest) Reset() { @@ -453,15 +453,15 @@ func (x *CreateRpfGroupMemberRequest) GetSwitch() uint64 { } func (x *CreateRpfGroupMemberRequest) GetRpfGroupId() uint64 { - if x != nil { - return x.RpfGroupId + if x != nil && x.RpfGroupId != nil { + return *x.RpfGroupId } return 0 } func (x *CreateRpfGroupMemberRequest) GetRpfInterfaceId() uint64 { - if x != nil { - return x.RpfInterfaceId + if x != nil && x.RpfInterfaceId != nil { + return *x.RpfInterfaceId } return 0 } @@ -658,7 +658,7 @@ type GetRpfGroupMemberAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*RpfGroupMemberAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *RpfGroupMemberAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetRpfGroupMemberAttributeResponse) Reset() { @@ -693,7 +693,7 @@ func (*GetRpfGroupMemberAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_rpf_group_proto_rawDescGZIP(), []int{11} } -func (x *GetRpfGroupMemberAttributeResponse) GetAttr() []*RpfGroupMemberAttribute { +func (x *GetRpfGroupMemberAttributeResponse) GetAttr() *RpfGroupMemberAttribute { if x != nil { return x.Attr } @@ -729,112 +729,115 @@ var file_dataplane_standalone_proto_rpf_group_proto_rawDesc = []byte{ 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, - 0x81, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, + 0xbd, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, - 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x70, 0x66, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x70, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, - 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x46, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, - 0x7a, 0x0a, 0x0c, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x1e, 0x0a, 0x1a, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x26, 0x0a, 0x22, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x50, 0x46, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x4d, 0x45, - 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x2a, 0x8f, 0x01, 0x0a, 0x12, - 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x52, 0x50, 0x46, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, - 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, - 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x32, 0x8e, 0x06, - 0x0a, 0x08, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, 0x2e, 0x6c, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2b, 0x0a, 0x0c, 0x72, 0x70, 0x66, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x72, 0x70, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x70, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x70, + 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, + 0x70, 0x66, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, + 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x22, 0x2f, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x70, + 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x7a, 0x0a, 0x0c, 0x52, + 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x52, + 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x52, + 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x50, + 0x46, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, + 0x54, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x2a, 0x8f, 0x01, 0x0a, 0x12, 0x52, 0x70, 0x66, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x25, + 0x0a, 0x21, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, + 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, + 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x2a, 0x0a, + 0x26, 0x52, 0x50, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x50, 0x46, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x46, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x32, 0x8e, 0x06, 0x0a, 0x08, 0x52, 0x70, + 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, + 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x81, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x70, 0x66, 0x47, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, - 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x2e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x70, 0x66, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, - 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, - 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, - 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x70, 0x66, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1045,6 +1048,7 @@ func file_dataplane_standalone_proto_rpf_group_proto_init() { } } } + file_dataplane_standalone_proto_rpf_group_proto_msgTypes[6].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/rpf_group.proto b/dataplane/standalone/proto/rpf_group.proto index 4b6a9aba..e28f946d 100644 --- a/dataplane/standalone/proto/rpf_group.proto +++ b/dataplane/standalone/proto/rpf_group.proto @@ -7,99 +7,75 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum RpfGroupAttr { - RPF_GROUP_ATTR_UNSPECIFIED = 0; - RPF_GROUP_ATTR_RPF_INTERFACE_COUNT = 1; - RPF_GROUP_ATTR_RPF_MEMBER_LIST = 2; + RPF_GROUP_ATTR_UNSPECIFIED = 0; + RPF_GROUP_ATTR_RPF_INTERFACE_COUNT = 1; + RPF_GROUP_ATTR_RPF_MEMBER_LIST = 2; } enum RpfGroupMemberAttr { - RPF_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; - RPF_GROUP_MEMBER_ATTR_RPF_GROUP_ID = 1; - RPF_GROUP_MEMBER_ATTR_RPF_INTERFACE_ID = 2; + RPF_GROUP_MEMBER_ATTR_UNSPECIFIED = 0; + RPF_GROUP_MEMBER_ATTR_RPF_GROUP_ID = 1; + RPF_GROUP_MEMBER_ATTR_RPF_INTERFACE_ID = 2; } message CreateRpfGroupRequest { - uint64 switch = 1; - - + uint64 switch = 1; } message CreateRpfGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveRpfGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveRpfGroupResponse { - - -} +message RemoveRpfGroupResponse {} message GetRpfGroupAttributeRequest { - uint64 oid = 1; - repeated RpfGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated RpfGroupAttr attr_type = 2; } message GetRpfGroupAttributeResponse { - repeated RpfGroupAttribute attr = 1; - - + RpfGroupAttribute attr = 1; } message CreateRpfGroupMemberRequest { - uint64 switch = 1; - - uint64 rpf_group_id = 2; - uint64 rpf_interface_id = 3; - + uint64 switch = 1; + optional uint64 rpf_group_id = 2 [(attr_enum_value) = 1]; + optional uint64 rpf_interface_id = 3 [(attr_enum_value) = 2]; } message CreateRpfGroupMemberResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveRpfGroupMemberRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveRpfGroupMemberResponse { - - -} +message RemoveRpfGroupMemberResponse {} message GetRpfGroupMemberAttributeRequest { - uint64 oid = 1; - repeated RpfGroupMemberAttr attr_type = 2; - - + uint64 oid = 1; + repeated RpfGroupMemberAttr attr_type = 2; } message GetRpfGroupMemberAttributeResponse { - repeated RpfGroupMemberAttribute attr = 1; - - + RpfGroupMemberAttribute attr = 1; } - service RpfGroup { - rpc CreateRpfGroup (CreateRpfGroupRequest) returns (CreateRpfGroupResponse) {} - rpc RemoveRpfGroup (RemoveRpfGroupRequest) returns (RemoveRpfGroupResponse) {} - rpc GetRpfGroupAttribute (GetRpfGroupAttributeRequest) returns (GetRpfGroupAttributeResponse) {} - rpc CreateRpfGroupMember (CreateRpfGroupMemberRequest) returns (CreateRpfGroupMemberResponse) {} - rpc RemoveRpfGroupMember (RemoveRpfGroupMemberRequest) returns (RemoveRpfGroupMemberResponse) {} - rpc GetRpfGroupMemberAttribute (GetRpfGroupMemberAttributeRequest) returns (GetRpfGroupMemberAttributeResponse) {} + rpc CreateRpfGroup(CreateRpfGroupRequest) returns (CreateRpfGroupResponse) {} + rpc RemoveRpfGroup(RemoveRpfGroupRequest) returns (RemoveRpfGroupResponse) {} + rpc GetRpfGroupAttribute(GetRpfGroupAttributeRequest) + returns (GetRpfGroupAttributeResponse) {} + rpc CreateRpfGroupMember(CreateRpfGroupMemberRequest) + returns (CreateRpfGroupMemberResponse) {} + rpc RemoveRpfGroupMember(RemoveRpfGroupMemberRequest) + returns (RemoveRpfGroupMemberResponse) {} + rpc GetRpfGroupMemberAttribute(GetRpfGroupMemberAttributeRequest) + returns (GetRpfGroupMemberAttributeResponse) {} } diff --git a/dataplane/standalone/proto/samplepacket.pb.go b/dataplane/standalone/proto/samplepacket.pb.go index cac29846..74248773 100755 --- a/dataplane/standalone/proto/samplepacket.pb.go +++ b/dataplane/standalone/proto/samplepacket.pb.go @@ -81,10 +81,10 @@ type CreateSamplepacketRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - SampleRate uint32 `protobuf:"varint,2,opt,name=sample_rate,json=sampleRate,proto3" json:"sample_rate,omitempty"` - Type SamplepacketType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.SamplepacketType" json:"type,omitempty"` - Mode SamplepacketMode `protobuf:"varint,4,opt,name=mode,proto3,enum=lemming.dataplane.sai.SamplepacketMode" json:"mode,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + SampleRate *uint32 `protobuf:"varint,2,opt,name=sample_rate,json=sampleRate,proto3,oneof" json:"sample_rate,omitempty"` + Type *SamplepacketType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.SamplepacketType,oneof" json:"type,omitempty"` + Mode *SamplepacketMode `protobuf:"varint,4,opt,name=mode,proto3,enum=lemming.dataplane.sai.SamplepacketMode,oneof" json:"mode,omitempty"` } func (x *CreateSamplepacketRequest) Reset() { @@ -127,22 +127,22 @@ func (x *CreateSamplepacketRequest) GetSwitch() uint64 { } func (x *CreateSamplepacketRequest) GetSampleRate() uint32 { - if x != nil { - return x.SampleRate + if x != nil && x.SampleRate != nil { + return *x.SampleRate } return 0 } func (x *CreateSamplepacketRequest) GetType() SamplepacketType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return SamplepacketType_SAMPLEPACKET_TYPE_UNSPECIFIED } func (x *CreateSamplepacketRequest) GetMode() SamplepacketMode { - if x != nil { - return x.Mode + if x != nil && x.Mode != nil { + return *x.Mode } return SamplepacketMode_SAMPLEPACKET_MODE_UNSPECIFIED } @@ -284,11 +284,8 @@ type SetSamplepacketAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetSamplepacketAttributeRequest_SampleRate - Attr isSetSamplepacketAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + SampleRate *uint32 `protobuf:"varint,2,opt,name=sample_rate,json=sampleRate,proto3,oneof" json:"sample_rate,omitempty"` } func (x *SetSamplepacketAttributeRequest) Reset() { @@ -330,30 +327,13 @@ func (x *SetSamplepacketAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetSamplepacketAttributeRequest) GetAttr() isSetSamplepacketAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetSamplepacketAttributeRequest) GetSampleRate() uint32 { - if x, ok := x.GetAttr().(*SetSamplepacketAttributeRequest_SampleRate); ok { - return x.SampleRate + if x != nil && x.SampleRate != nil { + return *x.SampleRate } return 0 } -type isSetSamplepacketAttributeRequest_Attr interface { - isSetSamplepacketAttributeRequest_Attr() -} - -type SetSamplepacketAttributeRequest_SampleRate struct { - SampleRate uint32 `protobuf:"varint,2,opt,name=sample_rate,json=sampleRate,proto3,oneof"` -} - -func (*SetSamplepacketAttributeRequest_SampleRate) isSetSamplepacketAttributeRequest_Attr() {} - type SetSamplepacketAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -452,7 +432,7 @@ type GetSamplepacketAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*SamplepacketAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *SamplepacketAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetSamplepacketAttributeResponse) Reset() { @@ -487,7 +467,7 @@ func (*GetSamplepacketAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_samplepacket_proto_rawDescGZIP(), []int{7} } -func (x *GetSamplepacketAttributeResponse) GetAttr() []*SamplepacketAttribute { +func (x *GetSamplepacketAttributeResponse) GetAttr() *SamplepacketAttribute { if x != nil { return x.Attr } @@ -504,98 +484,103 @@ var file_dataplane_standalone_proto_samplepacket_proto_rawDesc = []byte{ 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xce, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x91, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, - 0x1f, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x52, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x22, 0x0a, - 0x20, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, - 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x2a, 0x90, 0x01, 0x0a, 0x10, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x41, 0x4d, 0x50, 0x4c, - 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x41, - 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, - 0x16, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x41, 0x4d, - 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x10, 0x03, 0x32, 0xa8, 0x04, 0x0a, 0x0c, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6d, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x6f, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x90, 0x01, 0x0a, 0x10, 0x53, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x21, 0x0a, 0x1d, 0x53, + 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, + 0x0a, 0x1d, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, + 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, + 0x16, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x32, 0xa8, 0x04, 0x0a, 0x0c, 0x53, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, - 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -750,9 +735,8 @@ func file_dataplane_standalone_proto_samplepacket_proto_init() { } } } - file_dataplane_standalone_proto_samplepacket_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetSamplepacketAttributeRequest_SampleRate)(nil), - } + file_dataplane_standalone_proto_samplepacket_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_samplepacket_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/samplepacket.proto b/dataplane/standalone/proto/samplepacket.proto index d5580059..8e600e81 100644 --- a/dataplane/standalone/proto/samplepacket.proto +++ b/dataplane/standalone/proto/samplepacket.proto @@ -7,69 +7,53 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum SamplepacketAttr { - SAMPLEPACKET_ATTR_UNSPECIFIED = 0; - SAMPLEPACKET_ATTR_SAMPLE_RATE = 1; - SAMPLEPACKET_ATTR_TYPE = 2; - SAMPLEPACKET_ATTR_MODE = 3; + SAMPLEPACKET_ATTR_UNSPECIFIED = 0; + SAMPLEPACKET_ATTR_SAMPLE_RATE = 1; + SAMPLEPACKET_ATTR_TYPE = 2; + SAMPLEPACKET_ATTR_MODE = 3; } message CreateSamplepacketRequest { - uint64 switch = 1; - - uint32 sample_rate = 2; - SamplepacketType type = 3; - SamplepacketMode mode = 4; - + uint64 switch = 1; + optional uint32 sample_rate = 2 [(attr_enum_value) = 1]; + optional SamplepacketType type = 3 [(attr_enum_value) = 2]; + optional SamplepacketMode mode = 4 [(attr_enum_value) = 3]; } message CreateSamplepacketResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveSamplepacketRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveSamplepacketResponse { - - -} +message RemoveSamplepacketResponse {} message SetSamplepacketAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 sample_rate = 2; - } + uint64 oid = 1; + optional uint32 sample_rate = 2 [(attr_enum_value) = 1]; } -message SetSamplepacketAttributeResponse { - - -} +message SetSamplepacketAttributeResponse {} message GetSamplepacketAttributeRequest { - uint64 oid = 1; - repeated SamplepacketAttr attr_type = 2; - - + uint64 oid = 1; + repeated SamplepacketAttr attr_type = 2; } message GetSamplepacketAttributeResponse { - repeated SamplepacketAttribute attr = 1; - - + SamplepacketAttribute attr = 1; } - service Samplepacket { - rpc CreateSamplepacket (CreateSamplepacketRequest) returns (CreateSamplepacketResponse) {} - rpc RemoveSamplepacket (RemoveSamplepacketRequest) returns (RemoveSamplepacketResponse) {} - rpc SetSamplepacketAttribute (SetSamplepacketAttributeRequest) returns (SetSamplepacketAttributeResponse) {} - rpc GetSamplepacketAttribute (GetSamplepacketAttributeRequest) returns (GetSamplepacketAttributeResponse) {} + rpc CreateSamplepacket(CreateSamplepacketRequest) + returns (CreateSamplepacketResponse) {} + rpc RemoveSamplepacket(RemoveSamplepacketRequest) + returns (RemoveSamplepacketResponse) {} + rpc SetSamplepacketAttribute(SetSamplepacketAttributeRequest) + returns (SetSamplepacketAttributeResponse) {} + rpc GetSamplepacketAttribute(GetSamplepacketAttributeRequest) + returns (GetSamplepacketAttributeResponse) {} } diff --git a/dataplane/standalone/proto/scheduler.pb.go b/dataplane/standalone/proto/scheduler.pb.go index 4c010044..ba4a55e4 100755 --- a/dataplane/standalone/proto/scheduler.pb.go +++ b/dataplane/standalone/proto/scheduler.pb.go @@ -93,14 +93,14 @@ type CreateSchedulerRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - SchedulingType SchedulingType `protobuf:"varint,2,opt,name=scheduling_type,json=schedulingType,proto3,enum=lemming.dataplane.sai.SchedulingType" json:"scheduling_type,omitempty"` - SchedulingWeight uint32 `protobuf:"varint,3,opt,name=scheduling_weight,json=schedulingWeight,proto3" json:"scheduling_weight,omitempty"` - MeterType MeterType `protobuf:"varint,4,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType" json:"meter_type,omitempty"` - MinBandwidthRate uint64 `protobuf:"varint,5,opt,name=min_bandwidth_rate,json=minBandwidthRate,proto3" json:"min_bandwidth_rate,omitempty"` - MinBandwidthBurstRate uint64 `protobuf:"varint,6,opt,name=min_bandwidth_burst_rate,json=minBandwidthBurstRate,proto3" json:"min_bandwidth_burst_rate,omitempty"` - MaxBandwidthRate uint64 `protobuf:"varint,7,opt,name=max_bandwidth_rate,json=maxBandwidthRate,proto3" json:"max_bandwidth_rate,omitempty"` - MaxBandwidthBurstRate uint64 `protobuf:"varint,8,opt,name=max_bandwidth_burst_rate,json=maxBandwidthBurstRate,proto3" json:"max_bandwidth_burst_rate,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + SchedulingType *SchedulingType `protobuf:"varint,2,opt,name=scheduling_type,json=schedulingType,proto3,enum=lemming.dataplane.sai.SchedulingType,oneof" json:"scheduling_type,omitempty"` + SchedulingWeight *uint32 `protobuf:"varint,3,opt,name=scheduling_weight,json=schedulingWeight,proto3,oneof" json:"scheduling_weight,omitempty"` + MeterType *MeterType `protobuf:"varint,4,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType,oneof" json:"meter_type,omitempty"` + MinBandwidthRate *uint64 `protobuf:"varint,5,opt,name=min_bandwidth_rate,json=minBandwidthRate,proto3,oneof" json:"min_bandwidth_rate,omitempty"` + MinBandwidthBurstRate *uint64 `protobuf:"varint,6,opt,name=min_bandwidth_burst_rate,json=minBandwidthBurstRate,proto3,oneof" json:"min_bandwidth_burst_rate,omitempty"` + MaxBandwidthRate *uint64 `protobuf:"varint,7,opt,name=max_bandwidth_rate,json=maxBandwidthRate,proto3,oneof" json:"max_bandwidth_rate,omitempty"` + MaxBandwidthBurstRate *uint64 `protobuf:"varint,8,opt,name=max_bandwidth_burst_rate,json=maxBandwidthBurstRate,proto3,oneof" json:"max_bandwidth_burst_rate,omitempty"` } func (x *CreateSchedulerRequest) Reset() { @@ -143,50 +143,50 @@ func (x *CreateSchedulerRequest) GetSwitch() uint64 { } func (x *CreateSchedulerRequest) GetSchedulingType() SchedulingType { - if x != nil { - return x.SchedulingType + if x != nil && x.SchedulingType != nil { + return *x.SchedulingType } return SchedulingType_SCHEDULING_TYPE_UNSPECIFIED } func (x *CreateSchedulerRequest) GetSchedulingWeight() uint32 { - if x != nil { - return x.SchedulingWeight + if x != nil && x.SchedulingWeight != nil { + return *x.SchedulingWeight } return 0 } func (x *CreateSchedulerRequest) GetMeterType() MeterType { - if x != nil { - return x.MeterType + if x != nil && x.MeterType != nil { + return *x.MeterType } return MeterType_METER_TYPE_UNSPECIFIED } func (x *CreateSchedulerRequest) GetMinBandwidthRate() uint64 { - if x != nil { - return x.MinBandwidthRate + if x != nil && x.MinBandwidthRate != nil { + return *x.MinBandwidthRate } return 0 } func (x *CreateSchedulerRequest) GetMinBandwidthBurstRate() uint64 { - if x != nil { - return x.MinBandwidthBurstRate + if x != nil && x.MinBandwidthBurstRate != nil { + return *x.MinBandwidthBurstRate } return 0 } func (x *CreateSchedulerRequest) GetMaxBandwidthRate() uint64 { - if x != nil { - return x.MaxBandwidthRate + if x != nil && x.MaxBandwidthRate != nil { + return *x.MaxBandwidthRate } return 0 } func (x *CreateSchedulerRequest) GetMaxBandwidthBurstRate() uint64 { - if x != nil { - return x.MaxBandwidthBurstRate + if x != nil && x.MaxBandwidthBurstRate != nil { + return *x.MaxBandwidthBurstRate } return 0 } @@ -328,17 +328,14 @@ type SetSchedulerAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetSchedulerAttributeRequest_SchedulingType - // *SetSchedulerAttributeRequest_SchedulingWeight - // *SetSchedulerAttributeRequest_MeterType - // *SetSchedulerAttributeRequest_MinBandwidthRate - // *SetSchedulerAttributeRequest_MinBandwidthBurstRate - // *SetSchedulerAttributeRequest_MaxBandwidthRate - // *SetSchedulerAttributeRequest_MaxBandwidthBurstRate - Attr isSetSchedulerAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + SchedulingType *SchedulingType `protobuf:"varint,2,opt,name=scheduling_type,json=schedulingType,proto3,enum=lemming.dataplane.sai.SchedulingType,oneof" json:"scheduling_type,omitempty"` + SchedulingWeight *uint32 `protobuf:"varint,3,opt,name=scheduling_weight,json=schedulingWeight,proto3,oneof" json:"scheduling_weight,omitempty"` + MeterType *MeterType `protobuf:"varint,4,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType,oneof" json:"meter_type,omitempty"` + MinBandwidthRate *uint64 `protobuf:"varint,5,opt,name=min_bandwidth_rate,json=minBandwidthRate,proto3,oneof" json:"min_bandwidth_rate,omitempty"` + MinBandwidthBurstRate *uint64 `protobuf:"varint,6,opt,name=min_bandwidth_burst_rate,json=minBandwidthBurstRate,proto3,oneof" json:"min_bandwidth_burst_rate,omitempty"` + MaxBandwidthRate *uint64 `protobuf:"varint,7,opt,name=max_bandwidth_rate,json=maxBandwidthRate,proto3,oneof" json:"max_bandwidth_rate,omitempty"` + MaxBandwidthBurstRate *uint64 `protobuf:"varint,8,opt,name=max_bandwidth_burst_rate,json=maxBandwidthBurstRate,proto3,oneof" json:"max_bandwidth_burst_rate,omitempty"` } func (x *SetSchedulerAttributeRequest) Reset() { @@ -380,108 +377,55 @@ func (x *SetSchedulerAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetSchedulerAttributeRequest) GetAttr() isSetSchedulerAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetSchedulerAttributeRequest) GetSchedulingType() SchedulingType { - if x, ok := x.GetAttr().(*SetSchedulerAttributeRequest_SchedulingType); ok { - return x.SchedulingType + if x != nil && x.SchedulingType != nil { + return *x.SchedulingType } return SchedulingType_SCHEDULING_TYPE_UNSPECIFIED } func (x *SetSchedulerAttributeRequest) GetSchedulingWeight() uint32 { - if x, ok := x.GetAttr().(*SetSchedulerAttributeRequest_SchedulingWeight); ok { - return x.SchedulingWeight + if x != nil && x.SchedulingWeight != nil { + return *x.SchedulingWeight } return 0 } func (x *SetSchedulerAttributeRequest) GetMeterType() MeterType { - if x, ok := x.GetAttr().(*SetSchedulerAttributeRequest_MeterType); ok { - return x.MeterType + if x != nil && x.MeterType != nil { + return *x.MeterType } return MeterType_METER_TYPE_UNSPECIFIED } func (x *SetSchedulerAttributeRequest) GetMinBandwidthRate() uint64 { - if x, ok := x.GetAttr().(*SetSchedulerAttributeRequest_MinBandwidthRate); ok { - return x.MinBandwidthRate + if x != nil && x.MinBandwidthRate != nil { + return *x.MinBandwidthRate } return 0 } func (x *SetSchedulerAttributeRequest) GetMinBandwidthBurstRate() uint64 { - if x, ok := x.GetAttr().(*SetSchedulerAttributeRequest_MinBandwidthBurstRate); ok { - return x.MinBandwidthBurstRate + if x != nil && x.MinBandwidthBurstRate != nil { + return *x.MinBandwidthBurstRate } return 0 } func (x *SetSchedulerAttributeRequest) GetMaxBandwidthRate() uint64 { - if x, ok := x.GetAttr().(*SetSchedulerAttributeRequest_MaxBandwidthRate); ok { - return x.MaxBandwidthRate + if x != nil && x.MaxBandwidthRate != nil { + return *x.MaxBandwidthRate } return 0 } func (x *SetSchedulerAttributeRequest) GetMaxBandwidthBurstRate() uint64 { - if x, ok := x.GetAttr().(*SetSchedulerAttributeRequest_MaxBandwidthBurstRate); ok { - return x.MaxBandwidthBurstRate + if x != nil && x.MaxBandwidthBurstRate != nil { + return *x.MaxBandwidthBurstRate } return 0 } -type isSetSchedulerAttributeRequest_Attr interface { - isSetSchedulerAttributeRequest_Attr() -} - -type SetSchedulerAttributeRequest_SchedulingType struct { - SchedulingType SchedulingType `protobuf:"varint,2,opt,name=scheduling_type,json=schedulingType,proto3,enum=lemming.dataplane.sai.SchedulingType,oneof"` -} - -type SetSchedulerAttributeRequest_SchedulingWeight struct { - SchedulingWeight uint32 `protobuf:"varint,3,opt,name=scheduling_weight,json=schedulingWeight,proto3,oneof"` -} - -type SetSchedulerAttributeRequest_MeterType struct { - MeterType MeterType `protobuf:"varint,4,opt,name=meter_type,json=meterType,proto3,enum=lemming.dataplane.sai.MeterType,oneof"` -} - -type SetSchedulerAttributeRequest_MinBandwidthRate struct { - MinBandwidthRate uint64 `protobuf:"varint,5,opt,name=min_bandwidth_rate,json=minBandwidthRate,proto3,oneof"` -} - -type SetSchedulerAttributeRequest_MinBandwidthBurstRate struct { - MinBandwidthBurstRate uint64 `protobuf:"varint,6,opt,name=min_bandwidth_burst_rate,json=minBandwidthBurstRate,proto3,oneof"` -} - -type SetSchedulerAttributeRequest_MaxBandwidthRate struct { - MaxBandwidthRate uint64 `protobuf:"varint,7,opt,name=max_bandwidth_rate,json=maxBandwidthRate,proto3,oneof"` -} - -type SetSchedulerAttributeRequest_MaxBandwidthBurstRate struct { - MaxBandwidthBurstRate uint64 `protobuf:"varint,8,opt,name=max_bandwidth_burst_rate,json=maxBandwidthBurstRate,proto3,oneof"` -} - -func (*SetSchedulerAttributeRequest_SchedulingType) isSetSchedulerAttributeRequest_Attr() {} - -func (*SetSchedulerAttributeRequest_SchedulingWeight) isSetSchedulerAttributeRequest_Attr() {} - -func (*SetSchedulerAttributeRequest_MeterType) isSetSchedulerAttributeRequest_Attr() {} - -func (*SetSchedulerAttributeRequest_MinBandwidthRate) isSetSchedulerAttributeRequest_Attr() {} - -func (*SetSchedulerAttributeRequest_MinBandwidthBurstRate) isSetSchedulerAttributeRequest_Attr() {} - -func (*SetSchedulerAttributeRequest_MaxBandwidthRate) isSetSchedulerAttributeRequest_Attr() {} - -func (*SetSchedulerAttributeRequest_MaxBandwidthBurstRate) isSetSchedulerAttributeRequest_Attr() {} - type SetSchedulerAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -580,7 +524,7 @@ type GetSchedulerAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*SchedulerAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *SchedulerAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetSchedulerAttributeResponse) Reset() { @@ -615,7 +559,7 @@ func (*GetSchedulerAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_scheduler_proto_rawDescGZIP(), []int{7} } -func (x *GetSchedulerAttributeResponse) GetAttr() []*SchedulerAttribute { +func (x *GetSchedulerAttributeResponse) GetAttr() *SchedulerAttribute { if x != nil { return x.Attr } @@ -631,144 +575,172 @@ var file_dataplane_standalone_proto_scheduler_proto_rawDesc = []byte{ 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbc, 0x03, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x05, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, - 0x4e, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, + 0x59, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3f, 0x0a, 0x0a, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, - 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x42, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6d, - 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, - 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6d, - 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, 0x74, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x10, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, - 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, 0x61, 0x74, 0x65, 0x22, 0x2b, 0x0a, 0x17, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xd2, 0x03, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x10, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, + 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, + 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x48, 0x03, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x6d, 0x69, 0x6e, 0x5f, 0x62, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, + 0x04, 0x52, 0x15, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, + 0x75, 0x72, 0x73, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x6d, + 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, + 0x10, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x15, + 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, + 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, + 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x50, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, - 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x05, + 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x12, 0x59, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x11, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x10, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x52, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x18, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x15, 0x6d, 0x69, 0x6e, 0x42, - 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x10, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x39, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, + 0x4d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x02, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x03, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x6d, 0x69, 0x6e, 0x5f, + 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, + 0x48, 0x04, 0x52, 0x15, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, + 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, + 0x52, 0x10, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, + 0x15, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x75, 0x72, + 0x73, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x69, + 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x72, 0x73, + 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xc0, 0x02, 0x0a, 0x0d, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, - 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, - 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, - 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, - 0x12, 0x24, 0x0a, 0x20, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x45, - 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, - 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, - 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x42, 0x41, 0x4e, 0x44, - 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, - 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, - 0x49, 0x4e, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x42, 0x55, 0x52, - 0x53, 0x54, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x43, 0x48, - 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, - 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x06, - 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, - 0x5f, 0x42, 0x55, 0x52, 0x53, 0x54, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x07, 0x32, 0x81, 0x04, - 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x72, 0x0a, 0x0f, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x2d, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x41, 0x0a, + 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x2a, 0xc0, 0x02, 0x0a, 0x0d, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, + 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, + 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x45, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, + 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, + 0x45, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x53, + 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, + 0x4e, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x52, 0x41, 0x54, 0x45, + 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, + 0x54, 0x48, 0x5f, 0x42, 0x55, 0x52, 0x53, 0x54, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x05, 0x12, + 0x25, 0x0a, 0x21, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, + 0x52, 0x41, 0x54, 0x45, 0x10, 0x06, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, + 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x42, 0x41, 0x4e, + 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x42, 0x55, 0x52, 0x53, 0x54, 0x5f, 0x52, 0x41, 0x54, + 0x45, 0x10, 0x07, 0x32, 0x81, 0x04, 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -925,15 +897,8 @@ func file_dataplane_standalone_proto_scheduler_proto_init() { } } } - file_dataplane_standalone_proto_scheduler_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetSchedulerAttributeRequest_SchedulingType)(nil), - (*SetSchedulerAttributeRequest_SchedulingWeight)(nil), - (*SetSchedulerAttributeRequest_MeterType)(nil), - (*SetSchedulerAttributeRequest_MinBandwidthRate)(nil), - (*SetSchedulerAttributeRequest_MinBandwidthBurstRate)(nil), - (*SetSchedulerAttributeRequest_MaxBandwidthRate)(nil), - (*SetSchedulerAttributeRequest_MaxBandwidthBurstRate)(nil), - } + file_dataplane_standalone_proto_scheduler_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_scheduler_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/scheduler.proto b/dataplane/standalone/proto/scheduler.proto index c48f3373..ce744ee9 100644 --- a/dataplane/standalone/proto/scheduler.proto +++ b/dataplane/standalone/proto/scheduler.proto @@ -7,83 +7,67 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum SchedulerAttr { - SCHEDULER_ATTR_UNSPECIFIED = 0; - SCHEDULER_ATTR_SCHEDULING_TYPE = 1; - SCHEDULER_ATTR_SCHEDULING_WEIGHT = 2; - SCHEDULER_ATTR_METER_TYPE = 3; - SCHEDULER_ATTR_MIN_BANDWIDTH_RATE = 4; - SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE = 5; - SCHEDULER_ATTR_MAX_BANDWIDTH_RATE = 6; - SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE = 7; + SCHEDULER_ATTR_UNSPECIFIED = 0; + SCHEDULER_ATTR_SCHEDULING_TYPE = 1; + SCHEDULER_ATTR_SCHEDULING_WEIGHT = 2; + SCHEDULER_ATTR_METER_TYPE = 3; + SCHEDULER_ATTR_MIN_BANDWIDTH_RATE = 4; + SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE = 5; + SCHEDULER_ATTR_MAX_BANDWIDTH_RATE = 6; + SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE = 7; } message CreateSchedulerRequest { - uint64 switch = 1; - - SchedulingType scheduling_type = 2; - uint32 scheduling_weight = 3; - MeterType meter_type = 4; - uint64 min_bandwidth_rate = 5; - uint64 min_bandwidth_burst_rate = 6; - uint64 max_bandwidth_rate = 7; - uint64 max_bandwidth_burst_rate = 8; - + uint64 switch = 1; + optional SchedulingType scheduling_type = 2 [(attr_enum_value) = 1]; + optional uint32 scheduling_weight = 3 [(attr_enum_value) = 2]; + optional MeterType meter_type = 4 [(attr_enum_value) = 3]; + optional uint64 min_bandwidth_rate = 5 [(attr_enum_value) = 4]; + optional uint64 min_bandwidth_burst_rate = 6 [(attr_enum_value) = 5]; + optional uint64 max_bandwidth_rate = 7 [(attr_enum_value) = 6]; + optional uint64 max_bandwidth_burst_rate = 8 [(attr_enum_value) = 7]; } message CreateSchedulerResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveSchedulerRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveSchedulerResponse { - - -} +message RemoveSchedulerResponse {} message SetSchedulerAttributeRequest { - uint64 oid = 1; - oneof attr { - SchedulingType scheduling_type = 2; - uint32 scheduling_weight = 3; - MeterType meter_type = 4; - uint64 min_bandwidth_rate = 5; - uint64 min_bandwidth_burst_rate = 6; - uint64 max_bandwidth_rate = 7; - uint64 max_bandwidth_burst_rate = 8; - } + uint64 oid = 1; + optional SchedulingType scheduling_type = 2 [(attr_enum_value) = 1]; + optional uint32 scheduling_weight = 3 [(attr_enum_value) = 2]; + optional MeterType meter_type = 4 [(attr_enum_value) = 3]; + optional uint64 min_bandwidth_rate = 5 [(attr_enum_value) = 4]; + optional uint64 min_bandwidth_burst_rate = 6 [(attr_enum_value) = 5]; + optional uint64 max_bandwidth_rate = 7 [(attr_enum_value) = 6]; + optional uint64 max_bandwidth_burst_rate = 8 [(attr_enum_value) = 7]; } -message SetSchedulerAttributeResponse { - - -} +message SetSchedulerAttributeResponse {} message GetSchedulerAttributeRequest { - uint64 oid = 1; - repeated SchedulerAttr attr_type = 2; - - + uint64 oid = 1; + repeated SchedulerAttr attr_type = 2; } message GetSchedulerAttributeResponse { - repeated SchedulerAttribute attr = 1; - - + SchedulerAttribute attr = 1; } - service Scheduler { - rpc CreateScheduler (CreateSchedulerRequest) returns (CreateSchedulerResponse) {} - rpc RemoveScheduler (RemoveSchedulerRequest) returns (RemoveSchedulerResponse) {} - rpc SetSchedulerAttribute (SetSchedulerAttributeRequest) returns (SetSchedulerAttributeResponse) {} - rpc GetSchedulerAttribute (GetSchedulerAttributeRequest) returns (GetSchedulerAttributeResponse) {} + rpc CreateScheduler(CreateSchedulerRequest) + returns (CreateSchedulerResponse) {} + rpc RemoveScheduler(RemoveSchedulerRequest) + returns (RemoveSchedulerResponse) {} + rpc SetSchedulerAttribute(SetSchedulerAttributeRequest) + returns (SetSchedulerAttributeResponse) {} + rpc GetSchedulerAttribute(GetSchedulerAttributeRequest) + returns (GetSchedulerAttributeResponse) {} } diff --git a/dataplane/standalone/proto/scheduler_group.pb.go b/dataplane/standalone/proto/scheduler_group.pb.go index 4d1a1756..bdbff9eb 100755 --- a/dataplane/standalone/proto/scheduler_group.pb.go +++ b/dataplane/standalone/proto/scheduler_group.pb.go @@ -93,12 +93,12 @@ type CreateSchedulerGroupRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - PortId uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - Level uint32 `protobuf:"varint,3,opt,name=level,proto3" json:"level,omitempty"` - MaxChilds uint32 `protobuf:"varint,4,opt,name=max_childs,json=maxChilds,proto3" json:"max_childs,omitempty"` - SchedulerProfileId uint64 `protobuf:"varint,5,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3" json:"scheduler_profile_id,omitempty"` - ParentNode uint64 `protobuf:"varint,6,opt,name=parent_node,json=parentNode,proto3" json:"parent_node,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + PortId *uint64 `protobuf:"varint,2,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + Level *uint32 `protobuf:"varint,3,opt,name=level,proto3,oneof" json:"level,omitempty"` + MaxChilds *uint32 `protobuf:"varint,4,opt,name=max_childs,json=maxChilds,proto3,oneof" json:"max_childs,omitempty"` + SchedulerProfileId *uint64 `protobuf:"varint,5,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3,oneof" json:"scheduler_profile_id,omitempty"` + ParentNode *uint64 `protobuf:"varint,6,opt,name=parent_node,json=parentNode,proto3,oneof" json:"parent_node,omitempty"` } func (x *CreateSchedulerGroupRequest) Reset() { @@ -141,36 +141,36 @@ func (x *CreateSchedulerGroupRequest) GetSwitch() uint64 { } func (x *CreateSchedulerGroupRequest) GetPortId() uint64 { - if x != nil { - return x.PortId + if x != nil && x.PortId != nil { + return *x.PortId } return 0 } func (x *CreateSchedulerGroupRequest) GetLevel() uint32 { - if x != nil { - return x.Level + if x != nil && x.Level != nil { + return *x.Level } return 0 } func (x *CreateSchedulerGroupRequest) GetMaxChilds() uint32 { - if x != nil { - return x.MaxChilds + if x != nil && x.MaxChilds != nil { + return *x.MaxChilds } return 0 } func (x *CreateSchedulerGroupRequest) GetSchedulerProfileId() uint64 { - if x != nil { - return x.SchedulerProfileId + if x != nil && x.SchedulerProfileId != nil { + return *x.SchedulerProfileId } return 0 } func (x *CreateSchedulerGroupRequest) GetParentNode() uint64 { - if x != nil { - return x.ParentNode + if x != nil && x.ParentNode != nil { + return *x.ParentNode } return 0 } @@ -312,12 +312,9 @@ type SetSchedulerGroupAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetSchedulerGroupAttributeRequest_SchedulerProfileId - // *SetSchedulerGroupAttributeRequest_ParentNode - Attr isSetSchedulerGroupAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + SchedulerProfileId *uint64 `protobuf:"varint,2,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3,oneof" json:"scheduler_profile_id,omitempty"` + ParentNode *uint64 `protobuf:"varint,3,opt,name=parent_node,json=parentNode,proto3,oneof" json:"parent_node,omitempty"` } func (x *SetSchedulerGroupAttributeRequest) Reset() { @@ -359,44 +356,20 @@ func (x *SetSchedulerGroupAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetSchedulerGroupAttributeRequest) GetAttr() isSetSchedulerGroupAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetSchedulerGroupAttributeRequest) GetSchedulerProfileId() uint64 { - if x, ok := x.GetAttr().(*SetSchedulerGroupAttributeRequest_SchedulerProfileId); ok { - return x.SchedulerProfileId + if x != nil && x.SchedulerProfileId != nil { + return *x.SchedulerProfileId } return 0 } func (x *SetSchedulerGroupAttributeRequest) GetParentNode() uint64 { - if x, ok := x.GetAttr().(*SetSchedulerGroupAttributeRequest_ParentNode); ok { - return x.ParentNode + if x != nil && x.ParentNode != nil { + return *x.ParentNode } return 0 } -type isSetSchedulerGroupAttributeRequest_Attr interface { - isSetSchedulerGroupAttributeRequest_Attr() -} - -type SetSchedulerGroupAttributeRequest_SchedulerProfileId struct { - SchedulerProfileId uint64 `protobuf:"varint,2,opt,name=scheduler_profile_id,json=schedulerProfileId,proto3,oneof"` -} - -type SetSchedulerGroupAttributeRequest_ParentNode struct { - ParentNode uint64 `protobuf:"varint,3,opt,name=parent_node,json=parentNode,proto3,oneof"` -} - -func (*SetSchedulerGroupAttributeRequest_SchedulerProfileId) isSetSchedulerGroupAttributeRequest_Attr() { -} - -func (*SetSchedulerGroupAttributeRequest_ParentNode) isSetSchedulerGroupAttributeRequest_Attr() {} - type SetSchedulerGroupAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -495,7 +468,7 @@ type GetSchedulerGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*SchedulerGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *SchedulerGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetSchedulerGroupAttributeResponse) Reset() { @@ -530,7 +503,7 @@ func (*GetSchedulerGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_scheduler_group_proto_rawDescGZIP(), []int{7} } -func (x *GetSchedulerGroupAttributeResponse) GetAttr() []*SchedulerGroupAttribute { +func (x *GetSchedulerGroupAttributeResponse) GetAttr() *SchedulerGroupAttribute { if x != nil { return x.Attr } @@ -547,116 +520,127 @@ var file_dataplane_standalone_proto_scheduler_group_proto_rawDesc = []byte{ 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, + 0x74, 0x6f, 0x22, 0xdb, 0x02, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6f, 0x72, - 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, - 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, - 0x61, 0x78, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x02, 0x52, 0x09, 0x6d, 0x61, 0x78, + 0x43, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x03, 0x52, + 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x07, 0x48, 0x04, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x30, 0x0a, 0x1c, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2f, 0x0a, - 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1e, - 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, - 0x01, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x06, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, - 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x22, 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, - 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x2a, 0xc1, 0x02, 0x0a, 0x12, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x24, 0x0a, 0x20, 0x53, - 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x5f, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x43, 0x48, 0x45, 0x44, - 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x43, 0x48, 0x49, 0x4c, 0x44, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, - 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x1e, - 0x0a, 0x1a, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x04, 0x12, 0x23, - 0x0a, 0x1f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x43, 0x48, 0x49, 0x4c, 0x44, - 0x53, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x48, 0x45, - 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, - 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x45, 0x4e, - 0x54, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x07, 0x32, 0xc4, 0x04, 0x0a, 0x0e, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x81, 0x01, 0x0a, 0x14, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x14, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x00, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x07, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x24, 0x0a, + 0x22, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xc1, 0x02, 0x0a, + 0x12, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x43, 0x48, + 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, + 0x23, 0x0a, 0x1f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x5f, 0x4c, 0x49, + 0x53, 0x54, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, + 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, + 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, + 0x45, 0x56, 0x45, 0x4c, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, + 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, + 0x41, 0x58, 0x5f, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x53, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x53, + 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x50, 0x52, + 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x43, + 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x07, + 0x32, 0xc4, 0x04, 0x0a, 0x0e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, - 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, + 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -807,10 +791,8 @@ func file_dataplane_standalone_proto_scheduler_group_proto_init() { } } } - file_dataplane_standalone_proto_scheduler_group_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetSchedulerGroupAttributeRequest_SchedulerProfileId)(nil), - (*SetSchedulerGroupAttributeRequest_ParentNode)(nil), - } + file_dataplane_standalone_proto_scheduler_group_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_scheduler_group_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/scheduler_group.proto b/dataplane/standalone/proto/scheduler_group.proto index 51531b20..567d386f 100644 --- a/dataplane/standalone/proto/scheduler_group.proto +++ b/dataplane/standalone/proto/scheduler_group.proto @@ -7,76 +7,60 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum SchedulerGroupAttr { - SCHEDULER_GROUP_ATTR_UNSPECIFIED = 0; - SCHEDULER_GROUP_ATTR_CHILD_COUNT = 1; - SCHEDULER_GROUP_ATTR_CHILD_LIST = 2; - SCHEDULER_GROUP_ATTR_PORT_ID = 3; - SCHEDULER_GROUP_ATTR_LEVEL = 4; - SCHEDULER_GROUP_ATTR_MAX_CHILDS = 5; - SCHEDULER_GROUP_ATTR_SCHEDULER_PROFILE_ID = 6; - SCHEDULER_GROUP_ATTR_PARENT_NODE = 7; + SCHEDULER_GROUP_ATTR_UNSPECIFIED = 0; + SCHEDULER_GROUP_ATTR_CHILD_COUNT = 1; + SCHEDULER_GROUP_ATTR_CHILD_LIST = 2; + SCHEDULER_GROUP_ATTR_PORT_ID = 3; + SCHEDULER_GROUP_ATTR_LEVEL = 4; + SCHEDULER_GROUP_ATTR_MAX_CHILDS = 5; + SCHEDULER_GROUP_ATTR_SCHEDULER_PROFILE_ID = 6; + SCHEDULER_GROUP_ATTR_PARENT_NODE = 7; } message CreateSchedulerGroupRequest { - uint64 switch = 1; - - uint64 port_id = 2; - uint32 level = 3; - uint32 max_childs = 4; - uint64 scheduler_profile_id = 5; - uint64 parent_node = 6; - + uint64 switch = 1; + optional uint64 port_id = 2 [(attr_enum_value) = 3]; + optional uint32 level = 3 [(attr_enum_value) = 4]; + optional uint32 max_childs = 4 [(attr_enum_value) = 5]; + optional uint64 scheduler_profile_id = 5 [(attr_enum_value) = 6]; + optional uint64 parent_node = 6 [(attr_enum_value) = 7]; } message CreateSchedulerGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveSchedulerGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveSchedulerGroupResponse { - - -} +message RemoveSchedulerGroupResponse {} message SetSchedulerGroupAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 scheduler_profile_id = 2; - uint64 parent_node = 3; - } + uint64 oid = 1; + optional uint64 scheduler_profile_id = 2 [(attr_enum_value) = 6]; + optional uint64 parent_node = 3 [(attr_enum_value) = 7]; } -message SetSchedulerGroupAttributeResponse { - - -} +message SetSchedulerGroupAttributeResponse {} message GetSchedulerGroupAttributeRequest { - uint64 oid = 1; - repeated SchedulerGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated SchedulerGroupAttr attr_type = 2; } message GetSchedulerGroupAttributeResponse { - repeated SchedulerGroupAttribute attr = 1; - - + SchedulerGroupAttribute attr = 1; } - service SchedulerGroup { - rpc CreateSchedulerGroup (CreateSchedulerGroupRequest) returns (CreateSchedulerGroupResponse) {} - rpc RemoveSchedulerGroup (RemoveSchedulerGroupRequest) returns (RemoveSchedulerGroupResponse) {} - rpc SetSchedulerGroupAttribute (SetSchedulerGroupAttributeRequest) returns (SetSchedulerGroupAttributeResponse) {} - rpc GetSchedulerGroupAttribute (GetSchedulerGroupAttributeRequest) returns (GetSchedulerGroupAttributeResponse) {} + rpc CreateSchedulerGroup(CreateSchedulerGroupRequest) + returns (CreateSchedulerGroupResponse) {} + rpc RemoveSchedulerGroup(RemoveSchedulerGroupRequest) + returns (RemoveSchedulerGroupResponse) {} + rpc SetSchedulerGroupAttribute(SetSchedulerGroupAttributeRequest) + returns (SetSchedulerGroupAttributeResponse) {} + rpc GetSchedulerGroupAttribute(GetSchedulerGroupAttributeRequest) + returns (GetSchedulerGroupAttributeResponse) {} } diff --git a/dataplane/standalone/proto/srv6.pb.go b/dataplane/standalone/proto/srv6.pb.go index 966d959e..435f6d35 100755 --- a/dataplane/standalone/proto/srv6.pb.go +++ b/dataplane/standalone/proto/srv6.pb.go @@ -148,10 +148,10 @@ type CreateSrv6SidlistRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type Srv6SidlistType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.Srv6SidlistType" json:"type,omitempty"` - TlvList []*TLVEntry `protobuf:"bytes,3,rep,name=tlv_list,json=tlvList,proto3" json:"tlv_list,omitempty"` - SegmentList [][]byte `protobuf:"bytes,4,rep,name=segment_list,json=segmentList,proto3" json:"segment_list,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *Srv6SidlistType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.Srv6SidlistType,oneof" json:"type,omitempty"` + TlvList []*TLVEntry `protobuf:"bytes,3,rep,name=tlv_list,json=tlvList,proto3" json:"tlv_list,omitempty"` + SegmentList [][]byte `protobuf:"bytes,4,rep,name=segment_list,json=segmentList,proto3" json:"segment_list,omitempty"` } func (x *CreateSrv6SidlistRequest) Reset() { @@ -194,8 +194,8 @@ func (x *CreateSrv6SidlistRequest) GetSwitch() uint64 { } func (x *CreateSrv6SidlistRequest) GetType() Srv6SidlistType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return Srv6SidlistType_SRV6_SIDLIST_TYPE_UNSPECIFIED } @@ -351,12 +351,9 @@ type SetSrv6SidlistAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetSrv6SidlistAttributeRequest_TlvList - // *SetSrv6SidlistAttributeRequest_SegmentList - Attr isSetSrv6SidlistAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + TlvList []*TLVEntry `protobuf:"bytes,2,rep,name=tlv_list,json=tlvList,proto3" json:"tlv_list,omitempty"` + SegmentList [][]byte `protobuf:"bytes,3,rep,name=segment_list,json=segmentList,proto3" json:"segment_list,omitempty"` } func (x *SetSrv6SidlistAttributeRequest) Reset() { @@ -398,43 +395,20 @@ func (x *SetSrv6SidlistAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetSrv6SidlistAttributeRequest) GetAttr() isSetSrv6SidlistAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - -func (x *SetSrv6SidlistAttributeRequest) GetTlvList() *TlvEntryList { - if x, ok := x.GetAttr().(*SetSrv6SidlistAttributeRequest_TlvList); ok { +func (x *SetSrv6SidlistAttributeRequest) GetTlvList() []*TLVEntry { + if x != nil { return x.TlvList } return nil } -func (x *SetSrv6SidlistAttributeRequest) GetSegmentList() *BytesList { - if x, ok := x.GetAttr().(*SetSrv6SidlistAttributeRequest_SegmentList); ok { +func (x *SetSrv6SidlistAttributeRequest) GetSegmentList() [][]byte { + if x != nil { return x.SegmentList } return nil } -type isSetSrv6SidlistAttributeRequest_Attr interface { - isSetSrv6SidlistAttributeRequest_Attr() -} - -type SetSrv6SidlistAttributeRequest_TlvList struct { - TlvList *TlvEntryList `protobuf:"bytes,2,opt,name=tlv_list,json=tlvList,proto3,oneof"` -} - -type SetSrv6SidlistAttributeRequest_SegmentList struct { - SegmentList *BytesList `protobuf:"bytes,3,opt,name=segment_list,json=segmentList,proto3,oneof"` -} - -func (*SetSrv6SidlistAttributeRequest_TlvList) isSetSrv6SidlistAttributeRequest_Attr() {} - -func (*SetSrv6SidlistAttributeRequest_SegmentList) isSetSrv6SidlistAttributeRequest_Attr() {} - type SetSrv6SidlistAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -533,7 +507,7 @@ type GetSrv6SidlistAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*Srv6SidlistAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *Srv6SidlistAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetSrv6SidlistAttributeResponse) Reset() { @@ -568,7 +542,7 @@ func (*GetSrv6SidlistAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_srv6_proto_rawDescGZIP(), []int{7} } -func (x *GetSrv6SidlistAttributeResponse) GetAttr() []*Srv6SidlistAttribute { +func (x *GetSrv6SidlistAttributeResponse) GetAttr() *Srv6SidlistAttribute { if x != nil { return x.Attr } @@ -580,15 +554,15 @@ type CreateMySidEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *MySidEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - EndpointBehavior MySidEntryEndpointBehavior `protobuf:"varint,2,opt,name=endpoint_behavior,json=endpointBehavior,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehavior" json:"endpoint_behavior,omitempty"` - EndpointBehaviorFlavor MySidEntryEndpointBehaviorFlavor `protobuf:"varint,3,opt,name=endpoint_behavior_flavor,json=endpointBehaviorFlavor,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor" json:"endpoint_behavior_flavor,omitempty"` - PacketAction PacketAction `protobuf:"varint,4,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"packet_action,omitempty"` - TrapPriority uint32 `protobuf:"varint,5,opt,name=trap_priority,json=trapPriority,proto3" json:"trap_priority,omitempty"` - NextHopId uint64 `protobuf:"varint,6,opt,name=next_hop_id,json=nextHopId,proto3" json:"next_hop_id,omitempty"` - TunnelId uint64 `protobuf:"varint,7,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"` - Vrf uint64 `protobuf:"varint,8,opt,name=vrf,proto3" json:"vrf,omitempty"` - CounterId uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3" json:"counter_id,omitempty"` + Entry *MySidEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + EndpointBehavior *MySidEntryEndpointBehavior `protobuf:"varint,2,opt,name=endpoint_behavior,json=endpointBehavior,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehavior,oneof" json:"endpoint_behavior,omitempty"` + EndpointBehaviorFlavor *MySidEntryEndpointBehaviorFlavor `protobuf:"varint,3,opt,name=endpoint_behavior_flavor,json=endpointBehaviorFlavor,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor,oneof" json:"endpoint_behavior_flavor,omitempty"` + PacketAction *PacketAction `protobuf:"varint,4,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,5,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + NextHopId *uint64 `protobuf:"varint,6,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + TunnelId *uint64 `protobuf:"varint,7,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + Vrf *uint64 `protobuf:"varint,8,opt,name=vrf,proto3,oneof" json:"vrf,omitempty"` + CounterId *uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *CreateMySidEntryRequest) Reset() { @@ -631,57 +605,57 @@ func (x *CreateMySidEntryRequest) GetEntry() *MySidEntry { } func (x *CreateMySidEntryRequest) GetEndpointBehavior() MySidEntryEndpointBehavior { - if x != nil { - return x.EndpointBehavior + if x != nil && x.EndpointBehavior != nil { + return *x.EndpointBehavior } return MySidEntryEndpointBehavior_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UNSPECIFIED } func (x *CreateMySidEntryRequest) GetEndpointBehaviorFlavor() MySidEntryEndpointBehaviorFlavor { - if x != nil { - return x.EndpointBehaviorFlavor + if x != nil && x.EndpointBehaviorFlavor != nil { + return *x.EndpointBehaviorFlavor } return MySidEntryEndpointBehaviorFlavor_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_UNSPECIFIED } func (x *CreateMySidEntryRequest) GetPacketAction() PacketAction { - if x != nil { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateMySidEntryRequest) GetTrapPriority() uint32 { - if x != nil { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *CreateMySidEntryRequest) GetNextHopId() uint64 { - if x != nil { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *CreateMySidEntryRequest) GetTunnelId() uint64 { - if x != nil { - return x.TunnelId + if x != nil && x.TunnelId != nil { + return *x.TunnelId } return 0 } func (x *CreateMySidEntryRequest) GetVrf() uint64 { - if x != nil { - return x.Vrf + if x != nil && x.Vrf != nil { + return *x.Vrf } return 0 } func (x *CreateMySidEntryRequest) GetCounterId() uint64 { - if x != nil { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } @@ -814,18 +788,15 @@ type SetMySidEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entry *MySidEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` - // Types that are assignable to Attr: - // - // *SetMySidEntryAttributeRequest_EndpointBehavior - // *SetMySidEntryAttributeRequest_EndpointBehaviorFlavor - // *SetMySidEntryAttributeRequest_PacketAction - // *SetMySidEntryAttributeRequest_TrapPriority - // *SetMySidEntryAttributeRequest_NextHopId - // *SetMySidEntryAttributeRequest_TunnelId - // *SetMySidEntryAttributeRequest_Vrf - // *SetMySidEntryAttributeRequest_CounterId - Attr isSetMySidEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Entry *MySidEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + EndpointBehavior *MySidEntryEndpointBehavior `protobuf:"varint,2,opt,name=endpoint_behavior,json=endpointBehavior,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehavior,oneof" json:"endpoint_behavior,omitempty"` + EndpointBehaviorFlavor *MySidEntryEndpointBehaviorFlavor `protobuf:"varint,3,opt,name=endpoint_behavior_flavor,json=endpointBehaviorFlavor,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor,oneof" json:"endpoint_behavior_flavor,omitempty"` + PacketAction *PacketAction `protobuf:"varint,4,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"packet_action,omitempty"` + TrapPriority *uint32 `protobuf:"varint,5,opt,name=trap_priority,json=trapPriority,proto3,oneof" json:"trap_priority,omitempty"` + NextHopId *uint64 `protobuf:"varint,6,opt,name=next_hop_id,json=nextHopId,proto3,oneof" json:"next_hop_id,omitempty"` + TunnelId *uint64 `protobuf:"varint,7,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + Vrf *uint64 `protobuf:"varint,8,opt,name=vrf,proto3,oneof" json:"vrf,omitempty"` + CounterId *uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3,oneof" json:"counter_id,omitempty"` } func (x *SetMySidEntryAttributeRequest) Reset() { @@ -867,121 +838,62 @@ func (x *SetMySidEntryAttributeRequest) GetEntry() *MySidEntry { return nil } -func (m *SetMySidEntryAttributeRequest) GetAttr() isSetMySidEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetMySidEntryAttributeRequest) GetEndpointBehavior() MySidEntryEndpointBehavior { - if x, ok := x.GetAttr().(*SetMySidEntryAttributeRequest_EndpointBehavior); ok { - return x.EndpointBehavior + if x != nil && x.EndpointBehavior != nil { + return *x.EndpointBehavior } return MySidEntryEndpointBehavior_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UNSPECIFIED } func (x *SetMySidEntryAttributeRequest) GetEndpointBehaviorFlavor() MySidEntryEndpointBehaviorFlavor { - if x, ok := x.GetAttr().(*SetMySidEntryAttributeRequest_EndpointBehaviorFlavor); ok { - return x.EndpointBehaviorFlavor + if x != nil && x.EndpointBehaviorFlavor != nil { + return *x.EndpointBehaviorFlavor } return MySidEntryEndpointBehaviorFlavor_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_UNSPECIFIED } func (x *SetMySidEntryAttributeRequest) GetPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetMySidEntryAttributeRequest_PacketAction); ok { - return x.PacketAction + if x != nil && x.PacketAction != nil { + return *x.PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetMySidEntryAttributeRequest) GetTrapPriority() uint32 { - if x, ok := x.GetAttr().(*SetMySidEntryAttributeRequest_TrapPriority); ok { - return x.TrapPriority + if x != nil && x.TrapPriority != nil { + return *x.TrapPriority } return 0 } func (x *SetMySidEntryAttributeRequest) GetNextHopId() uint64 { - if x, ok := x.GetAttr().(*SetMySidEntryAttributeRequest_NextHopId); ok { - return x.NextHopId + if x != nil && x.NextHopId != nil { + return *x.NextHopId } return 0 } func (x *SetMySidEntryAttributeRequest) GetTunnelId() uint64 { - if x, ok := x.GetAttr().(*SetMySidEntryAttributeRequest_TunnelId); ok { - return x.TunnelId + if x != nil && x.TunnelId != nil { + return *x.TunnelId } return 0 } func (x *SetMySidEntryAttributeRequest) GetVrf() uint64 { - if x, ok := x.GetAttr().(*SetMySidEntryAttributeRequest_Vrf); ok { - return x.Vrf + if x != nil && x.Vrf != nil { + return *x.Vrf } return 0 } func (x *SetMySidEntryAttributeRequest) GetCounterId() uint64 { - if x, ok := x.GetAttr().(*SetMySidEntryAttributeRequest_CounterId); ok { - return x.CounterId + if x != nil && x.CounterId != nil { + return *x.CounterId } return 0 } -type isSetMySidEntryAttributeRequest_Attr interface { - isSetMySidEntryAttributeRequest_Attr() -} - -type SetMySidEntryAttributeRequest_EndpointBehavior struct { - EndpointBehavior MySidEntryEndpointBehavior `protobuf:"varint,2,opt,name=endpoint_behavior,json=endpointBehavior,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehavior,oneof"` -} - -type SetMySidEntryAttributeRequest_EndpointBehaviorFlavor struct { - EndpointBehaviorFlavor MySidEntryEndpointBehaviorFlavor `protobuf:"varint,3,opt,name=endpoint_behavior_flavor,json=endpointBehaviorFlavor,proto3,enum=lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor,oneof"` -} - -type SetMySidEntryAttributeRequest_PacketAction struct { - PacketAction PacketAction `protobuf:"varint,4,opt,name=packet_action,json=packetAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetMySidEntryAttributeRequest_TrapPriority struct { - TrapPriority uint32 `protobuf:"varint,5,opt,name=trap_priority,json=trapPriority,proto3,oneof"` -} - -type SetMySidEntryAttributeRequest_NextHopId struct { - NextHopId uint64 `protobuf:"varint,6,opt,name=next_hop_id,json=nextHopId,proto3,oneof"` -} - -type SetMySidEntryAttributeRequest_TunnelId struct { - TunnelId uint64 `protobuf:"varint,7,opt,name=tunnel_id,json=tunnelId,proto3,oneof"` -} - -type SetMySidEntryAttributeRequest_Vrf struct { - Vrf uint64 `protobuf:"varint,8,opt,name=vrf,proto3,oneof"` -} - -type SetMySidEntryAttributeRequest_CounterId struct { - CounterId uint64 `protobuf:"varint,9,opt,name=counter_id,json=counterId,proto3,oneof"` -} - -func (*SetMySidEntryAttributeRequest_EndpointBehavior) isSetMySidEntryAttributeRequest_Attr() {} - -func (*SetMySidEntryAttributeRequest_EndpointBehaviorFlavor) isSetMySidEntryAttributeRequest_Attr() {} - -func (*SetMySidEntryAttributeRequest_PacketAction) isSetMySidEntryAttributeRequest_Attr() {} - -func (*SetMySidEntryAttributeRequest_TrapPriority) isSetMySidEntryAttributeRequest_Attr() {} - -func (*SetMySidEntryAttributeRequest_NextHopId) isSetMySidEntryAttributeRequest_Attr() {} - -func (*SetMySidEntryAttributeRequest_TunnelId) isSetMySidEntryAttributeRequest_Attr() {} - -func (*SetMySidEntryAttributeRequest_Vrf) isSetMySidEntryAttributeRequest_Attr() {} - -func (*SetMySidEntryAttributeRequest_CounterId) isSetMySidEntryAttributeRequest_Attr() {} - type SetMySidEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1080,7 +992,7 @@ type GetMySidEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*MySidEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *MySidEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetMySidEntryAttributeResponse) Reset() { @@ -1115,7 +1027,7 @@ func (*GetMySidEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_srv6_proto_rawDescGZIP(), []int{15} } -func (x *GetMySidEntryAttributeResponse) GetAttr() []*MySidEntryAttribute { +func (x *GetMySidEntryAttributeResponse) GetAttr() *MySidEntryAttribute { if x != nil { return x.Attr } @@ -1131,20 +1043,22 @@ var file_dataplane_standalone_proto_srv6_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xed, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3a, 0x0a, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x74, 0x6c, 0x76, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x54, 0x4c, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x74, 0x6c, 0x76, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x74, 0x6c, 0x76, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x4c, + 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x07, 0x74, 0x6c, + 0x76, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, @@ -1152,229 +1066,254 @@ var file_dataplane_standalone_proto_srv6_proto_rawDesc = []byte{ 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, + 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x08, 0x74, 0x6c, 0x76, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x54, 0x6c, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, - 0x07, 0x74, 0x6c, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x54, 0x4c, 0x56, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, + 0x07, 0x74, 0x6c, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x03, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, + 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, + 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x62, 0x0a, + 0x1f, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3f, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x42, - 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x53, 0x72, - 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, 0x1e, 0x47, 0x65, - 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x43, - 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, - 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x62, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, - 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x72, 0x76, - 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x82, 0x04, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x5e, 0x0a, 0x11, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, + 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x22, 0xe6, 0x05, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, + 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x69, 0x0a, 0x11, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x7c, 0x0a, 0x18, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x01, 0x52, 0x16, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x03, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, + 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x03, 0x76, 0x72, + 0x66, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, + 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x76, 0x6f, + 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x72, 0x66, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xec, 0x05, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x4d, 0x79, + 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x71, 0x0a, 0x18, + 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x69, 0x0a, 0x11, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x7c, 0x0a, 0x18, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x52, 0x16, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, - 0x48, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, - 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1e, - 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, - 0x72, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x76, 0x72, 0x66, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x1a, 0x0a, 0x18, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa0, 0x04, 0x0a, 0x1d, 0x53, 0x65, 0x74, - 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x60, 0x0a, 0x11, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x73, 0x0a, 0x18, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x76, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, - 0x48, 0x00, 0x52, 0x16, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x0d, 0x70, 0x61, + 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x16, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0c, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, - 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x03, 0x76, - 0x72, 0x66, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, - 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, - 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, - 0x47, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x94, - 0x01, 0x0a, 0x0f, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, - 0x53, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, - 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x4c, 0x56, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, - 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4c, - 0x49, 0x53, 0x54, 0x10, 0x03, 0x2a, 0xd7, 0x02, 0x0a, 0x0e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x59, 0x5f, 0x53, - 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x4d, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0c, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0c, + 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x09, 0x6e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x03, 0x76, 0x72, 0x66, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x09, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x76, 0x72, 0x66, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4d, + 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, 0x79, + 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, + 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x53, + 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x4d, + 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x94, 0x01, 0x0a, 0x0f, 0x53, 0x72, 0x76, + 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x21, 0x0a, 0x1d, + 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1a, 0x0a, 0x16, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, + 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x54, 0x4c, 0x56, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x53, + 0x52, 0x56, 0x36, 0x5f, 0x53, 0x49, 0x44, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x2a, + 0xd7, 0x02, 0x0a, 0x0e, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x72, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, + 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x2e, + 0x0a, 0x2a, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, + 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x23, + 0x0a, 0x1f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x59, 0x5f, 0x53, + 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, + 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, - 0x4f, 0x52, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, - 0x4e, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 0x41, 0x56, - 0x4f, 0x52, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x59, 0x5f, - 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, - 0x52, 0x41, 0x50, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x04, 0x12, 0x21, - 0x0a, 0x1d, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x49, 0x44, 0x10, - 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x49, 0x44, - 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x52, 0x46, 0x10, 0x07, 0x12, 0x20, 0x0a, - 0x1c, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x08, 0x32, - 0x96, 0x08, 0x0a, 0x04, 0x53, 0x72, 0x76, 0x36, 0x12, 0x78, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x72, 0x76, 0x36, - 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x72, 0x76, - 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x72, 0x76, 0x36, + 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, + 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x56, 0x52, 0x46, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x59, 0x5f, 0x53, 0x49, + 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x08, 0x32, 0x96, 0x08, 0x0a, 0x04, 0x53, 0x72, + 0x76, 0x36, 0x12, 0x78, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, - 0x17, 0x53, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, - 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x47, 0x65, - 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, - 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, - 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, + 0x74, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, - 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x53, 0x72, + 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x72, + 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, + 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, + 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, + 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1412,55 +1351,52 @@ var file_dataplane_standalone_proto_srv6_proto_goTypes = []interface{}{ (*GetMySidEntryAttributeResponse)(nil), // 17: lemming.dataplane.sai.GetMySidEntryAttributeResponse (Srv6SidlistType)(0), // 18: lemming.dataplane.sai.Srv6SidlistType (*TLVEntry)(nil), // 19: lemming.dataplane.sai.TLVEntry - (*TlvEntryList)(nil), // 20: lemming.dataplane.sai.TlvEntryList - (*BytesList)(nil), // 21: lemming.dataplane.sai.BytesList - (*Srv6SidlistAttribute)(nil), // 22: lemming.dataplane.sai.Srv6SidlistAttribute - (*MySidEntry)(nil), // 23: lemming.dataplane.sai.MySidEntry - (MySidEntryEndpointBehavior)(0), // 24: lemming.dataplane.sai.MySidEntryEndpointBehavior - (MySidEntryEndpointBehaviorFlavor)(0), // 25: lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor - (PacketAction)(0), // 26: lemming.dataplane.sai.PacketAction - (*MySidEntryAttribute)(nil), // 27: lemming.dataplane.sai.MySidEntryAttribute + (*Srv6SidlistAttribute)(nil), // 20: lemming.dataplane.sai.Srv6SidlistAttribute + (*MySidEntry)(nil), // 21: lemming.dataplane.sai.MySidEntry + (MySidEntryEndpointBehavior)(0), // 22: lemming.dataplane.sai.MySidEntryEndpointBehavior + (MySidEntryEndpointBehaviorFlavor)(0), // 23: lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor + (PacketAction)(0), // 24: lemming.dataplane.sai.PacketAction + (*MySidEntryAttribute)(nil), // 25: lemming.dataplane.sai.MySidEntryAttribute } var file_dataplane_standalone_proto_srv6_proto_depIdxs = []int32{ 18, // 0: lemming.dataplane.sai.CreateSrv6SidlistRequest.type:type_name -> lemming.dataplane.sai.Srv6SidlistType 19, // 1: lemming.dataplane.sai.CreateSrv6SidlistRequest.tlv_list:type_name -> lemming.dataplane.sai.TLVEntry - 20, // 2: lemming.dataplane.sai.SetSrv6SidlistAttributeRequest.tlv_list:type_name -> lemming.dataplane.sai.TlvEntryList - 21, // 3: lemming.dataplane.sai.SetSrv6SidlistAttributeRequest.segment_list:type_name -> lemming.dataplane.sai.BytesList - 0, // 4: lemming.dataplane.sai.GetSrv6SidlistAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.Srv6SidlistAttr - 22, // 5: lemming.dataplane.sai.GetSrv6SidlistAttributeResponse.attr:type_name -> lemming.dataplane.sai.Srv6SidlistAttribute - 23, // 6: lemming.dataplane.sai.CreateMySidEntryRequest.entry:type_name -> lemming.dataplane.sai.MySidEntry - 24, // 7: lemming.dataplane.sai.CreateMySidEntryRequest.endpoint_behavior:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehavior - 25, // 8: lemming.dataplane.sai.CreateMySidEntryRequest.endpoint_behavior_flavor:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor - 26, // 9: lemming.dataplane.sai.CreateMySidEntryRequest.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 23, // 10: lemming.dataplane.sai.RemoveMySidEntryRequest.entry:type_name -> lemming.dataplane.sai.MySidEntry - 23, // 11: lemming.dataplane.sai.SetMySidEntryAttributeRequest.entry:type_name -> lemming.dataplane.sai.MySidEntry - 24, // 12: lemming.dataplane.sai.SetMySidEntryAttributeRequest.endpoint_behavior:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehavior - 25, // 13: lemming.dataplane.sai.SetMySidEntryAttributeRequest.endpoint_behavior_flavor:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor - 26, // 14: lemming.dataplane.sai.SetMySidEntryAttributeRequest.packet_action:type_name -> lemming.dataplane.sai.PacketAction - 23, // 15: lemming.dataplane.sai.GetMySidEntryAttributeRequest.entry:type_name -> lemming.dataplane.sai.MySidEntry - 1, // 16: lemming.dataplane.sai.GetMySidEntryAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.MySidEntryAttr - 27, // 17: lemming.dataplane.sai.GetMySidEntryAttributeResponse.attr:type_name -> lemming.dataplane.sai.MySidEntryAttribute - 2, // 18: lemming.dataplane.sai.Srv6.CreateSrv6Sidlist:input_type -> lemming.dataplane.sai.CreateSrv6SidlistRequest - 4, // 19: lemming.dataplane.sai.Srv6.RemoveSrv6Sidlist:input_type -> lemming.dataplane.sai.RemoveSrv6SidlistRequest - 6, // 20: lemming.dataplane.sai.Srv6.SetSrv6SidlistAttribute:input_type -> lemming.dataplane.sai.SetSrv6SidlistAttributeRequest - 8, // 21: lemming.dataplane.sai.Srv6.GetSrv6SidlistAttribute:input_type -> lemming.dataplane.sai.GetSrv6SidlistAttributeRequest - 10, // 22: lemming.dataplane.sai.Srv6.CreateMySidEntry:input_type -> lemming.dataplane.sai.CreateMySidEntryRequest - 12, // 23: lemming.dataplane.sai.Srv6.RemoveMySidEntry:input_type -> lemming.dataplane.sai.RemoveMySidEntryRequest - 14, // 24: lemming.dataplane.sai.Srv6.SetMySidEntryAttribute:input_type -> lemming.dataplane.sai.SetMySidEntryAttributeRequest - 16, // 25: lemming.dataplane.sai.Srv6.GetMySidEntryAttribute:input_type -> lemming.dataplane.sai.GetMySidEntryAttributeRequest - 3, // 26: lemming.dataplane.sai.Srv6.CreateSrv6Sidlist:output_type -> lemming.dataplane.sai.CreateSrv6SidlistResponse - 5, // 27: lemming.dataplane.sai.Srv6.RemoveSrv6Sidlist:output_type -> lemming.dataplane.sai.RemoveSrv6SidlistResponse - 7, // 28: lemming.dataplane.sai.Srv6.SetSrv6SidlistAttribute:output_type -> lemming.dataplane.sai.SetSrv6SidlistAttributeResponse - 9, // 29: lemming.dataplane.sai.Srv6.GetSrv6SidlistAttribute:output_type -> lemming.dataplane.sai.GetSrv6SidlistAttributeResponse - 11, // 30: lemming.dataplane.sai.Srv6.CreateMySidEntry:output_type -> lemming.dataplane.sai.CreateMySidEntryResponse - 13, // 31: lemming.dataplane.sai.Srv6.RemoveMySidEntry:output_type -> lemming.dataplane.sai.RemoveMySidEntryResponse - 15, // 32: lemming.dataplane.sai.Srv6.SetMySidEntryAttribute:output_type -> lemming.dataplane.sai.SetMySidEntryAttributeResponse - 17, // 33: lemming.dataplane.sai.Srv6.GetMySidEntryAttribute:output_type -> lemming.dataplane.sai.GetMySidEntryAttributeResponse - 26, // [26:34] is the sub-list for method output_type - 18, // [18:26] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 19, // 2: lemming.dataplane.sai.SetSrv6SidlistAttributeRequest.tlv_list:type_name -> lemming.dataplane.sai.TLVEntry + 0, // 3: lemming.dataplane.sai.GetSrv6SidlistAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.Srv6SidlistAttr + 20, // 4: lemming.dataplane.sai.GetSrv6SidlistAttributeResponse.attr:type_name -> lemming.dataplane.sai.Srv6SidlistAttribute + 21, // 5: lemming.dataplane.sai.CreateMySidEntryRequest.entry:type_name -> lemming.dataplane.sai.MySidEntry + 22, // 6: lemming.dataplane.sai.CreateMySidEntryRequest.endpoint_behavior:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehavior + 23, // 7: lemming.dataplane.sai.CreateMySidEntryRequest.endpoint_behavior_flavor:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor + 24, // 8: lemming.dataplane.sai.CreateMySidEntryRequest.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 21, // 9: lemming.dataplane.sai.RemoveMySidEntryRequest.entry:type_name -> lemming.dataplane.sai.MySidEntry + 21, // 10: lemming.dataplane.sai.SetMySidEntryAttributeRequest.entry:type_name -> lemming.dataplane.sai.MySidEntry + 22, // 11: lemming.dataplane.sai.SetMySidEntryAttributeRequest.endpoint_behavior:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehavior + 23, // 12: lemming.dataplane.sai.SetMySidEntryAttributeRequest.endpoint_behavior_flavor:type_name -> lemming.dataplane.sai.MySidEntryEndpointBehaviorFlavor + 24, // 13: lemming.dataplane.sai.SetMySidEntryAttributeRequest.packet_action:type_name -> lemming.dataplane.sai.PacketAction + 21, // 14: lemming.dataplane.sai.GetMySidEntryAttributeRequest.entry:type_name -> lemming.dataplane.sai.MySidEntry + 1, // 15: lemming.dataplane.sai.GetMySidEntryAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.MySidEntryAttr + 25, // 16: lemming.dataplane.sai.GetMySidEntryAttributeResponse.attr:type_name -> lemming.dataplane.sai.MySidEntryAttribute + 2, // 17: lemming.dataplane.sai.Srv6.CreateSrv6Sidlist:input_type -> lemming.dataplane.sai.CreateSrv6SidlistRequest + 4, // 18: lemming.dataplane.sai.Srv6.RemoveSrv6Sidlist:input_type -> lemming.dataplane.sai.RemoveSrv6SidlistRequest + 6, // 19: lemming.dataplane.sai.Srv6.SetSrv6SidlistAttribute:input_type -> lemming.dataplane.sai.SetSrv6SidlistAttributeRequest + 8, // 20: lemming.dataplane.sai.Srv6.GetSrv6SidlistAttribute:input_type -> lemming.dataplane.sai.GetSrv6SidlistAttributeRequest + 10, // 21: lemming.dataplane.sai.Srv6.CreateMySidEntry:input_type -> lemming.dataplane.sai.CreateMySidEntryRequest + 12, // 22: lemming.dataplane.sai.Srv6.RemoveMySidEntry:input_type -> lemming.dataplane.sai.RemoveMySidEntryRequest + 14, // 23: lemming.dataplane.sai.Srv6.SetMySidEntryAttribute:input_type -> lemming.dataplane.sai.SetMySidEntryAttributeRequest + 16, // 24: lemming.dataplane.sai.Srv6.GetMySidEntryAttribute:input_type -> lemming.dataplane.sai.GetMySidEntryAttributeRequest + 3, // 25: lemming.dataplane.sai.Srv6.CreateSrv6Sidlist:output_type -> lemming.dataplane.sai.CreateSrv6SidlistResponse + 5, // 26: lemming.dataplane.sai.Srv6.RemoveSrv6Sidlist:output_type -> lemming.dataplane.sai.RemoveSrv6SidlistResponse + 7, // 27: lemming.dataplane.sai.Srv6.SetSrv6SidlistAttribute:output_type -> lemming.dataplane.sai.SetSrv6SidlistAttributeResponse + 9, // 28: lemming.dataplane.sai.Srv6.GetSrv6SidlistAttribute:output_type -> lemming.dataplane.sai.GetSrv6SidlistAttributeResponse + 11, // 29: lemming.dataplane.sai.Srv6.CreateMySidEntry:output_type -> lemming.dataplane.sai.CreateMySidEntryResponse + 13, // 30: lemming.dataplane.sai.Srv6.RemoveMySidEntry:output_type -> lemming.dataplane.sai.RemoveMySidEntryResponse + 15, // 31: lemming.dataplane.sai.Srv6.SetMySidEntryAttribute:output_type -> lemming.dataplane.sai.SetMySidEntryAttributeResponse + 17, // 32: lemming.dataplane.sai.Srv6.GetMySidEntryAttribute:output_type -> lemming.dataplane.sai.GetMySidEntryAttributeResponse + 25, // [25:33] is the sub-list for method output_type + 17, // [17:25] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_srv6_proto_init() } @@ -1663,20 +1599,9 @@ func file_dataplane_standalone_proto_srv6_proto_init() { } } } - file_dataplane_standalone_proto_srv6_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetSrv6SidlistAttributeRequest_TlvList)(nil), - (*SetSrv6SidlistAttributeRequest_SegmentList)(nil), - } - file_dataplane_standalone_proto_srv6_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetMySidEntryAttributeRequest_EndpointBehavior)(nil), - (*SetMySidEntryAttributeRequest_EndpointBehaviorFlavor)(nil), - (*SetMySidEntryAttributeRequest_PacketAction)(nil), - (*SetMySidEntryAttributeRequest_TrapPriority)(nil), - (*SetMySidEntryAttributeRequest_NextHopId)(nil), - (*SetMySidEntryAttributeRequest_TunnelId)(nil), - (*SetMySidEntryAttributeRequest_Vrf)(nil), - (*SetMySidEntryAttributeRequest_CounterId)(nil), - } + file_dataplane_standalone_proto_srv6_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_srv6_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_srv6_proto_msgTypes[12].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/srv6.proto b/dataplane/standalone/proto/srv6.proto index aa920065..e78e1623 100644 --- a/dataplane/standalone/proto/srv6.proto +++ b/dataplane/standalone/proto/srv6.proto @@ -7,148 +7,121 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum Srv6SidlistAttr { - SRV6_SIDLIST_ATTR_UNSPECIFIED = 0; - SRV6_SIDLIST_ATTR_TYPE = 1; - SRV6_SIDLIST_ATTR_TLV_LIST = 2; - SRV6_SIDLIST_ATTR_SEGMENT_LIST = 3; + SRV6_SIDLIST_ATTR_UNSPECIFIED = 0; + SRV6_SIDLIST_ATTR_TYPE = 1; + SRV6_SIDLIST_ATTR_TLV_LIST = 2; + SRV6_SIDLIST_ATTR_SEGMENT_LIST = 3; } enum MySidEntryAttr { - MY_SID_ENTRY_ATTR_UNSPECIFIED = 0; - MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR = 1; - MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR_FLAVOR = 2; - MY_SID_ENTRY_ATTR_PACKET_ACTION = 3; - MY_SID_ENTRY_ATTR_TRAP_PRIORITY = 4; - MY_SID_ENTRY_ATTR_NEXT_HOP_ID = 5; - MY_SID_ENTRY_ATTR_TUNNEL_ID = 6; - MY_SID_ENTRY_ATTR_VRF = 7; - MY_SID_ENTRY_ATTR_COUNTER_ID = 8; + MY_SID_ENTRY_ATTR_UNSPECIFIED = 0; + MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR = 1; + MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR_FLAVOR = 2; + MY_SID_ENTRY_ATTR_PACKET_ACTION = 3; + MY_SID_ENTRY_ATTR_TRAP_PRIORITY = 4; + MY_SID_ENTRY_ATTR_NEXT_HOP_ID = 5; + MY_SID_ENTRY_ATTR_TUNNEL_ID = 6; + MY_SID_ENTRY_ATTR_VRF = 7; + MY_SID_ENTRY_ATTR_COUNTER_ID = 8; } message CreateSrv6SidlistRequest { - uint64 switch = 1; - - Srv6SidlistType type = 2; - repeated TLVEntry tlv_list = 3; - repeated bytes segment_list = 4; - + uint64 switch = 1; + optional Srv6SidlistType type = 2 [(attr_enum_value) = 1]; + repeated TLVEntry tlv_list = 3 [(attr_enum_value) = 2]; + repeated bytes segment_list = 4 [(attr_enum_value) = 3]; } message CreateSrv6SidlistResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveSrv6SidlistRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveSrv6SidlistResponse { - - -} +message RemoveSrv6SidlistResponse {} message SetSrv6SidlistAttributeRequest { - uint64 oid = 1; - oneof attr { - TlvEntryList tlv_list = 2; - BytesList segment_list = 3; - } + uint64 oid = 1; + repeated TLVEntry tlv_list = 2 [(attr_enum_value) = 2]; + repeated bytes segment_list = 3 [(attr_enum_value) = 3]; } -message SetSrv6SidlistAttributeResponse { - - -} +message SetSrv6SidlistAttributeResponse {} message GetSrv6SidlistAttributeRequest { - uint64 oid = 1; - repeated Srv6SidlistAttr attr_type = 2; - - + uint64 oid = 1; + repeated Srv6SidlistAttr attr_type = 2; } message GetSrv6SidlistAttributeResponse { - repeated Srv6SidlistAttribute attr = 1; - - + Srv6SidlistAttribute attr = 1; } message CreateMySidEntryRequest { - MySidEntry entry = 1; - - MySidEntryEndpointBehavior endpoint_behavior = 2; - MySidEntryEndpointBehaviorFlavor endpoint_behavior_flavor = 3; - PacketAction packet_action = 4; - uint32 trap_priority = 5; - uint64 next_hop_id = 6; - uint64 tunnel_id = 7; - uint64 vrf = 8; - uint64 counter_id = 9; - + MySidEntry entry = 1; + optional MySidEntryEndpointBehavior endpoint_behavior = 2 + [(attr_enum_value) = 1]; + optional MySidEntryEndpointBehaviorFlavor endpoint_behavior_flavor = 3 + [(attr_enum_value) = 2]; + optional PacketAction packet_action = 4 [(attr_enum_value) = 3]; + optional uint32 trap_priority = 5 [(attr_enum_value) = 4]; + optional uint64 next_hop_id = 6 [(attr_enum_value) = 5]; + optional uint64 tunnel_id = 7 [(attr_enum_value) = 6]; + optional uint64 vrf = 8 [(attr_enum_value) = 7]; + optional uint64 counter_id = 9 [(attr_enum_value) = 8]; } -message CreateMySidEntryResponse { - - -} +message CreateMySidEntryResponse {} message RemoveMySidEntryRequest { - MySidEntry entry = 1; - - + MySidEntry entry = 1; } -message RemoveMySidEntryResponse { - - -} +message RemoveMySidEntryResponse {} message SetMySidEntryAttributeRequest { - MySidEntry entry = 1; - oneof attr { - MySidEntryEndpointBehavior endpoint_behavior = 2; - MySidEntryEndpointBehaviorFlavor endpoint_behavior_flavor = 3; - PacketAction packet_action = 4; - uint32 trap_priority = 5; - uint64 next_hop_id = 6; - uint64 tunnel_id = 7; - uint64 vrf = 8; - uint64 counter_id = 9; - } + MySidEntry entry = 1; + optional MySidEntryEndpointBehavior endpoint_behavior = 2 + [(attr_enum_value) = 1]; + optional MySidEntryEndpointBehaviorFlavor endpoint_behavior_flavor = 3 + [(attr_enum_value) = 2]; + optional PacketAction packet_action = 4 [(attr_enum_value) = 3]; + optional uint32 trap_priority = 5 [(attr_enum_value) = 4]; + optional uint64 next_hop_id = 6 [(attr_enum_value) = 5]; + optional uint64 tunnel_id = 7 [(attr_enum_value) = 6]; + optional uint64 vrf = 8 [(attr_enum_value) = 7]; + optional uint64 counter_id = 9 [(attr_enum_value) = 8]; } -message SetMySidEntryAttributeResponse { - - -} +message SetMySidEntryAttributeResponse {} message GetMySidEntryAttributeRequest { - MySidEntry entry = 1; - repeated MySidEntryAttr attr_type = 2; - - + MySidEntry entry = 1; + repeated MySidEntryAttr attr_type = 2; } message GetMySidEntryAttributeResponse { - repeated MySidEntryAttribute attr = 1; - - + MySidEntryAttribute attr = 1; } - service Srv6 { - rpc CreateSrv6Sidlist (CreateSrv6SidlistRequest) returns (CreateSrv6SidlistResponse) {} - rpc RemoveSrv6Sidlist (RemoveSrv6SidlistRequest) returns (RemoveSrv6SidlistResponse) {} - rpc SetSrv6SidlistAttribute (SetSrv6SidlistAttributeRequest) returns (SetSrv6SidlistAttributeResponse) {} - rpc GetSrv6SidlistAttribute (GetSrv6SidlistAttributeRequest) returns (GetSrv6SidlistAttributeResponse) {} - rpc CreateMySidEntry (CreateMySidEntryRequest) returns (CreateMySidEntryResponse) {} - rpc RemoveMySidEntry (RemoveMySidEntryRequest) returns (RemoveMySidEntryResponse) {} - rpc SetMySidEntryAttribute (SetMySidEntryAttributeRequest) returns (SetMySidEntryAttributeResponse) {} - rpc GetMySidEntryAttribute (GetMySidEntryAttributeRequest) returns (GetMySidEntryAttributeResponse) {} + rpc CreateSrv6Sidlist(CreateSrv6SidlistRequest) + returns (CreateSrv6SidlistResponse) {} + rpc RemoveSrv6Sidlist(RemoveSrv6SidlistRequest) + returns (RemoveSrv6SidlistResponse) {} + rpc SetSrv6SidlistAttribute(SetSrv6SidlistAttributeRequest) + returns (SetSrv6SidlistAttributeResponse) {} + rpc GetSrv6SidlistAttribute(GetSrv6SidlistAttributeRequest) + returns (GetSrv6SidlistAttributeResponse) {} + rpc CreateMySidEntry(CreateMySidEntryRequest) + returns (CreateMySidEntryResponse) {} + rpc RemoveMySidEntry(RemoveMySidEntryRequest) + returns (RemoveMySidEntryResponse) {} + rpc SetMySidEntryAttribute(SetMySidEntryAttributeRequest) + returns (SetMySidEntryAttributeResponse) {} + rpc GetMySidEntryAttribute(GetMySidEntryAttributeRequest) + returns (GetMySidEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/stp.pb.go b/dataplane/standalone/proto/stp.pb.go index 0c40584c..4db5a64f 100755 --- a/dataplane/standalone/proto/stp.pb.go +++ b/dataplane/standalone/proto/stp.pb.go @@ -367,7 +367,7 @@ type GetStpAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*StpAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *StpAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetStpAttributeResponse) Reset() { @@ -402,7 +402,7 @@ func (*GetStpAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_stp_proto_rawDescGZIP(), []int{5} } -func (x *GetStpAttributeResponse) GetAttr() []*StpAttribute { +func (x *GetStpAttributeResponse) GetAttr() *StpAttribute { if x != nil { return x.Attr } @@ -414,10 +414,10 @@ type CreateStpPortRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Stp uint64 `protobuf:"varint,2,opt,name=stp,proto3" json:"stp,omitempty"` - BridgePort uint64 `protobuf:"varint,3,opt,name=bridge_port,json=bridgePort,proto3" json:"bridge_port,omitempty"` - State StpPortState `protobuf:"varint,4,opt,name=state,proto3,enum=lemming.dataplane.sai.StpPortState" json:"state,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Stp *uint64 `protobuf:"varint,2,opt,name=stp,proto3,oneof" json:"stp,omitempty"` + BridgePort *uint64 `protobuf:"varint,3,opt,name=bridge_port,json=bridgePort,proto3,oneof" json:"bridge_port,omitempty"` + State *StpPortState `protobuf:"varint,4,opt,name=state,proto3,enum=lemming.dataplane.sai.StpPortState,oneof" json:"state,omitempty"` } func (x *CreateStpPortRequest) Reset() { @@ -460,22 +460,22 @@ func (x *CreateStpPortRequest) GetSwitch() uint64 { } func (x *CreateStpPortRequest) GetStp() uint64 { - if x != nil { - return x.Stp + if x != nil && x.Stp != nil { + return *x.Stp } return 0 } func (x *CreateStpPortRequest) GetBridgePort() uint64 { - if x != nil { - return x.BridgePort + if x != nil && x.BridgePort != nil { + return *x.BridgePort } return 0 } func (x *CreateStpPortRequest) GetState() StpPortState { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return StpPortState_STP_PORT_STATE_UNSPECIFIED } @@ -617,11 +617,8 @@ type SetStpPortAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetStpPortAttributeRequest_State - Attr isSetStpPortAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + State *StpPortState `protobuf:"varint,2,opt,name=state,proto3,enum=lemming.dataplane.sai.StpPortState,oneof" json:"state,omitempty"` } func (x *SetStpPortAttributeRequest) Reset() { @@ -663,30 +660,13 @@ func (x *SetStpPortAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetStpPortAttributeRequest) GetAttr() isSetStpPortAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetStpPortAttributeRequest) GetState() StpPortState { - if x, ok := x.GetAttr().(*SetStpPortAttributeRequest_State); ok { - return x.State + if x != nil && x.State != nil { + return *x.State } return StpPortState_STP_PORT_STATE_UNSPECIFIED } -type isSetStpPortAttributeRequest_Attr interface { - isSetStpPortAttributeRequest_Attr() -} - -type SetStpPortAttributeRequest_State struct { - State StpPortState `protobuf:"varint,2,opt,name=state,proto3,enum=lemming.dataplane.sai.StpPortState,oneof"` -} - -func (*SetStpPortAttributeRequest_State) isSetStpPortAttributeRequest_Attr() {} - type SetStpPortAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -785,7 +765,7 @@ type GetStpPortAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*StpPortAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *StpPortAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetStpPortAttributeResponse) Reset() { @@ -820,7 +800,7 @@ func (*GetStpPortAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_stp_proto_rawDescGZIP(), []int{13} } -func (x *GetStpPortAttributeResponse) GetAttr() []*StpPortAttribute { +func (x *GetStpPortAttributeResponse) GetAttr() *StpPortAttribute { if x != nil { return x.Attr } @@ -854,117 +834,122 @@ var file_dataplane_standalone_proto_stp_proto_rawDesc = []byte{ 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, + 0x72, 0x22, 0xdf, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x73, 0x74, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x70, - 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x28, 0x0a, 0x14, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, - 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3b, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, - 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x63, 0x68, 0x12, 0x1b, 0x0a, 0x03, 0x73, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x2a, 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0a, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x74, 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x28, + 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x7e, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, - 0x6b, 0x0a, 0x07, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, - 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, - 0x53, 0x54, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, - 0x49, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x2a, 0x7b, 0x0a, 0x0b, - 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1d, 0x0a, 0x19, 0x53, - 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, - 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x50, 0x10, - 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, - 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x32, 0x99, 0x06, 0x0a, 0x03, 0x53, 0x74, - 0x70, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x12, 0x27, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x6f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x70, 0x50, + 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x6b, 0x0a, + 0x07, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x50, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, + 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x44, + 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x2a, 0x7b, 0x0a, 0x0b, 0x53, 0x74, + 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x50, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x50, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x50, 0x10, 0x01, 0x12, + 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x17, + 0x0a, 0x13, 0x53, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x32, 0x99, 0x06, 0x0a, 0x03, 0x53, 0x74, 0x70, 0x12, + 0x60, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x12, 0x27, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x60, 0x0a, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, - 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, - 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, - 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1206,9 +1191,8 @@ func file_dataplane_standalone_proto_stp_proto_init() { } } } - file_dataplane_standalone_proto_stp_proto_msgTypes[10].OneofWrappers = []interface{}{ - (*SetStpPortAttributeRequest_State)(nil), - } + file_dataplane_standalone_proto_stp_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_stp_proto_msgTypes[10].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/stp.proto b/dataplane/standalone/proto/stp.proto index 496d1840..fd9c13fb 100644 --- a/dataplane/standalone/proto/stp.proto +++ b/dataplane/standalone/proto/stp.proto @@ -7,115 +7,85 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum StpAttr { - STP_ATTR_UNSPECIFIED = 0; - STP_ATTR_VLAN_LIST = 1; - STP_ATTR_BRIDGE_ID = 2; - STP_ATTR_PORT_LIST = 3; + STP_ATTR_UNSPECIFIED = 0; + STP_ATTR_VLAN_LIST = 1; + STP_ATTR_BRIDGE_ID = 2; + STP_ATTR_PORT_LIST = 3; } enum StpPortAttr { - STP_PORT_ATTR_UNSPECIFIED = 0; - STP_PORT_ATTR_STP = 1; - STP_PORT_ATTR_BRIDGE_PORT = 2; - STP_PORT_ATTR_STATE = 3; + STP_PORT_ATTR_UNSPECIFIED = 0; + STP_PORT_ATTR_STP = 1; + STP_PORT_ATTR_BRIDGE_PORT = 2; + STP_PORT_ATTR_STATE = 3; } message CreateStpRequest { - uint64 switch = 1; - - + uint64 switch = 1; } message CreateStpResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveStpRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveStpResponse { - - -} +message RemoveStpResponse {} message GetStpAttributeRequest { - uint64 oid = 1; - repeated StpAttr attr_type = 2; - - + uint64 oid = 1; + repeated StpAttr attr_type = 2; } message GetStpAttributeResponse { - repeated StpAttribute attr = 1; - - + StpAttribute attr = 1; } message CreateStpPortRequest { - uint64 switch = 1; - - uint64 stp = 2; - uint64 bridge_port = 3; - StpPortState state = 4; - + uint64 switch = 1; + optional uint64 stp = 2 [(attr_enum_value) = 1]; + optional uint64 bridge_port = 3 [(attr_enum_value) = 2]; + optional StpPortState state = 4 [(attr_enum_value) = 3]; } message CreateStpPortResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveStpPortRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveStpPortResponse { - - -} +message RemoveStpPortResponse {} message SetStpPortAttributeRequest { - uint64 oid = 1; - oneof attr { - StpPortState state = 2; - } + uint64 oid = 1; + optional StpPortState state = 2 [(attr_enum_value) = 3]; } -message SetStpPortAttributeResponse { - - -} +message SetStpPortAttributeResponse {} message GetStpPortAttributeRequest { - uint64 oid = 1; - repeated StpPortAttr attr_type = 2; - - + uint64 oid = 1; + repeated StpPortAttr attr_type = 2; } message GetStpPortAttributeResponse { - repeated StpPortAttribute attr = 1; - - + StpPortAttribute attr = 1; } - service Stp { - rpc CreateStp (CreateStpRequest) returns (CreateStpResponse) {} - rpc RemoveStp (RemoveStpRequest) returns (RemoveStpResponse) {} - rpc GetStpAttribute (GetStpAttributeRequest) returns (GetStpAttributeResponse) {} - rpc CreateStpPort (CreateStpPortRequest) returns (CreateStpPortResponse) {} - rpc RemoveStpPort (RemoveStpPortRequest) returns (RemoveStpPortResponse) {} - rpc SetStpPortAttribute (SetStpPortAttributeRequest) returns (SetStpPortAttributeResponse) {} - rpc GetStpPortAttribute (GetStpPortAttributeRequest) returns (GetStpPortAttributeResponse) {} + rpc CreateStp(CreateStpRequest) returns (CreateStpResponse) {} + rpc RemoveStp(RemoveStpRequest) returns (RemoveStpResponse) {} + rpc GetStpAttribute(GetStpAttributeRequest) + returns (GetStpAttributeResponse) {} + rpc CreateStpPort(CreateStpPortRequest) returns (CreateStpPortResponse) {} + rpc RemoveStpPort(RemoveStpPortRequest) returns (RemoveStpPortResponse) {} + rpc SetStpPortAttribute(SetStpPortAttributeRequest) + returns (SetStpPortAttributeResponse) {} + rpc GetStpPortAttribute(GetStpPortAttributeRequest) + returns (GetStpPortAttributeResponse) {} } diff --git a/dataplane/standalone/proto/switch.pb.go b/dataplane/standalone/proto/switch.pb.go index a3e4376d..4f78ed14 100755 --- a/dataplane/standalone/proto/switch.pb.go +++ b/dataplane/standalone/proto/switch.pb.go @@ -766,88 +766,88 @@ type CreateSwitchRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IngressAcl uint64 `protobuf:"varint,1,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,2,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - RestartWarm bool `protobuf:"varint,3,opt,name=restart_warm,json=restartWarm,proto3" json:"restart_warm,omitempty"` - WarmRecover bool `protobuf:"varint,4,opt,name=warm_recover,json=warmRecover,proto3" json:"warm_recover,omitempty"` - SwitchingMode SwitchSwitchingMode `protobuf:"varint,5,opt,name=switching_mode,json=switchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode" json:"switching_mode,omitempty"` - BcastCpuFloodEnable bool `protobuf:"varint,6,opt,name=bcast_cpu_flood_enable,json=bcastCpuFloodEnable,proto3" json:"bcast_cpu_flood_enable,omitempty"` - McastCpuFloodEnable bool `protobuf:"varint,7,opt,name=mcast_cpu_flood_enable,json=mcastCpuFloodEnable,proto3" json:"mcast_cpu_flood_enable,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,8,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - MaxLearnedAddresses uint32 `protobuf:"varint,9,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3" json:"max_learned_addresses,omitempty"` - FdbAgingTime uint32 `protobuf:"varint,10,opt,name=fdb_aging_time,json=fdbAgingTime,proto3" json:"fdb_aging_time,omitempty"` - FdbUnicastMissPacketAction PacketAction `protobuf:"varint,11,opt,name=fdb_unicast_miss_packet_action,json=fdbUnicastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"fdb_unicast_miss_packet_action,omitempty"` - FdbBroadcastMissPacketAction PacketAction `protobuf:"varint,12,opt,name=fdb_broadcast_miss_packet_action,json=fdbBroadcastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"fdb_broadcast_miss_packet_action,omitempty"` - FdbMulticastMissPacketAction PacketAction `protobuf:"varint,13,opt,name=fdb_multicast_miss_packet_action,json=fdbMulticastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"fdb_multicast_miss_packet_action,omitempty"` - EcmpDefaultHashAlgorithm HashAlgorithm `protobuf:"varint,14,opt,name=ecmp_default_hash_algorithm,json=ecmpDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm" json:"ecmp_default_hash_algorithm,omitempty"` - EcmpDefaultHashSeed uint32 `protobuf:"varint,15,opt,name=ecmp_default_hash_seed,json=ecmpDefaultHashSeed,proto3" json:"ecmp_default_hash_seed,omitempty"` - EcmpDefaultHashOffset uint32 `protobuf:"varint,16,opt,name=ecmp_default_hash_offset,json=ecmpDefaultHashOffset,proto3" json:"ecmp_default_hash_offset,omitempty"` - EcmpDefaultSymmetricHash bool `protobuf:"varint,17,opt,name=ecmp_default_symmetric_hash,json=ecmpDefaultSymmetricHash,proto3" json:"ecmp_default_symmetric_hash,omitempty"` - EcmpHashIpv4 uint64 `protobuf:"varint,18,opt,name=ecmp_hash_ipv4,json=ecmpHashIpv4,proto3" json:"ecmp_hash_ipv4,omitempty"` - EcmpHashIpv4InIpv4 uint64 `protobuf:"varint,19,opt,name=ecmp_hash_ipv4_in_ipv4,json=ecmpHashIpv4InIpv4,proto3" json:"ecmp_hash_ipv4_in_ipv4,omitempty"` - EcmpHashIpv6 uint64 `protobuf:"varint,20,opt,name=ecmp_hash_ipv6,json=ecmpHashIpv6,proto3" json:"ecmp_hash_ipv6,omitempty"` - LagDefaultHashAlgorithm HashAlgorithm `protobuf:"varint,21,opt,name=lag_default_hash_algorithm,json=lagDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm" json:"lag_default_hash_algorithm,omitempty"` - LagDefaultHashSeed uint32 `protobuf:"varint,22,opt,name=lag_default_hash_seed,json=lagDefaultHashSeed,proto3" json:"lag_default_hash_seed,omitempty"` - LagDefaultHashOffset uint32 `protobuf:"varint,23,opt,name=lag_default_hash_offset,json=lagDefaultHashOffset,proto3" json:"lag_default_hash_offset,omitempty"` - LagDefaultSymmetricHash bool `protobuf:"varint,24,opt,name=lag_default_symmetric_hash,json=lagDefaultSymmetricHash,proto3" json:"lag_default_symmetric_hash,omitempty"` - LagHashIpv4 uint64 `protobuf:"varint,25,opt,name=lag_hash_ipv4,json=lagHashIpv4,proto3" json:"lag_hash_ipv4,omitempty"` - LagHashIpv4InIpv4 uint64 `protobuf:"varint,26,opt,name=lag_hash_ipv4_in_ipv4,json=lagHashIpv4InIpv4,proto3" json:"lag_hash_ipv4_in_ipv4,omitempty"` - LagHashIpv6 uint64 `protobuf:"varint,27,opt,name=lag_hash_ipv6,json=lagHashIpv6,proto3" json:"lag_hash_ipv6,omitempty"` - CounterRefreshInterval uint32 `protobuf:"varint,28,opt,name=counter_refresh_interval,json=counterRefreshInterval,proto3" json:"counter_refresh_interval,omitempty"` - QosDefaultTc uint32 `protobuf:"varint,29,opt,name=qos_default_tc,json=qosDefaultTc,proto3" json:"qos_default_tc,omitempty"` - QosDot1PToTcMap uint64 `protobuf:"varint,30,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3" json:"qos_dot1p_to_tc_map,omitempty"` - QosDot1PToColorMap uint64 `protobuf:"varint,31,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3" json:"qos_dot1p_to_color_map,omitempty"` - QosDscpToTcMap uint64 `protobuf:"varint,32,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3" json:"qos_dscp_to_tc_map,omitempty"` - QosDscpToColorMap uint64 `protobuf:"varint,33,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3" json:"qos_dscp_to_color_map,omitempty"` - QosTcToQueueMap uint64 `protobuf:"varint,34,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3" json:"qos_tc_to_queue_map,omitempty"` - QosTcAndColorToDot1PMap uint64 `protobuf:"varint,35,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3" json:"qos_tc_and_color_to_dot1p_map,omitempty"` - QosTcAndColorToDscpMap uint64 `protobuf:"varint,36,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3" json:"qos_tc_and_color_to_dscp_map,omitempty"` - SwitchShellEnable bool `protobuf:"varint,37,opt,name=switch_shell_enable,json=switchShellEnable,proto3" json:"switch_shell_enable,omitempty"` - SwitchProfileId uint32 `protobuf:"varint,38,opt,name=switch_profile_id,json=switchProfileId,proto3" json:"switch_profile_id,omitempty"` - SwitchHardwareInfo []int32 `protobuf:"varint,39,rep,packed,name=switch_hardware_info,json=switchHardwareInfo,proto3" json:"switch_hardware_info,omitempty"` - FirmwarePathName []int32 `protobuf:"varint,40,rep,packed,name=firmware_path_name,json=firmwarePathName,proto3" json:"firmware_path_name,omitempty"` - InitSwitch bool `protobuf:"varint,41,opt,name=init_switch,json=initSwitch,proto3" json:"init_switch,omitempty"` - FastApiEnable bool `protobuf:"varint,42,opt,name=fast_api_enable,json=fastApiEnable,proto3" json:"fast_api_enable,omitempty"` - MirrorTc uint32 `protobuf:"varint,43,opt,name=mirror_tc,json=mirrorTc,proto3" json:"mirror_tc,omitempty"` - PfcDlrPacketAction PacketAction `protobuf:"varint,44,opt,name=pfc_dlr_packet_action,json=pfcDlrPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"pfc_dlr_packet_action,omitempty"` - PfcTcDldInterval []*UintMap `protobuf:"bytes,45,rep,name=pfc_tc_dld_interval,json=pfcTcDldInterval,proto3" json:"pfc_tc_dld_interval,omitempty"` - PfcTcDlrInterval []*UintMap `protobuf:"bytes,46,rep,name=pfc_tc_dlr_interval,json=pfcTcDlrInterval,proto3" json:"pfc_tc_dlr_interval,omitempty"` - TpidOuterVlan uint32 `protobuf:"varint,47,opt,name=tpid_outer_vlan,json=tpidOuterVlan,proto3" json:"tpid_outer_vlan,omitempty"` - TpidInnerVlan uint32 `protobuf:"varint,48,opt,name=tpid_inner_vlan,json=tpidInnerVlan,proto3" json:"tpid_inner_vlan,omitempty"` - CrcCheckEnable bool `protobuf:"varint,49,opt,name=crc_check_enable,json=crcCheckEnable,proto3" json:"crc_check_enable,omitempty"` - CrcRecalculationEnable bool `protobuf:"varint,50,opt,name=crc_recalculation_enable,json=crcRecalculationEnable,proto3" json:"crc_recalculation_enable,omitempty"` - EcnEctThresholdEnable bool `protobuf:"varint,51,opt,name=ecn_ect_threshold_enable,json=ecnEctThresholdEnable,proto3" json:"ecn_ect_threshold_enable,omitempty"` - VxlanDefaultRouterMac []byte `protobuf:"bytes,52,opt,name=vxlan_default_router_mac,json=vxlanDefaultRouterMac,proto3" json:"vxlan_default_router_mac,omitempty"` - VxlanDefaultPort uint32 `protobuf:"varint,53,opt,name=vxlan_default_port,json=vxlanDefaultPort,proto3" json:"vxlan_default_port,omitempty"` - UninitDataPlaneOnRemoval bool `protobuf:"varint,54,opt,name=uninit_data_plane_on_removal,json=uninitDataPlaneOnRemoval,proto3" json:"uninit_data_plane_on_removal,omitempty"` - TamObjectId []uint64 `protobuf:"varint,55,rep,packed,name=tam_object_id,json=tamObjectId,proto3" json:"tam_object_id,omitempty"` - PreShutdown bool `protobuf:"varint,56,opt,name=pre_shutdown,json=preShutdown,proto3" json:"pre_shutdown,omitempty"` - NatZoneCounterObjectId uint64 `protobuf:"varint,57,opt,name=nat_zone_counter_object_id,json=natZoneCounterObjectId,proto3" json:"nat_zone_counter_object_id,omitempty"` - NatEnable bool `protobuf:"varint,58,opt,name=nat_enable,json=natEnable,proto3" json:"nat_enable,omitempty"` - HardwareAccessBus SwitchHardwareAccessBus `protobuf:"varint,59,opt,name=hardware_access_bus,json=hardwareAccessBus,proto3,enum=lemming.dataplane.sai.SwitchHardwareAccessBus" json:"hardware_access_bus,omitempty"` - PlatfromContext uint64 `protobuf:"varint,60,opt,name=platfrom_context,json=platfromContext,proto3" json:"platfrom_context,omitempty"` - FirmwareDownloadBroadcast bool `protobuf:"varint,61,opt,name=firmware_download_broadcast,json=firmwareDownloadBroadcast,proto3" json:"firmware_download_broadcast,omitempty"` - FirmwareLoadMethod SwitchFirmwareLoadMethod `protobuf:"varint,62,opt,name=firmware_load_method,json=firmwareLoadMethod,proto3,enum=lemming.dataplane.sai.SwitchFirmwareLoadMethod" json:"firmware_load_method,omitempty"` - FirmwareLoadType SwitchFirmwareLoadType `protobuf:"varint,63,opt,name=firmware_load_type,json=firmwareLoadType,proto3,enum=lemming.dataplane.sai.SwitchFirmwareLoadType" json:"firmware_load_type,omitempty"` - FirmwareDownloadExecute bool `protobuf:"varint,64,opt,name=firmware_download_execute,json=firmwareDownloadExecute,proto3" json:"firmware_download_execute,omitempty"` - FirmwareBroadcastStop bool `protobuf:"varint,65,opt,name=firmware_broadcast_stop,json=firmwareBroadcastStop,proto3" json:"firmware_broadcast_stop,omitempty"` - FirmwareVerifyAndInitSwitch bool `protobuf:"varint,66,opt,name=firmware_verify_and_init_switch,json=firmwareVerifyAndInitSwitch,proto3" json:"firmware_verify_and_init_switch,omitempty"` - Type SwitchType `protobuf:"varint,67,opt,name=type,proto3,enum=lemming.dataplane.sai.SwitchType" json:"type,omitempty"` - MacsecObjectList []uint64 `protobuf:"varint,68,rep,packed,name=macsec_object_list,json=macsecObjectList,proto3" json:"macsec_object_list,omitempty"` - QosMplsExpToTcMap uint64 `protobuf:"varint,69,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3" json:"qos_mpls_exp_to_tc_map,omitempty"` - QosMplsExpToColorMap uint64 `protobuf:"varint,70,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3" json:"qos_mpls_exp_to_color_map,omitempty"` - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,71,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` - SwitchId uint32 `protobuf:"varint,72,opt,name=switch_id,json=switchId,proto3" json:"switch_id,omitempty"` - MaxSystemCores uint32 `protobuf:"varint,73,opt,name=max_system_cores,json=maxSystemCores,proto3" json:"max_system_cores,omitempty"` - SystemPortConfigList []*SystemPortConfig `protobuf:"bytes,74,rep,name=system_port_config_list,json=systemPortConfigList,proto3" json:"system_port_config_list,omitempty"` - FailoverConfigMode SwitchFailoverConfigMode `protobuf:"varint,75,opt,name=failover_config_mode,json=failoverConfigMode,proto3,enum=lemming.dataplane.sai.SwitchFailoverConfigMode" json:"failover_config_mode,omitempty"` - TunnelObjectsList []uint64 `protobuf:"varint,76,rep,packed,name=tunnel_objects_list,json=tunnelObjectsList,proto3" json:"tunnel_objects_list,omitempty"` - PreIngressAcl uint64 `protobuf:"varint,77,opt,name=pre_ingress_acl,json=preIngressAcl,proto3" json:"pre_ingress_acl,omitempty"` - SlaveMdioAddrList []uint32 `protobuf:"varint,78,rep,packed,name=slave_mdio_addr_list,json=slaveMdioAddrList,proto3" json:"slave_mdio_addr_list,omitempty"` - QosDscpToForwardingClassMap uint64 `protobuf:"varint,79,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3" json:"qos_dscp_to_forwarding_class_map,omitempty"` - QosMplsExpToForwardingClassMap uint64 `protobuf:"varint,80,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` - IpsecObjectId uint64 `protobuf:"varint,81,opt,name=ipsec_object_id,json=ipsecObjectId,proto3" json:"ipsec_object_id,omitempty"` - IpsecSaTagTpid uint32 `protobuf:"varint,82,opt,name=ipsec_sa_tag_tpid,json=ipsecSaTagTpid,proto3" json:"ipsec_sa_tag_tpid,omitempty"` + IngressAcl *uint64 `protobuf:"varint,1,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,2,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + RestartWarm *bool `protobuf:"varint,3,opt,name=restart_warm,json=restartWarm,proto3,oneof" json:"restart_warm,omitempty"` + WarmRecover *bool `protobuf:"varint,4,opt,name=warm_recover,json=warmRecover,proto3,oneof" json:"warm_recover,omitempty"` + SwitchingMode *SwitchSwitchingMode `protobuf:"varint,5,opt,name=switching_mode,json=switchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switching_mode,omitempty"` + BcastCpuFloodEnable *bool `protobuf:"varint,6,opt,name=bcast_cpu_flood_enable,json=bcastCpuFloodEnable,proto3,oneof" json:"bcast_cpu_flood_enable,omitempty"` + McastCpuFloodEnable *bool `protobuf:"varint,7,opt,name=mcast_cpu_flood_enable,json=mcastCpuFloodEnable,proto3,oneof" json:"mcast_cpu_flood_enable,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,8,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,9,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + FdbAgingTime *uint32 `protobuf:"varint,10,opt,name=fdb_aging_time,json=fdbAgingTime,proto3,oneof" json:"fdb_aging_time,omitempty"` + FdbUnicastMissPacketAction *PacketAction `protobuf:"varint,11,opt,name=fdb_unicast_miss_packet_action,json=fdbUnicastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_unicast_miss_packet_action,omitempty"` + FdbBroadcastMissPacketAction *PacketAction `protobuf:"varint,12,opt,name=fdb_broadcast_miss_packet_action,json=fdbBroadcastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_broadcast_miss_packet_action,omitempty"` + FdbMulticastMissPacketAction *PacketAction `protobuf:"varint,13,opt,name=fdb_multicast_miss_packet_action,json=fdbMulticastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_multicast_miss_packet_action,omitempty"` + EcmpDefaultHashAlgorithm *HashAlgorithm `protobuf:"varint,14,opt,name=ecmp_default_hash_algorithm,json=ecmpDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm,oneof" json:"ecmp_default_hash_algorithm,omitempty"` + EcmpDefaultHashSeed *uint32 `protobuf:"varint,15,opt,name=ecmp_default_hash_seed,json=ecmpDefaultHashSeed,proto3,oneof" json:"ecmp_default_hash_seed,omitempty"` + EcmpDefaultHashOffset *uint32 `protobuf:"varint,16,opt,name=ecmp_default_hash_offset,json=ecmpDefaultHashOffset,proto3,oneof" json:"ecmp_default_hash_offset,omitempty"` + EcmpDefaultSymmetricHash *bool `protobuf:"varint,17,opt,name=ecmp_default_symmetric_hash,json=ecmpDefaultSymmetricHash,proto3,oneof" json:"ecmp_default_symmetric_hash,omitempty"` + EcmpHashIpv4 *uint64 `protobuf:"varint,18,opt,name=ecmp_hash_ipv4,json=ecmpHashIpv4,proto3,oneof" json:"ecmp_hash_ipv4,omitempty"` + EcmpHashIpv4InIpv4 *uint64 `protobuf:"varint,19,opt,name=ecmp_hash_ipv4_in_ipv4,json=ecmpHashIpv4InIpv4,proto3,oneof" json:"ecmp_hash_ipv4_in_ipv4,omitempty"` + EcmpHashIpv6 *uint64 `protobuf:"varint,20,opt,name=ecmp_hash_ipv6,json=ecmpHashIpv6,proto3,oneof" json:"ecmp_hash_ipv6,omitempty"` + LagDefaultHashAlgorithm *HashAlgorithm `protobuf:"varint,21,opt,name=lag_default_hash_algorithm,json=lagDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm,oneof" json:"lag_default_hash_algorithm,omitempty"` + LagDefaultHashSeed *uint32 `protobuf:"varint,22,opt,name=lag_default_hash_seed,json=lagDefaultHashSeed,proto3,oneof" json:"lag_default_hash_seed,omitempty"` + LagDefaultHashOffset *uint32 `protobuf:"varint,23,opt,name=lag_default_hash_offset,json=lagDefaultHashOffset,proto3,oneof" json:"lag_default_hash_offset,omitempty"` + LagDefaultSymmetricHash *bool `protobuf:"varint,24,opt,name=lag_default_symmetric_hash,json=lagDefaultSymmetricHash,proto3,oneof" json:"lag_default_symmetric_hash,omitempty"` + LagHashIpv4 *uint64 `protobuf:"varint,25,opt,name=lag_hash_ipv4,json=lagHashIpv4,proto3,oneof" json:"lag_hash_ipv4,omitempty"` + LagHashIpv4InIpv4 *uint64 `protobuf:"varint,26,opt,name=lag_hash_ipv4_in_ipv4,json=lagHashIpv4InIpv4,proto3,oneof" json:"lag_hash_ipv4_in_ipv4,omitempty"` + LagHashIpv6 *uint64 `protobuf:"varint,27,opt,name=lag_hash_ipv6,json=lagHashIpv6,proto3,oneof" json:"lag_hash_ipv6,omitempty"` + CounterRefreshInterval *uint32 `protobuf:"varint,28,opt,name=counter_refresh_interval,json=counterRefreshInterval,proto3,oneof" json:"counter_refresh_interval,omitempty"` + QosDefaultTc *uint32 `protobuf:"varint,29,opt,name=qos_default_tc,json=qosDefaultTc,proto3,oneof" json:"qos_default_tc,omitempty"` + QosDot1PToTcMap *uint64 `protobuf:"varint,30,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3,oneof" json:"qos_dot1p_to_tc_map,omitempty"` + QosDot1PToColorMap *uint64 `protobuf:"varint,31,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3,oneof" json:"qos_dot1p_to_color_map,omitempty"` + QosDscpToTcMap *uint64 `protobuf:"varint,32,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3,oneof" json:"qos_dscp_to_tc_map,omitempty"` + QosDscpToColorMap *uint64 `protobuf:"varint,33,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3,oneof" json:"qos_dscp_to_color_map,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,34,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` + QosTcAndColorToDot1PMap *uint64 `protobuf:"varint,35,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3,oneof" json:"qos_tc_and_color_to_dot1p_map,omitempty"` + QosTcAndColorToDscpMap *uint64 `protobuf:"varint,36,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3,oneof" json:"qos_tc_and_color_to_dscp_map,omitempty"` + SwitchShellEnable *bool `protobuf:"varint,37,opt,name=switch_shell_enable,json=switchShellEnable,proto3,oneof" json:"switch_shell_enable,omitempty"` + SwitchProfileId *uint32 `protobuf:"varint,38,opt,name=switch_profile_id,json=switchProfileId,proto3,oneof" json:"switch_profile_id,omitempty"` + SwitchHardwareInfo []int32 `protobuf:"varint,39,rep,packed,name=switch_hardware_info,json=switchHardwareInfo,proto3" json:"switch_hardware_info,omitempty"` + FirmwarePathName []int32 `protobuf:"varint,40,rep,packed,name=firmware_path_name,json=firmwarePathName,proto3" json:"firmware_path_name,omitempty"` + InitSwitch *bool `protobuf:"varint,41,opt,name=init_switch,json=initSwitch,proto3,oneof" json:"init_switch,omitempty"` + FastApiEnable *bool `protobuf:"varint,42,opt,name=fast_api_enable,json=fastApiEnable,proto3,oneof" json:"fast_api_enable,omitempty"` + MirrorTc *uint32 `protobuf:"varint,43,opt,name=mirror_tc,json=mirrorTc,proto3,oneof" json:"mirror_tc,omitempty"` + PfcDlrPacketAction *PacketAction `protobuf:"varint,44,opt,name=pfc_dlr_packet_action,json=pfcDlrPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"pfc_dlr_packet_action,omitempty"` + PfcTcDldInterval []*UintMap `protobuf:"bytes,45,rep,name=pfc_tc_dld_interval,json=pfcTcDldInterval,proto3" json:"pfc_tc_dld_interval,omitempty"` + PfcTcDlrInterval []*UintMap `protobuf:"bytes,46,rep,name=pfc_tc_dlr_interval,json=pfcTcDlrInterval,proto3" json:"pfc_tc_dlr_interval,omitempty"` + TpidOuterVlan *uint32 `protobuf:"varint,47,opt,name=tpid_outer_vlan,json=tpidOuterVlan,proto3,oneof" json:"tpid_outer_vlan,omitempty"` + TpidInnerVlan *uint32 `protobuf:"varint,48,opt,name=tpid_inner_vlan,json=tpidInnerVlan,proto3,oneof" json:"tpid_inner_vlan,omitempty"` + CrcCheckEnable *bool `protobuf:"varint,49,opt,name=crc_check_enable,json=crcCheckEnable,proto3,oneof" json:"crc_check_enable,omitempty"` + CrcRecalculationEnable *bool `protobuf:"varint,50,opt,name=crc_recalculation_enable,json=crcRecalculationEnable,proto3,oneof" json:"crc_recalculation_enable,omitempty"` + EcnEctThresholdEnable *bool `protobuf:"varint,51,opt,name=ecn_ect_threshold_enable,json=ecnEctThresholdEnable,proto3,oneof" json:"ecn_ect_threshold_enable,omitempty"` + VxlanDefaultRouterMac []byte `protobuf:"bytes,52,opt,name=vxlan_default_router_mac,json=vxlanDefaultRouterMac,proto3,oneof" json:"vxlan_default_router_mac,omitempty"` + VxlanDefaultPort *uint32 `protobuf:"varint,53,opt,name=vxlan_default_port,json=vxlanDefaultPort,proto3,oneof" json:"vxlan_default_port,omitempty"` + UninitDataPlaneOnRemoval *bool `protobuf:"varint,54,opt,name=uninit_data_plane_on_removal,json=uninitDataPlaneOnRemoval,proto3,oneof" json:"uninit_data_plane_on_removal,omitempty"` + TamObjectId []uint64 `protobuf:"varint,55,rep,packed,name=tam_object_id,json=tamObjectId,proto3" json:"tam_object_id,omitempty"` + PreShutdown *bool `protobuf:"varint,56,opt,name=pre_shutdown,json=preShutdown,proto3,oneof" json:"pre_shutdown,omitempty"` + NatZoneCounterObjectId *uint64 `protobuf:"varint,57,opt,name=nat_zone_counter_object_id,json=natZoneCounterObjectId,proto3,oneof" json:"nat_zone_counter_object_id,omitempty"` + NatEnable *bool `protobuf:"varint,58,opt,name=nat_enable,json=natEnable,proto3,oneof" json:"nat_enable,omitempty"` + HardwareAccessBus *SwitchHardwareAccessBus `protobuf:"varint,59,opt,name=hardware_access_bus,json=hardwareAccessBus,proto3,enum=lemming.dataplane.sai.SwitchHardwareAccessBus,oneof" json:"hardware_access_bus,omitempty"` + PlatfromContext *uint64 `protobuf:"varint,60,opt,name=platfrom_context,json=platfromContext,proto3,oneof" json:"platfrom_context,omitempty"` + FirmwareDownloadBroadcast *bool `protobuf:"varint,61,opt,name=firmware_download_broadcast,json=firmwareDownloadBroadcast,proto3,oneof" json:"firmware_download_broadcast,omitempty"` + FirmwareLoadMethod *SwitchFirmwareLoadMethod `protobuf:"varint,62,opt,name=firmware_load_method,json=firmwareLoadMethod,proto3,enum=lemming.dataplane.sai.SwitchFirmwareLoadMethod,oneof" json:"firmware_load_method,omitempty"` + FirmwareLoadType *SwitchFirmwareLoadType `protobuf:"varint,63,opt,name=firmware_load_type,json=firmwareLoadType,proto3,enum=lemming.dataplane.sai.SwitchFirmwareLoadType,oneof" json:"firmware_load_type,omitempty"` + FirmwareDownloadExecute *bool `protobuf:"varint,64,opt,name=firmware_download_execute,json=firmwareDownloadExecute,proto3,oneof" json:"firmware_download_execute,omitempty"` + FirmwareBroadcastStop *bool `protobuf:"varint,65,opt,name=firmware_broadcast_stop,json=firmwareBroadcastStop,proto3,oneof" json:"firmware_broadcast_stop,omitempty"` + FirmwareVerifyAndInitSwitch *bool `protobuf:"varint,66,opt,name=firmware_verify_and_init_switch,json=firmwareVerifyAndInitSwitch,proto3,oneof" json:"firmware_verify_and_init_switch,omitempty"` + Type *SwitchType `protobuf:"varint,67,opt,name=type,proto3,enum=lemming.dataplane.sai.SwitchType,oneof" json:"type,omitempty"` + MacsecObjectList []uint64 `protobuf:"varint,68,rep,packed,name=macsec_object_list,json=macsecObjectList,proto3" json:"macsec_object_list,omitempty"` + QosMplsExpToTcMap *uint64 `protobuf:"varint,69,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3,oneof" json:"qos_mpls_exp_to_tc_map,omitempty"` + QosMplsExpToColorMap *uint64 `protobuf:"varint,70,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3,oneof" json:"qos_mpls_exp_to_color_map,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,71,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` + SwitchId *uint32 `protobuf:"varint,72,opt,name=switch_id,json=switchId,proto3,oneof" json:"switch_id,omitempty"` + MaxSystemCores *uint32 `protobuf:"varint,73,opt,name=max_system_cores,json=maxSystemCores,proto3,oneof" json:"max_system_cores,omitempty"` + SystemPortConfigList []*SystemPortConfig `protobuf:"bytes,74,rep,name=system_port_config_list,json=systemPortConfigList,proto3" json:"system_port_config_list,omitempty"` + FailoverConfigMode *SwitchFailoverConfigMode `protobuf:"varint,75,opt,name=failover_config_mode,json=failoverConfigMode,proto3,enum=lemming.dataplane.sai.SwitchFailoverConfigMode,oneof" json:"failover_config_mode,omitempty"` + TunnelObjectsList []uint64 `protobuf:"varint,76,rep,packed,name=tunnel_objects_list,json=tunnelObjectsList,proto3" json:"tunnel_objects_list,omitempty"` + PreIngressAcl *uint64 `protobuf:"varint,77,opt,name=pre_ingress_acl,json=preIngressAcl,proto3,oneof" json:"pre_ingress_acl,omitempty"` + SlaveMdioAddrList []uint32 `protobuf:"varint,78,rep,packed,name=slave_mdio_addr_list,json=slaveMdioAddrList,proto3" json:"slave_mdio_addr_list,omitempty"` + QosDscpToForwardingClassMap *uint64 `protobuf:"varint,79,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3,oneof" json:"qos_dscp_to_forwarding_class_map,omitempty"` + QosMplsExpToForwardingClassMap *uint64 `protobuf:"varint,80,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3,oneof" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` + IpsecObjectId *uint64 `protobuf:"varint,81,opt,name=ipsec_object_id,json=ipsecObjectId,proto3,oneof" json:"ipsec_object_id,omitempty"` + IpsecSaTagTpid *uint32 `protobuf:"varint,82,opt,name=ipsec_sa_tag_tpid,json=ipsecSaTagTpid,proto3,oneof" json:"ipsec_sa_tag_tpid,omitempty"` } func (x *CreateSwitchRequest) Reset() { @@ -883,50 +883,50 @@ func (*CreateSwitchRequest) Descriptor() ([]byte, []int) { } func (x *CreateSwitchRequest) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *CreateSwitchRequest) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *CreateSwitchRequest) GetRestartWarm() bool { - if x != nil { - return x.RestartWarm + if x != nil && x.RestartWarm != nil { + return *x.RestartWarm } return false } func (x *CreateSwitchRequest) GetWarmRecover() bool { - if x != nil { - return x.WarmRecover + if x != nil && x.WarmRecover != nil { + return *x.WarmRecover } return false } func (x *CreateSwitchRequest) GetSwitchingMode() SwitchSwitchingMode { - if x != nil { - return x.SwitchingMode + if x != nil && x.SwitchingMode != nil { + return *x.SwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } func (x *CreateSwitchRequest) GetBcastCpuFloodEnable() bool { - if x != nil { - return x.BcastCpuFloodEnable + if x != nil && x.BcastCpuFloodEnable != nil { + return *x.BcastCpuFloodEnable } return false } func (x *CreateSwitchRequest) GetMcastCpuFloodEnable() bool { - if x != nil { - return x.McastCpuFloodEnable + if x != nil && x.McastCpuFloodEnable != nil { + return *x.McastCpuFloodEnable } return false } @@ -939,211 +939,211 @@ func (x *CreateSwitchRequest) GetSrcMacAddress() []byte { } func (x *CreateSwitchRequest) GetMaxLearnedAddresses() uint32 { - if x != nil { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *CreateSwitchRequest) GetFdbAgingTime() uint32 { - if x != nil { - return x.FdbAgingTime + if x != nil && x.FdbAgingTime != nil { + return *x.FdbAgingTime } return 0 } func (x *CreateSwitchRequest) GetFdbUnicastMissPacketAction() PacketAction { - if x != nil { - return x.FdbUnicastMissPacketAction + if x != nil && x.FdbUnicastMissPacketAction != nil { + return *x.FdbUnicastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateSwitchRequest) GetFdbBroadcastMissPacketAction() PacketAction { - if x != nil { - return x.FdbBroadcastMissPacketAction + if x != nil && x.FdbBroadcastMissPacketAction != nil { + return *x.FdbBroadcastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateSwitchRequest) GetFdbMulticastMissPacketAction() PacketAction { - if x != nil { - return x.FdbMulticastMissPacketAction + if x != nil && x.FdbMulticastMissPacketAction != nil { + return *x.FdbMulticastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateSwitchRequest) GetEcmpDefaultHashAlgorithm() HashAlgorithm { - if x != nil { - return x.EcmpDefaultHashAlgorithm + if x != nil && x.EcmpDefaultHashAlgorithm != nil { + return *x.EcmpDefaultHashAlgorithm } return HashAlgorithm_HASH_ALGORITHM_UNSPECIFIED } func (x *CreateSwitchRequest) GetEcmpDefaultHashSeed() uint32 { - if x != nil { - return x.EcmpDefaultHashSeed + if x != nil && x.EcmpDefaultHashSeed != nil { + return *x.EcmpDefaultHashSeed } return 0 } func (x *CreateSwitchRequest) GetEcmpDefaultHashOffset() uint32 { - if x != nil { - return x.EcmpDefaultHashOffset + if x != nil && x.EcmpDefaultHashOffset != nil { + return *x.EcmpDefaultHashOffset } return 0 } func (x *CreateSwitchRequest) GetEcmpDefaultSymmetricHash() bool { - if x != nil { - return x.EcmpDefaultSymmetricHash + if x != nil && x.EcmpDefaultSymmetricHash != nil { + return *x.EcmpDefaultSymmetricHash } return false } func (x *CreateSwitchRequest) GetEcmpHashIpv4() uint64 { - if x != nil { - return x.EcmpHashIpv4 + if x != nil && x.EcmpHashIpv4 != nil { + return *x.EcmpHashIpv4 } return 0 } func (x *CreateSwitchRequest) GetEcmpHashIpv4InIpv4() uint64 { - if x != nil { - return x.EcmpHashIpv4InIpv4 + if x != nil && x.EcmpHashIpv4InIpv4 != nil { + return *x.EcmpHashIpv4InIpv4 } return 0 } func (x *CreateSwitchRequest) GetEcmpHashIpv6() uint64 { - if x != nil { - return x.EcmpHashIpv6 + if x != nil && x.EcmpHashIpv6 != nil { + return *x.EcmpHashIpv6 } return 0 } func (x *CreateSwitchRequest) GetLagDefaultHashAlgorithm() HashAlgorithm { - if x != nil { - return x.LagDefaultHashAlgorithm + if x != nil && x.LagDefaultHashAlgorithm != nil { + return *x.LagDefaultHashAlgorithm } return HashAlgorithm_HASH_ALGORITHM_UNSPECIFIED } func (x *CreateSwitchRequest) GetLagDefaultHashSeed() uint32 { - if x != nil { - return x.LagDefaultHashSeed + if x != nil && x.LagDefaultHashSeed != nil { + return *x.LagDefaultHashSeed } return 0 } func (x *CreateSwitchRequest) GetLagDefaultHashOffset() uint32 { - if x != nil { - return x.LagDefaultHashOffset + if x != nil && x.LagDefaultHashOffset != nil { + return *x.LagDefaultHashOffset } return 0 } func (x *CreateSwitchRequest) GetLagDefaultSymmetricHash() bool { - if x != nil { - return x.LagDefaultSymmetricHash + if x != nil && x.LagDefaultSymmetricHash != nil { + return *x.LagDefaultSymmetricHash } return false } func (x *CreateSwitchRequest) GetLagHashIpv4() uint64 { - if x != nil { - return x.LagHashIpv4 + if x != nil && x.LagHashIpv4 != nil { + return *x.LagHashIpv4 } return 0 } func (x *CreateSwitchRequest) GetLagHashIpv4InIpv4() uint64 { - if x != nil { - return x.LagHashIpv4InIpv4 + if x != nil && x.LagHashIpv4InIpv4 != nil { + return *x.LagHashIpv4InIpv4 } return 0 } func (x *CreateSwitchRequest) GetLagHashIpv6() uint64 { - if x != nil { - return x.LagHashIpv6 + if x != nil && x.LagHashIpv6 != nil { + return *x.LagHashIpv6 } return 0 } func (x *CreateSwitchRequest) GetCounterRefreshInterval() uint32 { - if x != nil { - return x.CounterRefreshInterval + if x != nil && x.CounterRefreshInterval != nil { + return *x.CounterRefreshInterval } return 0 } func (x *CreateSwitchRequest) GetQosDefaultTc() uint32 { - if x != nil { - return x.QosDefaultTc + if x != nil && x.QosDefaultTc != nil { + return *x.QosDefaultTc } return 0 } func (x *CreateSwitchRequest) GetQosDot1PToTcMap() uint64 { - if x != nil { - return x.QosDot1PToTcMap + if x != nil && x.QosDot1PToTcMap != nil { + return *x.QosDot1PToTcMap } return 0 } func (x *CreateSwitchRequest) GetQosDot1PToColorMap() uint64 { - if x != nil { - return x.QosDot1PToColorMap + if x != nil && x.QosDot1PToColorMap != nil { + return *x.QosDot1PToColorMap } return 0 } func (x *CreateSwitchRequest) GetQosDscpToTcMap() uint64 { - if x != nil { - return x.QosDscpToTcMap + if x != nil && x.QosDscpToTcMap != nil { + return *x.QosDscpToTcMap } return 0 } func (x *CreateSwitchRequest) GetQosDscpToColorMap() uint64 { - if x != nil { - return x.QosDscpToColorMap + if x != nil && x.QosDscpToColorMap != nil { + return *x.QosDscpToColorMap } return 0 } func (x *CreateSwitchRequest) GetQosTcToQueueMap() uint64 { - if x != nil { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } func (x *CreateSwitchRequest) GetQosTcAndColorToDot1PMap() uint64 { - if x != nil { - return x.QosTcAndColorToDot1PMap + if x != nil && x.QosTcAndColorToDot1PMap != nil { + return *x.QosTcAndColorToDot1PMap } return 0 } func (x *CreateSwitchRequest) GetQosTcAndColorToDscpMap() uint64 { - if x != nil { - return x.QosTcAndColorToDscpMap + if x != nil && x.QosTcAndColorToDscpMap != nil { + return *x.QosTcAndColorToDscpMap } return 0 } func (x *CreateSwitchRequest) GetSwitchShellEnable() bool { - if x != nil { - return x.SwitchShellEnable + if x != nil && x.SwitchShellEnable != nil { + return *x.SwitchShellEnable } return false } func (x *CreateSwitchRequest) GetSwitchProfileId() uint32 { - if x != nil { - return x.SwitchProfileId + if x != nil && x.SwitchProfileId != nil { + return *x.SwitchProfileId } return 0 } @@ -1163,29 +1163,29 @@ func (x *CreateSwitchRequest) GetFirmwarePathName() []int32 { } func (x *CreateSwitchRequest) GetInitSwitch() bool { - if x != nil { - return x.InitSwitch + if x != nil && x.InitSwitch != nil { + return *x.InitSwitch } return false } func (x *CreateSwitchRequest) GetFastApiEnable() bool { - if x != nil { - return x.FastApiEnable + if x != nil && x.FastApiEnable != nil { + return *x.FastApiEnable } return false } func (x *CreateSwitchRequest) GetMirrorTc() uint32 { - if x != nil { - return x.MirrorTc + if x != nil && x.MirrorTc != nil { + return *x.MirrorTc } return 0 } func (x *CreateSwitchRequest) GetPfcDlrPacketAction() PacketAction { - if x != nil { - return x.PfcDlrPacketAction + if x != nil && x.PfcDlrPacketAction != nil { + return *x.PfcDlrPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } @@ -1205,36 +1205,36 @@ func (x *CreateSwitchRequest) GetPfcTcDlrInterval() []*UintMap { } func (x *CreateSwitchRequest) GetTpidOuterVlan() uint32 { - if x != nil { - return x.TpidOuterVlan + if x != nil && x.TpidOuterVlan != nil { + return *x.TpidOuterVlan } return 0 } func (x *CreateSwitchRequest) GetTpidInnerVlan() uint32 { - if x != nil { - return x.TpidInnerVlan + if x != nil && x.TpidInnerVlan != nil { + return *x.TpidInnerVlan } return 0 } func (x *CreateSwitchRequest) GetCrcCheckEnable() bool { - if x != nil { - return x.CrcCheckEnable + if x != nil && x.CrcCheckEnable != nil { + return *x.CrcCheckEnable } return false } func (x *CreateSwitchRequest) GetCrcRecalculationEnable() bool { - if x != nil { - return x.CrcRecalculationEnable + if x != nil && x.CrcRecalculationEnable != nil { + return *x.CrcRecalculationEnable } return false } func (x *CreateSwitchRequest) GetEcnEctThresholdEnable() bool { - if x != nil { - return x.EcnEctThresholdEnable + if x != nil && x.EcnEctThresholdEnable != nil { + return *x.EcnEctThresholdEnable } return false } @@ -1247,15 +1247,15 @@ func (x *CreateSwitchRequest) GetVxlanDefaultRouterMac() []byte { } func (x *CreateSwitchRequest) GetVxlanDefaultPort() uint32 { - if x != nil { - return x.VxlanDefaultPort + if x != nil && x.VxlanDefaultPort != nil { + return *x.VxlanDefaultPort } return 0 } func (x *CreateSwitchRequest) GetUninitDataPlaneOnRemoval() bool { - if x != nil { - return x.UninitDataPlaneOnRemoval + if x != nil && x.UninitDataPlaneOnRemoval != nil { + return *x.UninitDataPlaneOnRemoval } return false } @@ -1268,85 +1268,85 @@ func (x *CreateSwitchRequest) GetTamObjectId() []uint64 { } func (x *CreateSwitchRequest) GetPreShutdown() bool { - if x != nil { - return x.PreShutdown + if x != nil && x.PreShutdown != nil { + return *x.PreShutdown } return false } func (x *CreateSwitchRequest) GetNatZoneCounterObjectId() uint64 { - if x != nil { - return x.NatZoneCounterObjectId + if x != nil && x.NatZoneCounterObjectId != nil { + return *x.NatZoneCounterObjectId } return 0 } func (x *CreateSwitchRequest) GetNatEnable() bool { - if x != nil { - return x.NatEnable + if x != nil && x.NatEnable != nil { + return *x.NatEnable } return false } func (x *CreateSwitchRequest) GetHardwareAccessBus() SwitchHardwareAccessBus { - if x != nil { - return x.HardwareAccessBus + if x != nil && x.HardwareAccessBus != nil { + return *x.HardwareAccessBus } return SwitchHardwareAccessBus_SWITCH_HARDWARE_ACCESS_BUS_UNSPECIFIED } func (x *CreateSwitchRequest) GetPlatfromContext() uint64 { - if x != nil { - return x.PlatfromContext + if x != nil && x.PlatfromContext != nil { + return *x.PlatfromContext } return 0 } func (x *CreateSwitchRequest) GetFirmwareDownloadBroadcast() bool { - if x != nil { - return x.FirmwareDownloadBroadcast + if x != nil && x.FirmwareDownloadBroadcast != nil { + return *x.FirmwareDownloadBroadcast } return false } func (x *CreateSwitchRequest) GetFirmwareLoadMethod() SwitchFirmwareLoadMethod { - if x != nil { - return x.FirmwareLoadMethod + if x != nil && x.FirmwareLoadMethod != nil { + return *x.FirmwareLoadMethod } return SwitchFirmwareLoadMethod_SWITCH_FIRMWARE_LOAD_METHOD_UNSPECIFIED } func (x *CreateSwitchRequest) GetFirmwareLoadType() SwitchFirmwareLoadType { - if x != nil { - return x.FirmwareLoadType + if x != nil && x.FirmwareLoadType != nil { + return *x.FirmwareLoadType } return SwitchFirmwareLoadType_SWITCH_FIRMWARE_LOAD_TYPE_UNSPECIFIED } func (x *CreateSwitchRequest) GetFirmwareDownloadExecute() bool { - if x != nil { - return x.FirmwareDownloadExecute + if x != nil && x.FirmwareDownloadExecute != nil { + return *x.FirmwareDownloadExecute } return false } func (x *CreateSwitchRequest) GetFirmwareBroadcastStop() bool { - if x != nil { - return x.FirmwareBroadcastStop + if x != nil && x.FirmwareBroadcastStop != nil { + return *x.FirmwareBroadcastStop } return false } func (x *CreateSwitchRequest) GetFirmwareVerifyAndInitSwitch() bool { - if x != nil { - return x.FirmwareVerifyAndInitSwitch + if x != nil && x.FirmwareVerifyAndInitSwitch != nil { + return *x.FirmwareVerifyAndInitSwitch } return false } func (x *CreateSwitchRequest) GetType() SwitchType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return SwitchType_SWITCH_TYPE_UNSPECIFIED } @@ -1359,36 +1359,36 @@ func (x *CreateSwitchRequest) GetMacsecObjectList() []uint64 { } func (x *CreateSwitchRequest) GetQosMplsExpToTcMap() uint64 { - if x != nil { - return x.QosMplsExpToTcMap + if x != nil && x.QosMplsExpToTcMap != nil { + return *x.QosMplsExpToTcMap } return 0 } func (x *CreateSwitchRequest) GetQosMplsExpToColorMap() uint64 { - if x != nil { - return x.QosMplsExpToColorMap + if x != nil && x.QosMplsExpToColorMap != nil { + return *x.QosMplsExpToColorMap } return 0 } func (x *CreateSwitchRequest) GetQosTcAndColorToMplsExpMap() uint64 { - if x != nil { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } func (x *CreateSwitchRequest) GetSwitchId() uint32 { - if x != nil { - return x.SwitchId + if x != nil && x.SwitchId != nil { + return *x.SwitchId } return 0 } func (x *CreateSwitchRequest) GetMaxSystemCores() uint32 { - if x != nil { - return x.MaxSystemCores + if x != nil && x.MaxSystemCores != nil { + return *x.MaxSystemCores } return 0 } @@ -1401,8 +1401,8 @@ func (x *CreateSwitchRequest) GetSystemPortConfigList() []*SystemPortConfig { } func (x *CreateSwitchRequest) GetFailoverConfigMode() SwitchFailoverConfigMode { - if x != nil { - return x.FailoverConfigMode + if x != nil && x.FailoverConfigMode != nil { + return *x.FailoverConfigMode } return SwitchFailoverConfigMode_SWITCH_FAILOVER_CONFIG_MODE_UNSPECIFIED } @@ -1415,8 +1415,8 @@ func (x *CreateSwitchRequest) GetTunnelObjectsList() []uint64 { } func (x *CreateSwitchRequest) GetPreIngressAcl() uint64 { - if x != nil { - return x.PreIngressAcl + if x != nil && x.PreIngressAcl != nil { + return *x.PreIngressAcl } return 0 } @@ -1429,29 +1429,29 @@ func (x *CreateSwitchRequest) GetSlaveMdioAddrList() []uint32 { } func (x *CreateSwitchRequest) GetQosDscpToForwardingClassMap() uint64 { - if x != nil { - return x.QosDscpToForwardingClassMap + if x != nil && x.QosDscpToForwardingClassMap != nil { + return *x.QosDscpToForwardingClassMap } return 0 } func (x *CreateSwitchRequest) GetQosMplsExpToForwardingClassMap() uint64 { - if x != nil { - return x.QosMplsExpToForwardingClassMap + if x != nil && x.QosMplsExpToForwardingClassMap != nil { + return *x.QosMplsExpToForwardingClassMap } return 0 } func (x *CreateSwitchRequest) GetIpsecObjectId() uint64 { - if x != nil { - return x.IpsecObjectId + if x != nil && x.IpsecObjectId != nil { + return *x.IpsecObjectId } return 0 } func (x *CreateSwitchRequest) GetIpsecSaTagTpid() uint32 { - if x != nil { - return x.IpsecSaTagTpid + if x != nil && x.IpsecSaTagTpid != nil { + return *x.IpsecSaTagTpid } return 0 } @@ -1593,78 +1593,75 @@ type SetSwitchAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetSwitchAttributeRequest_IngressAcl - // *SetSwitchAttributeRequest_EgressAcl - // *SetSwitchAttributeRequest_RestartWarm - // *SetSwitchAttributeRequest_WarmRecover - // *SetSwitchAttributeRequest_SwitchingMode - // *SetSwitchAttributeRequest_BcastCpuFloodEnable - // *SetSwitchAttributeRequest_McastCpuFloodEnable - // *SetSwitchAttributeRequest_SrcMacAddress - // *SetSwitchAttributeRequest_MaxLearnedAddresses - // *SetSwitchAttributeRequest_FdbAgingTime - // *SetSwitchAttributeRequest_FdbUnicastMissPacketAction - // *SetSwitchAttributeRequest_FdbBroadcastMissPacketAction - // *SetSwitchAttributeRequest_FdbMulticastMissPacketAction - // *SetSwitchAttributeRequest_EcmpDefaultHashAlgorithm - // *SetSwitchAttributeRequest_EcmpDefaultHashSeed - // *SetSwitchAttributeRequest_EcmpDefaultHashOffset - // *SetSwitchAttributeRequest_EcmpDefaultSymmetricHash - // *SetSwitchAttributeRequest_EcmpHashIpv4 - // *SetSwitchAttributeRequest_EcmpHashIpv4InIpv4 - // *SetSwitchAttributeRequest_EcmpHashIpv6 - // *SetSwitchAttributeRequest_LagDefaultHashAlgorithm - // *SetSwitchAttributeRequest_LagDefaultHashSeed - // *SetSwitchAttributeRequest_LagDefaultHashOffset - // *SetSwitchAttributeRequest_LagDefaultSymmetricHash - // *SetSwitchAttributeRequest_LagHashIpv4 - // *SetSwitchAttributeRequest_LagHashIpv4InIpv4 - // *SetSwitchAttributeRequest_LagHashIpv6 - // *SetSwitchAttributeRequest_CounterRefreshInterval - // *SetSwitchAttributeRequest_QosDefaultTc - // *SetSwitchAttributeRequest_QosDot1PToTcMap - // *SetSwitchAttributeRequest_QosDot1PToColorMap - // *SetSwitchAttributeRequest_QosDscpToTcMap - // *SetSwitchAttributeRequest_QosDscpToColorMap - // *SetSwitchAttributeRequest_QosTcToQueueMap - // *SetSwitchAttributeRequest_QosTcAndColorToDot1PMap - // *SetSwitchAttributeRequest_QosTcAndColorToDscpMap - // *SetSwitchAttributeRequest_SwitchShellEnable - // *SetSwitchAttributeRequest_FastApiEnable - // *SetSwitchAttributeRequest_MirrorTc - // *SetSwitchAttributeRequest_PfcDlrPacketAction - // *SetSwitchAttributeRequest_PfcTcDldInterval - // *SetSwitchAttributeRequest_PfcTcDlrInterval - // *SetSwitchAttributeRequest_TpidOuterVlan - // *SetSwitchAttributeRequest_TpidInnerVlan - // *SetSwitchAttributeRequest_CrcCheckEnable - // *SetSwitchAttributeRequest_CrcRecalculationEnable - // *SetSwitchAttributeRequest_EcnEctThresholdEnable - // *SetSwitchAttributeRequest_VxlanDefaultRouterMac - // *SetSwitchAttributeRequest_VxlanDefaultPort - // *SetSwitchAttributeRequest_UninitDataPlaneOnRemoval - // *SetSwitchAttributeRequest_TamObjectId - // *SetSwitchAttributeRequest_PreShutdown - // *SetSwitchAttributeRequest_NatZoneCounterObjectId - // *SetSwitchAttributeRequest_NatEnable - // *SetSwitchAttributeRequest_FirmwareDownloadExecute - // *SetSwitchAttributeRequest_FirmwareBroadcastStop - // *SetSwitchAttributeRequest_FirmwareVerifyAndInitSwitch - // *SetSwitchAttributeRequest_MacsecObjectList - // *SetSwitchAttributeRequest_QosMplsExpToTcMap - // *SetSwitchAttributeRequest_QosMplsExpToColorMap - // *SetSwitchAttributeRequest_QosTcAndColorToMplsExpMap - // *SetSwitchAttributeRequest_FailoverConfigMode - // *SetSwitchAttributeRequest_TunnelObjectsList - // *SetSwitchAttributeRequest_PreIngressAcl - // *SetSwitchAttributeRequest_QosDscpToForwardingClassMap - // *SetSwitchAttributeRequest_QosMplsExpToForwardingClassMap - // *SetSwitchAttributeRequest_IpsecObjectId - // *SetSwitchAttributeRequest_IpsecSaTagTpid - Attr isSetSwitchAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + IngressAcl *uint64 `protobuf:"varint,2,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,3,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + RestartWarm *bool `protobuf:"varint,4,opt,name=restart_warm,json=restartWarm,proto3,oneof" json:"restart_warm,omitempty"` + WarmRecover *bool `protobuf:"varint,5,opt,name=warm_recover,json=warmRecover,proto3,oneof" json:"warm_recover,omitempty"` + SwitchingMode *SwitchSwitchingMode `protobuf:"varint,6,opt,name=switching_mode,json=switchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof" json:"switching_mode,omitempty"` + BcastCpuFloodEnable *bool `protobuf:"varint,7,opt,name=bcast_cpu_flood_enable,json=bcastCpuFloodEnable,proto3,oneof" json:"bcast_cpu_flood_enable,omitempty"` + McastCpuFloodEnable *bool `protobuf:"varint,8,opt,name=mcast_cpu_flood_enable,json=mcastCpuFloodEnable,proto3,oneof" json:"mcast_cpu_flood_enable,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,9,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,10,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + FdbAgingTime *uint32 `protobuf:"varint,11,opt,name=fdb_aging_time,json=fdbAgingTime,proto3,oneof" json:"fdb_aging_time,omitempty"` + FdbUnicastMissPacketAction *PacketAction `protobuf:"varint,12,opt,name=fdb_unicast_miss_packet_action,json=fdbUnicastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_unicast_miss_packet_action,omitempty"` + FdbBroadcastMissPacketAction *PacketAction `protobuf:"varint,13,opt,name=fdb_broadcast_miss_packet_action,json=fdbBroadcastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_broadcast_miss_packet_action,omitempty"` + FdbMulticastMissPacketAction *PacketAction `protobuf:"varint,14,opt,name=fdb_multicast_miss_packet_action,json=fdbMulticastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"fdb_multicast_miss_packet_action,omitempty"` + EcmpDefaultHashAlgorithm *HashAlgorithm `protobuf:"varint,15,opt,name=ecmp_default_hash_algorithm,json=ecmpDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm,oneof" json:"ecmp_default_hash_algorithm,omitempty"` + EcmpDefaultHashSeed *uint32 `protobuf:"varint,16,opt,name=ecmp_default_hash_seed,json=ecmpDefaultHashSeed,proto3,oneof" json:"ecmp_default_hash_seed,omitempty"` + EcmpDefaultHashOffset *uint32 `protobuf:"varint,17,opt,name=ecmp_default_hash_offset,json=ecmpDefaultHashOffset,proto3,oneof" json:"ecmp_default_hash_offset,omitempty"` + EcmpDefaultSymmetricHash *bool `protobuf:"varint,18,opt,name=ecmp_default_symmetric_hash,json=ecmpDefaultSymmetricHash,proto3,oneof" json:"ecmp_default_symmetric_hash,omitempty"` + EcmpHashIpv4 *uint64 `protobuf:"varint,19,opt,name=ecmp_hash_ipv4,json=ecmpHashIpv4,proto3,oneof" json:"ecmp_hash_ipv4,omitempty"` + EcmpHashIpv4InIpv4 *uint64 `protobuf:"varint,20,opt,name=ecmp_hash_ipv4_in_ipv4,json=ecmpHashIpv4InIpv4,proto3,oneof" json:"ecmp_hash_ipv4_in_ipv4,omitempty"` + EcmpHashIpv6 *uint64 `protobuf:"varint,21,opt,name=ecmp_hash_ipv6,json=ecmpHashIpv6,proto3,oneof" json:"ecmp_hash_ipv6,omitempty"` + LagDefaultHashAlgorithm *HashAlgorithm `protobuf:"varint,22,opt,name=lag_default_hash_algorithm,json=lagDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm,oneof" json:"lag_default_hash_algorithm,omitempty"` + LagDefaultHashSeed *uint32 `protobuf:"varint,23,opt,name=lag_default_hash_seed,json=lagDefaultHashSeed,proto3,oneof" json:"lag_default_hash_seed,omitempty"` + LagDefaultHashOffset *uint32 `protobuf:"varint,24,opt,name=lag_default_hash_offset,json=lagDefaultHashOffset,proto3,oneof" json:"lag_default_hash_offset,omitempty"` + LagDefaultSymmetricHash *bool `protobuf:"varint,25,opt,name=lag_default_symmetric_hash,json=lagDefaultSymmetricHash,proto3,oneof" json:"lag_default_symmetric_hash,omitempty"` + LagHashIpv4 *uint64 `protobuf:"varint,26,opt,name=lag_hash_ipv4,json=lagHashIpv4,proto3,oneof" json:"lag_hash_ipv4,omitempty"` + LagHashIpv4InIpv4 *uint64 `protobuf:"varint,27,opt,name=lag_hash_ipv4_in_ipv4,json=lagHashIpv4InIpv4,proto3,oneof" json:"lag_hash_ipv4_in_ipv4,omitempty"` + LagHashIpv6 *uint64 `protobuf:"varint,28,opt,name=lag_hash_ipv6,json=lagHashIpv6,proto3,oneof" json:"lag_hash_ipv6,omitempty"` + CounterRefreshInterval *uint32 `protobuf:"varint,29,opt,name=counter_refresh_interval,json=counterRefreshInterval,proto3,oneof" json:"counter_refresh_interval,omitempty"` + QosDefaultTc *uint32 `protobuf:"varint,30,opt,name=qos_default_tc,json=qosDefaultTc,proto3,oneof" json:"qos_default_tc,omitempty"` + QosDot1PToTcMap *uint64 `protobuf:"varint,31,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3,oneof" json:"qos_dot1p_to_tc_map,omitempty"` + QosDot1PToColorMap *uint64 `protobuf:"varint,32,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3,oneof" json:"qos_dot1p_to_color_map,omitempty"` + QosDscpToTcMap *uint64 `protobuf:"varint,33,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3,oneof" json:"qos_dscp_to_tc_map,omitempty"` + QosDscpToColorMap *uint64 `protobuf:"varint,34,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3,oneof" json:"qos_dscp_to_color_map,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,35,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` + QosTcAndColorToDot1PMap *uint64 `protobuf:"varint,36,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3,oneof" json:"qos_tc_and_color_to_dot1p_map,omitempty"` + QosTcAndColorToDscpMap *uint64 `protobuf:"varint,37,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3,oneof" json:"qos_tc_and_color_to_dscp_map,omitempty"` + SwitchShellEnable *bool `protobuf:"varint,38,opt,name=switch_shell_enable,json=switchShellEnable,proto3,oneof" json:"switch_shell_enable,omitempty"` + FastApiEnable *bool `protobuf:"varint,39,opt,name=fast_api_enable,json=fastApiEnable,proto3,oneof" json:"fast_api_enable,omitempty"` + MirrorTc *uint32 `protobuf:"varint,40,opt,name=mirror_tc,json=mirrorTc,proto3,oneof" json:"mirror_tc,omitempty"` + PfcDlrPacketAction *PacketAction `protobuf:"varint,41,opt,name=pfc_dlr_packet_action,json=pfcDlrPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"pfc_dlr_packet_action,omitempty"` + PfcTcDldInterval []*UintMap `protobuf:"bytes,42,rep,name=pfc_tc_dld_interval,json=pfcTcDldInterval,proto3" json:"pfc_tc_dld_interval,omitempty"` + PfcTcDlrInterval []*UintMap `protobuf:"bytes,43,rep,name=pfc_tc_dlr_interval,json=pfcTcDlrInterval,proto3" json:"pfc_tc_dlr_interval,omitempty"` + TpidOuterVlan *uint32 `protobuf:"varint,44,opt,name=tpid_outer_vlan,json=tpidOuterVlan,proto3,oneof" json:"tpid_outer_vlan,omitempty"` + TpidInnerVlan *uint32 `protobuf:"varint,45,opt,name=tpid_inner_vlan,json=tpidInnerVlan,proto3,oneof" json:"tpid_inner_vlan,omitempty"` + CrcCheckEnable *bool `protobuf:"varint,46,opt,name=crc_check_enable,json=crcCheckEnable,proto3,oneof" json:"crc_check_enable,omitempty"` + CrcRecalculationEnable *bool `protobuf:"varint,47,opt,name=crc_recalculation_enable,json=crcRecalculationEnable,proto3,oneof" json:"crc_recalculation_enable,omitempty"` + EcnEctThresholdEnable *bool `protobuf:"varint,48,opt,name=ecn_ect_threshold_enable,json=ecnEctThresholdEnable,proto3,oneof" json:"ecn_ect_threshold_enable,omitempty"` + VxlanDefaultRouterMac []byte `protobuf:"bytes,49,opt,name=vxlan_default_router_mac,json=vxlanDefaultRouterMac,proto3,oneof" json:"vxlan_default_router_mac,omitempty"` + VxlanDefaultPort *uint32 `protobuf:"varint,50,opt,name=vxlan_default_port,json=vxlanDefaultPort,proto3,oneof" json:"vxlan_default_port,omitempty"` + UninitDataPlaneOnRemoval *bool `protobuf:"varint,51,opt,name=uninit_data_plane_on_removal,json=uninitDataPlaneOnRemoval,proto3,oneof" json:"uninit_data_plane_on_removal,omitempty"` + TamObjectId []uint64 `protobuf:"varint,52,rep,packed,name=tam_object_id,json=tamObjectId,proto3" json:"tam_object_id,omitempty"` + PreShutdown *bool `protobuf:"varint,53,opt,name=pre_shutdown,json=preShutdown,proto3,oneof" json:"pre_shutdown,omitempty"` + NatZoneCounterObjectId *uint64 `protobuf:"varint,54,opt,name=nat_zone_counter_object_id,json=natZoneCounterObjectId,proto3,oneof" json:"nat_zone_counter_object_id,omitempty"` + NatEnable *bool `protobuf:"varint,55,opt,name=nat_enable,json=natEnable,proto3,oneof" json:"nat_enable,omitempty"` + FirmwareDownloadExecute *bool `protobuf:"varint,56,opt,name=firmware_download_execute,json=firmwareDownloadExecute,proto3,oneof" json:"firmware_download_execute,omitempty"` + FirmwareBroadcastStop *bool `protobuf:"varint,57,opt,name=firmware_broadcast_stop,json=firmwareBroadcastStop,proto3,oneof" json:"firmware_broadcast_stop,omitempty"` + FirmwareVerifyAndInitSwitch *bool `protobuf:"varint,58,opt,name=firmware_verify_and_init_switch,json=firmwareVerifyAndInitSwitch,proto3,oneof" json:"firmware_verify_and_init_switch,omitempty"` + MacsecObjectList []uint64 `protobuf:"varint,59,rep,packed,name=macsec_object_list,json=macsecObjectList,proto3" json:"macsec_object_list,omitempty"` + QosMplsExpToTcMap *uint64 `protobuf:"varint,60,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3,oneof" json:"qos_mpls_exp_to_tc_map,omitempty"` + QosMplsExpToColorMap *uint64 `protobuf:"varint,61,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3,oneof" json:"qos_mpls_exp_to_color_map,omitempty"` + QosTcAndColorToMplsExpMap *uint64 `protobuf:"varint,62,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof" json:"qos_tc_and_color_to_mpls_exp_map,omitempty"` + FailoverConfigMode *SwitchFailoverConfigMode `protobuf:"varint,63,opt,name=failover_config_mode,json=failoverConfigMode,proto3,enum=lemming.dataplane.sai.SwitchFailoverConfigMode,oneof" json:"failover_config_mode,omitempty"` + TunnelObjectsList []uint64 `protobuf:"varint,64,rep,packed,name=tunnel_objects_list,json=tunnelObjectsList,proto3" json:"tunnel_objects_list,omitempty"` + PreIngressAcl *uint64 `protobuf:"varint,65,opt,name=pre_ingress_acl,json=preIngressAcl,proto3,oneof" json:"pre_ingress_acl,omitempty"` + QosDscpToForwardingClassMap *uint64 `protobuf:"varint,66,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3,oneof" json:"qos_dscp_to_forwarding_class_map,omitempty"` + QosMplsExpToForwardingClassMap *uint64 `protobuf:"varint,67,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3,oneof" json:"qos_mpls_exp_to_forwarding_class_map,omitempty"` + IpsecObjectId *uint64 `protobuf:"varint,68,opt,name=ipsec_object_id,json=ipsecObjectId,proto3,oneof" json:"ipsec_object_id,omitempty"` + IpsecSaTagTpid *uint32 `protobuf:"varint,69,opt,name=ipsec_sa_tag_tpid,json=ipsecSaTagTpid,proto3,oneof" json:"ipsec_sa_tag_tpid,omitempty"` } func (x *SetSwitchAttributeRequest) Reset() { @@ -1706,900 +1703,481 @@ func (x *SetSwitchAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetSwitchAttributeRequest) GetAttr() isSetSwitchAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetSwitchAttributeRequest) GetIngressAcl() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_IngressAcl); ok { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *SetSwitchAttributeRequest) GetEgressAcl() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EgressAcl); ok { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *SetSwitchAttributeRequest) GetRestartWarm() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_RestartWarm); ok { - return x.RestartWarm + if x != nil && x.RestartWarm != nil { + return *x.RestartWarm } return false } func (x *SetSwitchAttributeRequest) GetWarmRecover() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_WarmRecover); ok { - return x.WarmRecover + if x != nil && x.WarmRecover != nil { + return *x.WarmRecover } return false } func (x *SetSwitchAttributeRequest) GetSwitchingMode() SwitchSwitchingMode { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_SwitchingMode); ok { - return x.SwitchingMode + if x != nil && x.SwitchingMode != nil { + return *x.SwitchingMode } return SwitchSwitchingMode_SWITCH_SWITCHING_MODE_UNSPECIFIED } func (x *SetSwitchAttributeRequest) GetBcastCpuFloodEnable() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_BcastCpuFloodEnable); ok { - return x.BcastCpuFloodEnable + if x != nil && x.BcastCpuFloodEnable != nil { + return *x.BcastCpuFloodEnable } return false } func (x *SetSwitchAttributeRequest) GetMcastCpuFloodEnable() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_McastCpuFloodEnable); ok { - return x.McastCpuFloodEnable + if x != nil && x.McastCpuFloodEnable != nil { + return *x.McastCpuFloodEnable } return false } func (x *SetSwitchAttributeRequest) GetSrcMacAddress() []byte { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_SrcMacAddress); ok { + if x != nil { return x.SrcMacAddress } return nil } func (x *SetSwitchAttributeRequest) GetMaxLearnedAddresses() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_MaxLearnedAddresses); ok { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *SetSwitchAttributeRequest) GetFdbAgingTime() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FdbAgingTime); ok { - return x.FdbAgingTime + if x != nil && x.FdbAgingTime != nil { + return *x.FdbAgingTime } return 0 } func (x *SetSwitchAttributeRequest) GetFdbUnicastMissPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FdbUnicastMissPacketAction); ok { - return x.FdbUnicastMissPacketAction + if x != nil && x.FdbUnicastMissPacketAction != nil { + return *x.FdbUnicastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetSwitchAttributeRequest) GetFdbBroadcastMissPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FdbBroadcastMissPacketAction); ok { - return x.FdbBroadcastMissPacketAction + if x != nil && x.FdbBroadcastMissPacketAction != nil { + return *x.FdbBroadcastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetSwitchAttributeRequest) GetFdbMulticastMissPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FdbMulticastMissPacketAction); ok { - return x.FdbMulticastMissPacketAction + if x != nil && x.FdbMulticastMissPacketAction != nil { + return *x.FdbMulticastMissPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetSwitchAttributeRequest) GetEcmpDefaultHashAlgorithm() HashAlgorithm { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EcmpDefaultHashAlgorithm); ok { - return x.EcmpDefaultHashAlgorithm + if x != nil && x.EcmpDefaultHashAlgorithm != nil { + return *x.EcmpDefaultHashAlgorithm } return HashAlgorithm_HASH_ALGORITHM_UNSPECIFIED } func (x *SetSwitchAttributeRequest) GetEcmpDefaultHashSeed() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EcmpDefaultHashSeed); ok { - return x.EcmpDefaultHashSeed + if x != nil && x.EcmpDefaultHashSeed != nil { + return *x.EcmpDefaultHashSeed } return 0 } func (x *SetSwitchAttributeRequest) GetEcmpDefaultHashOffset() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EcmpDefaultHashOffset); ok { - return x.EcmpDefaultHashOffset + if x != nil && x.EcmpDefaultHashOffset != nil { + return *x.EcmpDefaultHashOffset } return 0 } func (x *SetSwitchAttributeRequest) GetEcmpDefaultSymmetricHash() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EcmpDefaultSymmetricHash); ok { - return x.EcmpDefaultSymmetricHash + if x != nil && x.EcmpDefaultSymmetricHash != nil { + return *x.EcmpDefaultSymmetricHash } return false } func (x *SetSwitchAttributeRequest) GetEcmpHashIpv4() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EcmpHashIpv4); ok { - return x.EcmpHashIpv4 + if x != nil && x.EcmpHashIpv4 != nil { + return *x.EcmpHashIpv4 } return 0 } func (x *SetSwitchAttributeRequest) GetEcmpHashIpv4InIpv4() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EcmpHashIpv4InIpv4); ok { - return x.EcmpHashIpv4InIpv4 + if x != nil && x.EcmpHashIpv4InIpv4 != nil { + return *x.EcmpHashIpv4InIpv4 } return 0 } func (x *SetSwitchAttributeRequest) GetEcmpHashIpv6() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EcmpHashIpv6); ok { - return x.EcmpHashIpv6 + if x != nil && x.EcmpHashIpv6 != nil { + return *x.EcmpHashIpv6 } return 0 } func (x *SetSwitchAttributeRequest) GetLagDefaultHashAlgorithm() HashAlgorithm { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_LagDefaultHashAlgorithm); ok { - return x.LagDefaultHashAlgorithm + if x != nil && x.LagDefaultHashAlgorithm != nil { + return *x.LagDefaultHashAlgorithm } return HashAlgorithm_HASH_ALGORITHM_UNSPECIFIED } func (x *SetSwitchAttributeRequest) GetLagDefaultHashSeed() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_LagDefaultHashSeed); ok { - return x.LagDefaultHashSeed + if x != nil && x.LagDefaultHashSeed != nil { + return *x.LagDefaultHashSeed } return 0 } func (x *SetSwitchAttributeRequest) GetLagDefaultHashOffset() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_LagDefaultHashOffset); ok { - return x.LagDefaultHashOffset + if x != nil && x.LagDefaultHashOffset != nil { + return *x.LagDefaultHashOffset } return 0 } func (x *SetSwitchAttributeRequest) GetLagDefaultSymmetricHash() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_LagDefaultSymmetricHash); ok { - return x.LagDefaultSymmetricHash + if x != nil && x.LagDefaultSymmetricHash != nil { + return *x.LagDefaultSymmetricHash } return false } func (x *SetSwitchAttributeRequest) GetLagHashIpv4() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_LagHashIpv4); ok { - return x.LagHashIpv4 + if x != nil && x.LagHashIpv4 != nil { + return *x.LagHashIpv4 } return 0 } func (x *SetSwitchAttributeRequest) GetLagHashIpv4InIpv4() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_LagHashIpv4InIpv4); ok { - return x.LagHashIpv4InIpv4 + if x != nil && x.LagHashIpv4InIpv4 != nil { + return *x.LagHashIpv4InIpv4 } return 0 } func (x *SetSwitchAttributeRequest) GetLagHashIpv6() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_LagHashIpv6); ok { - return x.LagHashIpv6 + if x != nil && x.LagHashIpv6 != nil { + return *x.LagHashIpv6 } return 0 } func (x *SetSwitchAttributeRequest) GetCounterRefreshInterval() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_CounterRefreshInterval); ok { - return x.CounterRefreshInterval + if x != nil && x.CounterRefreshInterval != nil { + return *x.CounterRefreshInterval } return 0 } func (x *SetSwitchAttributeRequest) GetQosDefaultTc() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosDefaultTc); ok { - return x.QosDefaultTc + if x != nil && x.QosDefaultTc != nil { + return *x.QosDefaultTc } return 0 } func (x *SetSwitchAttributeRequest) GetQosDot1PToTcMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosDot1PToTcMap); ok { - return x.QosDot1PToTcMap + if x != nil && x.QosDot1PToTcMap != nil { + return *x.QosDot1PToTcMap } return 0 } func (x *SetSwitchAttributeRequest) GetQosDot1PToColorMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosDot1PToColorMap); ok { - return x.QosDot1PToColorMap + if x != nil && x.QosDot1PToColorMap != nil { + return *x.QosDot1PToColorMap } return 0 } func (x *SetSwitchAttributeRequest) GetQosDscpToTcMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosDscpToTcMap); ok { - return x.QosDscpToTcMap + if x != nil && x.QosDscpToTcMap != nil { + return *x.QosDscpToTcMap } return 0 } func (x *SetSwitchAttributeRequest) GetQosDscpToColorMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosDscpToColorMap); ok { - return x.QosDscpToColorMap + if x != nil && x.QosDscpToColorMap != nil { + return *x.QosDscpToColorMap } return 0 } func (x *SetSwitchAttributeRequest) GetQosTcToQueueMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosTcToQueueMap); ok { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } func (x *SetSwitchAttributeRequest) GetQosTcAndColorToDot1PMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosTcAndColorToDot1PMap); ok { - return x.QosTcAndColorToDot1PMap + if x != nil && x.QosTcAndColorToDot1PMap != nil { + return *x.QosTcAndColorToDot1PMap } return 0 } func (x *SetSwitchAttributeRequest) GetQosTcAndColorToDscpMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosTcAndColorToDscpMap); ok { - return x.QosTcAndColorToDscpMap + if x != nil && x.QosTcAndColorToDscpMap != nil { + return *x.QosTcAndColorToDscpMap } return 0 } func (x *SetSwitchAttributeRequest) GetSwitchShellEnable() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_SwitchShellEnable); ok { - return x.SwitchShellEnable + if x != nil && x.SwitchShellEnable != nil { + return *x.SwitchShellEnable } return false } func (x *SetSwitchAttributeRequest) GetFastApiEnable() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FastApiEnable); ok { - return x.FastApiEnable + if x != nil && x.FastApiEnable != nil { + return *x.FastApiEnable } return false } func (x *SetSwitchAttributeRequest) GetMirrorTc() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_MirrorTc); ok { - return x.MirrorTc + if x != nil && x.MirrorTc != nil { + return *x.MirrorTc } return 0 } func (x *SetSwitchAttributeRequest) GetPfcDlrPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_PfcDlrPacketAction); ok { - return x.PfcDlrPacketAction + if x != nil && x.PfcDlrPacketAction != nil { + return *x.PfcDlrPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } -func (x *SetSwitchAttributeRequest) GetPfcTcDldInterval() *UintMapList { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_PfcTcDldInterval); ok { +func (x *SetSwitchAttributeRequest) GetPfcTcDldInterval() []*UintMap { + if x != nil { return x.PfcTcDldInterval } return nil } -func (x *SetSwitchAttributeRequest) GetPfcTcDlrInterval() *UintMapList { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_PfcTcDlrInterval); ok { +func (x *SetSwitchAttributeRequest) GetPfcTcDlrInterval() []*UintMap { + if x != nil { return x.PfcTcDlrInterval } return nil } func (x *SetSwitchAttributeRequest) GetTpidOuterVlan() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_TpidOuterVlan); ok { - return x.TpidOuterVlan + if x != nil && x.TpidOuterVlan != nil { + return *x.TpidOuterVlan } return 0 } func (x *SetSwitchAttributeRequest) GetTpidInnerVlan() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_TpidInnerVlan); ok { - return x.TpidInnerVlan + if x != nil && x.TpidInnerVlan != nil { + return *x.TpidInnerVlan } return 0 } func (x *SetSwitchAttributeRequest) GetCrcCheckEnable() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_CrcCheckEnable); ok { - return x.CrcCheckEnable + if x != nil && x.CrcCheckEnable != nil { + return *x.CrcCheckEnable } return false } func (x *SetSwitchAttributeRequest) GetCrcRecalculationEnable() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_CrcRecalculationEnable); ok { - return x.CrcRecalculationEnable + if x != nil && x.CrcRecalculationEnable != nil { + return *x.CrcRecalculationEnable } return false } func (x *SetSwitchAttributeRequest) GetEcnEctThresholdEnable() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_EcnEctThresholdEnable); ok { - return x.EcnEctThresholdEnable + if x != nil && x.EcnEctThresholdEnable != nil { + return *x.EcnEctThresholdEnable } return false } func (x *SetSwitchAttributeRequest) GetVxlanDefaultRouterMac() []byte { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_VxlanDefaultRouterMac); ok { + if x != nil { return x.VxlanDefaultRouterMac } return nil } func (x *SetSwitchAttributeRequest) GetVxlanDefaultPort() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_VxlanDefaultPort); ok { - return x.VxlanDefaultPort + if x != nil && x.VxlanDefaultPort != nil { + return *x.VxlanDefaultPort } return 0 } func (x *SetSwitchAttributeRequest) GetUninitDataPlaneOnRemoval() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_UninitDataPlaneOnRemoval); ok { - return x.UninitDataPlaneOnRemoval + if x != nil && x.UninitDataPlaneOnRemoval != nil { + return *x.UninitDataPlaneOnRemoval } return false } -func (x *SetSwitchAttributeRequest) GetTamObjectId() *Uint64List { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_TamObjectId); ok { +func (x *SetSwitchAttributeRequest) GetTamObjectId() []uint64 { + if x != nil { return x.TamObjectId } return nil } func (x *SetSwitchAttributeRequest) GetPreShutdown() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_PreShutdown); ok { - return x.PreShutdown + if x != nil && x.PreShutdown != nil { + return *x.PreShutdown } return false } func (x *SetSwitchAttributeRequest) GetNatZoneCounterObjectId() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_NatZoneCounterObjectId); ok { - return x.NatZoneCounterObjectId + if x != nil && x.NatZoneCounterObjectId != nil { + return *x.NatZoneCounterObjectId } return 0 } func (x *SetSwitchAttributeRequest) GetNatEnable() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_NatEnable); ok { - return x.NatEnable + if x != nil && x.NatEnable != nil { + return *x.NatEnable } return false } func (x *SetSwitchAttributeRequest) GetFirmwareDownloadExecute() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FirmwareDownloadExecute); ok { - return x.FirmwareDownloadExecute + if x != nil && x.FirmwareDownloadExecute != nil { + return *x.FirmwareDownloadExecute } return false } func (x *SetSwitchAttributeRequest) GetFirmwareBroadcastStop() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FirmwareBroadcastStop); ok { - return x.FirmwareBroadcastStop + if x != nil && x.FirmwareBroadcastStop != nil { + return *x.FirmwareBroadcastStop } return false } func (x *SetSwitchAttributeRequest) GetFirmwareVerifyAndInitSwitch() bool { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FirmwareVerifyAndInitSwitch); ok { - return x.FirmwareVerifyAndInitSwitch + if x != nil && x.FirmwareVerifyAndInitSwitch != nil { + return *x.FirmwareVerifyAndInitSwitch } return false } -func (x *SetSwitchAttributeRequest) GetMacsecObjectList() *Uint64List { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_MacsecObjectList); ok { +func (x *SetSwitchAttributeRequest) GetMacsecObjectList() []uint64 { + if x != nil { return x.MacsecObjectList } return nil } func (x *SetSwitchAttributeRequest) GetQosMplsExpToTcMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosMplsExpToTcMap); ok { - return x.QosMplsExpToTcMap + if x != nil && x.QosMplsExpToTcMap != nil { + return *x.QosMplsExpToTcMap } return 0 } func (x *SetSwitchAttributeRequest) GetQosMplsExpToColorMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosMplsExpToColorMap); ok { - return x.QosMplsExpToColorMap + if x != nil && x.QosMplsExpToColorMap != nil { + return *x.QosMplsExpToColorMap } return 0 } func (x *SetSwitchAttributeRequest) GetQosTcAndColorToMplsExpMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosTcAndColorToMplsExpMap); ok { - return x.QosTcAndColorToMplsExpMap + if x != nil && x.QosTcAndColorToMplsExpMap != nil { + return *x.QosTcAndColorToMplsExpMap } return 0 } func (x *SetSwitchAttributeRequest) GetFailoverConfigMode() SwitchFailoverConfigMode { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_FailoverConfigMode); ok { - return x.FailoverConfigMode + if x != nil && x.FailoverConfigMode != nil { + return *x.FailoverConfigMode } return SwitchFailoverConfigMode_SWITCH_FAILOVER_CONFIG_MODE_UNSPECIFIED } -func (x *SetSwitchAttributeRequest) GetTunnelObjectsList() *Uint64List { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_TunnelObjectsList); ok { +func (x *SetSwitchAttributeRequest) GetTunnelObjectsList() []uint64 { + if x != nil { return x.TunnelObjectsList } return nil } func (x *SetSwitchAttributeRequest) GetPreIngressAcl() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_PreIngressAcl); ok { - return x.PreIngressAcl - } - return 0 -} - -func (x *SetSwitchAttributeRequest) GetQosDscpToForwardingClassMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosDscpToForwardingClassMap); ok { - return x.QosDscpToForwardingClassMap - } - return 0 -} - -func (x *SetSwitchAttributeRequest) GetQosMplsExpToForwardingClassMap() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_QosMplsExpToForwardingClassMap); ok { - return x.QosMplsExpToForwardingClassMap - } - return 0 -} - -func (x *SetSwitchAttributeRequest) GetIpsecObjectId() uint64 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_IpsecObjectId); ok { - return x.IpsecObjectId - } - return 0 -} - -func (x *SetSwitchAttributeRequest) GetIpsecSaTagTpid() uint32 { - if x, ok := x.GetAttr().(*SetSwitchAttributeRequest_IpsecSaTagTpid); ok { - return x.IpsecSaTagTpid - } - return 0 -} - -type isSetSwitchAttributeRequest_Attr interface { - isSetSwitchAttributeRequest_Attr() -} - -type SetSwitchAttributeRequest_IngressAcl struct { - IngressAcl uint64 `protobuf:"varint,2,opt,name=ingress_acl,json=ingressAcl,proto3,oneof"` -} - -type SetSwitchAttributeRequest_EgressAcl struct { - EgressAcl uint64 `protobuf:"varint,3,opt,name=egress_acl,json=egressAcl,proto3,oneof"` -} - -type SetSwitchAttributeRequest_RestartWarm struct { - RestartWarm bool `protobuf:"varint,4,opt,name=restart_warm,json=restartWarm,proto3,oneof"` -} - -type SetSwitchAttributeRequest_WarmRecover struct { - WarmRecover bool `protobuf:"varint,5,opt,name=warm_recover,json=warmRecover,proto3,oneof"` -} - -type SetSwitchAttributeRequest_SwitchingMode struct { - SwitchingMode SwitchSwitchingMode `protobuf:"varint,6,opt,name=switching_mode,json=switchingMode,proto3,enum=lemming.dataplane.sai.SwitchSwitchingMode,oneof"` -} - -type SetSwitchAttributeRequest_BcastCpuFloodEnable struct { - BcastCpuFloodEnable bool `protobuf:"varint,7,opt,name=bcast_cpu_flood_enable,json=bcastCpuFloodEnable,proto3,oneof"` -} - -type SetSwitchAttributeRequest_McastCpuFloodEnable struct { - McastCpuFloodEnable bool `protobuf:"varint,8,opt,name=mcast_cpu_flood_enable,json=mcastCpuFloodEnable,proto3,oneof"` -} - -type SetSwitchAttributeRequest_SrcMacAddress struct { - SrcMacAddress []byte `protobuf:"bytes,9,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof"` -} - -type SetSwitchAttributeRequest_MaxLearnedAddresses struct { - MaxLearnedAddresses uint32 `protobuf:"varint,10,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof"` -} - -type SetSwitchAttributeRequest_FdbAgingTime struct { - FdbAgingTime uint32 `protobuf:"varint,11,opt,name=fdb_aging_time,json=fdbAgingTime,proto3,oneof"` -} - -type SetSwitchAttributeRequest_FdbUnicastMissPacketAction struct { - FdbUnicastMissPacketAction PacketAction `protobuf:"varint,12,opt,name=fdb_unicast_miss_packet_action,json=fdbUnicastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetSwitchAttributeRequest_FdbBroadcastMissPacketAction struct { - FdbBroadcastMissPacketAction PacketAction `protobuf:"varint,13,opt,name=fdb_broadcast_miss_packet_action,json=fdbBroadcastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetSwitchAttributeRequest_FdbMulticastMissPacketAction struct { - FdbMulticastMissPacketAction PacketAction `protobuf:"varint,14,opt,name=fdb_multicast_miss_packet_action,json=fdbMulticastMissPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetSwitchAttributeRequest_EcmpDefaultHashAlgorithm struct { - EcmpDefaultHashAlgorithm HashAlgorithm `protobuf:"varint,15,opt,name=ecmp_default_hash_algorithm,json=ecmpDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm,oneof"` -} - -type SetSwitchAttributeRequest_EcmpDefaultHashSeed struct { - EcmpDefaultHashSeed uint32 `protobuf:"varint,16,opt,name=ecmp_default_hash_seed,json=ecmpDefaultHashSeed,proto3,oneof"` -} - -type SetSwitchAttributeRequest_EcmpDefaultHashOffset struct { - EcmpDefaultHashOffset uint32 `protobuf:"varint,17,opt,name=ecmp_default_hash_offset,json=ecmpDefaultHashOffset,proto3,oneof"` -} - -type SetSwitchAttributeRequest_EcmpDefaultSymmetricHash struct { - EcmpDefaultSymmetricHash bool `protobuf:"varint,18,opt,name=ecmp_default_symmetric_hash,json=ecmpDefaultSymmetricHash,proto3,oneof"` -} - -type SetSwitchAttributeRequest_EcmpHashIpv4 struct { - EcmpHashIpv4 uint64 `protobuf:"varint,19,opt,name=ecmp_hash_ipv4,json=ecmpHashIpv4,proto3,oneof"` -} - -type SetSwitchAttributeRequest_EcmpHashIpv4InIpv4 struct { - EcmpHashIpv4InIpv4 uint64 `protobuf:"varint,20,opt,name=ecmp_hash_ipv4_in_ipv4,json=ecmpHashIpv4InIpv4,proto3,oneof"` -} - -type SetSwitchAttributeRequest_EcmpHashIpv6 struct { - EcmpHashIpv6 uint64 `protobuf:"varint,21,opt,name=ecmp_hash_ipv6,json=ecmpHashIpv6,proto3,oneof"` -} - -type SetSwitchAttributeRequest_LagDefaultHashAlgorithm struct { - LagDefaultHashAlgorithm HashAlgorithm `protobuf:"varint,22,opt,name=lag_default_hash_algorithm,json=lagDefaultHashAlgorithm,proto3,enum=lemming.dataplane.sai.HashAlgorithm,oneof"` -} - -type SetSwitchAttributeRequest_LagDefaultHashSeed struct { - LagDefaultHashSeed uint32 `protobuf:"varint,23,opt,name=lag_default_hash_seed,json=lagDefaultHashSeed,proto3,oneof"` -} - -type SetSwitchAttributeRequest_LagDefaultHashOffset struct { - LagDefaultHashOffset uint32 `protobuf:"varint,24,opt,name=lag_default_hash_offset,json=lagDefaultHashOffset,proto3,oneof"` -} - -type SetSwitchAttributeRequest_LagDefaultSymmetricHash struct { - LagDefaultSymmetricHash bool `protobuf:"varint,25,opt,name=lag_default_symmetric_hash,json=lagDefaultSymmetricHash,proto3,oneof"` -} - -type SetSwitchAttributeRequest_LagHashIpv4 struct { - LagHashIpv4 uint64 `protobuf:"varint,26,opt,name=lag_hash_ipv4,json=lagHashIpv4,proto3,oneof"` -} - -type SetSwitchAttributeRequest_LagHashIpv4InIpv4 struct { - LagHashIpv4InIpv4 uint64 `protobuf:"varint,27,opt,name=lag_hash_ipv4_in_ipv4,json=lagHashIpv4InIpv4,proto3,oneof"` -} - -type SetSwitchAttributeRequest_LagHashIpv6 struct { - LagHashIpv6 uint64 `protobuf:"varint,28,opt,name=lag_hash_ipv6,json=lagHashIpv6,proto3,oneof"` -} - -type SetSwitchAttributeRequest_CounterRefreshInterval struct { - CounterRefreshInterval uint32 `protobuf:"varint,29,opt,name=counter_refresh_interval,json=counterRefreshInterval,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosDefaultTc struct { - QosDefaultTc uint32 `protobuf:"varint,30,opt,name=qos_default_tc,json=qosDefaultTc,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosDot1PToTcMap struct { - QosDot1PToTcMap uint64 `protobuf:"varint,31,opt,name=qos_dot1p_to_tc_map,json=qosDot1pToTcMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosDot1PToColorMap struct { - QosDot1PToColorMap uint64 `protobuf:"varint,32,opt,name=qos_dot1p_to_color_map,json=qosDot1pToColorMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosDscpToTcMap struct { - QosDscpToTcMap uint64 `protobuf:"varint,33,opt,name=qos_dscp_to_tc_map,json=qosDscpToTcMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosDscpToColorMap struct { - QosDscpToColorMap uint64 `protobuf:"varint,34,opt,name=qos_dscp_to_color_map,json=qosDscpToColorMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosTcToQueueMap struct { - QosTcToQueueMap uint64 `protobuf:"varint,35,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosTcAndColorToDot1PMap struct { - QosTcAndColorToDot1PMap uint64 `protobuf:"varint,36,opt,name=qos_tc_and_color_to_dot1p_map,json=qosTcAndColorToDot1pMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosTcAndColorToDscpMap struct { - QosTcAndColorToDscpMap uint64 `protobuf:"varint,37,opt,name=qos_tc_and_color_to_dscp_map,json=qosTcAndColorToDscpMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_SwitchShellEnable struct { - SwitchShellEnable bool `protobuf:"varint,38,opt,name=switch_shell_enable,json=switchShellEnable,proto3,oneof"` -} - -type SetSwitchAttributeRequest_FastApiEnable struct { - FastApiEnable bool `protobuf:"varint,39,opt,name=fast_api_enable,json=fastApiEnable,proto3,oneof"` -} - -type SetSwitchAttributeRequest_MirrorTc struct { - MirrorTc uint32 `protobuf:"varint,40,opt,name=mirror_tc,json=mirrorTc,proto3,oneof"` -} - -type SetSwitchAttributeRequest_PfcDlrPacketAction struct { - PfcDlrPacketAction PacketAction `protobuf:"varint,41,opt,name=pfc_dlr_packet_action,json=pfcDlrPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetSwitchAttributeRequest_PfcTcDldInterval struct { - PfcTcDldInterval *UintMapList `protobuf:"bytes,42,opt,name=pfc_tc_dld_interval,json=pfcTcDldInterval,proto3,oneof"` -} - -type SetSwitchAttributeRequest_PfcTcDlrInterval struct { - PfcTcDlrInterval *UintMapList `protobuf:"bytes,43,opt,name=pfc_tc_dlr_interval,json=pfcTcDlrInterval,proto3,oneof"` -} - -type SetSwitchAttributeRequest_TpidOuterVlan struct { - TpidOuterVlan uint32 `protobuf:"varint,44,opt,name=tpid_outer_vlan,json=tpidOuterVlan,proto3,oneof"` -} - -type SetSwitchAttributeRequest_TpidInnerVlan struct { - TpidInnerVlan uint32 `protobuf:"varint,45,opt,name=tpid_inner_vlan,json=tpidInnerVlan,proto3,oneof"` -} - -type SetSwitchAttributeRequest_CrcCheckEnable struct { - CrcCheckEnable bool `protobuf:"varint,46,opt,name=crc_check_enable,json=crcCheckEnable,proto3,oneof"` -} - -type SetSwitchAttributeRequest_CrcRecalculationEnable struct { - CrcRecalculationEnable bool `protobuf:"varint,47,opt,name=crc_recalculation_enable,json=crcRecalculationEnable,proto3,oneof"` -} - -type SetSwitchAttributeRequest_EcnEctThresholdEnable struct { - EcnEctThresholdEnable bool `protobuf:"varint,48,opt,name=ecn_ect_threshold_enable,json=ecnEctThresholdEnable,proto3,oneof"` -} - -type SetSwitchAttributeRequest_VxlanDefaultRouterMac struct { - VxlanDefaultRouterMac []byte `protobuf:"bytes,49,opt,name=vxlan_default_router_mac,json=vxlanDefaultRouterMac,proto3,oneof"` -} - -type SetSwitchAttributeRequest_VxlanDefaultPort struct { - VxlanDefaultPort uint32 `protobuf:"varint,50,opt,name=vxlan_default_port,json=vxlanDefaultPort,proto3,oneof"` -} - -type SetSwitchAttributeRequest_UninitDataPlaneOnRemoval struct { - UninitDataPlaneOnRemoval bool `protobuf:"varint,51,opt,name=uninit_data_plane_on_removal,json=uninitDataPlaneOnRemoval,proto3,oneof"` -} - -type SetSwitchAttributeRequest_TamObjectId struct { - TamObjectId *Uint64List `protobuf:"bytes,52,opt,name=tam_object_id,json=tamObjectId,proto3,oneof"` -} - -type SetSwitchAttributeRequest_PreShutdown struct { - PreShutdown bool `protobuf:"varint,53,opt,name=pre_shutdown,json=preShutdown,proto3,oneof"` -} - -type SetSwitchAttributeRequest_NatZoneCounterObjectId struct { - NatZoneCounterObjectId uint64 `protobuf:"varint,54,opt,name=nat_zone_counter_object_id,json=natZoneCounterObjectId,proto3,oneof"` -} - -type SetSwitchAttributeRequest_NatEnable struct { - NatEnable bool `protobuf:"varint,55,opt,name=nat_enable,json=natEnable,proto3,oneof"` -} - -type SetSwitchAttributeRequest_FirmwareDownloadExecute struct { - FirmwareDownloadExecute bool `protobuf:"varint,56,opt,name=firmware_download_execute,json=firmwareDownloadExecute,proto3,oneof"` -} - -type SetSwitchAttributeRequest_FirmwareBroadcastStop struct { - FirmwareBroadcastStop bool `protobuf:"varint,57,opt,name=firmware_broadcast_stop,json=firmwareBroadcastStop,proto3,oneof"` -} - -type SetSwitchAttributeRequest_FirmwareVerifyAndInitSwitch struct { - FirmwareVerifyAndInitSwitch bool `protobuf:"varint,58,opt,name=firmware_verify_and_init_switch,json=firmwareVerifyAndInitSwitch,proto3,oneof"` -} - -type SetSwitchAttributeRequest_MacsecObjectList struct { - MacsecObjectList *Uint64List `protobuf:"bytes,59,opt,name=macsec_object_list,json=macsecObjectList,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosMplsExpToTcMap struct { - QosMplsExpToTcMap uint64 `protobuf:"varint,60,opt,name=qos_mpls_exp_to_tc_map,json=qosMplsExpToTcMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosMplsExpToColorMap struct { - QosMplsExpToColorMap uint64 `protobuf:"varint,61,opt,name=qos_mpls_exp_to_color_map,json=qosMplsExpToColorMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosTcAndColorToMplsExpMap struct { - QosTcAndColorToMplsExpMap uint64 `protobuf:"varint,62,opt,name=qos_tc_and_color_to_mpls_exp_map,json=qosTcAndColorToMplsExpMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_FailoverConfigMode struct { - FailoverConfigMode SwitchFailoverConfigMode `protobuf:"varint,63,opt,name=failover_config_mode,json=failoverConfigMode,proto3,enum=lemming.dataplane.sai.SwitchFailoverConfigMode,oneof"` -} - -type SetSwitchAttributeRequest_TunnelObjectsList struct { - TunnelObjectsList *Uint64List `protobuf:"bytes,64,opt,name=tunnel_objects_list,json=tunnelObjectsList,proto3,oneof"` -} - -type SetSwitchAttributeRequest_PreIngressAcl struct { - PreIngressAcl uint64 `protobuf:"varint,65,opt,name=pre_ingress_acl,json=preIngressAcl,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosDscpToForwardingClassMap struct { - QosDscpToForwardingClassMap uint64 `protobuf:"varint,66,opt,name=qos_dscp_to_forwarding_class_map,json=qosDscpToForwardingClassMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_QosMplsExpToForwardingClassMap struct { - QosMplsExpToForwardingClassMap uint64 `protobuf:"varint,67,opt,name=qos_mpls_exp_to_forwarding_class_map,json=qosMplsExpToForwardingClassMap,proto3,oneof"` -} - -type SetSwitchAttributeRequest_IpsecObjectId struct { - IpsecObjectId uint64 `protobuf:"varint,68,opt,name=ipsec_object_id,json=ipsecObjectId,proto3,oneof"` -} - -type SetSwitchAttributeRequest_IpsecSaTagTpid struct { - IpsecSaTagTpid uint32 `protobuf:"varint,69,opt,name=ipsec_sa_tag_tpid,json=ipsecSaTagTpid,proto3,oneof"` -} - -func (*SetSwitchAttributeRequest_IngressAcl) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EgressAcl) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_RestartWarm) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_WarmRecover) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_SwitchingMode) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_BcastCpuFloodEnable) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_McastCpuFloodEnable) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_SrcMacAddress) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_MaxLearnedAddresses) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FdbAgingTime) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FdbUnicastMissPacketAction) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FdbBroadcastMissPacketAction) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FdbMulticastMissPacketAction) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EcmpDefaultHashAlgorithm) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EcmpDefaultHashSeed) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EcmpDefaultHashOffset) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EcmpDefaultSymmetricHash) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EcmpHashIpv4) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EcmpHashIpv4InIpv4) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EcmpHashIpv6) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_LagDefaultHashAlgorithm) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_LagDefaultHashSeed) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_LagDefaultHashOffset) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_LagDefaultSymmetricHash) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_LagHashIpv4) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_LagHashIpv4InIpv4) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_LagHashIpv6) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_CounterRefreshInterval) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosDefaultTc) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosDot1PToTcMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosDot1PToColorMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosDscpToTcMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosDscpToColorMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosTcToQueueMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosTcAndColorToDot1PMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosTcAndColorToDscpMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_SwitchShellEnable) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FastApiEnable) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_MirrorTc) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_PfcDlrPacketAction) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_PfcTcDldInterval) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_PfcTcDlrInterval) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_TpidOuterVlan) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_TpidInnerVlan) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_CrcCheckEnable) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_CrcRecalculationEnable) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_EcnEctThresholdEnable) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_VxlanDefaultRouterMac) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_VxlanDefaultPort) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_UninitDataPlaneOnRemoval) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_TamObjectId) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_PreShutdown) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_NatZoneCounterObjectId) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_NatEnable) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FirmwareDownloadExecute) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FirmwareBroadcastStop) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FirmwareVerifyAndInitSwitch) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_MacsecObjectList) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosMplsExpToTcMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosMplsExpToColorMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_QosTcAndColorToMplsExpMap) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_FailoverConfigMode) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_TunnelObjectsList) isSetSwitchAttributeRequest_Attr() {} - -func (*SetSwitchAttributeRequest_PreIngressAcl) isSetSwitchAttributeRequest_Attr() {} + if x != nil && x.PreIngressAcl != nil { + return *x.PreIngressAcl + } + return 0 +} -func (*SetSwitchAttributeRequest_QosDscpToForwardingClassMap) isSetSwitchAttributeRequest_Attr() {} +func (x *SetSwitchAttributeRequest) GetQosDscpToForwardingClassMap() uint64 { + if x != nil && x.QosDscpToForwardingClassMap != nil { + return *x.QosDscpToForwardingClassMap + } + return 0 +} -func (*SetSwitchAttributeRequest_QosMplsExpToForwardingClassMap) isSetSwitchAttributeRequest_Attr() {} +func (x *SetSwitchAttributeRequest) GetQosMplsExpToForwardingClassMap() uint64 { + if x != nil && x.QosMplsExpToForwardingClassMap != nil { + return *x.QosMplsExpToForwardingClassMap + } + return 0 +} -func (*SetSwitchAttributeRequest_IpsecObjectId) isSetSwitchAttributeRequest_Attr() {} +func (x *SetSwitchAttributeRequest) GetIpsecObjectId() uint64 { + if x != nil && x.IpsecObjectId != nil { + return *x.IpsecObjectId + } + return 0 +} -func (*SetSwitchAttributeRequest_IpsecSaTagTpid) isSetSwitchAttributeRequest_Attr() {} +func (x *SetSwitchAttributeRequest) GetIpsecSaTagTpid() uint32 { + if x != nil && x.IpsecSaTagTpid != nil { + return *x.IpsecSaTagTpid + } + return 0 +} type SetSwitchAttributeResponse struct { state protoimpl.MessageState @@ -3504,7 +3082,7 @@ type GetSwitchAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*SwitchAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *SwitchAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetSwitchAttributeResponse) Reset() { @@ -3539,7 +3117,7 @@ func (*GetSwitchAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_switch_proto_rawDescGZIP(), []int{25} } -func (x *GetSwitchAttributeResponse) GetAttr() []*SwitchAttribute { +func (x *GetSwitchAttributeResponse) GetAttr() *SwitchAttribute { if x != nil { return x.Attr } @@ -3551,16 +3129,16 @@ type CreateSwitchTunnelRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TunnelType TunnelType `protobuf:"varint,2,opt,name=tunnel_type,json=tunnelType,proto3,enum=lemming.dataplane.sai.TunnelType" json:"tunnel_type,omitempty"` - LoopbackPacketAction PacketAction `protobuf:"varint,3,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"loopback_packet_action,omitempty"` - TunnelEncapEcnMode TunnelEncapEcnMode `protobuf:"varint,4,opt,name=tunnel_encap_ecn_mode,json=tunnelEncapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelEncapEcnMode" json:"tunnel_encap_ecn_mode,omitempty"` - EncapMappers []uint64 `protobuf:"varint,5,rep,packed,name=encap_mappers,json=encapMappers,proto3" json:"encap_mappers,omitempty"` - TunnelDecapEcnMode TunnelDecapEcnMode `protobuf:"varint,6,opt,name=tunnel_decap_ecn_mode,json=tunnelDecapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelDecapEcnMode" json:"tunnel_decap_ecn_mode,omitempty"` - DecapMappers []uint64 `protobuf:"varint,7,rep,packed,name=decap_mappers,json=decapMappers,proto3" json:"decap_mappers,omitempty"` - TunnelVxlanUdpSportMode TunnelVxlanUdpSportMode `protobuf:"varint,8,opt,name=tunnel_vxlan_udp_sport_mode,json=tunnelVxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode" json:"tunnel_vxlan_udp_sport_mode,omitempty"` - VxlanUdpSport uint32 `protobuf:"varint,9,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3" json:"vxlan_udp_sport,omitempty"` - VxlanUdpSportMask uint32 `protobuf:"varint,10,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3" json:"vxlan_udp_sport_mask,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + TunnelType *TunnelType `protobuf:"varint,2,opt,name=tunnel_type,json=tunnelType,proto3,enum=lemming.dataplane.sai.TunnelType,oneof" json:"tunnel_type,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,3,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + TunnelEncapEcnMode *TunnelEncapEcnMode `protobuf:"varint,4,opt,name=tunnel_encap_ecn_mode,json=tunnelEncapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelEncapEcnMode,oneof" json:"tunnel_encap_ecn_mode,omitempty"` + EncapMappers []uint64 `protobuf:"varint,5,rep,packed,name=encap_mappers,json=encapMappers,proto3" json:"encap_mappers,omitempty"` + TunnelDecapEcnMode *TunnelDecapEcnMode `protobuf:"varint,6,opt,name=tunnel_decap_ecn_mode,json=tunnelDecapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelDecapEcnMode,oneof" json:"tunnel_decap_ecn_mode,omitempty"` + DecapMappers []uint64 `protobuf:"varint,7,rep,packed,name=decap_mappers,json=decapMappers,proto3" json:"decap_mappers,omitempty"` + TunnelVxlanUdpSportMode *TunnelVxlanUdpSportMode `protobuf:"varint,8,opt,name=tunnel_vxlan_udp_sport_mode,json=tunnelVxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode,oneof" json:"tunnel_vxlan_udp_sport_mode,omitempty"` + VxlanUdpSport *uint32 `protobuf:"varint,9,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3,oneof" json:"vxlan_udp_sport,omitempty"` + VxlanUdpSportMask *uint32 `protobuf:"varint,10,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3,oneof" json:"vxlan_udp_sport_mask,omitempty"` } func (x *CreateSwitchTunnelRequest) Reset() { @@ -3603,22 +3181,22 @@ func (x *CreateSwitchTunnelRequest) GetSwitch() uint64 { } func (x *CreateSwitchTunnelRequest) GetTunnelType() TunnelType { - if x != nil { - return x.TunnelType + if x != nil && x.TunnelType != nil { + return *x.TunnelType } return TunnelType_TUNNEL_TYPE_UNSPECIFIED } func (x *CreateSwitchTunnelRequest) GetLoopbackPacketAction() PacketAction { - if x != nil { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateSwitchTunnelRequest) GetTunnelEncapEcnMode() TunnelEncapEcnMode { - if x != nil { - return x.TunnelEncapEcnMode + if x != nil && x.TunnelEncapEcnMode != nil { + return *x.TunnelEncapEcnMode } return TunnelEncapEcnMode_TUNNEL_ENCAP_ECN_MODE_UNSPECIFIED } @@ -3631,8 +3209,8 @@ func (x *CreateSwitchTunnelRequest) GetEncapMappers() []uint64 { } func (x *CreateSwitchTunnelRequest) GetTunnelDecapEcnMode() TunnelDecapEcnMode { - if x != nil { - return x.TunnelDecapEcnMode + if x != nil && x.TunnelDecapEcnMode != nil { + return *x.TunnelDecapEcnMode } return TunnelDecapEcnMode_TUNNEL_DECAP_ECN_MODE_UNSPECIFIED } @@ -3645,22 +3223,22 @@ func (x *CreateSwitchTunnelRequest) GetDecapMappers() []uint64 { } func (x *CreateSwitchTunnelRequest) GetTunnelVxlanUdpSportMode() TunnelVxlanUdpSportMode { - if x != nil { - return x.TunnelVxlanUdpSportMode + if x != nil && x.TunnelVxlanUdpSportMode != nil { + return *x.TunnelVxlanUdpSportMode } return TunnelVxlanUdpSportMode_TUNNEL_VXLAN_UDP_SPORT_MODE_UNSPECIFIED } func (x *CreateSwitchTunnelRequest) GetVxlanUdpSport() uint32 { - if x != nil { - return x.VxlanUdpSport + if x != nil && x.VxlanUdpSport != nil { + return *x.VxlanUdpSport } return 0 } func (x *CreateSwitchTunnelRequest) GetVxlanUdpSportMask() uint32 { - if x != nil { - return x.VxlanUdpSportMask + if x != nil && x.VxlanUdpSportMask != nil { + return *x.VxlanUdpSportMask } return 0 } @@ -3802,14 +3380,11 @@ type SetSwitchTunnelAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetSwitchTunnelAttributeRequest_LoopbackPacketAction - // *SetSwitchTunnelAttributeRequest_TunnelVxlanUdpSportMode - // *SetSwitchTunnelAttributeRequest_VxlanUdpSport - // *SetSwitchTunnelAttributeRequest_VxlanUdpSportMask - Attr isSetSwitchTunnelAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,2,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + TunnelVxlanUdpSportMode *TunnelVxlanUdpSportMode `protobuf:"varint,3,opt,name=tunnel_vxlan_udp_sport_mode,json=tunnelVxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode,oneof" json:"tunnel_vxlan_udp_sport_mode,omitempty"` + VxlanUdpSport *uint32 `protobuf:"varint,4,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3,oneof" json:"vxlan_udp_sport,omitempty"` + VxlanUdpSportMask *uint32 `protobuf:"varint,5,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3,oneof" json:"vxlan_udp_sport_mask,omitempty"` } func (x *SetSwitchTunnelAttributeRequest) Reset() { @@ -3851,71 +3426,34 @@ func (x *SetSwitchTunnelAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetSwitchTunnelAttributeRequest) GetAttr() isSetSwitchTunnelAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetSwitchTunnelAttributeRequest) GetLoopbackPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetSwitchTunnelAttributeRequest_LoopbackPacketAction); ok { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetSwitchTunnelAttributeRequest) GetTunnelVxlanUdpSportMode() TunnelVxlanUdpSportMode { - if x, ok := x.GetAttr().(*SetSwitchTunnelAttributeRequest_TunnelVxlanUdpSportMode); ok { - return x.TunnelVxlanUdpSportMode + if x != nil && x.TunnelVxlanUdpSportMode != nil { + return *x.TunnelVxlanUdpSportMode } return TunnelVxlanUdpSportMode_TUNNEL_VXLAN_UDP_SPORT_MODE_UNSPECIFIED } func (x *SetSwitchTunnelAttributeRequest) GetVxlanUdpSport() uint32 { - if x, ok := x.GetAttr().(*SetSwitchTunnelAttributeRequest_VxlanUdpSport); ok { - return x.VxlanUdpSport + if x != nil && x.VxlanUdpSport != nil { + return *x.VxlanUdpSport } return 0 } func (x *SetSwitchTunnelAttributeRequest) GetVxlanUdpSportMask() uint32 { - if x, ok := x.GetAttr().(*SetSwitchTunnelAttributeRequest_VxlanUdpSportMask); ok { - return x.VxlanUdpSportMask + if x != nil && x.VxlanUdpSportMask != nil { + return *x.VxlanUdpSportMask } return 0 } -type isSetSwitchTunnelAttributeRequest_Attr interface { - isSetSwitchTunnelAttributeRequest_Attr() -} - -type SetSwitchTunnelAttributeRequest_LoopbackPacketAction struct { - LoopbackPacketAction PacketAction `protobuf:"varint,2,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetSwitchTunnelAttributeRequest_TunnelVxlanUdpSportMode struct { - TunnelVxlanUdpSportMode TunnelVxlanUdpSportMode `protobuf:"varint,3,opt,name=tunnel_vxlan_udp_sport_mode,json=tunnelVxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode,oneof"` -} - -type SetSwitchTunnelAttributeRequest_VxlanUdpSport struct { - VxlanUdpSport uint32 `protobuf:"varint,4,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3,oneof"` -} - -type SetSwitchTunnelAttributeRequest_VxlanUdpSportMask struct { - VxlanUdpSportMask uint32 `protobuf:"varint,5,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3,oneof"` -} - -func (*SetSwitchTunnelAttributeRequest_LoopbackPacketAction) isSetSwitchTunnelAttributeRequest_Attr() { -} - -func (*SetSwitchTunnelAttributeRequest_TunnelVxlanUdpSportMode) isSetSwitchTunnelAttributeRequest_Attr() { -} - -func (*SetSwitchTunnelAttributeRequest_VxlanUdpSport) isSetSwitchTunnelAttributeRequest_Attr() {} - -func (*SetSwitchTunnelAttributeRequest_VxlanUdpSportMask) isSetSwitchTunnelAttributeRequest_Attr() {} - type SetSwitchTunnelAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4014,7 +3552,7 @@ type GetSwitchTunnelAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*SwitchTunnelAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *SwitchTunnelAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetSwitchTunnelAttributeResponse) Reset() { @@ -4049,7 +3587,7 @@ func (*GetSwitchTunnelAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_switch_proto_rawDescGZIP(), []int{33} } -func (x *GetSwitchTunnelAttributeResponse) GetAttr() []*SwitchTunnelAttribute { +func (x *GetSwitchTunnelAttributeResponse) GetAttr() *SwitchTunnelAttribute { if x != nil { return x.Attr } @@ -4065,1459 +3603,1786 @@ var file_dataplane_standalone_proto_switch_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, 0x24, 0x0a, 0x13, 0x43, 0x72, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x39, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, - 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, - 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x72, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x57, 0x61, 0x72, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x6d, - 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x62, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x62, 0x63, 0x61, 0x73, - 0x74, 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x33, 0x0a, 0x16, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, - 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x13, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, - 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x15, - 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x78, + 0x74, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, 0x00, 0x52, 0x0a, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2c, 0x48, 0x01, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x48, 0x48, 0x02, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, 0x61, + 0x72, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x72, 0x65, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x49, 0x48, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x51, 0x48, 0x04, 0x52, + 0x0d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x62, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x52, 0x48, 0x05, 0x52, 0x13, 0x62, 0x63, 0x61, 0x73, 0x74, + 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x53, 0x48, 0x06, 0x52, 0x13, 0x6d, 0x63, 0x61, 0x73, 0x74, + 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x54, + 0x48, 0x07, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x55, 0x48, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x64, 0x62, 0x5f, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x64, 0x62, 0x41, 0x67, 0x69, - 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x1e, 0x66, 0x64, 0x62, 0x5f, 0x75, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x66, 0x64, 0x62, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, - 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x6b, 0x0a, 0x20, 0x66, 0x64, 0x62, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1c, - 0x66, 0x64, 0x62, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x20, - 0x66, 0x64, 0x62, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, - 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1c, 0x66, 0x64, 0x62, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x1b, 0x65, 0x63, 0x6d, - 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, - 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x33, - 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, - 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, - 0x65, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x1b, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 0x64, 0x62, 0x5f, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x56, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x64, 0x62, 0x41, 0x67, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x72, 0x0a, 0x1e, 0x66, 0x64, 0x62, 0x5f, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x57, 0x48, 0x0a, 0x52, 0x1a, 0x66, 0x64, 0x62, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x20, 0x66, 0x64, 0x62, 0x5f, + 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x0b, 0x52, + 0x1c, 0x66, 0x64, 0x62, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, + 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x76, 0x0a, 0x20, 0x66, 0x64, 0x62, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x59, 0x48, 0x0c, 0x52, 0x1c, 0x66, 0x64, 0x62, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5a, 0x48, 0x0d, 0x52, 0x18, 0x65, 0x63, 0x6d, + 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, + 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, 0x48, 0x0e, + 0x52, 0x13, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, + 0x68, 0x53, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6d, 0x70, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, + 0x48, 0x0f, 0x52, 0x15, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, - 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x65, - 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, - 0x34, 0x12, 0x32, 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x12, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x6e, 0x49, 0x70, 0x76, 0x34, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, - 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x12, 0x61, 0x0a, 0x1a, 0x6c, - 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x31, - 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, - 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, - 0x64, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x14, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x6c, 0x61, - 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, - 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x12, 0x30, 0x0a, 0x15, 0x6c, 0x61, 0x67, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, - 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x12, 0x22, 0x0a, 0x0d, 0x6c, - 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x12, - 0x38, 0x0a, 0x18, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x1c, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x16, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x6f, 0x73, - 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x1d, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x63, 0x12, - 0x2c, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, - 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, - 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, - 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x71, - 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, - 0x70, 0x12, 0x2a, 0x0a, 0x12, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, - 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x20, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x71, - 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x30, 0x0a, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5d, 0x48, 0x10, 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, + 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x5e, 0x48, 0x11, 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, + 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x12, 0x52, + 0x12, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x49, + 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x60, 0x48, 0x13, 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, + 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x61, 0x48, 0x14, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x62, 0x48, 0x15, 0x52, 0x12, 0x6c, 0x61, + 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x63, 0x48, 0x16, 0x52, 0x14, 0x6c, 0x61, + 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x48, + 0x17, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, 0x6d, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x65, 0x48, 0x18, 0x52, 0x0b, 0x6c, 0x61, + 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, + 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x66, 0x48, 0x19, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, + 0x49, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6c, 0x61, 0x67, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x67, 0x48, 0x1a, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, + 0x68, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x68, + 0x48, 0x1b, 0x52, 0x16, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x69, 0x48, 0x1c, 0x52, 0x0c, 0x71, + 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x37, + 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, + 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x6a, 0x48, 0x1d, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, + 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6b, 0x48, 0x1e, 0x52, + 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x12, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, + 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6c, 0x48, 0x1f, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, + 0x73, 0x63, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x21, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x71, 0x6f, - 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, - 0x2c, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, - 0x73, 0x54, 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x3e, 0x0a, - 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x23, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3c, 0x0a, - 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x24, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x27, 0x20, 0x03, 0x28, 0x05, 0x52, 0x12, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x28, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x5f, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x6e, - 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x61, 0x73, 0x74, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x66, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x63, 0x18, 0x2b, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x63, 0x12, 0x56, 0x0a, - 0x15, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x12, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, - 0x64, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x2d, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, - 0x61, 0x70, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x64, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x12, 0x4d, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, - 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x2e, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, - 0x70, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x70, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x70, - 0x69, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x74, - 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x30, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x70, 0x69, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, - 0x6c, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, - 0x72, 0x63, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, - 0x18, 0x63, 0x72, 0x63, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x16, 0x63, 0x72, 0x63, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x65, - 0x63, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x45, 0x63, - 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x37, 0x0a, 0x18, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x34, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x15, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x12, 0x2c, 0x0a, 0x12, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x3e, 0x0a, 0x1c, 0x75, 0x6e, 0x69, 0x6e, 0x69, - 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x75, - 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4f, 0x6e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x37, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, - 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x21, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x6d, 0x48, 0x20, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, + 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6e, 0x48, 0x21, 0x52, + 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, + 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6f, + 0x48, 0x22, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x47, + 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x24, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x70, 0x48, 0x23, 0x52, 0x16, 0x71, 0x6f, + 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, + 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x25, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x71, 0x48, 0x24, 0x52, 0x11, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x72, 0x48, 0x25, 0x52, 0x0f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x27, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x73, 0x52, 0x12, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x32, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x03, 0x28, 0x05, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x74, 0x52, 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x75, + 0x48, 0x26, 0x52, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7b, + 0x48, 0x27, 0x52, 0x0d, 0x66, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, + 0x63, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7c, 0x48, 0x28, 0x52, + 0x08, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x15, + 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x83, 0x01, 0x48, 0x29, 0x52, 0x12, 0x70, 0x66, 0x63, 0x44, 0x6c, + 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x54, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x85, 0x01, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x64, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x54, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, + 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x2e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, + 0x4d, 0x61, 0x70, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x87, 0x01, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, + 0x63, 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x0f, + 0x74, 0x70, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, + 0x2f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, 0x01, 0x48, 0x2a, 0x52, 0x0d, + 0x74, 0x70, 0x69, 0x64, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x32, 0x0a, 0x0f, 0x74, 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8a, 0x01, + 0x48, 0x2b, 0x52, 0x0d, 0x74, 0x70, 0x69, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x10, 0x63, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x8b, 0x01, 0x48, 0x2c, 0x52, 0x0e, 0x63, 0x72, 0x63, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x18, 0x63, 0x72, + 0x63, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0x8c, 0x01, 0x48, 0x2d, 0x52, 0x16, 0x63, 0x72, 0x63, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x63, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x33, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x94, 0x01, 0x48, 0x2e, 0x52, 0x15, 0x65, 0x63, 0x6e, + 0x45, 0x63, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, + 0x63, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x95, 0x01, 0x48, 0x2f, + 0x52, 0x15, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x12, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x96, 0x01, 0x48, 0x30, 0x52, + 0x10, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1c, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x9a, + 0x01, 0x48, 0x31, 0x52, 0x18, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x50, + 0x6c, 0x61, 0x6e, 0x65, 0x4f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x37, 0x20, 0x03, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x9b, 0x01, 0x52, 0x0b, + 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3a, - 0x0a, 0x1a, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x39, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x16, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, - 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x6e, 0x61, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5e, 0x0a, 0x13, 0x68, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x73, - 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x42, 0x75, 0x73, 0x52, 0x11, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x6c, 0x61, + 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x9e, 0x01, 0x48, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x53, + 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x6e, 0x61, + 0x74, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x9f, 0x01, 0x48, 0x33, 0x52, 0x16, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0a, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa0, 0x01, 0x48, 0x34, 0x52, + 0x09, 0x6e, 0x61, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, + 0x13, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x62, 0x75, 0x73, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x75, 0x73, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa1, + 0x01, 0x48, 0x35, 0x52, 0x11, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x42, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x3c, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x12, 0x3e, 0x0a, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, - 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, - 0x61, 0x73, 0x74, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x66, 0x69, 0x72, 0x6d, 0x77, - 0x61, 0x72, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x14, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, - 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x3e, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x52, 0x12, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, - 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x5b, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x6d, 0x77, - 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x3f, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa2, 0x01, 0x48, 0x36, 0x52, 0x0f, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4a, 0x0a, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x18, + 0x3d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa5, 0x01, 0x48, 0x37, 0x52, 0x19, + 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x14, + 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xa6, 0x01, 0x48, 0x38, 0x52, 0x12, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, + 0x61, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x12, 0x66, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, + 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa7, 0x01, 0x48, 0x39, 0x52, + 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x19, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, - 0x12, 0x36, 0x0a, 0x17, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x41, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x15, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x44, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x6e, 0x64, 0x5f, - 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x42, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x35, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, + 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa8, 0x01, 0x48, 0x3a, + 0x52, 0x17, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x17, + 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x41, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xa9, 0x01, 0x48, 0x3b, 0x52, 0x15, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x18, 0x42, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xaa, 0x01, + 0x48, 0x3c, 0x52, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb0, 0x01, 0x48, 0x3d, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x44, 0x20, 0x03, 0x28, - 0x04, 0x52, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x45, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, - 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x37, 0x0a, 0x19, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x46, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, 0x70, - 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, - 0x43, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x47, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, - 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, - 0x70, 0x4d, 0x61, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, - 0x64, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, - 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x78, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x17, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x14, 0x66, - 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x12, 0x66, 0x61, 0x69, 0x6c, - 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2e, - 0x0a, 0x13, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4c, 0x20, 0x03, 0x28, 0x04, 0x52, 0x11, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, - 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, - 0x6c, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x49, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, - 0x6d, 0x64, 0x69, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4e, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x4d, 0x64, 0x69, 0x6f, 0x41, - 0x64, 0x64, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb1, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x16, 0x71, 0x6f, + 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, + 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x45, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb2, + 0x01, 0x48, 0x3e, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, + 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x19, 0x71, 0x6f, 0x73, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x46, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0xb3, 0x01, 0x48, 0x3f, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, + 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4f, + 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, + 0x61, 0x70, 0x18, 0x47, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb4, 0x01, 0x48, + 0x40, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x48, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb5, 0x01, 0x48, 0x41, 0x52, 0x08, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x49, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb6, 0x01, 0x48, 0x42, 0x52, 0x0e, 0x6d, 0x61, 0x78, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x65, + 0x0a, 0x17, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, + 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb7, 0x01, 0x52, + 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, + 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x4b, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xbd, 0x01, 0x48, 0x43, 0x52, 0x12, 0x66, + 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x13, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4c, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xbf, 0x01, 0x52, 0x11, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0f, 0x70, + 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x4d, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xc1, 0x01, 0x48, 0x44, 0x52, 0x0d, 0x70, + 0x72, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x36, 0x0a, 0x14, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x69, 0x6f, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xc5, 0x01, 0x52, 0x11, 0x73, 0x6c, 0x61, 0x76, 0x65, 0x4d, 0x64, 0x69, 0x6f, 0x41, + 0x64, 0x64, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x4f, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, - 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x4c, - 0x0a, 0x24, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, + 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xcc, 0x01, 0x48, 0x45, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x44, + 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x24, 0x71, 0x6f, + 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, + 0x61, 0x70, 0x18, 0x50, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xcd, 0x01, 0x48, + 0x46, 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x51, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xce, 0x01, 0x48, 0x47, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x69, 0x70, 0x73, 0x65, + 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x52, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xcf, 0x01, 0x48, 0x48, 0x52, 0x0e, 0x69, 0x70, + 0x73, 0x65, 0x63, 0x53, 0x61, 0x54, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x62, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, + 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, + 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x64, 0x62, 0x5f, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x66, + 0x64, 0x62, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, 0x0a, + 0x21, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x65, 0x63, 0x6d, 0x70, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x65, 0x63, 0x6d, 0x70, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, + 0x65, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x1e, 0x0a, 0x1c, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x61, + 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x72, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x74, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, + 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, + 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, + 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, + 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x20, + 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, + 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, + 0x70, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x68, 0x65, + 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, + 0x63, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x74, 0x70, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x63, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x72, 0x63, + 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, + 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x6e, 0x69, 0x6e, 0x69, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x72, 0x65, 0x5f, + 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6e, 0x61, 0x74, + 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x61, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x73, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x42, 0x22, 0x0a, + 0x20, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, + 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, + 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x6d, 0x61, 0x70, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x27, 0x0a, + 0x25, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x50, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x71, 0x6f, - 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x26, 0x0a, 0x0f, - 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x51, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x11, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, - 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x54, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x22, - 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf5, 0x1f, 0x0a, 0x19, 0x53, - 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1f, 0x0a, - 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x23, - 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, - 0x61, 0x72, 0x6d, 0x12, 0x23, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x61, 0x72, - 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0e, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0d, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, - 0x16, 0x62, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x13, 0x62, 0x63, 0x61, 0x73, 0x74, 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x16, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, - 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x43, 0x70, 0x75, - 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, + 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, + 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, + 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, + 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb6, 0x30, 0x0a, 0x19, + 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x2b, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x2c, 0x48, 0x01, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x72, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x48, 0x48, 0x02, 0x52, + 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, 0x61, 0x72, 0x6d, 0x88, 0x01, 0x01, 0x12, + 0x2c, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x49, 0x48, 0x03, 0x52, 0x0b, 0x77, + 0x61, 0x72, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x51, 0x48, 0x04, 0x52, 0x0d, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x62, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x52, 0x48, 0x05, 0x52, 0x13, 0x62, 0x63, 0x61, 0x73, 0x74, 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, + 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x6d, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x53, 0x48, 0x06, 0x52, 0x13, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x43, 0x70, 0x75, 0x46, 0x6c, 0x6f, + 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, - 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, - 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x66, - 0x64, 0x62, 0x5f, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x64, 0x62, 0x41, 0x67, 0x69, 0x6e, 0x67, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x69, 0x0a, 0x1e, 0x66, 0x64, 0x62, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x1a, 0x66, 0x64, 0x62, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, - 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, - 0x0a, 0x20, 0x66, 0x64, 0x62, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x1c, 0x66, 0x64, 0x62, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, - 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, 0x0a, - 0x20, 0x66, 0x64, 0x62, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, - 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x54, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x72, + 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, + 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x55, 0x48, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, + 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x0e, 0x66, 0x64, 0x62, 0x5f, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x56, 0x48, 0x09, 0x52, 0x0c, 0x66, + 0x64, 0x62, 0x41, 0x67, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x72, + 0x0a, 0x1e, 0x66, 0x64, 0x62, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x57, 0x48, 0x0a, 0x52, 0x1a, 0x66, 0x64, 0x62, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, + 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x76, 0x0a, 0x20, 0x66, 0x64, 0x62, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x58, 0x48, 0x0b, 0x52, 0x1c, 0x66, 0x64, 0x62, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x20, 0x66, 0x64, + 0x62, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x59, 0x48, + 0x0c, 0x52, 0x1c, 0x66, 0x64, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, + 0x69, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1c, - 0x66, 0x64, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x73, 0x73, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x1b, - 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x48, 0x00, 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x12, 0x35, 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x13, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x18, 0x65, 0x63, - 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x15, - 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3f, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x18, 0x65, 0x63, - 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x12, 0x34, - 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x12, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, - 0x49, 0x70, 0x76, 0x34, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0c, - 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x12, 0x63, 0x0a, 0x1a, - 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x48, 0x00, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x12, 0x33, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x17, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x61, 0x67, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, - 0x3d, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, + 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x5a, 0x48, 0x0d, 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5b, 0x48, 0x0e, 0x52, 0x13, 0x65, 0x63, 0x6d, 0x70, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5c, 0x48, 0x0f, 0x52, 0x15, 0x65, 0x63, + 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x5d, 0x48, 0x10, 0x52, 0x18, 0x65, 0x63, 0x6d, 0x70, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5e, 0x48, 0x11, + 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x16, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x5f, 0x48, 0x12, 0x52, 0x12, 0x65, 0x63, 0x6d, 0x70, 0x48, + 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x0e, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x60, 0x48, 0x13, + 0x52, 0x0c, 0x65, 0x63, 0x6d, 0x70, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x88, 0x01, + 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x61, + 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x61, 0x48, 0x14, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x62, 0x48, 0x15, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x53, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, + 0x17, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x63, 0x48, 0x16, 0x52, 0x14, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x48, 0x61, 0x73, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x46, 0x0a, 0x1a, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x6c, 0x61, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, - 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, - 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, - 0x49, 0x70, 0x76, 0x34, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x1b, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3a, - 0x0a, 0x18, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x16, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x6f, - 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x54, 0x63, 0x12, 0x2e, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, - 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, - 0x61, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, - 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x20, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2c, 0x0a, 0x12, 0x71, 0x6f, 0x73, 0x5f, - 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x21, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, - 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, - 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, - 0x22, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, - 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x71, 0x6f, - 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, - 0x70, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, - 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x40, 0x0a, 0x1d, 0x71, 0x6f, - 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, - 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x24, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x17, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3e, 0x0a, 0x1c, - 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x25, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x13, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, - 0x0a, 0x0f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x61, 0x73, 0x74, 0x41, - 0x70, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x69, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x74, 0x63, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6d, - 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x63, 0x12, 0x58, 0x0a, 0x15, 0x70, 0x66, 0x63, 0x5f, 0x64, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x64, 0x48, 0x17, 0x52, 0x17, 0x6c, 0x61, 0x67, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x65, 0x48, 0x18, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, + 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x66, 0x48, 0x19, 0x52, 0x11, 0x6c, + 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x49, 0x70, 0x76, 0x34, + 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x67, + 0x48, 0x1a, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x48, 0x61, 0x73, 0x68, 0x49, 0x70, 0x76, 0x36, 0x88, + 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x68, 0x48, 0x1b, 0x52, 0x16, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x69, 0x48, 0x1c, 0x52, 0x0c, 0x71, 0x6f, 0x73, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, + 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6a, 0x48, 0x1d, 0x52, 0x0f, 0x71, + 0x6f, 0x73, 0x44, 0x6f, 0x74, 0x31, 0x70, 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, + 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x20, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6b, 0x48, 0x1e, 0x52, 0x12, 0x71, 0x6f, 0x73, 0x44, 0x6f, + 0x74, 0x31, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x12, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, + 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x21, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x6c, 0x48, 0x1f, 0x52, 0x0e, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x54, + 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x15, 0x71, 0x6f, 0x73, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6d, 0x48, 0x20, 0x52, 0x11, + 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, + 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6e, 0x48, 0x21, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, + 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x1d, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x24, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x6f, 0x48, 0x22, 0x52, 0x17, 0x71, 0x6f, + 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x6f, 0x74, + 0x31, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1c, 0x71, 0x6f, 0x73, 0x5f, + 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, + 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x25, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x70, 0x48, 0x23, 0x52, 0x16, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x13, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x68, 0x65, 0x6c, + 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x71, 0x48, 0x24, 0x52, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, + 0x65, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, + 0x66, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7b, 0x48, 0x25, 0x52, 0x0d, 0x66, + 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x09, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x63, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x7c, 0x48, 0x26, 0x52, 0x08, 0x6d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x54, 0x63, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x15, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x70, - 0x66, 0x63, 0x44, 0x6c, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x53, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0x83, 0x01, 0x48, 0x27, 0x52, 0x12, 0x70, 0x66, 0x63, 0x44, 0x6c, 0x72, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x13, 0x70, + 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x85, 0x01, 0x52, + 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x12, 0x54, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x64, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x53, 0x0a, 0x13, 0x70, 0x66, 0x63, 0x5f, 0x74, 0x63, - 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x2b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, - 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, - 0x44, 0x6c, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x74, - 0x70, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x2c, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x70, 0x69, 0x64, 0x4f, 0x75, 0x74, 0x65, - 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0d, 0x74, 0x70, 0x69, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x12, - 0x2a, 0x0a, 0x10, 0x63, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x72, 0x63, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x63, - 0x72, 0x63, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x16, 0x63, 0x72, 0x63, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x65, - 0x63, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x15, 0x65, 0x63, 0x6e, - 0x45, 0x63, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x18, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x31, - 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x15, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x12, 0x2e, 0x0a, - 0x12, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x40, 0x0a, - 0x1c, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x33, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x18, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x12, - 0x47, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x61, 0x6d, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x5f, - 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0b, 0x70, 0x72, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3c, 0x0a, - 0x1a, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x16, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x6e, - 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x19, - 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x17, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x66, 0x69, - 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x39, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x15, 0x66, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x53, 0x74, 0x6f, 0x70, 0x12, 0x46, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x42, 0x05, + 0x80, 0xb5, 0x18, 0x87, 0x01, 0x52, 0x10, 0x70, 0x66, 0x63, 0x54, 0x63, 0x44, 0x6c, 0x72, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x0f, 0x74, 0x70, 0x69, 0x64, 0x5f, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0x89, 0x01, 0x48, 0x28, 0x52, 0x0d, 0x74, 0x70, 0x69, 0x64, 0x4f, + 0x75, 0x74, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x74, + 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x2d, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8a, 0x01, 0x48, 0x29, 0x52, 0x0d, 0x74, + 0x70, 0x69, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x56, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x10, 0x63, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8b, 0x01, + 0x48, 0x2a, 0x52, 0x0e, 0x63, 0x72, 0x63, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x18, 0x63, 0x72, 0x63, 0x5f, 0x72, 0x65, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x8c, 0x01, 0x48, 0x2b, + 0x52, 0x16, 0x63, 0x72, 0x63, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x65, + 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0x94, 0x01, 0x48, 0x2c, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x74, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x18, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x31, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x95, 0x01, 0x48, 0x2d, 0x52, 0x15, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x12, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x32, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x96, 0x01, 0x48, 0x2e, 0x52, 0x10, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x4a, 0x0a, 0x1c, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x18, + 0x33, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x9a, 0x01, 0x48, 0x2f, 0x52, 0x18, + 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4f, + 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x74, + 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x34, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x9b, 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6d, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0x9e, 0x01, 0x48, 0x30, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, + 0x77, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, 0x6e, + 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0x9f, 0x01, + 0x48, 0x31, 0x52, 0x16, 0x6e, 0x61, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x0a, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa0, 0x01, 0x48, 0x32, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x19, 0x66, 0x69, 0x72, 0x6d, + 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xa8, 0x01, 0x48, 0x33, 0x52, 0x17, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x42, 0x0a, 0x17, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x39, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xa9, 0x01, 0x48, 0x34, 0x52, 0x15, 0x66, 0x69, 0x72, 0x6d, + 0x77, 0x61, 0x72, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x6f, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, - 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x41, - 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x51, 0x0a, 0x12, - 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x6d, - 0x61, 0x63, 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x33, 0x0a, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, - 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x54, - 0x63, 0x4d, 0x61, 0x70, 0x12, 0x39, 0x0a, 0x19, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, - 0x70, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, 0x70, - 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x12, - 0x45, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xaa, 0x01, 0x48, 0x35, 0x52, 0x1b, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x12, 0x6d, 0x61, 0x63, 0x73, 0x65, 0x63, + 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x3b, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb1, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x63, 0x73, 0x65, + 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x16, 0x71, + 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, + 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xb2, 0x01, 0x48, 0x36, 0x52, 0x11, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, + 0x54, 0x6f, 0x54, 0x63, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x19, 0x71, 0x6f, + 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, + 0xb5, 0x18, 0xb3, 0x01, 0x48, 0x37, 0x52, 0x14, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, + 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x4f, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x19, 0x71, 0x6f, 0x73, - 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, - 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x63, 0x0a, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x3f, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x13, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x61, 0x63, 0x6c, 0x18, 0x41, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x65, - 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x47, 0x0a, 0x20, 0x71, 0x6f, + 0x6d, 0x61, 0x70, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xb4, 0x01, + 0x48, 0x38, 0x52, 0x19, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x54, 0x6f, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x6d, 0x0a, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, + 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0xbd, 0x01, 0x48, 0x39, 0x52, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x35, 0x0a, 0x13, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x40, 0x20, 0x03, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, + 0x18, 0xbf, 0x01, 0x52, 0x11, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x41, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x05, 0x80, 0xb5, 0x18, 0xc1, 0x01, 0x48, 0x3a, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x42, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1b, 0x71, 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, - 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x4d, 0x61, 0x70, 0x12, 0x4e, 0x0a, 0x24, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, - 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, 0x54, - 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x4d, 0x61, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x44, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, - 0x69, 0x70, 0x73, 0x65, 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2b, 0x0a, - 0x11, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, - 0x69, 0x64, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x70, 0x73, 0x65, - 0x63, 0x53, 0x61, 0x54, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x26, 0x0a, 0x24, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x25, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, - 0x55, 0x0a, 0x12, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2a, 0x0a, 0x28, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x48, 0x0a, 0x29, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, 0x75, 0x74, - 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x1d, 0x0a, 0x1b, - 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x63, 0x0a, 0x1c, 0x46, - 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x24, 0x0a, 0x22, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6c, 0x0a, 0x23, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6c, 0x65, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xcc, 0x01, 0x48, 0x3b, 0x52, 0x1b, 0x71, + 0x6f, 0x73, 0x44, 0x73, 0x63, 0x70, 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, + 0x24, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, + 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0x80, 0xb5, 0x18, + 0xcd, 0x01, 0x48, 0x3c, 0x52, 0x1e, 0x71, 0x6f, 0x73, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x78, 0x70, + 0x54, 0x6f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, + 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x44, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x05, 0x80, 0xb5, 0x18, 0xce, 0x01, 0x48, 0x3d, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x69, + 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x74, 0x70, 0x69, 0x64, + 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0x80, 0xb5, 0x18, 0xcf, 0x01, 0x48, 0x3e, 0x52, + 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x54, 0x61, 0x67, 0x54, 0x70, 0x69, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, + 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, + 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, + 0x72, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x62, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, + 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x64, 0x62, 0x5f, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x21, 0x0a, + 0x1f, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x66, 0x64, 0x62, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x65, + 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x65, + 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x63, 0x6d, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x61, 0x67, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6c, 0x61, + 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x74, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, + 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x71, 0x6f, 0x73, + 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, + 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, + 0x70, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x74, 0x31, 0x70, 0x5f, + 0x6d, 0x61, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x73, 0x63, 0x70, + 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, + 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x63, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x6c, 0x72, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x74, 0x70, 0x69, + 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x74, 0x70, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x63, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x63, 0x72, 0x63, 0x5f, 0x72, 0x65, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x74, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x6e, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x68, 0x75, + 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x7a, 0x6f, + 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x42, 0x22, 0x0a, + 0x20, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x63, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x1c, 0x0a, 0x1a, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x6f, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x71, + 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x74, 0x6f, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x23, 0x0a, 0x21, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, + 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, + 0x70, 0x73, 0x65, 0x63, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x5f, + 0x74, 0x70, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x25, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, + 0x64, 0x12, 0x55, 0x0a, 0x12, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x6f, 0x70, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x70, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2a, 0x0a, 0x28, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x29, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x1d, + 0x0a, 0x1b, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x63, 0x0a, + 0x1c, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x0a, 0x1e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, - 0x42, 0x0a, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, 0x61, 0x74, - 0x74, 0x72, 0x73, 0x22, 0x25, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, - 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a, 0x24, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, - 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x28, - 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x24, 0x0a, 0x22, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7d, 0x0a, 0x29, 0x42, 0x66, 0x64, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1d, 0x0a, 0x1b, 0x54, 0x61, 0x6d, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x1c, 0x54, 0x61, 0x6d, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x61, 0x6d, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6c, 0x0a, 0x23, 0x50, 0x6f, 0x72, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x45, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x0a, 0x1e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x12, 0x44, 0x0a, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x49, 0x70, 0x73, 0x65, 0x63, - 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x71, 0x0a, 0x25, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x9f, 0x05, - 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x42, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x72, 0x12, 0x42, 0x0a, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x69, 0x66, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, + 0x61, 0x74, 0x74, 0x72, 0x73, 0x22, 0x25, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, + 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a, 0x24, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2a, + 0x0a, 0x28, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7d, 0x0a, 0x29, 0x42, 0x66, + 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, + 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1d, 0x0a, 0x1b, 0x54, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x1c, 0x54, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x61, 0x6d, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x74, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x49, 0x70, 0x73, + 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x71, 0x0a, 0x25, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, - 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x6c, 0x6f, - 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x12, 0x74, 0x75, + 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, + 0xa4, 0x07, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x4d, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x15, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x4d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, - 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, - 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, + 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x67, + 0x0a, 0x15, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, + 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x17, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, - 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, - 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2f, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, + 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, + 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, + 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x06, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x12, 0x77, 0x0a, 0x1b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, + 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x04, 0x52, + 0x17, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, + 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x05, 0x52, 0x0d, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, 0x78, - 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x22, - 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1c, - 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe5, 0x02, 0x0a, - 0x1f, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x12, 0x5b, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, - 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x6e, 0x0a, 0x1b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, + 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x09, 0x48, 0x06, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, + 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, + 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, + 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xe9, 0x03, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x64, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, + 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x77, 0x0a, 0x1b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x17, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x28, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x06, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x01, 0x52, 0x17, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, + 0x03, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, + 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, + 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x22, + 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xa5, 0x41, 0x0a, 0x0a, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x01, 0x12, 0x2d, 0x0a, - 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, - 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, - 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x58, 0x5f, - 0x4d, 0x54, 0x55, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x50, 0x55, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x05, 0x12, - 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, - 0x41, 0x58, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, - 0x52, 0x53, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, - 0x5a, 0x45, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x33, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x33, 0x5f, 0x52, - 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, - 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x0a, 0x12, 0x1e, - 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, - 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x4c, 0x41, 0x47, 0x53, 0x10, 0x0b, 0x12, 0x1c, - 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, - 0x4d, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, - 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x53, 0x10, 0x0d, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x55, 0x4e, 0x49, - 0x43, 0x41, 0x53, 0x54, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, 0x0e, 0x12, 0x2a, 0x0a, - 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, - 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, - 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x57, 0x49, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x64, + 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x2a, 0xa5, 0x41, 0x0a, 0x0a, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, + 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, + 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, + 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, + 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x04, + 0x12, 0x18, 0x0a, 0x14, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x43, 0x50, 0x55, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x05, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x56, 0x49, + 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x53, 0x10, 0x06, 0x12, + 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x44, 0x42, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x07, 0x12, + 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, + 0x33, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x33, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, + 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x0a, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, - 0x4f, 0x46, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, - 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x43, 0x50, 0x55, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, - 0x11, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x53, - 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x12, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x13, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, - 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x4f, 0x52, - 0x53, 0x10, 0x14, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x15, 0x12, 0x18, - 0x0a, 0x14, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, - 0x58, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x10, 0x16, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x5f, - 0x54, 0x45, 0x4d, 0x50, 0x10, 0x17, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, - 0x10, 0x18, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x49, - 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x19, 0x12, 0x2a, - 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, - 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, - 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x1a, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, - 0x54, 0x52, 0x59, 0x5f, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, - 0x52, 0x49, 0x54, 0x59, 0x10, 0x1b, 0x12, 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, - 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x1c, 0x12, 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, - 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x1d, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x44, 0x53, - 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1e, 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x44, 0x53, - 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1f, 0x12, 0x31, 0x0a, 0x2d, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, - 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x20, 0x12, 0x29, 0x0a, 0x25, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x4f, 0x46, 0x5f, 0x4c, 0x41, 0x47, 0x53, 0x10, 0x0b, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x4d, 0x45, + 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, + 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0x0d, 0x12, 0x28, + 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, + 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, + 0x51, 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, 0x0e, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, + 0x46, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x51, 0x55, 0x45, 0x55, + 0x45, 0x53, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x53, 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, + 0x43, 0x50, 0x55, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, 0x11, 0x12, 0x27, 0x0a, 0x23, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x4e, 0x5f, 0x4c, + 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, + 0x54, 0x45, 0x44, 0x10, 0x12, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x10, 0x13, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, + 0x54, 0x45, 0x4d, 0x50, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x53, 0x10, 0x14, 0x12, 0x19, + 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, + 0x4d, 0x50, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x15, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x45, 0x4d, + 0x50, 0x10, 0x16, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x10, + 0x17, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, + 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x18, 0x12, 0x2a, 0x0a, + 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, + 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, + 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x19, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, + 0x49, 0x54, 0x59, 0x10, 0x1a, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x4d, + 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, + 0x1b, 0x12, 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, + 0x59, 0x10, 0x1c, 0x12, 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, + 0x49, 0x54, 0x59, 0x10, 0x1d, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x10, 0x1e, 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x10, 0x1f, 0x12, 0x31, 0x0a, 0x2d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, - 0x41, 0x4e, 0x47, 0x45, 0x10, 0x21, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, + 0x41, 0x4e, 0x47, 0x45, 0x10, 0x20, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, - 0x22, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x23, 0x12, 0x26, 0x0a, 0x22, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x55, - 0x53, 0x45, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x52, 0x41, 0x4e, 0x47, - 0x45, 0x10, 0x24, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x49, 0x44, 0x10, 0x25, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x54, 0x50, 0x5f, - 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x26, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x53, 0x54, 0x50, - 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x27, 0x12, 0x29, 0x0a, 0x25, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, - 0x4c, 0x54, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, - 0x52, 0x5f, 0x49, 0x44, 0x10, 0x28, 0x12, 0x32, 0x0a, 0x2e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4f, 0x56, - 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, - 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x29, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, - 0x54, 0x5f, 0x31, 0x51, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x2a, - 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x2b, 0x12, 0x1a, 0x0a, - 0x16, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x2c, 0x12, 0x31, 0x0a, 0x2d, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x58, - 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x46, 0x46, - 0x49, 0x43, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x45, 0x53, 0x10, 0x2d, 0x12, 0x42, 0x0a, 0x3e, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, - 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x43, - 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x48, 0x49, - 0x45, 0x52, 0x41, 0x52, 0x43, 0x48, 0x59, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x53, 0x10, 0x2e, - 0x12, 0x46, 0x0a, 0x42, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, - 0x46, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x53, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x48, 0x49, 0x45, 0x52, 0x41, 0x52, 0x43, 0x48, 0x59, - 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x2f, 0x12, 0x3c, 0x0a, 0x38, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x5f, - 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x53, - 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x10, 0x30, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x42, 0x55, 0x46, 0x46, - 0x45, 0x52, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x31, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, - 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4e, 0x55, 0x4d, - 0x10, 0x32, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4e, 0x55, 0x4d, 0x10, 0x33, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, - 0x4e, 0x54, 0x52, 0x59, 0x10, 0x34, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x49, 0x50, 0x56, 0x36, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x10, 0x35, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, - 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x48, 0x4f, 0x50, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x36, - 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, - 0x45, 0x58, 0x54, 0x48, 0x4f, 0x50, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x37, 0x12, 0x2d, - 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, - 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4e, 0x45, 0x49, - 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x38, 0x12, 0x2d, 0x0a, - 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, - 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x49, 0x47, - 0x48, 0x42, 0x4f, 0x52, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x39, 0x12, 0x2e, 0x0a, 0x2a, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, - 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3a, 0x12, 0x35, 0x0a, 0x31, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, - 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x54, 0x52, - 0x59, 0x10, 0x3b, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x44, 0x42, - 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3c, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, + 0x21, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, + 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x22, 0x12, 0x28, 0x0a, 0x24, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, + 0x41, 0x4e, 0x47, 0x45, 0x10, 0x23, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, + 0x52, 0x41, 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x24, 0x12, 0x1f, + 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, + 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x25, 0x12, + 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, + 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x54, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x5f, + 0x49, 0x44, 0x10, 0x26, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x53, 0x54, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, + 0x41, 0x4e, 0x43, 0x45, 0x10, 0x27, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x49, + 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, + 0x28, 0x12, 0x32, 0x0a, 0x2e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, + 0x45, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, + 0x5f, 0x49, 0x44, 0x10, 0x29, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x31, 0x51, 0x5f, + 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x2a, 0x12, 0x1b, 0x0a, 0x17, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x2b, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, + 0x43, 0x4c, 0x10, 0x2c, 0x12, 0x31, 0x0a, 0x2d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, + 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x43, 0x4c, + 0x41, 0x53, 0x53, 0x45, 0x53, 0x10, 0x2d, 0x12, 0x42, 0x0a, 0x3e, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4e, + 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, + 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x48, 0x49, 0x45, 0x52, 0x41, 0x52, 0x43, + 0x48, 0x59, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x53, 0x10, 0x2e, 0x12, 0x46, 0x0a, 0x42, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, + 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x43, 0x48, + 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x5f, 0x50, 0x45, + 0x52, 0x5f, 0x48, 0x49, 0x45, 0x52, 0x41, 0x52, 0x43, 0x48, 0x59, 0x5f, 0x4c, 0x45, 0x56, 0x45, + 0x4c, 0x10, 0x2f, 0x12, 0x3c, 0x0a, 0x38, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, + 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x53, 0x5f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, + 0x30, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x53, 0x49, + 0x5a, 0x45, 0x10, 0x31, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x46, 0x46, + 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4e, 0x55, 0x4d, 0x10, 0x32, 0x12, 0x26, 0x0a, + 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, + 0x4e, 0x55, 0x4d, 0x10, 0x33, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, + 0x50, 0x56, 0x34, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, + 0x34, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, + 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x35, 0x12, 0x2c, 0x0a, + 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, + 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4e, 0x45, 0x58, 0x54, + 0x48, 0x4f, 0x50, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x36, 0x12, 0x2c, 0x0a, 0x28, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x48, 0x4f, + 0x50, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x37, 0x12, 0x2d, 0x0a, 0x29, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, + 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x38, 0x12, 0x2d, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x4c, 0x32, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3d, 0x12, 0x24, - 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, - 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x10, 0x3e, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x4e, - 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3f, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x40, - 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, - 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x41, 0x12, 0x23, 0x0a, 0x1f, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, - 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, - 0x42, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, - 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x43, 0x12, 0x26, 0x0a, 0x22, + 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x39, 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3a, 0x12, 0x35, 0x0a, 0x31, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3b, 0x12, 0x23, + 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, + 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x4e, 0x54, 0x52, + 0x59, 0x10, 0x3c, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4c, 0x32, 0x4d, + 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3d, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x4d, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x3e, 0x12, + 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, + 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, + 0x54, 0x52, 0x59, 0x10, 0x3f, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, + 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x40, 0x12, 0x2a, 0x0a, 0x26, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x41, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x42, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, - 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x10, 0x44, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x50, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x45, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, - 0x48, 0x10, 0x46, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x47, 0x12, 0x1c, 0x0a, - 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x53, - 0x54, 0x41, 0x52, 0x54, 0x5f, 0x57, 0x41, 0x52, 0x4d, 0x10, 0x48, 0x12, 0x1c, 0x0a, 0x18, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x41, 0x52, 0x4d, 0x5f, - 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x49, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x4a, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x4e, - 0x45, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, - 0x56, 0x41, 0x4c, 0x10, 0x4b, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x56, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, - 0x53, 0x49, 0x5a, 0x45, 0x10, 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x4d, 0x12, 0x23, 0x0a, 0x1f, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, - 0x41, 0x43, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, - 0x4e, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, - 0x4f, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, - 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x50, 0x12, 0x1e, 0x0a, 0x1a, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x51, 0x12, 0x26, 0x0a, 0x22, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x43, 0x41, 0x53, - 0x54, 0x5f, 0x43, 0x50, 0x55, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x45, 0x4e, 0x41, 0x42, - 0x4c, 0x45, 0x10, 0x52, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x43, 0x50, 0x55, 0x5f, 0x46, 0x4c, - 0x4f, 0x4f, 0x44, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x53, 0x12, 0x1f, 0x0a, 0x1b, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, - 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x54, 0x12, 0x25, 0x0a, - 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, - 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45, 0x44, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, - 0x45, 0x53, 0x10, 0x55, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x41, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x10, 0x56, 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, - 0x4d, 0x49, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x57, 0x12, 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, - 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x58, 0x12, 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, - 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x59, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, + 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x43, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x4d, 0x59, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x44, 0x12, + 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, + 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x10, 0x45, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x46, 0x12, 0x18, + 0x0a, 0x14, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, + 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x47, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, + 0x57, 0x41, 0x52, 0x4d, 0x10, 0x48, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x41, 0x52, 0x4d, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x56, + 0x45, 0x52, 0x10, 0x49, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x10, 0x4a, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x5f, 0x52, 0x45, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x4b, + 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x4e, 0x56, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, + 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x4d, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x52, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x4e, 0x12, 0x1e, 0x0a, 0x1a, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, + 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x4f, 0x12, 0x29, 0x0a, 0x25, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x43, 0x41, 0x53, + 0x54, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x50, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x51, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x43, 0x50, 0x55, + 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x52, 0x12, + 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, + 0x43, 0x41, 0x53, 0x54, 0x5f, 0x43, 0x50, 0x55, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x45, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x53, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, + 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x54, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x45, 0x41, 0x52, + 0x4e, 0x45, 0x44, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x45, 0x53, 0x10, 0x55, 0x12, + 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x44, 0x42, 0x5f, 0x41, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x56, 0x12, + 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x44, 0x42, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x57, 0x12, + 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x44, 0x42, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x49, 0x53, + 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x58, 0x12, 0x30, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4d, + 0x49, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x59, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, + 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x10, 0x5a, + 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, + 0x48, 0x5f, 0x53, 0x45, 0x45, 0x44, 0x10, 0x5b, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x44, 0x45, 0x46, - 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, - 0x54, 0x48, 0x4d, 0x10, 0x5a, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, - 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x53, 0x45, 0x45, 0x44, 0x10, 0x5b, 0x12, 0x28, 0x0a, - 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, - 0x50, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x4f, - 0x46, 0x46, 0x53, 0x45, 0x54, 0x10, 0x5c, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x44, 0x45, 0x46, 0x41, - 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x48, 0x41, - 0x53, 0x48, 0x10, 0x5d, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, - 0x56, 0x34, 0x10, 0x5e, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, - 0x56, 0x34, 0x5f, 0x49, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x5f, 0x12, 0x1e, 0x0a, 0x1a, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, - 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x60, 0x12, 0x2a, 0x0a, 0x26, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, - 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, - 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x10, 0x61, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x44, 0x45, 0x46, 0x41, - 0x55, 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x53, 0x45, 0x45, 0x44, 0x10, 0x62, 0x12, - 0x27, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, - 0x41, 0x47, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, - 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x10, 0x63, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x44, 0x45, 0x46, 0x41, - 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x48, 0x41, - 0x53, 0x48, 0x10, 0x64, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, 0x56, - 0x34, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, 0x56, 0x34, - 0x5f, 0x49, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x66, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x48, 0x41, - 0x53, 0x48, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x67, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, - 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, - 0x4c, 0x10, 0x68, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, - 0x43, 0x10, 0x69, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, + 0x10, 0x5c, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, + 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x5d, 0x12, + 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, + 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x5e, 0x12, + 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, + 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x49, 0x4e, + 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x5f, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x53, 0x48, + 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x60, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, + 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, + 0x4d, 0x10, 0x61, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x48, + 0x41, 0x53, 0x48, 0x5f, 0x53, 0x45, 0x45, 0x44, 0x10, 0x62, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x44, 0x45, + 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, + 0x54, 0x10, 0x63, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, + 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x64, 0x12, + 0x1d, 0x0a, 0x19, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, + 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x65, 0x12, 0x25, + 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, + 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x49, 0x4e, 0x5f, 0x49, + 0x50, 0x56, 0x34, 0x10, 0x66, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x49, 0x50, + 0x56, 0x36, 0x10, 0x67, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x46, 0x52, + 0x45, 0x53, 0x48, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x68, 0x12, 0x1e, + 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, + 0x53, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x43, 0x10, 0x69, 0x12, 0x23, + 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, + 0x53, 0x5f, 0x44, 0x4f, 0x54, 0x31, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, 0x41, + 0x50, 0x10, 0x6a, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x4f, 0x54, 0x31, 0x50, 0x5f, 0x54, 0x4f, 0x5f, - 0x54, 0x43, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6a, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x4f, 0x54, 0x31, - 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6b, - 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, - 0x41, 0x50, 0x10, 0x6c, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, - 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6d, 0x12, 0x23, 0x0a, 0x1f, 0x53, + 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6b, 0x12, 0x22, 0x0a, 0x1e, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, + 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6c, 0x12, + 0x25, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, + 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, + 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6d, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, 0x5f, + 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6e, 0x12, 0x2d, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, - 0x43, 0x5f, 0x54, 0x4f, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6e, - 0x12, 0x2d, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, - 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x4f, 0x54, 0x31, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6f, 0x12, - 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, - 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, - 0x54, 0x4f, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x70, 0x12, 0x23, 0x0a, - 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x53, 0x48, 0x45, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x10, 0x71, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, - 0x5f, 0x49, 0x44, 0x10, 0x72, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, 0x44, - 0x57, 0x41, 0x52, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, - 0x41, 0x52, 0x45, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x74, 0x12, - 0x1b, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, - 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x75, 0x12, 0x2a, 0x0a, 0x26, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, - 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x76, 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, + 0x4f, 0x54, 0x31, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x6f, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, + 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x53, + 0x43, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x70, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, - 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, - 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x77, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x78, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, - 0x46, 0x59, 0x10, 0x79, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x7a, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x7b, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, - 0x5f, 0x54, 0x43, 0x10, 0x7c, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x49, - 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x7d, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, - 0x45, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x7e, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x4d, - 0x41, 0x58, 0x5f, 0x53, 0x49, 0x44, 0x5f, 0x44, 0x45, 0x50, 0x54, 0x48, 0x10, 0x7f, 0x12, 0x1e, - 0x0a, 0x19, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, - 0x56, 0x36, 0x5f, 0x54, 0x4c, 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x80, 0x01, 0x12, 0x28, - 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, - 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x53, 0x10, 0x81, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x50, 0x46, - 0x43, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, - 0x59, 0x10, 0x82, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x4c, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x83, 0x01, 0x12, 0x2a, 0x0a, 0x25, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, - 0x54, 0x43, 0x5f, 0x44, 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x5f, - 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x84, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x54, 0x43, 0x5f, 0x44, - 0x4c, 0x44, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x85, 0x01, 0x12, 0x2a, - 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, - 0x43, 0x5f, 0x54, 0x43, 0x5f, 0x44, 0x4c, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, - 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x86, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x54, 0x43, - 0x5f, 0x44, 0x4c, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x87, 0x01, - 0x12, 0x30, 0x0a, 0x2b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, - 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x88, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, - 0x4e, 0x10, 0x89, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, - 0x4c, 0x41, 0x4e, 0x10, 0x8a, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, - 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x8b, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x52, 0x45, 0x43, - 0x41, 0x4c, 0x43, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, - 0x45, 0x10, 0x8c, 0x01, 0x12, 0x30, 0x0a, 0x2b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x54, - 0x49, 0x46, 0x59, 0x10, 0x8d, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, - 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x8e, 0x01, 0x12, 0x20, - 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, - 0x58, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x8f, 0x01, - 0x12, 0x38, 0x0a, 0x33, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x42, - 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, - 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x90, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, - 0x54, 0x45, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x10, 0x91, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x52, 0x58, 0x10, 0x92, - 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x54, 0x58, 0x10, 0x93, 0x01, 0x12, 0x29, - 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, - 0x4e, 0x5f, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, - 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x94, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x44, - 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x41, - 0x43, 0x10, 0x95, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, - 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x96, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4d, 0x49, 0x52, - 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x97, 0x01, 0x12, 0x2b, - 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, - 0x58, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x44, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x98, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x53, + 0x48, 0x45, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x71, 0x12, 0x21, 0x0a, + 0x1d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x72, + 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, + 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x50, + 0x41, 0x54, 0x48, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x5f, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0x75, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x59, 0x10, 0x76, 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, + 0x57, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x59, 0x10, 0x77, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x44, 0x42, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, + 0x49, 0x46, 0x59, 0x10, 0x78, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x79, 0x12, + 0x23, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x49, + 0x46, 0x59, 0x10, 0x7a, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x4e, 0x41, + 0x42, 0x4c, 0x45, 0x10, 0x7b, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x54, 0x43, 0x10, 0x7c, + 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, + 0x53, 0x10, 0x7d, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x7e, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x53, 0x49, + 0x44, 0x5f, 0x44, 0x45, 0x50, 0x54, 0x48, 0x10, 0x7f, 0x12, 0x1e, 0x0a, 0x19, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x54, 0x4c, + 0x56, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x80, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4e, 0x55, 0x4d, + 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x53, + 0x10, 0x81, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x44, 0x45, 0x41, + 0x44, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x82, 0x01, 0x12, + 0x26, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, + 0x46, 0x43, 0x5f, 0x44, 0x4c, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x83, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x54, 0x43, 0x5f, 0x44, 0x4c, + 0x44, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, + 0x10, 0x84, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x54, 0x43, 0x5f, 0x44, 0x4c, 0x44, 0x5f, 0x49, 0x4e, + 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x85, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x54, 0x43, 0x5f, + 0x44, 0x4c, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x41, 0x4e, + 0x47, 0x45, 0x10, 0x86, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x46, 0x43, 0x5f, 0x54, 0x43, 0x5f, 0x44, 0x4c, 0x52, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x87, 0x01, 0x12, 0x30, 0x0a, 0x2b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, - 0x52, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x99, 0x01, 0x12, 0x2d, 0x0a, 0x28, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x49, 0x4e, 0x49, - 0x54, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, - 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x9a, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x4f, 0x42, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x9b, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x9c, 0x01, 0x12, 0x2b, 0x0a, - 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, - 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x9d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x53, 0x48, - 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x9e, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, - 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x49, 0x44, 0x10, 0x9f, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x10, 0xa0, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, - 0x53, 0x53, 0x5f, 0x42, 0x55, 0x53, 0x10, 0xa1, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x52, 0x4f, - 0x4d, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x58, 0x54, 0x10, 0xa2, 0x01, 0x12, 0x1e, 0x0a, 0x19, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, - 0x53, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0xa3, 0x01, 0x12, 0x1f, 0x0a, 0x1a, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, - 0x53, 0x54, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0xa4, 0x01, 0x12, 0x2c, 0x0a, - 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, - 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, - 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x10, 0xa5, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, - 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, - 0xa6, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x10, 0xa7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, - 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, - 0x10, 0xa8, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, - 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x10, 0xa9, 0x01, 0x12, 0x30, 0x0a, - 0x2b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, - 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x4e, 0x44, - 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xaa, 0x01, 0x12, - 0x20, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, - 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0xab, - 0x01, 0x12, 0x27, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x5f, - 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0xac, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, - 0x52, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x4f, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, - 0x10, 0xad, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, - 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xae, 0x01, 0x12, 0x46, 0x0a, 0x41, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x47, 0x41, - 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x52, - 0x4f, 0x4d, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, - 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x10, 0xaf, - 0x01, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0xb0, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x4f, - 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb1, 0x01, 0x12, 0x27, 0x0a, - 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, - 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, - 0x4d, 0x41, 0x50, 0x10, 0xb2, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, - 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, - 0xb3, 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, - 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, - 0x41, 0x50, 0x10, 0xb4, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x49, 0x44, 0x10, 0xb5, + 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x4f, + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x88, 0x01, 0x12, 0x20, 0x0a, + 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x50, 0x49, + 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x89, 0x01, 0x12, + 0x20, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x50, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x8a, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x4f, 0x52, 0x45, - 0x53, 0x10, 0xb6, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb7, 0x01, 0x12, 0x27, - 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, - 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x53, 0x10, 0xb8, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb9, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, - 0x5f, 0x4f, 0x46, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, - 0x10, 0xba, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, - 0x49, 0x53, 0x54, 0x10, 0xbb, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x4d, 0x41, - 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x49, 0x5a, - 0x45, 0x10, 0xbc, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, - 0x46, 0x49, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0xbd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x53, + 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x8b, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x43, 0x55, 0x4c, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x8c, 0x01, 0x12, + 0x30, 0x0a, 0x2b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, + 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x8d, + 0x01, 0x12, 0x26, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x8e, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x42, 0x46, 0x44, + 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x8f, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, - 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x10, 0xbe, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x42, 0x4a, 0x45, - 0x43, 0x54, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xbf, 0x01, 0x12, 0x36, 0x0a, 0x31, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x4d, 0x41, 0x5f, - 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x49, 0x5a, 0x45, - 0x10, 0xc0, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, - 0x43, 0x4c, 0x10, 0xc1, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, - 0x4e, 0x41, 0x50, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0xc2, 0x01, 0x12, 0x26, 0x0a, - 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, - 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x4e, 0x41, 0x50, 0x54, 0x5f, 0x45, 0x4e, 0x54, - 0x52, 0x59, 0x10, 0xc3, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, - 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x4e, 0x41, 0x50, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x10, 0xc4, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x44, - 0x44, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc5, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, - 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, - 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0xc6, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, - 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, - 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0xc7, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, - 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc8, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, - 0x44, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x49, 0x45, 0x53, - 0x10, 0xc9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x59, 0x5f, - 0x4d, 0x41, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x49, 0x45, 0x53, 0x10, 0xca, 0x01, 0x12, 0x31, - 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, - 0x58, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x46, 0x4f, 0x52, 0x57, - 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x45, 0x53, 0x10, 0xcb, - 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, - 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4d, 0x41, - 0x50, 0x10, 0xcc, 0x01, 0x12, 0x35, 0x0a, 0x30, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, - 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, - 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0xcd, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, - 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x44, 0x10, 0xce, 0x01, 0x12, 0x22, 0x0a, - 0x1d, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, - 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0xcf, - 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0xd0, - 0x01, 0x2a, 0xba, 0x03, 0x0a, 0x10, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x2d, - 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x2c, 0x0a, - 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, - 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x50, 0x45, 0x52, 0x53, 0x10, - 0x04, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, - 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, - 0x45, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, - 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x50, - 0x45, 0x52, 0x53, 0x10, 0x06, 0x12, 0x32, 0x0a, 0x2e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x52, 0x54, 0x45, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, + 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x90, 0x01, 0x12, 0x38, 0x0a, 0x33, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x49, + 0x50, 0x56, 0x36, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x91, 0x01, 0x12, + 0x1b, 0x0a, 0x16, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, + 0x49, 0x4e, 0x5f, 0x42, 0x46, 0x44, 0x5f, 0x52, 0x58, 0x10, 0x92, 0x01, 0x12, 0x1b, 0x0a, 0x16, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, + 0x42, 0x46, 0x44, 0x5f, 0x54, 0x58, 0x10, 0x93, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x45, 0x43, 0x54, + 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x94, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, + 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x95, 0x01, 0x12, + 0x23, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, + 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x10, 0x96, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, + 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x97, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x53, 0x41, 0x4d, + 0x50, 0x4c, 0x45, 0x44, 0x5f, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x10, 0x98, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, + 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x10, 0x99, 0x01, 0x12, 0x2d, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x49, 0x4e, 0x49, 0x54, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, + 0x41, 0x4c, 0x10, 0x9a, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x49, 0x44, 0x10, 0x9b, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4e, + 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x9c, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x44, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, + 0x53, 0x54, 0x10, 0x9d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x9e, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x9f, + 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0xa0, 0x01, 0x12, 0x24, + 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x41, + 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x55, + 0x53, 0x10, 0xa1, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x45, 0x58, 0x54, 0x10, 0xa2, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x5f, + 0x52, 0x45, 0x41, 0x44, 0x10, 0xa3, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x5f, + 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0xa4, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, + 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, + 0x41, 0x53, 0x54, 0x10, 0xa5, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0xa6, 0x01, 0x12, 0x23, 0x0a, + 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, + 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, + 0xa7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x10, 0xa8, 0x01, 0x12, 0x28, + 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, + 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, + 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x10, 0xa9, 0x01, 0x12, 0x30, 0x0a, 0x2b, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, + 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x49, 0x54, + 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xaa, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, + 0x52, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0xab, 0x01, 0x12, 0x27, 0x0a, 0x22, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, + 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, + 0x4f, 0x4e, 0x10, 0xac, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4d, 0x49, + 0x4e, 0x4f, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0xad, 0x01, 0x12, 0x24, + 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0xae, 0x01, 0x12, 0x46, 0x0a, 0x41, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4c, 0x49, + 0x4e, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x10, 0xaf, 0x01, 0x12, 0x15, 0x0a, 0x10, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x10, 0xb0, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x43, 0x53, 0x45, 0x43, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb1, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x50, 0x4c, 0x53, + 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x43, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0xb2, + 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, + 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0xb3, 0x01, 0x12, 0x31, 0x0a, + 0x2c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, + 0x5f, 0x54, 0x43, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x54, 0x4f, + 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0xb4, 0x01, + 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x49, 0x44, 0x10, 0xb5, 0x01, 0x12, 0x21, 0x0a, 0x1c, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, + 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x53, 0x10, 0xb6, 0x01, 0x12, + 0x28, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, + 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, + 0x47, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb7, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, + 0x4f, 0x46, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, + 0xb8, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, + 0x53, 0x54, 0x10, 0xb9, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x46, + 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0xba, 0x01, 0x12, 0x21, + 0x0a, 0x1c, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, + 0x42, 0x52, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xbb, + 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x4d, 0x41, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, + 0x52, 0x59, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0xbc, 0x01, 0x12, + 0x25, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x10, 0xbd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0xbe, 0x01, + 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x5f, 0x4c, + 0x49, 0x53, 0x54, 0x10, 0xbf, 0x01, 0x12, 0x36, 0x0a, 0x31, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x56, 0x41, + 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x4d, 0x41, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x52, + 0x59, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0xc0, 0x01, 0x12, 0x20, + 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, + 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0xc1, 0x01, + 0x12, 0x26, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x54, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0xc2, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x44, 0x4e, 0x41, 0x50, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0xc3, 0x01, + 0x12, 0x2c, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, + 0x5f, 0x4e, 0x41, 0x50, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0xc4, 0x01, 0x12, 0x25, + 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x4c, + 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x4c, 0x49, + 0x53, 0x54, 0x10, 0xc5, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, + 0x54, 0x59, 0x10, 0xc6, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, + 0x54, 0x59, 0x10, 0xc7, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x4c, 0x49, 0x53, 0x54, + 0x10, 0xc8, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x5f, 0x4d, 0x59, 0x5f, + 0x4d, 0x41, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x49, 0x45, 0x53, 0x10, 0xc9, 0x01, 0x12, 0x29, + 0x0a, 0x24, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x56, + 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x59, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x45, + 0x4e, 0x54, 0x52, 0x49, 0x45, 0x53, 0x10, 0xca, 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x55, 0x4d, + 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, + 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x45, 0x53, 0x10, 0xcb, 0x01, 0x12, 0x31, 0x0a, 0x2c, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, + 0x44, 0x53, 0x43, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, + 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0xcc, 0x01, 0x12, + 0x35, 0x0a, 0x30, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, + 0x4f, 0x53, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x46, + 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, + 0x4d, 0x41, 0x50, 0x10, 0xcd, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x4f, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x49, 0x44, 0x10, 0xce, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x41, + 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x50, 0x49, 0x44, 0x10, 0xcf, 0x01, 0x12, 0x2e, 0x0a, 0x29, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x53, 0x45, + 0x43, 0x5f, 0x53, 0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, + 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0xd0, 0x01, 0x2a, 0xba, 0x03, 0x0a, + 0x10, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, + 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, + 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, - 0x45, 0x4c, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, + 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x10, - 0x08, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, - 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, - 0x50, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x09, 0x32, 0xe6, - 0x12, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, + 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x5f, 0x45, 0x43, 0x4e, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x43, + 0x41, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x50, 0x45, 0x52, 0x53, 0x10, 0x04, 0x12, 0x2c, 0x0a, 0x28, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, + 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x5f, 0x4d, 0x41, 0x50, 0x50, 0x45, 0x52, 0x53, 0x10, 0x06, + 0x12, 0x32, 0x0a, 0x2e, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, + 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x56, 0x58, + 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, + 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, + 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x08, 0x12, 0x2b, 0x0a, 0x27, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x5f, 0x55, 0x44, 0x50, 0x5f, 0x53, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x09, 0x32, 0xe6, 0x12, 0x0a, 0x06, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x7b, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9e, 0x01, 0x0a, - 0x1d, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0xaa, 0x01, - 0x0a, 0x21, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x14, 0x46, - 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, - 0x12, 0x98, 0x01, 0x0a, 0x1b, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, + 0x69, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, + 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x53, 0x65, + 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9e, 0x01, 0x0a, 0x1d, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x8c, 0x01, 0x0a, 0x17, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x9b, 0x01, 0x0a, 0x1c, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, - 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0xaa, 0x01, 0x0a, 0x21, 0x42, 0x66, 0x64, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0xaa, 0x01, 0x0a, 0x21, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, 0x75, + 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x14, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, + 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x14, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x46, 0x64, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0xa2, 0x01, 0x0a, 0x1f, - 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, - 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x98, 0x01, 0x0a, 0x1b, + 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x9b, 0x01, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, + 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x50, 0x66, 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x30, 0x01, 0x12, 0xaa, 0x01, 0x0a, 0x21, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x42, 0x66, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, + 0x12, 0x83, 0x01, 0x0a, 0x14, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0xa2, 0x01, 0x0a, 0x1f, 0x49, 0x70, 0x73, 0x65, 0x63, + 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x49, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, - 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x30, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x30, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x53, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5581,22 +5446,20 @@ var file_dataplane_standalone_proto_switch_proto_goTypes = []interface{}{ (SwitchType)(0), // 43: lemming.dataplane.sai.SwitchType (*SystemPortConfig)(nil), // 44: lemming.dataplane.sai.SystemPortConfig (SwitchFailoverConfigMode)(0), // 45: lemming.dataplane.sai.SwitchFailoverConfigMode - (*UintMapList)(nil), // 46: lemming.dataplane.sai.UintMapList - (*Uint64List)(nil), // 47: lemming.dataplane.sai.Uint64List - (SwitchOperStatus)(0), // 48: lemming.dataplane.sai.SwitchOperStatus - (*FdbEventNotificationData)(nil), // 49: lemming.dataplane.sai.FdbEventNotificationData - (*PortOperStatusNotification)(nil), // 50: lemming.dataplane.sai.PortOperStatusNotification - (*HostifPacketAttribute)(nil), // 51: lemming.dataplane.sai.HostifPacketAttribute - (*QueueDeadlockNotificationData)(nil), // 52: lemming.dataplane.sai.QueueDeadlockNotificationData - (*BfdSessionStateChangeNotificationData)(nil), // 53: lemming.dataplane.sai.BfdSessionStateChangeNotificationData - (*TamEventActionAttribute)(nil), // 54: lemming.dataplane.sai.TamEventActionAttribute - (*IpsecSaStatusNotificationData)(nil), // 55: lemming.dataplane.sai.IpsecSaStatusNotificationData - (*SwitchAttribute)(nil), // 56: lemming.dataplane.sai.SwitchAttribute - (TunnelType)(0), // 57: lemming.dataplane.sai.TunnelType - (TunnelEncapEcnMode)(0), // 58: lemming.dataplane.sai.TunnelEncapEcnMode - (TunnelDecapEcnMode)(0), // 59: lemming.dataplane.sai.TunnelDecapEcnMode - (TunnelVxlanUdpSportMode)(0), // 60: lemming.dataplane.sai.TunnelVxlanUdpSportMode - (*SwitchTunnelAttribute)(nil), // 61: lemming.dataplane.sai.SwitchTunnelAttribute + (SwitchOperStatus)(0), // 46: lemming.dataplane.sai.SwitchOperStatus + (*FdbEventNotificationData)(nil), // 47: lemming.dataplane.sai.FdbEventNotificationData + (*PortOperStatusNotification)(nil), // 48: lemming.dataplane.sai.PortOperStatusNotification + (*HostifPacketAttribute)(nil), // 49: lemming.dataplane.sai.HostifPacketAttribute + (*QueueDeadlockNotificationData)(nil), // 50: lemming.dataplane.sai.QueueDeadlockNotificationData + (*BfdSessionStateChangeNotificationData)(nil), // 51: lemming.dataplane.sai.BfdSessionStateChangeNotificationData + (*TamEventActionAttribute)(nil), // 52: lemming.dataplane.sai.TamEventActionAttribute + (*IpsecSaStatusNotificationData)(nil), // 53: lemming.dataplane.sai.IpsecSaStatusNotificationData + (*SwitchAttribute)(nil), // 54: lemming.dataplane.sai.SwitchAttribute + (TunnelType)(0), // 55: lemming.dataplane.sai.TunnelType + (TunnelEncapEcnMode)(0), // 56: lemming.dataplane.sai.TunnelEncapEcnMode + (TunnelDecapEcnMode)(0), // 57: lemming.dataplane.sai.TunnelDecapEcnMode + (TunnelVxlanUdpSportMode)(0), // 58: lemming.dataplane.sai.TunnelVxlanUdpSportMode + (*SwitchTunnelAttribute)(nil), // 59: lemming.dataplane.sai.SwitchTunnelAttribute } var file_dataplane_standalone_proto_switch_proto_depIdxs = []int32{ 36, // 0: lemming.dataplane.sai.CreateSwitchRequest.switching_mode:type_name -> lemming.dataplane.sai.SwitchSwitchingMode @@ -5621,70 +5484,67 @@ var file_dataplane_standalone_proto_switch_proto_depIdxs = []int32{ 38, // 19: lemming.dataplane.sai.SetSwitchAttributeRequest.ecmp_default_hash_algorithm:type_name -> lemming.dataplane.sai.HashAlgorithm 38, // 20: lemming.dataplane.sai.SetSwitchAttributeRequest.lag_default_hash_algorithm:type_name -> lemming.dataplane.sai.HashAlgorithm 37, // 21: lemming.dataplane.sai.SetSwitchAttributeRequest.pfc_dlr_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 46, // 22: lemming.dataplane.sai.SetSwitchAttributeRequest.pfc_tc_dld_interval:type_name -> lemming.dataplane.sai.UintMapList - 46, // 23: lemming.dataplane.sai.SetSwitchAttributeRequest.pfc_tc_dlr_interval:type_name -> lemming.dataplane.sai.UintMapList - 47, // 24: lemming.dataplane.sai.SetSwitchAttributeRequest.tam_object_id:type_name -> lemming.dataplane.sai.Uint64List - 47, // 25: lemming.dataplane.sai.SetSwitchAttributeRequest.macsec_object_list:type_name -> lemming.dataplane.sai.Uint64List - 45, // 26: lemming.dataplane.sai.SetSwitchAttributeRequest.failover_config_mode:type_name -> lemming.dataplane.sai.SwitchFailoverConfigMode - 47, // 27: lemming.dataplane.sai.SetSwitchAttributeRequest.tunnel_objects_list:type_name -> lemming.dataplane.sai.Uint64List - 48, // 28: lemming.dataplane.sai.SwitchStateChangeNotificationResponse.switch_oper_status:type_name -> lemming.dataplane.sai.SwitchOperStatus - 49, // 29: lemming.dataplane.sai.FdbEventNotificationResponse.data:type_name -> lemming.dataplane.sai.FdbEventNotificationData - 50, // 30: lemming.dataplane.sai.PortStateChangeNotificationResponse.data:type_name -> lemming.dataplane.sai.PortOperStatusNotification - 51, // 31: lemming.dataplane.sai.PacketEventNotificationResponse.attrs:type_name -> lemming.dataplane.sai.HostifPacketAttribute - 52, // 32: lemming.dataplane.sai.QueuePfcDeadlockNotificationResponse.data:type_name -> lemming.dataplane.sai.QueueDeadlockNotificationData - 53, // 33: lemming.dataplane.sai.BfdSessionStateChangeNotificationResponse.data:type_name -> lemming.dataplane.sai.BfdSessionStateChangeNotificationData - 54, // 34: lemming.dataplane.sai.TamEventNotificationResponse.attrs:type_name -> lemming.dataplane.sai.TamEventActionAttribute - 55, // 35: lemming.dataplane.sai.IpsecSaStatusNotificationDataResponse.data:type_name -> lemming.dataplane.sai.IpsecSaStatusNotificationData - 0, // 36: lemming.dataplane.sai.GetSwitchAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.SwitchAttr - 56, // 37: lemming.dataplane.sai.GetSwitchAttributeResponse.attr:type_name -> lemming.dataplane.sai.SwitchAttribute - 57, // 38: lemming.dataplane.sai.CreateSwitchTunnelRequest.tunnel_type:type_name -> lemming.dataplane.sai.TunnelType - 37, // 39: lemming.dataplane.sai.CreateSwitchTunnelRequest.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 58, // 40: lemming.dataplane.sai.CreateSwitchTunnelRequest.tunnel_encap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelEncapEcnMode - 59, // 41: lemming.dataplane.sai.CreateSwitchTunnelRequest.tunnel_decap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelDecapEcnMode - 60, // 42: lemming.dataplane.sai.CreateSwitchTunnelRequest.tunnel_vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode - 37, // 43: lemming.dataplane.sai.SetSwitchTunnelAttributeRequest.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction - 60, // 44: lemming.dataplane.sai.SetSwitchTunnelAttributeRequest.tunnel_vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode - 1, // 45: lemming.dataplane.sai.GetSwitchTunnelAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.SwitchTunnelAttr - 61, // 46: lemming.dataplane.sai.GetSwitchTunnelAttributeResponse.attr:type_name -> lemming.dataplane.sai.SwitchTunnelAttribute - 2, // 47: lemming.dataplane.sai.Switch.CreateSwitch:input_type -> lemming.dataplane.sai.CreateSwitchRequest - 4, // 48: lemming.dataplane.sai.Switch.RemoveSwitch:input_type -> lemming.dataplane.sai.RemoveSwitchRequest - 6, // 49: lemming.dataplane.sai.Switch.SetSwitchAttribute:input_type -> lemming.dataplane.sai.SetSwitchAttributeRequest - 8, // 50: lemming.dataplane.sai.Switch.SwitchStateChangeNotification:input_type -> lemming.dataplane.sai.SwitchStateChangeNotificationRequest - 10, // 51: lemming.dataplane.sai.Switch.SwitchShutdownRequestNotification:input_type -> lemming.dataplane.sai.SwitchShutdownRequestNotificationRequest - 12, // 52: lemming.dataplane.sai.Switch.FdbEventNotification:input_type -> lemming.dataplane.sai.FdbEventNotificationRequest - 14, // 53: lemming.dataplane.sai.Switch.PortStateChangeNotification:input_type -> lemming.dataplane.sai.PortStateChangeNotificationRequest - 16, // 54: lemming.dataplane.sai.Switch.PacketEventNotification:input_type -> lemming.dataplane.sai.PacketEventNotificationRequest - 18, // 55: lemming.dataplane.sai.Switch.QueuePfcDeadlockNotification:input_type -> lemming.dataplane.sai.QueuePfcDeadlockNotificationRequest - 20, // 56: lemming.dataplane.sai.Switch.BfdSessionStateChangeNotification:input_type -> lemming.dataplane.sai.BfdSessionStateChangeNotificationRequest - 22, // 57: lemming.dataplane.sai.Switch.TamEventNotification:input_type -> lemming.dataplane.sai.TamEventNotificationRequest - 24, // 58: lemming.dataplane.sai.Switch.IpsecSaStatusChangeNotification:input_type -> lemming.dataplane.sai.IpsecSaStatusChangeNotificationRequest - 26, // 59: lemming.dataplane.sai.Switch.GetSwitchAttribute:input_type -> lemming.dataplane.sai.GetSwitchAttributeRequest - 28, // 60: lemming.dataplane.sai.Switch.CreateSwitchTunnel:input_type -> lemming.dataplane.sai.CreateSwitchTunnelRequest - 30, // 61: lemming.dataplane.sai.Switch.RemoveSwitchTunnel:input_type -> lemming.dataplane.sai.RemoveSwitchTunnelRequest - 32, // 62: lemming.dataplane.sai.Switch.SetSwitchTunnelAttribute:input_type -> lemming.dataplane.sai.SetSwitchTunnelAttributeRequest - 34, // 63: lemming.dataplane.sai.Switch.GetSwitchTunnelAttribute:input_type -> lemming.dataplane.sai.GetSwitchTunnelAttributeRequest - 3, // 64: lemming.dataplane.sai.Switch.CreateSwitch:output_type -> lemming.dataplane.sai.CreateSwitchResponse - 5, // 65: lemming.dataplane.sai.Switch.RemoveSwitch:output_type -> lemming.dataplane.sai.RemoveSwitchResponse - 7, // 66: lemming.dataplane.sai.Switch.SetSwitchAttribute:output_type -> lemming.dataplane.sai.SetSwitchAttributeResponse - 9, // 67: lemming.dataplane.sai.Switch.SwitchStateChangeNotification:output_type -> lemming.dataplane.sai.SwitchStateChangeNotificationResponse - 11, // 68: lemming.dataplane.sai.Switch.SwitchShutdownRequestNotification:output_type -> lemming.dataplane.sai.SwitchShutdownRequestNotificationResponse - 13, // 69: lemming.dataplane.sai.Switch.FdbEventNotification:output_type -> lemming.dataplane.sai.FdbEventNotificationResponse - 15, // 70: lemming.dataplane.sai.Switch.PortStateChangeNotification:output_type -> lemming.dataplane.sai.PortStateChangeNotificationResponse - 17, // 71: lemming.dataplane.sai.Switch.PacketEventNotification:output_type -> lemming.dataplane.sai.PacketEventNotificationResponse - 19, // 72: lemming.dataplane.sai.Switch.QueuePfcDeadlockNotification:output_type -> lemming.dataplane.sai.QueuePfcDeadlockNotificationResponse - 21, // 73: lemming.dataplane.sai.Switch.BfdSessionStateChangeNotification:output_type -> lemming.dataplane.sai.BfdSessionStateChangeNotificationResponse - 23, // 74: lemming.dataplane.sai.Switch.TamEventNotification:output_type -> lemming.dataplane.sai.TamEventNotificationResponse - 25, // 75: lemming.dataplane.sai.Switch.IpsecSaStatusChangeNotification:output_type -> lemming.dataplane.sai.IpsecSaStatusNotificationDataResponse - 27, // 76: lemming.dataplane.sai.Switch.GetSwitchAttribute:output_type -> lemming.dataplane.sai.GetSwitchAttributeResponse - 29, // 77: lemming.dataplane.sai.Switch.CreateSwitchTunnel:output_type -> lemming.dataplane.sai.CreateSwitchTunnelResponse - 31, // 78: lemming.dataplane.sai.Switch.RemoveSwitchTunnel:output_type -> lemming.dataplane.sai.RemoveSwitchTunnelResponse - 33, // 79: lemming.dataplane.sai.Switch.SetSwitchTunnelAttribute:output_type -> lemming.dataplane.sai.SetSwitchTunnelAttributeResponse - 35, // 80: lemming.dataplane.sai.Switch.GetSwitchTunnelAttribute:output_type -> lemming.dataplane.sai.GetSwitchTunnelAttributeResponse - 64, // [64:81] is the sub-list for method output_type - 47, // [47:64] is the sub-list for method input_type - 47, // [47:47] is the sub-list for extension type_name - 47, // [47:47] is the sub-list for extension extendee - 0, // [0:47] is the sub-list for field type_name + 39, // 22: lemming.dataplane.sai.SetSwitchAttributeRequest.pfc_tc_dld_interval:type_name -> lemming.dataplane.sai.UintMap + 39, // 23: lemming.dataplane.sai.SetSwitchAttributeRequest.pfc_tc_dlr_interval:type_name -> lemming.dataplane.sai.UintMap + 45, // 24: lemming.dataplane.sai.SetSwitchAttributeRequest.failover_config_mode:type_name -> lemming.dataplane.sai.SwitchFailoverConfigMode + 46, // 25: lemming.dataplane.sai.SwitchStateChangeNotificationResponse.switch_oper_status:type_name -> lemming.dataplane.sai.SwitchOperStatus + 47, // 26: lemming.dataplane.sai.FdbEventNotificationResponse.data:type_name -> lemming.dataplane.sai.FdbEventNotificationData + 48, // 27: lemming.dataplane.sai.PortStateChangeNotificationResponse.data:type_name -> lemming.dataplane.sai.PortOperStatusNotification + 49, // 28: lemming.dataplane.sai.PacketEventNotificationResponse.attrs:type_name -> lemming.dataplane.sai.HostifPacketAttribute + 50, // 29: lemming.dataplane.sai.QueuePfcDeadlockNotificationResponse.data:type_name -> lemming.dataplane.sai.QueueDeadlockNotificationData + 51, // 30: lemming.dataplane.sai.BfdSessionStateChangeNotificationResponse.data:type_name -> lemming.dataplane.sai.BfdSessionStateChangeNotificationData + 52, // 31: lemming.dataplane.sai.TamEventNotificationResponse.attrs:type_name -> lemming.dataplane.sai.TamEventActionAttribute + 53, // 32: lemming.dataplane.sai.IpsecSaStatusNotificationDataResponse.data:type_name -> lemming.dataplane.sai.IpsecSaStatusNotificationData + 0, // 33: lemming.dataplane.sai.GetSwitchAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.SwitchAttr + 54, // 34: lemming.dataplane.sai.GetSwitchAttributeResponse.attr:type_name -> lemming.dataplane.sai.SwitchAttribute + 55, // 35: lemming.dataplane.sai.CreateSwitchTunnelRequest.tunnel_type:type_name -> lemming.dataplane.sai.TunnelType + 37, // 36: lemming.dataplane.sai.CreateSwitchTunnelRequest.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 56, // 37: lemming.dataplane.sai.CreateSwitchTunnelRequest.tunnel_encap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelEncapEcnMode + 57, // 38: lemming.dataplane.sai.CreateSwitchTunnelRequest.tunnel_decap_ecn_mode:type_name -> lemming.dataplane.sai.TunnelDecapEcnMode + 58, // 39: lemming.dataplane.sai.CreateSwitchTunnelRequest.tunnel_vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode + 37, // 40: lemming.dataplane.sai.SetSwitchTunnelAttributeRequest.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction + 58, // 41: lemming.dataplane.sai.SetSwitchTunnelAttributeRequest.tunnel_vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode + 1, // 42: lemming.dataplane.sai.GetSwitchTunnelAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.SwitchTunnelAttr + 59, // 43: lemming.dataplane.sai.GetSwitchTunnelAttributeResponse.attr:type_name -> lemming.dataplane.sai.SwitchTunnelAttribute + 2, // 44: lemming.dataplane.sai.Switch.CreateSwitch:input_type -> lemming.dataplane.sai.CreateSwitchRequest + 4, // 45: lemming.dataplane.sai.Switch.RemoveSwitch:input_type -> lemming.dataplane.sai.RemoveSwitchRequest + 6, // 46: lemming.dataplane.sai.Switch.SetSwitchAttribute:input_type -> lemming.dataplane.sai.SetSwitchAttributeRequest + 8, // 47: lemming.dataplane.sai.Switch.SwitchStateChangeNotification:input_type -> lemming.dataplane.sai.SwitchStateChangeNotificationRequest + 10, // 48: lemming.dataplane.sai.Switch.SwitchShutdownRequestNotification:input_type -> lemming.dataplane.sai.SwitchShutdownRequestNotificationRequest + 12, // 49: lemming.dataplane.sai.Switch.FdbEventNotification:input_type -> lemming.dataplane.sai.FdbEventNotificationRequest + 14, // 50: lemming.dataplane.sai.Switch.PortStateChangeNotification:input_type -> lemming.dataplane.sai.PortStateChangeNotificationRequest + 16, // 51: lemming.dataplane.sai.Switch.PacketEventNotification:input_type -> lemming.dataplane.sai.PacketEventNotificationRequest + 18, // 52: lemming.dataplane.sai.Switch.QueuePfcDeadlockNotification:input_type -> lemming.dataplane.sai.QueuePfcDeadlockNotificationRequest + 20, // 53: lemming.dataplane.sai.Switch.BfdSessionStateChangeNotification:input_type -> lemming.dataplane.sai.BfdSessionStateChangeNotificationRequest + 22, // 54: lemming.dataplane.sai.Switch.TamEventNotification:input_type -> lemming.dataplane.sai.TamEventNotificationRequest + 24, // 55: lemming.dataplane.sai.Switch.IpsecSaStatusChangeNotification:input_type -> lemming.dataplane.sai.IpsecSaStatusChangeNotificationRequest + 26, // 56: lemming.dataplane.sai.Switch.GetSwitchAttribute:input_type -> lemming.dataplane.sai.GetSwitchAttributeRequest + 28, // 57: lemming.dataplane.sai.Switch.CreateSwitchTunnel:input_type -> lemming.dataplane.sai.CreateSwitchTunnelRequest + 30, // 58: lemming.dataplane.sai.Switch.RemoveSwitchTunnel:input_type -> lemming.dataplane.sai.RemoveSwitchTunnelRequest + 32, // 59: lemming.dataplane.sai.Switch.SetSwitchTunnelAttribute:input_type -> lemming.dataplane.sai.SetSwitchTunnelAttributeRequest + 34, // 60: lemming.dataplane.sai.Switch.GetSwitchTunnelAttribute:input_type -> lemming.dataplane.sai.GetSwitchTunnelAttributeRequest + 3, // 61: lemming.dataplane.sai.Switch.CreateSwitch:output_type -> lemming.dataplane.sai.CreateSwitchResponse + 5, // 62: lemming.dataplane.sai.Switch.RemoveSwitch:output_type -> lemming.dataplane.sai.RemoveSwitchResponse + 7, // 63: lemming.dataplane.sai.Switch.SetSwitchAttribute:output_type -> lemming.dataplane.sai.SetSwitchAttributeResponse + 9, // 64: lemming.dataplane.sai.Switch.SwitchStateChangeNotification:output_type -> lemming.dataplane.sai.SwitchStateChangeNotificationResponse + 11, // 65: lemming.dataplane.sai.Switch.SwitchShutdownRequestNotification:output_type -> lemming.dataplane.sai.SwitchShutdownRequestNotificationResponse + 13, // 66: lemming.dataplane.sai.Switch.FdbEventNotification:output_type -> lemming.dataplane.sai.FdbEventNotificationResponse + 15, // 67: lemming.dataplane.sai.Switch.PortStateChangeNotification:output_type -> lemming.dataplane.sai.PortStateChangeNotificationResponse + 17, // 68: lemming.dataplane.sai.Switch.PacketEventNotification:output_type -> lemming.dataplane.sai.PacketEventNotificationResponse + 19, // 69: lemming.dataplane.sai.Switch.QueuePfcDeadlockNotification:output_type -> lemming.dataplane.sai.QueuePfcDeadlockNotificationResponse + 21, // 70: lemming.dataplane.sai.Switch.BfdSessionStateChangeNotification:output_type -> lemming.dataplane.sai.BfdSessionStateChangeNotificationResponse + 23, // 71: lemming.dataplane.sai.Switch.TamEventNotification:output_type -> lemming.dataplane.sai.TamEventNotificationResponse + 25, // 72: lemming.dataplane.sai.Switch.IpsecSaStatusChangeNotification:output_type -> lemming.dataplane.sai.IpsecSaStatusNotificationDataResponse + 27, // 73: lemming.dataplane.sai.Switch.GetSwitchAttribute:output_type -> lemming.dataplane.sai.GetSwitchAttributeResponse + 29, // 74: lemming.dataplane.sai.Switch.CreateSwitchTunnel:output_type -> lemming.dataplane.sai.CreateSwitchTunnelResponse + 31, // 75: lemming.dataplane.sai.Switch.RemoveSwitchTunnel:output_type -> lemming.dataplane.sai.RemoveSwitchTunnelResponse + 33, // 76: lemming.dataplane.sai.Switch.SetSwitchTunnelAttribute:output_type -> lemming.dataplane.sai.SetSwitchTunnelAttributeResponse + 35, // 77: lemming.dataplane.sai.Switch.GetSwitchTunnelAttribute:output_type -> lemming.dataplane.sai.GetSwitchTunnelAttributeResponse + 61, // [61:78] is the sub-list for method output_type + 44, // [44:61] is the sub-list for method input_type + 44, // [44:44] is the sub-list for extension type_name + 44, // [44:44] is the sub-list for extension extendee + 0, // [0:44] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_switch_proto_init() } @@ -6103,82 +5963,10 @@ func file_dataplane_standalone_proto_switch_proto_init() { } } } - file_dataplane_standalone_proto_switch_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetSwitchAttributeRequest_IngressAcl)(nil), - (*SetSwitchAttributeRequest_EgressAcl)(nil), - (*SetSwitchAttributeRequest_RestartWarm)(nil), - (*SetSwitchAttributeRequest_WarmRecover)(nil), - (*SetSwitchAttributeRequest_SwitchingMode)(nil), - (*SetSwitchAttributeRequest_BcastCpuFloodEnable)(nil), - (*SetSwitchAttributeRequest_McastCpuFloodEnable)(nil), - (*SetSwitchAttributeRequest_SrcMacAddress)(nil), - (*SetSwitchAttributeRequest_MaxLearnedAddresses)(nil), - (*SetSwitchAttributeRequest_FdbAgingTime)(nil), - (*SetSwitchAttributeRequest_FdbUnicastMissPacketAction)(nil), - (*SetSwitchAttributeRequest_FdbBroadcastMissPacketAction)(nil), - (*SetSwitchAttributeRequest_FdbMulticastMissPacketAction)(nil), - (*SetSwitchAttributeRequest_EcmpDefaultHashAlgorithm)(nil), - (*SetSwitchAttributeRequest_EcmpDefaultHashSeed)(nil), - (*SetSwitchAttributeRequest_EcmpDefaultHashOffset)(nil), - (*SetSwitchAttributeRequest_EcmpDefaultSymmetricHash)(nil), - (*SetSwitchAttributeRequest_EcmpHashIpv4)(nil), - (*SetSwitchAttributeRequest_EcmpHashIpv4InIpv4)(nil), - (*SetSwitchAttributeRequest_EcmpHashIpv6)(nil), - (*SetSwitchAttributeRequest_LagDefaultHashAlgorithm)(nil), - (*SetSwitchAttributeRequest_LagDefaultHashSeed)(nil), - (*SetSwitchAttributeRequest_LagDefaultHashOffset)(nil), - (*SetSwitchAttributeRequest_LagDefaultSymmetricHash)(nil), - (*SetSwitchAttributeRequest_LagHashIpv4)(nil), - (*SetSwitchAttributeRequest_LagHashIpv4InIpv4)(nil), - (*SetSwitchAttributeRequest_LagHashIpv6)(nil), - (*SetSwitchAttributeRequest_CounterRefreshInterval)(nil), - (*SetSwitchAttributeRequest_QosDefaultTc)(nil), - (*SetSwitchAttributeRequest_QosDot1PToTcMap)(nil), - (*SetSwitchAttributeRequest_QosDot1PToColorMap)(nil), - (*SetSwitchAttributeRequest_QosDscpToTcMap)(nil), - (*SetSwitchAttributeRequest_QosDscpToColorMap)(nil), - (*SetSwitchAttributeRequest_QosTcToQueueMap)(nil), - (*SetSwitchAttributeRequest_QosTcAndColorToDot1PMap)(nil), - (*SetSwitchAttributeRequest_QosTcAndColorToDscpMap)(nil), - (*SetSwitchAttributeRequest_SwitchShellEnable)(nil), - (*SetSwitchAttributeRequest_FastApiEnable)(nil), - (*SetSwitchAttributeRequest_MirrorTc)(nil), - (*SetSwitchAttributeRequest_PfcDlrPacketAction)(nil), - (*SetSwitchAttributeRequest_PfcTcDldInterval)(nil), - (*SetSwitchAttributeRequest_PfcTcDlrInterval)(nil), - (*SetSwitchAttributeRequest_TpidOuterVlan)(nil), - (*SetSwitchAttributeRequest_TpidInnerVlan)(nil), - (*SetSwitchAttributeRequest_CrcCheckEnable)(nil), - (*SetSwitchAttributeRequest_CrcRecalculationEnable)(nil), - (*SetSwitchAttributeRequest_EcnEctThresholdEnable)(nil), - (*SetSwitchAttributeRequest_VxlanDefaultRouterMac)(nil), - (*SetSwitchAttributeRequest_VxlanDefaultPort)(nil), - (*SetSwitchAttributeRequest_UninitDataPlaneOnRemoval)(nil), - (*SetSwitchAttributeRequest_TamObjectId)(nil), - (*SetSwitchAttributeRequest_PreShutdown)(nil), - (*SetSwitchAttributeRequest_NatZoneCounterObjectId)(nil), - (*SetSwitchAttributeRequest_NatEnable)(nil), - (*SetSwitchAttributeRequest_FirmwareDownloadExecute)(nil), - (*SetSwitchAttributeRequest_FirmwareBroadcastStop)(nil), - (*SetSwitchAttributeRequest_FirmwareVerifyAndInitSwitch)(nil), - (*SetSwitchAttributeRequest_MacsecObjectList)(nil), - (*SetSwitchAttributeRequest_QosMplsExpToTcMap)(nil), - (*SetSwitchAttributeRequest_QosMplsExpToColorMap)(nil), - (*SetSwitchAttributeRequest_QosTcAndColorToMplsExpMap)(nil), - (*SetSwitchAttributeRequest_FailoverConfigMode)(nil), - (*SetSwitchAttributeRequest_TunnelObjectsList)(nil), - (*SetSwitchAttributeRequest_PreIngressAcl)(nil), - (*SetSwitchAttributeRequest_QosDscpToForwardingClassMap)(nil), - (*SetSwitchAttributeRequest_QosMplsExpToForwardingClassMap)(nil), - (*SetSwitchAttributeRequest_IpsecObjectId)(nil), - (*SetSwitchAttributeRequest_IpsecSaTagTpid)(nil), - } - file_dataplane_standalone_proto_switch_proto_msgTypes[30].OneofWrappers = []interface{}{ - (*SetSwitchTunnelAttributeRequest_LoopbackPacketAction)(nil), - (*SetSwitchTunnelAttributeRequest_TunnelVxlanUdpSportMode)(nil), - (*SetSwitchTunnelAttributeRequest_VxlanUdpSport)(nil), - (*SetSwitchTunnelAttributeRequest_VxlanUdpSportMask)(nil), - } + file_dataplane_standalone_proto_switch_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_switch_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_switch_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_switch_proto_msgTypes[30].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/switch.proto b/dataplane/standalone/proto/switch.proto index 18677c4a..86641a87 100644 --- a/dataplane/standalone/proto/switch.proto +++ b/dataplane/standalone/proto/switch.proto @@ -7,609 +7,567 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum SwitchAttr { - SWITCH_ATTR_UNSPECIFIED = 0; - SWITCH_ATTR_NUMBER_OF_ACTIVE_PORTS = 1; - SWITCH_ATTR_MAX_NUMBER_OF_SUPPORTED_PORTS = 2; - SWITCH_ATTR_PORT_LIST = 3; - SWITCH_ATTR_PORT_MAX_MTU = 4; - SWITCH_ATTR_CPU_PORT = 5; - SWITCH_ATTR_MAX_VIRTUAL_ROUTERS = 6; - SWITCH_ATTR_FDB_TABLE_SIZE = 7; - SWITCH_ATTR_L3_NEIGHBOR_TABLE_SIZE = 8; - SWITCH_ATTR_L3_ROUTE_TABLE_SIZE = 9; - SWITCH_ATTR_LAG_MEMBERS = 10; - SWITCH_ATTR_NUMBER_OF_LAGS = 11; - SWITCH_ATTR_ECMP_MEMBERS = 12; - SWITCH_ATTR_NUMBER_OF_ECMP_GROUPS = 13; - SWITCH_ATTR_NUMBER_OF_UNICAST_QUEUES = 14; - SWITCH_ATTR_NUMBER_OF_MULTICAST_QUEUES = 15; - SWITCH_ATTR_NUMBER_OF_QUEUES = 16; - SWITCH_ATTR_NUMBER_OF_CPU_QUEUES = 17; - SWITCH_ATTR_ON_LINK_ROUTE_SUPPORTED = 18; - SWITCH_ATTR_OPER_STATUS = 19; - SWITCH_ATTR_MAX_NUMBER_OF_TEMP_SENSORS = 20; - SWITCH_ATTR_TEMP_LIST = 21; - SWITCH_ATTR_MAX_TEMP = 22; - SWITCH_ATTR_AVERAGE_TEMP = 23; - SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY = 24; - SWITCH_ATTR_ACL_TABLE_MAXIMUM_PRIORITY = 25; - SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY = 26; - SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY = 27; - SWITCH_ATTR_ACL_TABLE_GROUP_MINIMUM_PRIORITY = 28; - SWITCH_ATTR_ACL_TABLE_GROUP_MAXIMUM_PRIORITY = 29; - SWITCH_ATTR_FDB_DST_USER_META_DATA_RANGE = 30; - SWITCH_ATTR_ROUTE_DST_USER_META_DATA_RANGE = 31; - SWITCH_ATTR_NEIGHBOR_DST_USER_META_DATA_RANGE = 32; - SWITCH_ATTR_PORT_USER_META_DATA_RANGE = 33; - SWITCH_ATTR_VLAN_USER_META_DATA_RANGE = 34; - SWITCH_ATTR_ACL_USER_META_DATA_RANGE = 35; - SWITCH_ATTR_ACL_USER_TRAP_ID_RANGE = 36; - SWITCH_ATTR_DEFAULT_VLAN_ID = 37; - SWITCH_ATTR_DEFAULT_STP_INST_ID = 38; - SWITCH_ATTR_MAX_STP_INSTANCE = 39; - SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID = 40; - SWITCH_ATTR_DEFAULT_OVERRIDE_VIRTUAL_ROUTER_ID = 41; - SWITCH_ATTR_DEFAULT_1Q_BRIDGE_ID = 42; - SWITCH_ATTR_INGRESS_ACL = 43; - SWITCH_ATTR_EGRESS_ACL = 44; - SWITCH_ATTR_QOS_MAX_NUMBER_OF_TRAFFIC_CLASSES = 45; - SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUP_HIERARCHY_LEVELS = 46; - SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUPS_PER_HIERARCHY_LEVEL = 47; - SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP = 48; - SWITCH_ATTR_TOTAL_BUFFER_SIZE = 49; - SWITCH_ATTR_INGRESS_BUFFER_POOL_NUM = 50; - SWITCH_ATTR_EGRESS_BUFFER_POOL_NUM = 51; - SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY = 52; - SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY = 53; - SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY = 54; - SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY = 55; - SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY = 56; - SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY = 57; - SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY = 58; - SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY = 59; - SWITCH_ATTR_AVAILABLE_FDB_ENTRY = 60; - SWITCH_ATTR_AVAILABLE_L2MC_ENTRY = 61; - SWITCH_ATTR_AVAILABLE_IPMC_ENTRY = 62; - SWITCH_ATTR_AVAILABLE_SNAT_ENTRY = 63; - SWITCH_ATTR_AVAILABLE_DNAT_ENTRY = 64; - SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY = 65; - SWITCH_ATTR_AVAILABLE_ACL_TABLE = 66; - SWITCH_ATTR_AVAILABLE_ACL_TABLE_GROUP = 67; - SWITCH_ATTR_AVAILABLE_MY_SID_ENTRY = 68; - SWITCH_ATTR_DEFAULT_TRAP_GROUP = 69; - SWITCH_ATTR_ECMP_HASH = 70; - SWITCH_ATTR_LAG_HASH = 71; - SWITCH_ATTR_RESTART_WARM = 72; - SWITCH_ATTR_WARM_RECOVER = 73; - SWITCH_ATTR_RESTART_TYPE = 74; - SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL = 75; - SWITCH_ATTR_NV_STORAGE_SIZE = 76; - SWITCH_ATTR_MAX_ACL_ACTION_COUNT = 77; - SWITCH_ATTR_MAX_ACL_RANGE_COUNT = 78; - SWITCH_ATTR_ACL_CAPABILITY = 79; - SWITCH_ATTR_MCAST_SNOOPING_CAPABILITY = 80; - SWITCH_ATTR_SWITCHING_MODE = 81; - SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE = 82; - SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE = 83; - SWITCH_ATTR_SRC_MAC_ADDRESS = 84; - SWITCH_ATTR_MAX_LEARNED_ADDRESSES = 85; - SWITCH_ATTR_FDB_AGING_TIME = 86; - SWITCH_ATTR_FDB_UNICAST_MISS_PACKET_ACTION = 87; - SWITCH_ATTR_FDB_BROADCAST_MISS_PACKET_ACTION = 88; - SWITCH_ATTR_FDB_MULTICAST_MISS_PACKET_ACTION = 89; - SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM = 90; - SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED = 91; - SWITCH_ATTR_ECMP_DEFAULT_HASH_OFFSET = 92; - SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH = 93; - SWITCH_ATTR_ECMP_HASH_IPV4 = 94; - SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4 = 95; - SWITCH_ATTR_ECMP_HASH_IPV6 = 96; - SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM = 97; - SWITCH_ATTR_LAG_DEFAULT_HASH_SEED = 98; - SWITCH_ATTR_LAG_DEFAULT_HASH_OFFSET = 99; - SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH = 100; - SWITCH_ATTR_LAG_HASH_IPV4 = 101; - SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4 = 102; - SWITCH_ATTR_LAG_HASH_IPV6 = 103; - SWITCH_ATTR_COUNTER_REFRESH_INTERVAL = 104; - SWITCH_ATTR_QOS_DEFAULT_TC = 105; - SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP = 106; - SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP = 107; - SWITCH_ATTR_QOS_DSCP_TO_TC_MAP = 108; - SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP = 109; - SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP = 110; - SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP = 111; - SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP = 112; - SWITCH_ATTR_SWITCH_SHELL_ENABLE = 113; - SWITCH_ATTR_SWITCH_PROFILE_ID = 114; - SWITCH_ATTR_SWITCH_HARDWARE_INFO = 115; - SWITCH_ATTR_FIRMWARE_PATH_NAME = 116; - SWITCH_ATTR_INIT_SWITCH = 117; - SWITCH_ATTR_SWITCH_STATE_CHANGE_NOTIFY = 118; - SWITCH_ATTR_SWITCH_SHUTDOWN_REQUEST_NOTIFY = 119; - SWITCH_ATTR_FDB_EVENT_NOTIFY = 120; - SWITCH_ATTR_PORT_STATE_CHANGE_NOTIFY = 121; - SWITCH_ATTR_PACKET_EVENT_NOTIFY = 122; - SWITCH_ATTR_FAST_API_ENABLE = 123; - SWITCH_ATTR_MIRROR_TC = 124; - SWITCH_ATTR_ACL_STAGE_INGRESS = 125; - SWITCH_ATTR_ACL_STAGE_EGRESS = 126; - SWITCH_ATTR_SRV6_MAX_SID_DEPTH = 127; - SWITCH_ATTR_SRV6_TLV_TYPE = 128; - SWITCH_ATTR_QOS_NUM_LOSSLESS_QUEUES = 129; - SWITCH_ATTR_QUEUE_PFC_DEADLOCK_NOTIFY = 130; - SWITCH_ATTR_PFC_DLR_PACKET_ACTION = 131; - SWITCH_ATTR_PFC_TC_DLD_INTERVAL_RANGE = 132; - SWITCH_ATTR_PFC_TC_DLD_INTERVAL = 133; - SWITCH_ATTR_PFC_TC_DLR_INTERVAL_RANGE = 134; - SWITCH_ATTR_PFC_TC_DLR_INTERVAL = 135; - SWITCH_ATTR_SUPPORTED_PROTECTED_OBJECT_TYPE = 136; - SWITCH_ATTR_TPID_OUTER_VLAN = 137; - SWITCH_ATTR_TPID_INNER_VLAN = 138; - SWITCH_ATTR_CRC_CHECK_ENABLE = 139; - SWITCH_ATTR_CRC_RECALCULATION_ENABLE = 140; - SWITCH_ATTR_BFD_SESSION_STATE_CHANGE_NOTIFY = 141; - SWITCH_ATTR_NUMBER_OF_BFD_SESSION = 142; - SWITCH_ATTR_MAX_BFD_SESSION = 143; - SWITCH_ATTR_SUPPORTED_IPV4_BFD_SESSION_OFFLOAD_TYPE = 144; - SWITCH_ATTR_SUPPORTED_IPV6_BFD_SESSION_OFFLOAD_TYPE = 145; - SWITCH_ATTR_MIN_BFD_RX = 146; - SWITCH_ATTR_MIN_BFD_TX = 147; - SWITCH_ATTR_ECN_ECT_THRESHOLD_ENABLE = 148; - SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC = 149; - SWITCH_ATTR_VXLAN_DEFAULT_PORT = 150; - SWITCH_ATTR_MAX_MIRROR_SESSION = 151; - SWITCH_ATTR_MAX_SAMPLED_MIRROR_SESSION = 152; - SWITCH_ATTR_SUPPORTED_EXTENDED_STATS_MODE = 153; - SWITCH_ATTR_UNINIT_DATA_PLANE_ON_REMOVAL = 154; - SWITCH_ATTR_TAM_OBJECT_ID = 155; - SWITCH_ATTR_TAM_EVENT_NOTIFY = 156; - SWITCH_ATTR_SUPPORTED_OBJECT_TYPE_LIST = 157; - SWITCH_ATTR_PRE_SHUTDOWN = 158; - SWITCH_ATTR_NAT_ZONE_COUNTER_OBJECT_ID = 159; - SWITCH_ATTR_NAT_ENABLE = 160; - SWITCH_ATTR_HARDWARE_ACCESS_BUS = 161; - SWITCH_ATTR_PLATFROM_CONTEXT = 162; - SWITCH_ATTR_REGISTER_READ = 163; - SWITCH_ATTR_REGISTER_WRITE = 164; - SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST = 165; - SWITCH_ATTR_FIRMWARE_LOAD_METHOD = 166; - SWITCH_ATTR_FIRMWARE_LOAD_TYPE = 167; - SWITCH_ATTR_FIRMWARE_DOWNLOAD_EXECUTE = 168; - SWITCH_ATTR_FIRMWARE_BROADCAST_STOP = 169; - SWITCH_ATTR_FIRMWARE_VERIFY_AND_INIT_SWITCH = 170; - SWITCH_ATTR_FIRMWARE_STATUS = 171; - SWITCH_ATTR_FIRMWARE_MAJOR_VERSION = 172; - SWITCH_ATTR_FIRMWARE_MINOR_VERSION = 173; - SWITCH_ATTR_PORT_CONNECTOR_LIST = 174; - SWITCH_ATTR_PROPOGATE_PORT_STATE_FROM_LINE_TO_SYSTEM_PORT_SUPPORT = 175; - SWITCH_ATTR_TYPE = 176; - SWITCH_ATTR_MACSEC_OBJECT_LIST = 177; - SWITCH_ATTR_QOS_MPLS_EXP_TO_TC_MAP = 178; - SWITCH_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP = 179; - SWITCH_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP = 180; - SWITCH_ATTR_SWITCH_ID = 181; - SWITCH_ATTR_MAX_SYSTEM_CORES = 182; - SWITCH_ATTR_SYSTEM_PORT_CONFIG_LIST = 183; - SWITCH_ATTR_NUMBER_OF_SYSTEM_PORTS = 184; - SWITCH_ATTR_SYSTEM_PORT_LIST = 185; - SWITCH_ATTR_NUMBER_OF_FABRIC_PORTS = 186; - SWITCH_ATTR_FABRIC_PORT_LIST = 187; - SWITCH_ATTR_PACKET_DMA_MEMORY_POOL_SIZE = 188; - SWITCH_ATTR_FAILOVER_CONFIG_MODE = 189; - SWITCH_ATTR_SUPPORTED_FAILOVER_MODE = 190; - SWITCH_ATTR_TUNNEL_OBJECTS_LIST = 191; - SWITCH_ATTR_PACKET_AVAILABLE_DMA_MEMORY_POOL_SIZE = 192; - SWITCH_ATTR_PRE_INGRESS_ACL = 193; - SWITCH_ATTR_AVAILABLE_SNAPT_ENTRY = 194; - SWITCH_ATTR_AVAILABLE_DNAPT_ENTRY = 195; - SWITCH_ATTR_AVAILABLE_DOUBLE_NAPT_ENTRY = 196; - SWITCH_ATTR_SLAVE_MDIO_ADDR_LIST = 197; - SWITCH_ATTR_MY_MAC_TABLE_MINIMUM_PRIORITY = 198; - SWITCH_ATTR_MY_MAC_TABLE_MAXIMUM_PRIORITY = 199; - SWITCH_ATTR_MY_MAC_LIST = 200; - SWITCH_ATTR_INSTALLED_MY_MAC_ENTRIES = 201; - SWITCH_ATTR_AVAILABLE_MY_MAC_ENTRIES = 202; - SWITCH_ATTR_MAX_NUMBER_OF_FORWARDING_CLASSES = 203; - SWITCH_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP = 204; - SWITCH_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP = 205; - SWITCH_ATTR_IPSEC_OBJECT_ID = 206; - SWITCH_ATTR_IPSEC_SA_TAG_TPID = 207; - SWITCH_ATTR_IPSEC_SA_STATUS_CHANGE_NOTIFY = 208; + SWITCH_ATTR_UNSPECIFIED = 0; + SWITCH_ATTR_NUMBER_OF_ACTIVE_PORTS = 1; + SWITCH_ATTR_MAX_NUMBER_OF_SUPPORTED_PORTS = 2; + SWITCH_ATTR_PORT_LIST = 3; + SWITCH_ATTR_PORT_MAX_MTU = 4; + SWITCH_ATTR_CPU_PORT = 5; + SWITCH_ATTR_MAX_VIRTUAL_ROUTERS = 6; + SWITCH_ATTR_FDB_TABLE_SIZE = 7; + SWITCH_ATTR_L3_NEIGHBOR_TABLE_SIZE = 8; + SWITCH_ATTR_L3_ROUTE_TABLE_SIZE = 9; + SWITCH_ATTR_LAG_MEMBERS = 10; + SWITCH_ATTR_NUMBER_OF_LAGS = 11; + SWITCH_ATTR_ECMP_MEMBERS = 12; + SWITCH_ATTR_NUMBER_OF_ECMP_GROUPS = 13; + SWITCH_ATTR_NUMBER_OF_UNICAST_QUEUES = 14; + SWITCH_ATTR_NUMBER_OF_MULTICAST_QUEUES = 15; + SWITCH_ATTR_NUMBER_OF_QUEUES = 16; + SWITCH_ATTR_NUMBER_OF_CPU_QUEUES = 17; + SWITCH_ATTR_ON_LINK_ROUTE_SUPPORTED = 18; + SWITCH_ATTR_OPER_STATUS = 19; + SWITCH_ATTR_MAX_NUMBER_OF_TEMP_SENSORS = 20; + SWITCH_ATTR_TEMP_LIST = 21; + SWITCH_ATTR_MAX_TEMP = 22; + SWITCH_ATTR_AVERAGE_TEMP = 23; + SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY = 24; + SWITCH_ATTR_ACL_TABLE_MAXIMUM_PRIORITY = 25; + SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY = 26; + SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY = 27; + SWITCH_ATTR_ACL_TABLE_GROUP_MINIMUM_PRIORITY = 28; + SWITCH_ATTR_ACL_TABLE_GROUP_MAXIMUM_PRIORITY = 29; + SWITCH_ATTR_FDB_DST_USER_META_DATA_RANGE = 30; + SWITCH_ATTR_ROUTE_DST_USER_META_DATA_RANGE = 31; + SWITCH_ATTR_NEIGHBOR_DST_USER_META_DATA_RANGE = 32; + SWITCH_ATTR_PORT_USER_META_DATA_RANGE = 33; + SWITCH_ATTR_VLAN_USER_META_DATA_RANGE = 34; + SWITCH_ATTR_ACL_USER_META_DATA_RANGE = 35; + SWITCH_ATTR_ACL_USER_TRAP_ID_RANGE = 36; + SWITCH_ATTR_DEFAULT_VLAN_ID = 37; + SWITCH_ATTR_DEFAULT_STP_INST_ID = 38; + SWITCH_ATTR_MAX_STP_INSTANCE = 39; + SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID = 40; + SWITCH_ATTR_DEFAULT_OVERRIDE_VIRTUAL_ROUTER_ID = 41; + SWITCH_ATTR_DEFAULT_1Q_BRIDGE_ID = 42; + SWITCH_ATTR_INGRESS_ACL = 43; + SWITCH_ATTR_EGRESS_ACL = 44; + SWITCH_ATTR_QOS_MAX_NUMBER_OF_TRAFFIC_CLASSES = 45; + SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUP_HIERARCHY_LEVELS = 46; + SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUPS_PER_HIERARCHY_LEVEL = 47; + SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP = 48; + SWITCH_ATTR_TOTAL_BUFFER_SIZE = 49; + SWITCH_ATTR_INGRESS_BUFFER_POOL_NUM = 50; + SWITCH_ATTR_EGRESS_BUFFER_POOL_NUM = 51; + SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY = 52; + SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY = 53; + SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY = 54; + SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY = 55; + SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY = 56; + SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY = 57; + SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY = 58; + SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY = 59; + SWITCH_ATTR_AVAILABLE_FDB_ENTRY = 60; + SWITCH_ATTR_AVAILABLE_L2MC_ENTRY = 61; + SWITCH_ATTR_AVAILABLE_IPMC_ENTRY = 62; + SWITCH_ATTR_AVAILABLE_SNAT_ENTRY = 63; + SWITCH_ATTR_AVAILABLE_DNAT_ENTRY = 64; + SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY = 65; + SWITCH_ATTR_AVAILABLE_ACL_TABLE = 66; + SWITCH_ATTR_AVAILABLE_ACL_TABLE_GROUP = 67; + SWITCH_ATTR_AVAILABLE_MY_SID_ENTRY = 68; + SWITCH_ATTR_DEFAULT_TRAP_GROUP = 69; + SWITCH_ATTR_ECMP_HASH = 70; + SWITCH_ATTR_LAG_HASH = 71; + SWITCH_ATTR_RESTART_WARM = 72; + SWITCH_ATTR_WARM_RECOVER = 73; + SWITCH_ATTR_RESTART_TYPE = 74; + SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL = 75; + SWITCH_ATTR_NV_STORAGE_SIZE = 76; + SWITCH_ATTR_MAX_ACL_ACTION_COUNT = 77; + SWITCH_ATTR_MAX_ACL_RANGE_COUNT = 78; + SWITCH_ATTR_ACL_CAPABILITY = 79; + SWITCH_ATTR_MCAST_SNOOPING_CAPABILITY = 80; + SWITCH_ATTR_SWITCHING_MODE = 81; + SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE = 82; + SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE = 83; + SWITCH_ATTR_SRC_MAC_ADDRESS = 84; + SWITCH_ATTR_MAX_LEARNED_ADDRESSES = 85; + SWITCH_ATTR_FDB_AGING_TIME = 86; + SWITCH_ATTR_FDB_UNICAST_MISS_PACKET_ACTION = 87; + SWITCH_ATTR_FDB_BROADCAST_MISS_PACKET_ACTION = 88; + SWITCH_ATTR_FDB_MULTICAST_MISS_PACKET_ACTION = 89; + SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM = 90; + SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED = 91; + SWITCH_ATTR_ECMP_DEFAULT_HASH_OFFSET = 92; + SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH = 93; + SWITCH_ATTR_ECMP_HASH_IPV4 = 94; + SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4 = 95; + SWITCH_ATTR_ECMP_HASH_IPV6 = 96; + SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM = 97; + SWITCH_ATTR_LAG_DEFAULT_HASH_SEED = 98; + SWITCH_ATTR_LAG_DEFAULT_HASH_OFFSET = 99; + SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH = 100; + SWITCH_ATTR_LAG_HASH_IPV4 = 101; + SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4 = 102; + SWITCH_ATTR_LAG_HASH_IPV6 = 103; + SWITCH_ATTR_COUNTER_REFRESH_INTERVAL = 104; + SWITCH_ATTR_QOS_DEFAULT_TC = 105; + SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP = 106; + SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP = 107; + SWITCH_ATTR_QOS_DSCP_TO_TC_MAP = 108; + SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP = 109; + SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP = 110; + SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP = 111; + SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP = 112; + SWITCH_ATTR_SWITCH_SHELL_ENABLE = 113; + SWITCH_ATTR_SWITCH_PROFILE_ID = 114; + SWITCH_ATTR_SWITCH_HARDWARE_INFO = 115; + SWITCH_ATTR_FIRMWARE_PATH_NAME = 116; + SWITCH_ATTR_INIT_SWITCH = 117; + SWITCH_ATTR_SWITCH_STATE_CHANGE_NOTIFY = 118; + SWITCH_ATTR_SWITCH_SHUTDOWN_REQUEST_NOTIFY = 119; + SWITCH_ATTR_FDB_EVENT_NOTIFY = 120; + SWITCH_ATTR_PORT_STATE_CHANGE_NOTIFY = 121; + SWITCH_ATTR_PACKET_EVENT_NOTIFY = 122; + SWITCH_ATTR_FAST_API_ENABLE = 123; + SWITCH_ATTR_MIRROR_TC = 124; + SWITCH_ATTR_ACL_STAGE_INGRESS = 125; + SWITCH_ATTR_ACL_STAGE_EGRESS = 126; + SWITCH_ATTR_SRV6_MAX_SID_DEPTH = 127; + SWITCH_ATTR_SRV6_TLV_TYPE = 128; + SWITCH_ATTR_QOS_NUM_LOSSLESS_QUEUES = 129; + SWITCH_ATTR_QUEUE_PFC_DEADLOCK_NOTIFY = 130; + SWITCH_ATTR_PFC_DLR_PACKET_ACTION = 131; + SWITCH_ATTR_PFC_TC_DLD_INTERVAL_RANGE = 132; + SWITCH_ATTR_PFC_TC_DLD_INTERVAL = 133; + SWITCH_ATTR_PFC_TC_DLR_INTERVAL_RANGE = 134; + SWITCH_ATTR_PFC_TC_DLR_INTERVAL = 135; + SWITCH_ATTR_SUPPORTED_PROTECTED_OBJECT_TYPE = 136; + SWITCH_ATTR_TPID_OUTER_VLAN = 137; + SWITCH_ATTR_TPID_INNER_VLAN = 138; + SWITCH_ATTR_CRC_CHECK_ENABLE = 139; + SWITCH_ATTR_CRC_RECALCULATION_ENABLE = 140; + SWITCH_ATTR_BFD_SESSION_STATE_CHANGE_NOTIFY = 141; + SWITCH_ATTR_NUMBER_OF_BFD_SESSION = 142; + SWITCH_ATTR_MAX_BFD_SESSION = 143; + SWITCH_ATTR_SUPPORTED_IPV4_BFD_SESSION_OFFLOAD_TYPE = 144; + SWITCH_ATTR_SUPPORTED_IPV6_BFD_SESSION_OFFLOAD_TYPE = 145; + SWITCH_ATTR_MIN_BFD_RX = 146; + SWITCH_ATTR_MIN_BFD_TX = 147; + SWITCH_ATTR_ECN_ECT_THRESHOLD_ENABLE = 148; + SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC = 149; + SWITCH_ATTR_VXLAN_DEFAULT_PORT = 150; + SWITCH_ATTR_MAX_MIRROR_SESSION = 151; + SWITCH_ATTR_MAX_SAMPLED_MIRROR_SESSION = 152; + SWITCH_ATTR_SUPPORTED_EXTENDED_STATS_MODE = 153; + SWITCH_ATTR_UNINIT_DATA_PLANE_ON_REMOVAL = 154; + SWITCH_ATTR_TAM_OBJECT_ID = 155; + SWITCH_ATTR_TAM_EVENT_NOTIFY = 156; + SWITCH_ATTR_SUPPORTED_OBJECT_TYPE_LIST = 157; + SWITCH_ATTR_PRE_SHUTDOWN = 158; + SWITCH_ATTR_NAT_ZONE_COUNTER_OBJECT_ID = 159; + SWITCH_ATTR_NAT_ENABLE = 160; + SWITCH_ATTR_HARDWARE_ACCESS_BUS = 161; + SWITCH_ATTR_PLATFROM_CONTEXT = 162; + SWITCH_ATTR_REGISTER_READ = 163; + SWITCH_ATTR_REGISTER_WRITE = 164; + SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST = 165; + SWITCH_ATTR_FIRMWARE_LOAD_METHOD = 166; + SWITCH_ATTR_FIRMWARE_LOAD_TYPE = 167; + SWITCH_ATTR_FIRMWARE_DOWNLOAD_EXECUTE = 168; + SWITCH_ATTR_FIRMWARE_BROADCAST_STOP = 169; + SWITCH_ATTR_FIRMWARE_VERIFY_AND_INIT_SWITCH = 170; + SWITCH_ATTR_FIRMWARE_STATUS = 171; + SWITCH_ATTR_FIRMWARE_MAJOR_VERSION = 172; + SWITCH_ATTR_FIRMWARE_MINOR_VERSION = 173; + SWITCH_ATTR_PORT_CONNECTOR_LIST = 174; + SWITCH_ATTR_PROPOGATE_PORT_STATE_FROM_LINE_TO_SYSTEM_PORT_SUPPORT = 175; + SWITCH_ATTR_TYPE = 176; + SWITCH_ATTR_MACSEC_OBJECT_LIST = 177; + SWITCH_ATTR_QOS_MPLS_EXP_TO_TC_MAP = 178; + SWITCH_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP = 179; + SWITCH_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP = 180; + SWITCH_ATTR_SWITCH_ID = 181; + SWITCH_ATTR_MAX_SYSTEM_CORES = 182; + SWITCH_ATTR_SYSTEM_PORT_CONFIG_LIST = 183; + SWITCH_ATTR_NUMBER_OF_SYSTEM_PORTS = 184; + SWITCH_ATTR_SYSTEM_PORT_LIST = 185; + SWITCH_ATTR_NUMBER_OF_FABRIC_PORTS = 186; + SWITCH_ATTR_FABRIC_PORT_LIST = 187; + SWITCH_ATTR_PACKET_DMA_MEMORY_POOL_SIZE = 188; + SWITCH_ATTR_FAILOVER_CONFIG_MODE = 189; + SWITCH_ATTR_SUPPORTED_FAILOVER_MODE = 190; + SWITCH_ATTR_TUNNEL_OBJECTS_LIST = 191; + SWITCH_ATTR_PACKET_AVAILABLE_DMA_MEMORY_POOL_SIZE = 192; + SWITCH_ATTR_PRE_INGRESS_ACL = 193; + SWITCH_ATTR_AVAILABLE_SNAPT_ENTRY = 194; + SWITCH_ATTR_AVAILABLE_DNAPT_ENTRY = 195; + SWITCH_ATTR_AVAILABLE_DOUBLE_NAPT_ENTRY = 196; + SWITCH_ATTR_SLAVE_MDIO_ADDR_LIST = 197; + SWITCH_ATTR_MY_MAC_TABLE_MINIMUM_PRIORITY = 198; + SWITCH_ATTR_MY_MAC_TABLE_MAXIMUM_PRIORITY = 199; + SWITCH_ATTR_MY_MAC_LIST = 200; + SWITCH_ATTR_INSTALLED_MY_MAC_ENTRIES = 201; + SWITCH_ATTR_AVAILABLE_MY_MAC_ENTRIES = 202; + SWITCH_ATTR_MAX_NUMBER_OF_FORWARDING_CLASSES = 203; + SWITCH_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP = 204; + SWITCH_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP = 205; + SWITCH_ATTR_IPSEC_OBJECT_ID = 206; + SWITCH_ATTR_IPSEC_SA_TAG_TPID = 207; + SWITCH_ATTR_IPSEC_SA_STATUS_CHANGE_NOTIFY = 208; } enum SwitchTunnelAttr { - SWITCH_TUNNEL_ATTR_UNSPECIFIED = 0; - SWITCH_TUNNEL_ATTR_TUNNEL_TYPE = 1; - SWITCH_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION = 2; - SWITCH_TUNNEL_ATTR_TUNNEL_ENCAP_ECN_MODE = 3; - SWITCH_TUNNEL_ATTR_ENCAP_MAPPERS = 4; - SWITCH_TUNNEL_ATTR_TUNNEL_DECAP_ECN_MODE = 5; - SWITCH_TUNNEL_ATTR_DECAP_MAPPERS = 6; - SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE = 7; - SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT = 8; - SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK = 9; + SWITCH_TUNNEL_ATTR_UNSPECIFIED = 0; + SWITCH_TUNNEL_ATTR_TUNNEL_TYPE = 1; + SWITCH_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION = 2; + SWITCH_TUNNEL_ATTR_TUNNEL_ENCAP_ECN_MODE = 3; + SWITCH_TUNNEL_ATTR_ENCAP_MAPPERS = 4; + SWITCH_TUNNEL_ATTR_TUNNEL_DECAP_ECN_MODE = 5; + SWITCH_TUNNEL_ATTR_DECAP_MAPPERS = 6; + SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE = 7; + SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT = 8; + SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK = 9; } message CreateSwitchRequest { - - uint64 ingress_acl = 1; - uint64 egress_acl = 2; - bool restart_warm = 3; - bool warm_recover = 4; - SwitchSwitchingMode switching_mode = 5; - bool bcast_cpu_flood_enable = 6; - bool mcast_cpu_flood_enable = 7; - bytes src_mac_address = 8; - uint32 max_learned_addresses = 9; - uint32 fdb_aging_time = 10; - PacketAction fdb_unicast_miss_packet_action = 11; - PacketAction fdb_broadcast_miss_packet_action = 12; - PacketAction fdb_multicast_miss_packet_action = 13; - HashAlgorithm ecmp_default_hash_algorithm = 14; - uint32 ecmp_default_hash_seed = 15; - uint32 ecmp_default_hash_offset = 16; - bool ecmp_default_symmetric_hash = 17; - uint64 ecmp_hash_ipv4 = 18; - uint64 ecmp_hash_ipv4_in_ipv4 = 19; - uint64 ecmp_hash_ipv6 = 20; - HashAlgorithm lag_default_hash_algorithm = 21; - uint32 lag_default_hash_seed = 22; - uint32 lag_default_hash_offset = 23; - bool lag_default_symmetric_hash = 24; - uint64 lag_hash_ipv4 = 25; - uint64 lag_hash_ipv4_in_ipv4 = 26; - uint64 lag_hash_ipv6 = 27; - uint32 counter_refresh_interval = 28; - uint32 qos_default_tc = 29; - uint64 qos_dot1p_to_tc_map = 30; - uint64 qos_dot1p_to_color_map = 31; - uint64 qos_dscp_to_tc_map = 32; - uint64 qos_dscp_to_color_map = 33; - uint64 qos_tc_to_queue_map = 34; - uint64 qos_tc_and_color_to_dot1p_map = 35; - uint64 qos_tc_and_color_to_dscp_map = 36; - bool switch_shell_enable = 37; - uint32 switch_profile_id = 38; - repeated int32 switch_hardware_info = 39; - repeated int32 firmware_path_name = 40; - bool init_switch = 41; - bool fast_api_enable = 42; - uint32 mirror_tc = 43; - PacketAction pfc_dlr_packet_action = 44; - repeated UintMap pfc_tc_dld_interval = 45; - repeated UintMap pfc_tc_dlr_interval = 46; - uint32 tpid_outer_vlan = 47; - uint32 tpid_inner_vlan = 48; - bool crc_check_enable = 49; - bool crc_recalculation_enable = 50; - bool ecn_ect_threshold_enable = 51; - bytes vxlan_default_router_mac = 52; - uint32 vxlan_default_port = 53; - bool uninit_data_plane_on_removal = 54; - repeated uint64 tam_object_id = 55; - bool pre_shutdown = 56; - uint64 nat_zone_counter_object_id = 57; - bool nat_enable = 58; - SwitchHardwareAccessBus hardware_access_bus = 59; - uint64 platfrom_context = 60; - bool firmware_download_broadcast = 61; - SwitchFirmwareLoadMethod firmware_load_method = 62; - SwitchFirmwareLoadType firmware_load_type = 63; - bool firmware_download_execute = 64; - bool firmware_broadcast_stop = 65; - bool firmware_verify_and_init_switch = 66; - SwitchType type = 67; - repeated uint64 macsec_object_list = 68; - uint64 qos_mpls_exp_to_tc_map = 69; - uint64 qos_mpls_exp_to_color_map = 70; - uint64 qos_tc_and_color_to_mpls_exp_map = 71; - uint32 switch_id = 72; - uint32 max_system_cores = 73; - repeated SystemPortConfig system_port_config_list = 74; - SwitchFailoverConfigMode failover_config_mode = 75; - repeated uint64 tunnel_objects_list = 76; - uint64 pre_ingress_acl = 77; - repeated uint32 slave_mdio_addr_list = 78; - uint64 qos_dscp_to_forwarding_class_map = 79; - uint64 qos_mpls_exp_to_forwarding_class_map = 80; - uint64 ipsec_object_id = 81; - uint32 ipsec_sa_tag_tpid = 82; - + optional uint64 ingress_acl = 1 [(attr_enum_value) = 43]; + optional uint64 egress_acl = 2 [(attr_enum_value) = 44]; + optional bool restart_warm = 3 [(attr_enum_value) = 72]; + optional bool warm_recover = 4 [(attr_enum_value) = 73]; + optional SwitchSwitchingMode switching_mode = 5 [(attr_enum_value) = 81]; + optional bool bcast_cpu_flood_enable = 6 [(attr_enum_value) = 82]; + optional bool mcast_cpu_flood_enable = 7 [(attr_enum_value) = 83]; + optional bytes src_mac_address = 8 [(attr_enum_value) = 84]; + optional uint32 max_learned_addresses = 9 [(attr_enum_value) = 85]; + optional uint32 fdb_aging_time = 10 [(attr_enum_value) = 86]; + optional PacketAction fdb_unicast_miss_packet_action = 11 + [(attr_enum_value) = 87]; + optional PacketAction fdb_broadcast_miss_packet_action = 12 + [(attr_enum_value) = 88]; + optional PacketAction fdb_multicast_miss_packet_action = 13 + [(attr_enum_value) = 89]; + optional HashAlgorithm ecmp_default_hash_algorithm = 14 + [(attr_enum_value) = 90]; + optional uint32 ecmp_default_hash_seed = 15 [(attr_enum_value) = 91]; + optional uint32 ecmp_default_hash_offset = 16 [(attr_enum_value) = 92]; + optional bool ecmp_default_symmetric_hash = 17 [(attr_enum_value) = 93]; + optional uint64 ecmp_hash_ipv4 = 18 [(attr_enum_value) = 94]; + optional uint64 ecmp_hash_ipv4_in_ipv4 = 19 [(attr_enum_value) = 95]; + optional uint64 ecmp_hash_ipv6 = 20 [(attr_enum_value) = 96]; + optional HashAlgorithm lag_default_hash_algorithm = 21 + [(attr_enum_value) = 97]; + optional uint32 lag_default_hash_seed = 22 [(attr_enum_value) = 98]; + optional uint32 lag_default_hash_offset = 23 [(attr_enum_value) = 99]; + optional bool lag_default_symmetric_hash = 24 [(attr_enum_value) = 100]; + optional uint64 lag_hash_ipv4 = 25 [(attr_enum_value) = 101]; + optional uint64 lag_hash_ipv4_in_ipv4 = 26 [(attr_enum_value) = 102]; + optional uint64 lag_hash_ipv6 = 27 [(attr_enum_value) = 103]; + optional uint32 counter_refresh_interval = 28 [(attr_enum_value) = 104]; + optional uint32 qos_default_tc = 29 [(attr_enum_value) = 105]; + optional uint64 qos_dot1p_to_tc_map = 30 [(attr_enum_value) = 106]; + optional uint64 qos_dot1p_to_color_map = 31 [(attr_enum_value) = 107]; + optional uint64 qos_dscp_to_tc_map = 32 [(attr_enum_value) = 108]; + optional uint64 qos_dscp_to_color_map = 33 [(attr_enum_value) = 109]; + optional uint64 qos_tc_to_queue_map = 34 [(attr_enum_value) = 110]; + optional uint64 qos_tc_and_color_to_dot1p_map = 35 [(attr_enum_value) = 111]; + optional uint64 qos_tc_and_color_to_dscp_map = 36 [(attr_enum_value) = 112]; + optional bool switch_shell_enable = 37 [(attr_enum_value) = 113]; + optional uint32 switch_profile_id = 38 [(attr_enum_value) = 114]; + repeated int32 switch_hardware_info = 39 [(attr_enum_value) = 115]; + repeated int32 firmware_path_name = 40 [(attr_enum_value) = 116]; + optional bool init_switch = 41 [(attr_enum_value) = 117]; + optional bool fast_api_enable = 42 [(attr_enum_value) = 123]; + optional uint32 mirror_tc = 43 [(attr_enum_value) = 124]; + optional PacketAction pfc_dlr_packet_action = 44 [(attr_enum_value) = 131]; + repeated UintMap pfc_tc_dld_interval = 45 [(attr_enum_value) = 133]; + repeated UintMap pfc_tc_dlr_interval = 46 [(attr_enum_value) = 135]; + optional uint32 tpid_outer_vlan = 47 [(attr_enum_value) = 137]; + optional uint32 tpid_inner_vlan = 48 [(attr_enum_value) = 138]; + optional bool crc_check_enable = 49 [(attr_enum_value) = 139]; + optional bool crc_recalculation_enable = 50 [(attr_enum_value) = 140]; + optional bool ecn_ect_threshold_enable = 51 [(attr_enum_value) = 148]; + optional bytes vxlan_default_router_mac = 52 [(attr_enum_value) = 149]; + optional uint32 vxlan_default_port = 53 [(attr_enum_value) = 150]; + optional bool uninit_data_plane_on_removal = 54 [(attr_enum_value) = 154]; + repeated uint64 tam_object_id = 55 [(attr_enum_value) = 155]; + optional bool pre_shutdown = 56 [(attr_enum_value) = 158]; + optional uint64 nat_zone_counter_object_id = 57 [(attr_enum_value) = 159]; + optional bool nat_enable = 58 [(attr_enum_value) = 160]; + optional SwitchHardwareAccessBus hardware_access_bus = 59 + [(attr_enum_value) = 161]; + optional uint64 platfrom_context = 60 [(attr_enum_value) = 162]; + optional bool firmware_download_broadcast = 61 [(attr_enum_value) = 165]; + optional SwitchFirmwareLoadMethod firmware_load_method = 62 + [(attr_enum_value) = 166]; + optional SwitchFirmwareLoadType firmware_load_type = 63 + [(attr_enum_value) = 167]; + optional bool firmware_download_execute = 64 [(attr_enum_value) = 168]; + optional bool firmware_broadcast_stop = 65 [(attr_enum_value) = 169]; + optional bool firmware_verify_and_init_switch = 66 [(attr_enum_value) = 170]; + optional SwitchType type = 67 [(attr_enum_value) = 176]; + repeated uint64 macsec_object_list = 68 [(attr_enum_value) = 177]; + optional uint64 qos_mpls_exp_to_tc_map = 69 [(attr_enum_value) = 178]; + optional uint64 qos_mpls_exp_to_color_map = 70 [(attr_enum_value) = 179]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 71 + [(attr_enum_value) = 180]; + optional uint32 switch_id = 72 [(attr_enum_value) = 181]; + optional uint32 max_system_cores = 73 [(attr_enum_value) = 182]; + repeated SystemPortConfig system_port_config_list = 74 + [(attr_enum_value) = 183]; + optional SwitchFailoverConfigMode failover_config_mode = 75 + [(attr_enum_value) = 189]; + repeated uint64 tunnel_objects_list = 76 [(attr_enum_value) = 191]; + optional uint64 pre_ingress_acl = 77 [(attr_enum_value) = 193]; + repeated uint32 slave_mdio_addr_list = 78 [(attr_enum_value) = 197]; + optional uint64 qos_dscp_to_forwarding_class_map = 79 + [(attr_enum_value) = 204]; + optional uint64 qos_mpls_exp_to_forwarding_class_map = 80 + [(attr_enum_value) = 205]; + optional uint64 ipsec_object_id = 81 [(attr_enum_value) = 206]; + optional uint32 ipsec_sa_tag_tpid = 82 [(attr_enum_value) = 207]; } message CreateSwitchResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveSwitchRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveSwitchResponse { - - -} +message RemoveSwitchResponse {} message SetSwitchAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 ingress_acl = 2; - uint64 egress_acl = 3; - bool restart_warm = 4; - bool warm_recover = 5; - SwitchSwitchingMode switching_mode = 6; - bool bcast_cpu_flood_enable = 7; - bool mcast_cpu_flood_enable = 8; - bytes src_mac_address = 9; - uint32 max_learned_addresses = 10; - uint32 fdb_aging_time = 11; - PacketAction fdb_unicast_miss_packet_action = 12; - PacketAction fdb_broadcast_miss_packet_action = 13; - PacketAction fdb_multicast_miss_packet_action = 14; - HashAlgorithm ecmp_default_hash_algorithm = 15; - uint32 ecmp_default_hash_seed = 16; - uint32 ecmp_default_hash_offset = 17; - bool ecmp_default_symmetric_hash = 18; - uint64 ecmp_hash_ipv4 = 19; - uint64 ecmp_hash_ipv4_in_ipv4 = 20; - uint64 ecmp_hash_ipv6 = 21; - HashAlgorithm lag_default_hash_algorithm = 22; - uint32 lag_default_hash_seed = 23; - uint32 lag_default_hash_offset = 24; - bool lag_default_symmetric_hash = 25; - uint64 lag_hash_ipv4 = 26; - uint64 lag_hash_ipv4_in_ipv4 = 27; - uint64 lag_hash_ipv6 = 28; - uint32 counter_refresh_interval = 29; - uint32 qos_default_tc = 30; - uint64 qos_dot1p_to_tc_map = 31; - uint64 qos_dot1p_to_color_map = 32; - uint64 qos_dscp_to_tc_map = 33; - uint64 qos_dscp_to_color_map = 34; - uint64 qos_tc_to_queue_map = 35; - uint64 qos_tc_and_color_to_dot1p_map = 36; - uint64 qos_tc_and_color_to_dscp_map = 37; - bool switch_shell_enable = 38; - bool fast_api_enable = 39; - uint32 mirror_tc = 40; - PacketAction pfc_dlr_packet_action = 41; - UintMapList pfc_tc_dld_interval = 42; - UintMapList pfc_tc_dlr_interval = 43; - uint32 tpid_outer_vlan = 44; - uint32 tpid_inner_vlan = 45; - bool crc_check_enable = 46; - bool crc_recalculation_enable = 47; - bool ecn_ect_threshold_enable = 48; - bytes vxlan_default_router_mac = 49; - uint32 vxlan_default_port = 50; - bool uninit_data_plane_on_removal = 51; - Uint64List tam_object_id = 52; - bool pre_shutdown = 53; - uint64 nat_zone_counter_object_id = 54; - bool nat_enable = 55; - bool firmware_download_execute = 56; - bool firmware_broadcast_stop = 57; - bool firmware_verify_and_init_switch = 58; - Uint64List macsec_object_list = 59; - uint64 qos_mpls_exp_to_tc_map = 60; - uint64 qos_mpls_exp_to_color_map = 61; - uint64 qos_tc_and_color_to_mpls_exp_map = 62; - SwitchFailoverConfigMode failover_config_mode = 63; - Uint64List tunnel_objects_list = 64; - uint64 pre_ingress_acl = 65; - uint64 qos_dscp_to_forwarding_class_map = 66; - uint64 qos_mpls_exp_to_forwarding_class_map = 67; - uint64 ipsec_object_id = 68; - uint32 ipsec_sa_tag_tpid = 69; - } -} - -message SetSwitchAttributeResponse { - - -} - -message SwitchStateChangeNotificationRequest { - - -} + uint64 oid = 1; + optional uint64 ingress_acl = 2 [(attr_enum_value) = 43]; + optional uint64 egress_acl = 3 [(attr_enum_value) = 44]; + optional bool restart_warm = 4 [(attr_enum_value) = 72]; + optional bool warm_recover = 5 [(attr_enum_value) = 73]; + optional SwitchSwitchingMode switching_mode = 6 [(attr_enum_value) = 81]; + optional bool bcast_cpu_flood_enable = 7 [(attr_enum_value) = 82]; + optional bool mcast_cpu_flood_enable = 8 [(attr_enum_value) = 83]; + optional bytes src_mac_address = 9 [(attr_enum_value) = 84]; + optional uint32 max_learned_addresses = 10 [(attr_enum_value) = 85]; + optional uint32 fdb_aging_time = 11 [(attr_enum_value) = 86]; + optional PacketAction fdb_unicast_miss_packet_action = 12 + [(attr_enum_value) = 87]; + optional PacketAction fdb_broadcast_miss_packet_action = 13 + [(attr_enum_value) = 88]; + optional PacketAction fdb_multicast_miss_packet_action = 14 + [(attr_enum_value) = 89]; + optional HashAlgorithm ecmp_default_hash_algorithm = 15 + [(attr_enum_value) = 90]; + optional uint32 ecmp_default_hash_seed = 16 [(attr_enum_value) = 91]; + optional uint32 ecmp_default_hash_offset = 17 [(attr_enum_value) = 92]; + optional bool ecmp_default_symmetric_hash = 18 [(attr_enum_value) = 93]; + optional uint64 ecmp_hash_ipv4 = 19 [(attr_enum_value) = 94]; + optional uint64 ecmp_hash_ipv4_in_ipv4 = 20 [(attr_enum_value) = 95]; + optional uint64 ecmp_hash_ipv6 = 21 [(attr_enum_value) = 96]; + optional HashAlgorithm lag_default_hash_algorithm = 22 + [(attr_enum_value) = 97]; + optional uint32 lag_default_hash_seed = 23 [(attr_enum_value) = 98]; + optional uint32 lag_default_hash_offset = 24 [(attr_enum_value) = 99]; + optional bool lag_default_symmetric_hash = 25 [(attr_enum_value) = 100]; + optional uint64 lag_hash_ipv4 = 26 [(attr_enum_value) = 101]; + optional uint64 lag_hash_ipv4_in_ipv4 = 27 [(attr_enum_value) = 102]; + optional uint64 lag_hash_ipv6 = 28 [(attr_enum_value) = 103]; + optional uint32 counter_refresh_interval = 29 [(attr_enum_value) = 104]; + optional uint32 qos_default_tc = 30 [(attr_enum_value) = 105]; + optional uint64 qos_dot1p_to_tc_map = 31 [(attr_enum_value) = 106]; + optional uint64 qos_dot1p_to_color_map = 32 [(attr_enum_value) = 107]; + optional uint64 qos_dscp_to_tc_map = 33 [(attr_enum_value) = 108]; + optional uint64 qos_dscp_to_color_map = 34 [(attr_enum_value) = 109]; + optional uint64 qos_tc_to_queue_map = 35 [(attr_enum_value) = 110]; + optional uint64 qos_tc_and_color_to_dot1p_map = 36 [(attr_enum_value) = 111]; + optional uint64 qos_tc_and_color_to_dscp_map = 37 [(attr_enum_value) = 112]; + optional bool switch_shell_enable = 38 [(attr_enum_value) = 113]; + optional bool fast_api_enable = 39 [(attr_enum_value) = 123]; + optional uint32 mirror_tc = 40 [(attr_enum_value) = 124]; + optional PacketAction pfc_dlr_packet_action = 41 [(attr_enum_value) = 131]; + repeated UintMap pfc_tc_dld_interval = 42 [(attr_enum_value) = 133]; + repeated UintMap pfc_tc_dlr_interval = 43 [(attr_enum_value) = 135]; + optional uint32 tpid_outer_vlan = 44 [(attr_enum_value) = 137]; + optional uint32 tpid_inner_vlan = 45 [(attr_enum_value) = 138]; + optional bool crc_check_enable = 46 [(attr_enum_value) = 139]; + optional bool crc_recalculation_enable = 47 [(attr_enum_value) = 140]; + optional bool ecn_ect_threshold_enable = 48 [(attr_enum_value) = 148]; + optional bytes vxlan_default_router_mac = 49 [(attr_enum_value) = 149]; + optional uint32 vxlan_default_port = 50 [(attr_enum_value) = 150]; + optional bool uninit_data_plane_on_removal = 51 [(attr_enum_value) = 154]; + repeated uint64 tam_object_id = 52 [(attr_enum_value) = 155]; + optional bool pre_shutdown = 53 [(attr_enum_value) = 158]; + optional uint64 nat_zone_counter_object_id = 54 [(attr_enum_value) = 159]; + optional bool nat_enable = 55 [(attr_enum_value) = 160]; + optional bool firmware_download_execute = 56 [(attr_enum_value) = 168]; + optional bool firmware_broadcast_stop = 57 [(attr_enum_value) = 169]; + optional bool firmware_verify_and_init_switch = 58 [(attr_enum_value) = 170]; + repeated uint64 macsec_object_list = 59 [(attr_enum_value) = 177]; + optional uint64 qos_mpls_exp_to_tc_map = 60 [(attr_enum_value) = 178]; + optional uint64 qos_mpls_exp_to_color_map = 61 [(attr_enum_value) = 179]; + optional uint64 qos_tc_and_color_to_mpls_exp_map = 62 + [(attr_enum_value) = 180]; + optional SwitchFailoverConfigMode failover_config_mode = 63 + [(attr_enum_value) = 189]; + repeated uint64 tunnel_objects_list = 64 [(attr_enum_value) = 191]; + optional uint64 pre_ingress_acl = 65 [(attr_enum_value) = 193]; + optional uint64 qos_dscp_to_forwarding_class_map = 66 + [(attr_enum_value) = 204]; + optional uint64 qos_mpls_exp_to_forwarding_class_map = 67 + [(attr_enum_value) = 205]; + optional uint64 ipsec_object_id = 68 [(attr_enum_value) = 206]; + optional uint32 ipsec_sa_tag_tpid = 69 [(attr_enum_value) = 207]; +} + +message SetSwitchAttributeResponse {} + +message SwitchStateChangeNotificationRequest {} message SwitchStateChangeNotificationResponse { - uint64 switch_id = 1; - SwitchOperStatus switch_oper_status = 2; - - + uint64 switch_id = 1; + SwitchOperStatus switch_oper_status = 2; } -message SwitchShutdownRequestNotificationRequest { - - -} +message SwitchShutdownRequestNotificationRequest {} message SwitchShutdownRequestNotificationResponse { - uint64 switch_id = 1; - - + uint64 switch_id = 1; } -message FdbEventNotificationRequest { - - -} +message FdbEventNotificationRequest {} message FdbEventNotificationResponse { - repeated FdbEventNotificationData data = 1; - - + repeated FdbEventNotificationData data = 1; } -message PortStateChangeNotificationRequest { - - -} +message PortStateChangeNotificationRequest {} message PortStateChangeNotificationResponse { - repeated PortOperStatusNotification data = 1; - - + repeated PortOperStatusNotification data = 1; } -message PacketEventNotificationRequest { - - -} +message PacketEventNotificationRequest {} message PacketEventNotificationResponse { - uint64 switch_id = 1; - bytes buffer = 2; - repeated HostifPacketAttribute attrs = 3; - - + uint64 switch_id = 1; + bytes buffer = 2; + repeated HostifPacketAttribute attrs = 3; } -message QueuePfcDeadlockNotificationRequest { - - -} +message QueuePfcDeadlockNotificationRequest {} message QueuePfcDeadlockNotificationResponse { - repeated QueueDeadlockNotificationData data = 1; - - + repeated QueueDeadlockNotificationData data = 1; } -message BfdSessionStateChangeNotificationRequest { - - -} +message BfdSessionStateChangeNotificationRequest {} message BfdSessionStateChangeNotificationResponse { - repeated BfdSessionStateChangeNotificationData data = 1; - - + repeated BfdSessionStateChangeNotificationData data = 1; } -message TamEventNotificationRequest { - - -} +message TamEventNotificationRequest {} message TamEventNotificationResponse { - uint64 tam_event_id = 1; - bytes buffer = 2; - repeated TamEventActionAttribute attrs = 3; - - + uint64 tam_event_id = 1; + bytes buffer = 2; + repeated TamEventActionAttribute attrs = 3; } -message IpsecSaStatusChangeNotificationRequest { - - -} +message IpsecSaStatusChangeNotificationRequest {} message IpsecSaStatusNotificationDataResponse { - repeated IpsecSaStatusNotificationData data = 1; - - + repeated IpsecSaStatusNotificationData data = 1; } message GetSwitchAttributeRequest { - uint64 oid = 1; - repeated SwitchAttr attr_type = 2; - - + uint64 oid = 1; + repeated SwitchAttr attr_type = 2; } message GetSwitchAttributeResponse { - repeated SwitchAttribute attr = 1; - - + SwitchAttribute attr = 1; } message CreateSwitchTunnelRequest { - uint64 switch = 1; - - TunnelType tunnel_type = 2; - PacketAction loopback_packet_action = 3; - TunnelEncapEcnMode tunnel_encap_ecn_mode = 4; - repeated uint64 encap_mappers = 5; - TunnelDecapEcnMode tunnel_decap_ecn_mode = 6; - repeated uint64 decap_mappers = 7; - TunnelVxlanUdpSportMode tunnel_vxlan_udp_sport_mode = 8; - uint32 vxlan_udp_sport = 9; - uint32 vxlan_udp_sport_mask = 10; - + uint64 switch = 1; + optional TunnelType tunnel_type = 2 [(attr_enum_value) = 1]; + optional PacketAction loopback_packet_action = 3 [(attr_enum_value) = 2]; + optional TunnelEncapEcnMode tunnel_encap_ecn_mode = 4 [(attr_enum_value) = 3]; + repeated uint64 encap_mappers = 5 [(attr_enum_value) = 4]; + optional TunnelDecapEcnMode tunnel_decap_ecn_mode = 6 [(attr_enum_value) = 5]; + repeated uint64 decap_mappers = 7 [(attr_enum_value) = 6]; + optional TunnelVxlanUdpSportMode tunnel_vxlan_udp_sport_mode = 8 + [(attr_enum_value) = 7]; + optional uint32 vxlan_udp_sport = 9 [(attr_enum_value) = 8]; + optional uint32 vxlan_udp_sport_mask = 10 [(attr_enum_value) = 9]; } message CreateSwitchTunnelResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveSwitchTunnelRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveSwitchTunnelResponse { - - -} +message RemoveSwitchTunnelResponse {} message SetSwitchTunnelAttributeRequest { - uint64 oid = 1; - oneof attr { - PacketAction loopback_packet_action = 2; - TunnelVxlanUdpSportMode tunnel_vxlan_udp_sport_mode = 3; - uint32 vxlan_udp_sport = 4; - uint32 vxlan_udp_sport_mask = 5; - } + uint64 oid = 1; + optional PacketAction loopback_packet_action = 2 [(attr_enum_value) = 2]; + optional TunnelVxlanUdpSportMode tunnel_vxlan_udp_sport_mode = 3 + [(attr_enum_value) = 7]; + optional uint32 vxlan_udp_sport = 4 [(attr_enum_value) = 8]; + optional uint32 vxlan_udp_sport_mask = 5 [(attr_enum_value) = 9]; } -message SetSwitchTunnelAttributeResponse { - - -} +message SetSwitchTunnelAttributeResponse {} message GetSwitchTunnelAttributeRequest { - uint64 oid = 1; - repeated SwitchTunnelAttr attr_type = 2; - - + uint64 oid = 1; + repeated SwitchTunnelAttr attr_type = 2; } message GetSwitchTunnelAttributeResponse { - repeated SwitchTunnelAttribute attr = 1; - - + SwitchTunnelAttribute attr = 1; } - service Switch { - rpc CreateSwitch (CreateSwitchRequest) returns (CreateSwitchResponse) {} - rpc RemoveSwitch (RemoveSwitchRequest) returns (RemoveSwitchResponse) {} - rpc SetSwitchAttribute (SetSwitchAttributeRequest) returns (SetSwitchAttributeResponse) {} - rpc SwitchStateChangeNotification (SwitchStateChangeNotificationRequest) returns (stream SwitchStateChangeNotificationResponse) {} - rpc SwitchShutdownRequestNotification (SwitchShutdownRequestNotificationRequest) returns (stream SwitchShutdownRequestNotificationResponse) {} - rpc FdbEventNotification (FdbEventNotificationRequest) returns (stream FdbEventNotificationResponse) {} - rpc PortStateChangeNotification (PortStateChangeNotificationRequest) returns (stream PortStateChangeNotificationResponse) {} - rpc PacketEventNotification (PacketEventNotificationRequest) returns (stream PacketEventNotificationResponse) {} - rpc QueuePfcDeadlockNotification (QueuePfcDeadlockNotificationRequest) returns (stream QueuePfcDeadlockNotificationResponse) {} - rpc BfdSessionStateChangeNotification (BfdSessionStateChangeNotificationRequest) returns (stream BfdSessionStateChangeNotificationResponse) {} - rpc TamEventNotification (TamEventNotificationRequest) returns (stream TamEventNotificationResponse) {} - rpc IpsecSaStatusChangeNotification (IpsecSaStatusChangeNotificationRequest) returns (stream IpsecSaStatusNotificationDataResponse) {} - rpc GetSwitchAttribute (GetSwitchAttributeRequest) returns (GetSwitchAttributeResponse) {} - rpc CreateSwitchTunnel (CreateSwitchTunnelRequest) returns (CreateSwitchTunnelResponse) {} - rpc RemoveSwitchTunnel (RemoveSwitchTunnelRequest) returns (RemoveSwitchTunnelResponse) {} - rpc SetSwitchTunnelAttribute (SetSwitchTunnelAttributeRequest) returns (SetSwitchTunnelAttributeResponse) {} - rpc GetSwitchTunnelAttribute (GetSwitchTunnelAttributeRequest) returns (GetSwitchTunnelAttributeResponse) {} + rpc CreateSwitch(CreateSwitchRequest) returns (CreateSwitchResponse) {} + rpc RemoveSwitch(RemoveSwitchRequest) returns (RemoveSwitchResponse) {} + rpc SetSwitchAttribute(SetSwitchAttributeRequest) + returns (SetSwitchAttributeResponse) {} + rpc SwitchStateChangeNotification(SwitchStateChangeNotificationRequest) + returns (stream SwitchStateChangeNotificationResponse) {} + rpc SwitchShutdownRequestNotification( + SwitchShutdownRequestNotificationRequest) + returns (stream SwitchShutdownRequestNotificationResponse) {} + rpc FdbEventNotification(FdbEventNotificationRequest) + returns (stream FdbEventNotificationResponse) {} + rpc PortStateChangeNotification(PortStateChangeNotificationRequest) + returns (stream PortStateChangeNotificationResponse) {} + rpc PacketEventNotification(PacketEventNotificationRequest) + returns (stream PacketEventNotificationResponse) {} + rpc QueuePfcDeadlockNotification(QueuePfcDeadlockNotificationRequest) + returns (stream QueuePfcDeadlockNotificationResponse) {} + rpc BfdSessionStateChangeNotification( + BfdSessionStateChangeNotificationRequest) + returns (stream BfdSessionStateChangeNotificationResponse) {} + rpc TamEventNotification(TamEventNotificationRequest) + returns (stream TamEventNotificationResponse) {} + rpc IpsecSaStatusChangeNotification(IpsecSaStatusChangeNotificationRequest) + returns (stream IpsecSaStatusNotificationDataResponse) {} + rpc GetSwitchAttribute(GetSwitchAttributeRequest) + returns (GetSwitchAttributeResponse) {} + rpc CreateSwitchTunnel(CreateSwitchTunnelRequest) + returns (CreateSwitchTunnelResponse) {} + rpc RemoveSwitchTunnel(RemoveSwitchTunnelRequest) + returns (RemoveSwitchTunnelResponse) {} + rpc SetSwitchTunnelAttribute(SetSwitchTunnelAttributeRequest) + returns (SetSwitchTunnelAttributeResponse) {} + rpc GetSwitchTunnelAttribute(GetSwitchTunnelAttributeRequest) + returns (GetSwitchTunnelAttributeResponse) {} } diff --git a/dataplane/standalone/proto/system_port.pb.go b/dataplane/standalone/proto/system_port.pb.go index 70e830e3..6903ac45 100755 --- a/dataplane/standalone/proto/system_port.pb.go +++ b/dataplane/standalone/proto/system_port.pb.go @@ -94,9 +94,9 @@ type CreateSystemPortRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - AdminState bool `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` - ConfigInfo *SystemPortConfig `protobuf:"bytes,3,opt,name=config_info,json=configInfo,proto3" json:"config_info,omitempty"` - QosTcToQueueMap uint64 `protobuf:"varint,4,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3" json:"qos_tc_to_queue_map,omitempty"` + AdminState *bool `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + ConfigInfo *SystemPortConfig `protobuf:"bytes,3,opt,name=config_info,json=configInfo,proto3,oneof" json:"config_info,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,4,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` } func (x *CreateSystemPortRequest) Reset() { @@ -139,8 +139,8 @@ func (x *CreateSystemPortRequest) GetSwitch() uint64 { } func (x *CreateSystemPortRequest) GetAdminState() bool { - if x != nil { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } @@ -153,8 +153,8 @@ func (x *CreateSystemPortRequest) GetConfigInfo() *SystemPortConfig { } func (x *CreateSystemPortRequest) GetQosTcToQueueMap() uint64 { - if x != nil { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } @@ -296,12 +296,9 @@ type SetSystemPortAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetSystemPortAttributeRequest_AdminState - // *SetSystemPortAttributeRequest_QosTcToQueueMap - Attr isSetSystemPortAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + AdminState *bool `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3,oneof" json:"admin_state,omitempty"` + QosTcToQueueMap *uint64 `protobuf:"varint,3,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof" json:"qos_tc_to_queue_map,omitempty"` } func (x *SetSystemPortAttributeRequest) Reset() { @@ -343,43 +340,20 @@ func (x *SetSystemPortAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetSystemPortAttributeRequest) GetAttr() isSetSystemPortAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetSystemPortAttributeRequest) GetAdminState() bool { - if x, ok := x.GetAttr().(*SetSystemPortAttributeRequest_AdminState); ok { - return x.AdminState + if x != nil && x.AdminState != nil { + return *x.AdminState } return false } func (x *SetSystemPortAttributeRequest) GetQosTcToQueueMap() uint64 { - if x, ok := x.GetAttr().(*SetSystemPortAttributeRequest_QosTcToQueueMap); ok { - return x.QosTcToQueueMap + if x != nil && x.QosTcToQueueMap != nil { + return *x.QosTcToQueueMap } return 0 } -type isSetSystemPortAttributeRequest_Attr interface { - isSetSystemPortAttributeRequest_Attr() -} - -type SetSystemPortAttributeRequest_AdminState struct { - AdminState bool `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3,oneof"` -} - -type SetSystemPortAttributeRequest_QosTcToQueueMap struct { - QosTcToQueueMap uint64 `protobuf:"varint,3,opt,name=qos_tc_to_queue_map,json=qosTcToQueueMap,proto3,oneof"` -} - -func (*SetSystemPortAttributeRequest_AdminState) isSetSystemPortAttributeRequest_Attr() {} - -func (*SetSystemPortAttributeRequest_QosTcToQueueMap) isSetSystemPortAttributeRequest_Attr() {} - type SetSystemPortAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -478,7 +452,7 @@ type GetSystemPortAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*SystemPortAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *SystemPortAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetSystemPortAttributeResponse) Reset() { @@ -513,7 +487,7 @@ func (*GetSystemPortAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_system_port_proto_rawDescGZIP(), []int{7} } -func (x *GetSystemPortAttributeResponse) GetAttr() []*SystemPortAttribute { +func (x *GetSystemPortAttributeResponse) GetAttr() *SystemPortAttribute { if x != nil { return x.Attr } @@ -529,108 +503,117 @@ var file_dataplane_standalone_proto_system_port_proto_rawDesc = []byte{ 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, - 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, + 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, + 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, - 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, - 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x22, 0x2c, 0x0a, 0x18, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x71, 0x6f, 0x73, - 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, - 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, - 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, - 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xa2, 0x02, 0x0a, - 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x20, 0x0a, 0x1c, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, + 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x00, 0x52, + 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, + 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x06, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, + 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x02, 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, + 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x5f, 0x6d, 0x61, 0x70, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x1d, + 0x53, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x2a, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x13, 0x71, + 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, + 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x01, + 0x52, 0x0f, 0x71, 0x6f, 0x73, 0x54, 0x63, 0x54, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, + 0x70, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x74, 0x63, 0x5f, + 0x74, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x22, 0x20, 0x0a, 0x1e, + 0x53, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, + 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xa2, 0x02, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x59, + 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x56, - 0x4f, 0x51, 0x53, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x56, 0x4f, - 0x51, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x59, 0x53, 0x54, - 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, - 0x54, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, - 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x06, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x59, 0x53, 0x54, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, - 0x54, 0x43, 0x5f, 0x54, 0x4f, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x50, 0x10, - 0x07, 0x32, 0x8e, 0x04, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, - 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x56, 0x4f, 0x51, 0x53, 0x10, 0x02, + 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x56, 0x4f, 0x51, 0x5f, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x04, 0x12, 0x20, + 0x0a, 0x1c, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x05, + 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, + 0x10, 0x06, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x54, 0x43, 0x5f, 0x54, 0x4f, + 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x07, 0x32, 0x8e, 0x04, 0x0a, + 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x75, 0x0a, 0x10, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, + 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, + 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -783,10 +766,8 @@ func file_dataplane_standalone_proto_system_port_proto_init() { } } } - file_dataplane_standalone_proto_system_port_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetSystemPortAttributeRequest_AdminState)(nil), - (*SetSystemPortAttributeRequest_QosTcToQueueMap)(nil), - } + file_dataplane_standalone_proto_system_port_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_system_port_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/system_port.proto b/dataplane/standalone/proto/system_port.proto index 05fd45bd..b3d96ad1 100644 --- a/dataplane/standalone/proto/system_port.proto +++ b/dataplane/standalone/proto/system_port.proto @@ -7,74 +7,58 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum SystemPortAttr { - SYSTEM_PORT_ATTR_UNSPECIFIED = 0; - SYSTEM_PORT_ATTR_TYPE = 1; - SYSTEM_PORT_ATTR_QOS_NUMBER_OF_VOQS = 2; - SYSTEM_PORT_ATTR_QOS_VOQ_LIST = 3; - SYSTEM_PORT_ATTR_PORT = 4; - SYSTEM_PORT_ATTR_ADMIN_STATE = 5; - SYSTEM_PORT_ATTR_CONFIG_INFO = 6; - SYSTEM_PORT_ATTR_QOS_TC_TO_QUEUE_MAP = 7; + SYSTEM_PORT_ATTR_UNSPECIFIED = 0; + SYSTEM_PORT_ATTR_TYPE = 1; + SYSTEM_PORT_ATTR_QOS_NUMBER_OF_VOQS = 2; + SYSTEM_PORT_ATTR_QOS_VOQ_LIST = 3; + SYSTEM_PORT_ATTR_PORT = 4; + SYSTEM_PORT_ATTR_ADMIN_STATE = 5; + SYSTEM_PORT_ATTR_CONFIG_INFO = 6; + SYSTEM_PORT_ATTR_QOS_TC_TO_QUEUE_MAP = 7; } message CreateSystemPortRequest { - uint64 switch = 1; - - bool admin_state = 2; - SystemPortConfig config_info = 3; - uint64 qos_tc_to_queue_map = 4; - + uint64 switch = 1; + optional bool admin_state = 2 [(attr_enum_value) = 5]; + optional SystemPortConfig config_info = 3 [(attr_enum_value) = 6]; + optional uint64 qos_tc_to_queue_map = 4 [(attr_enum_value) = 7]; } message CreateSystemPortResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveSystemPortRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveSystemPortResponse { - - -} +message RemoveSystemPortResponse {} message SetSystemPortAttributeRequest { - uint64 oid = 1; - oneof attr { - bool admin_state = 2; - uint64 qos_tc_to_queue_map = 3; - } + uint64 oid = 1; + optional bool admin_state = 2 [(attr_enum_value) = 5]; + optional uint64 qos_tc_to_queue_map = 3 [(attr_enum_value) = 7]; } -message SetSystemPortAttributeResponse { - - -} +message SetSystemPortAttributeResponse {} message GetSystemPortAttributeRequest { - uint64 oid = 1; - repeated SystemPortAttr attr_type = 2; - - + uint64 oid = 1; + repeated SystemPortAttr attr_type = 2; } message GetSystemPortAttributeResponse { - repeated SystemPortAttribute attr = 1; - - + SystemPortAttribute attr = 1; } - service SystemPort { - rpc CreateSystemPort (CreateSystemPortRequest) returns (CreateSystemPortResponse) {} - rpc RemoveSystemPort (RemoveSystemPortRequest) returns (RemoveSystemPortResponse) {} - rpc SetSystemPortAttribute (SetSystemPortAttributeRequest) returns (SetSystemPortAttributeResponse) {} - rpc GetSystemPortAttribute (GetSystemPortAttributeRequest) returns (GetSystemPortAttributeResponse) {} + rpc CreateSystemPort(CreateSystemPortRequest) + returns (CreateSystemPortResponse) {} + rpc RemoveSystemPort(RemoveSystemPortRequest) + returns (RemoveSystemPortResponse) {} + rpc SetSystemPortAttribute(SetSystemPortAttributeRequest) + returns (SetSystemPortAttributeResponse) {} + rpc GetSystemPortAttribute(GetSystemPortAttributeRequest) + returns (GetSystemPortAttributeResponse) {} } diff --git a/dataplane/standalone/proto/tam.pb.go b/dataplane/standalone/proto/tam.pb.go index 062ca78a..b6f6b2ca 100755 --- a/dataplane/standalone/proto/tam.pb.go +++ b/dataplane/standalone/proto/tam.pb.go @@ -962,13 +962,10 @@ type SetTamAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamAttributeRequest_TelemetryObjectsList - // *SetTamAttributeRequest_EventObjectsList - // *SetTamAttributeRequest_IntObjectsList - Attr isSetTamAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + TelemetryObjectsList []uint64 `protobuf:"varint,2,rep,packed,name=telemetry_objects_list,json=telemetryObjectsList,proto3" json:"telemetry_objects_list,omitempty"` + EventObjectsList []uint64 `protobuf:"varint,3,rep,packed,name=event_objects_list,json=eventObjectsList,proto3" json:"event_objects_list,omitempty"` + IntObjectsList []uint64 `protobuf:"varint,4,rep,packed,name=int_objects_list,json=intObjectsList,proto3" json:"int_objects_list,omitempty"` } func (x *SetTamAttributeRequest) Reset() { @@ -1010,56 +1007,27 @@ func (x *SetTamAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamAttributeRequest) GetAttr() isSetTamAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - -func (x *SetTamAttributeRequest) GetTelemetryObjectsList() *Uint64List { - if x, ok := x.GetAttr().(*SetTamAttributeRequest_TelemetryObjectsList); ok { +func (x *SetTamAttributeRequest) GetTelemetryObjectsList() []uint64 { + if x != nil { return x.TelemetryObjectsList } return nil } -func (x *SetTamAttributeRequest) GetEventObjectsList() *Uint64List { - if x, ok := x.GetAttr().(*SetTamAttributeRequest_EventObjectsList); ok { +func (x *SetTamAttributeRequest) GetEventObjectsList() []uint64 { + if x != nil { return x.EventObjectsList } return nil } -func (x *SetTamAttributeRequest) GetIntObjectsList() *Uint64List { - if x, ok := x.GetAttr().(*SetTamAttributeRequest_IntObjectsList); ok { +func (x *SetTamAttributeRequest) GetIntObjectsList() []uint64 { + if x != nil { return x.IntObjectsList } return nil } -type isSetTamAttributeRequest_Attr interface { - isSetTamAttributeRequest_Attr() -} - -type SetTamAttributeRequest_TelemetryObjectsList struct { - TelemetryObjectsList *Uint64List `protobuf:"bytes,2,opt,name=telemetry_objects_list,json=telemetryObjectsList,proto3,oneof"` -} - -type SetTamAttributeRequest_EventObjectsList struct { - EventObjectsList *Uint64List `protobuf:"bytes,3,opt,name=event_objects_list,json=eventObjectsList,proto3,oneof"` -} - -type SetTamAttributeRequest_IntObjectsList struct { - IntObjectsList *Uint64List `protobuf:"bytes,4,opt,name=int_objects_list,json=intObjectsList,proto3,oneof"` -} - -func (*SetTamAttributeRequest_TelemetryObjectsList) isSetTamAttributeRequest_Attr() {} - -func (*SetTamAttributeRequest_EventObjectsList) isSetTamAttributeRequest_Attr() {} - -func (*SetTamAttributeRequest_IntObjectsList) isSetTamAttributeRequest_Attr() {} - type SetTamAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1158,7 +1126,7 @@ type GetTamAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamAttributeResponse) Reset() { @@ -1193,7 +1161,7 @@ func (*GetTamAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{7} } -func (x *GetTamAttributeResponse) GetAttr() []*TamAttribute { +func (x *GetTamAttributeResponse) GetAttr() *TamAttribute { if x != nil { return x.Attr } @@ -1205,8 +1173,8 @@ type CreateTamMathFuncRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TamTelMathFuncType TamTelMathFuncType `protobuf:"varint,2,opt,name=tam_tel_math_func_type,json=tamTelMathFuncType,proto3,enum=lemming.dataplane.sai.TamTelMathFuncType" json:"tam_tel_math_func_type,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + TamTelMathFuncType *TamTelMathFuncType `protobuf:"varint,2,opt,name=tam_tel_math_func_type,json=tamTelMathFuncType,proto3,enum=lemming.dataplane.sai.TamTelMathFuncType,oneof" json:"tam_tel_math_func_type,omitempty"` } func (x *CreateTamMathFuncRequest) Reset() { @@ -1249,8 +1217,8 @@ func (x *CreateTamMathFuncRequest) GetSwitch() uint64 { } func (x *CreateTamMathFuncRequest) GetTamTelMathFuncType() TamTelMathFuncType { - if x != nil { - return x.TamTelMathFuncType + if x != nil && x.TamTelMathFuncType != nil { + return *x.TamTelMathFuncType } return TamTelMathFuncType_TAM_TEL_MATH_FUNC_TYPE_UNSPECIFIED } @@ -1392,11 +1360,8 @@ type SetTamMathFuncAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamMathFuncAttributeRequest_TamTelMathFuncType - Attr isSetTamMathFuncAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + TamTelMathFuncType *TamTelMathFuncType `protobuf:"varint,2,opt,name=tam_tel_math_func_type,json=tamTelMathFuncType,proto3,enum=lemming.dataplane.sai.TamTelMathFuncType,oneof" json:"tam_tel_math_func_type,omitempty"` } func (x *SetTamMathFuncAttributeRequest) Reset() { @@ -1438,30 +1403,13 @@ func (x *SetTamMathFuncAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamMathFuncAttributeRequest) GetAttr() isSetTamMathFuncAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamMathFuncAttributeRequest) GetTamTelMathFuncType() TamTelMathFuncType { - if x, ok := x.GetAttr().(*SetTamMathFuncAttributeRequest_TamTelMathFuncType); ok { - return x.TamTelMathFuncType + if x != nil && x.TamTelMathFuncType != nil { + return *x.TamTelMathFuncType } return TamTelMathFuncType_TAM_TEL_MATH_FUNC_TYPE_UNSPECIFIED } -type isSetTamMathFuncAttributeRequest_Attr interface { - isSetTamMathFuncAttributeRequest_Attr() -} - -type SetTamMathFuncAttributeRequest_TamTelMathFuncType struct { - TamTelMathFuncType TamTelMathFuncType `protobuf:"varint,2,opt,name=tam_tel_math_func_type,json=tamTelMathFuncType,proto3,enum=lemming.dataplane.sai.TamTelMathFuncType,oneof"` -} - -func (*SetTamMathFuncAttributeRequest_TamTelMathFuncType) isSetTamMathFuncAttributeRequest_Attr() {} - type SetTamMathFuncAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1560,7 +1508,7 @@ type GetTamMathFuncAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamMathFuncAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamMathFuncAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamMathFuncAttributeResponse) Reset() { @@ -1595,7 +1543,7 @@ func (*GetTamMathFuncAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{15} } -func (x *GetTamMathFuncAttributeResponse) GetAttr() []*TamMathFuncAttribute { +func (x *GetTamMathFuncAttributeResponse) GetAttr() *TamMathFuncAttribute { if x != nil { return x.Attr } @@ -1607,14 +1555,14 @@ type CreateTamReportRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type TamReportType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TamReportType" json:"type,omitempty"` - HistogramNumberOfBins uint32 `protobuf:"varint,3,opt,name=histogram_number_of_bins,json=histogramNumberOfBins,proto3" json:"histogram_number_of_bins,omitempty"` - HistogramBinBoundary []uint32 `protobuf:"varint,4,rep,packed,name=histogram_bin_boundary,json=histogramBinBoundary,proto3" json:"histogram_bin_boundary,omitempty"` - Quota uint32 `protobuf:"varint,5,opt,name=quota,proto3" json:"quota,omitempty"` - ReportMode TamReportMode `protobuf:"varint,6,opt,name=report_mode,json=reportMode,proto3,enum=lemming.dataplane.sai.TamReportMode" json:"report_mode,omitempty"` - ReportInterval uint32 `protobuf:"varint,7,opt,name=report_interval,json=reportInterval,proto3" json:"report_interval,omitempty"` - EnterpriseNumber uint32 `protobuf:"varint,8,opt,name=enterprise_number,json=enterpriseNumber,proto3" json:"enterprise_number,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *TamReportType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TamReportType,oneof" json:"type,omitempty"` + HistogramNumberOfBins *uint32 `protobuf:"varint,3,opt,name=histogram_number_of_bins,json=histogramNumberOfBins,proto3,oneof" json:"histogram_number_of_bins,omitempty"` + HistogramBinBoundary []uint32 `protobuf:"varint,4,rep,packed,name=histogram_bin_boundary,json=histogramBinBoundary,proto3" json:"histogram_bin_boundary,omitempty"` + Quota *uint32 `protobuf:"varint,5,opt,name=quota,proto3,oneof" json:"quota,omitempty"` + ReportMode *TamReportMode `protobuf:"varint,6,opt,name=report_mode,json=reportMode,proto3,enum=lemming.dataplane.sai.TamReportMode,oneof" json:"report_mode,omitempty"` + ReportInterval *uint32 `protobuf:"varint,7,opt,name=report_interval,json=reportInterval,proto3,oneof" json:"report_interval,omitempty"` + EnterpriseNumber *uint32 `protobuf:"varint,8,opt,name=enterprise_number,json=enterpriseNumber,proto3,oneof" json:"enterprise_number,omitempty"` } func (x *CreateTamReportRequest) Reset() { @@ -1657,15 +1605,15 @@ func (x *CreateTamReportRequest) GetSwitch() uint64 { } func (x *CreateTamReportRequest) GetType() TamReportType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TamReportType_TAM_REPORT_TYPE_UNSPECIFIED } func (x *CreateTamReportRequest) GetHistogramNumberOfBins() uint32 { - if x != nil { - return x.HistogramNumberOfBins + if x != nil && x.HistogramNumberOfBins != nil { + return *x.HistogramNumberOfBins } return 0 } @@ -1678,29 +1626,29 @@ func (x *CreateTamReportRequest) GetHistogramBinBoundary() []uint32 { } func (x *CreateTamReportRequest) GetQuota() uint32 { - if x != nil { - return x.Quota + if x != nil && x.Quota != nil { + return *x.Quota } return 0 } func (x *CreateTamReportRequest) GetReportMode() TamReportMode { - if x != nil { - return x.ReportMode + if x != nil && x.ReportMode != nil { + return *x.ReportMode } return TamReportMode_TAM_REPORT_MODE_UNSPECIFIED } func (x *CreateTamReportRequest) GetReportInterval() uint32 { - if x != nil { - return x.ReportInterval + if x != nil && x.ReportInterval != nil { + return *x.ReportInterval } return 0 } func (x *CreateTamReportRequest) GetEnterpriseNumber() uint32 { - if x != nil { - return x.EnterpriseNumber + if x != nil && x.EnterpriseNumber != nil { + return *x.EnterpriseNumber } return 0 } @@ -1842,14 +1790,11 @@ type SetTamReportAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamReportAttributeRequest_Type - // *SetTamReportAttributeRequest_Quota - // *SetTamReportAttributeRequest_ReportInterval - // *SetTamReportAttributeRequest_EnterpriseNumber - Attr isSetTamReportAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Type *TamReportType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TamReportType,oneof" json:"type,omitempty"` + Quota *uint32 `protobuf:"varint,3,opt,name=quota,proto3,oneof" json:"quota,omitempty"` + ReportInterval *uint32 `protobuf:"varint,4,opt,name=report_interval,json=reportInterval,proto3,oneof" json:"report_interval,omitempty"` + EnterpriseNumber *uint32 `protobuf:"varint,5,opt,name=enterprise_number,json=enterpriseNumber,proto3,oneof" json:"enterprise_number,omitempty"` } func (x *SetTamReportAttributeRequest) Reset() { @@ -1891,69 +1836,34 @@ func (x *SetTamReportAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamReportAttributeRequest) GetAttr() isSetTamReportAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamReportAttributeRequest) GetType() TamReportType { - if x, ok := x.GetAttr().(*SetTamReportAttributeRequest_Type); ok { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TamReportType_TAM_REPORT_TYPE_UNSPECIFIED } func (x *SetTamReportAttributeRequest) GetQuota() uint32 { - if x, ok := x.GetAttr().(*SetTamReportAttributeRequest_Quota); ok { - return x.Quota + if x != nil && x.Quota != nil { + return *x.Quota } return 0 } func (x *SetTamReportAttributeRequest) GetReportInterval() uint32 { - if x, ok := x.GetAttr().(*SetTamReportAttributeRequest_ReportInterval); ok { - return x.ReportInterval + if x != nil && x.ReportInterval != nil { + return *x.ReportInterval } return 0 } func (x *SetTamReportAttributeRequest) GetEnterpriseNumber() uint32 { - if x, ok := x.GetAttr().(*SetTamReportAttributeRequest_EnterpriseNumber); ok { - return x.EnterpriseNumber + if x != nil && x.EnterpriseNumber != nil { + return *x.EnterpriseNumber } return 0 } -type isSetTamReportAttributeRequest_Attr interface { - isSetTamReportAttributeRequest_Attr() -} - -type SetTamReportAttributeRequest_Type struct { - Type TamReportType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TamReportType,oneof"` -} - -type SetTamReportAttributeRequest_Quota struct { - Quota uint32 `protobuf:"varint,3,opt,name=quota,proto3,oneof"` -} - -type SetTamReportAttributeRequest_ReportInterval struct { - ReportInterval uint32 `protobuf:"varint,4,opt,name=report_interval,json=reportInterval,proto3,oneof"` -} - -type SetTamReportAttributeRequest_EnterpriseNumber struct { - EnterpriseNumber uint32 `protobuf:"varint,5,opt,name=enterprise_number,json=enterpriseNumber,proto3,oneof"` -} - -func (*SetTamReportAttributeRequest_Type) isSetTamReportAttributeRequest_Attr() {} - -func (*SetTamReportAttributeRequest_Quota) isSetTamReportAttributeRequest_Attr() {} - -func (*SetTamReportAttributeRequest_ReportInterval) isSetTamReportAttributeRequest_Attr() {} - -func (*SetTamReportAttributeRequest_EnterpriseNumber) isSetTamReportAttributeRequest_Attr() {} - type SetTamReportAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2052,7 +1962,7 @@ type GetTamReportAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamReportAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamReportAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamReportAttributeResponse) Reset() { @@ -2087,7 +1997,7 @@ func (*GetTamReportAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{23} } -func (x *GetTamReportAttributeResponse) GetAttr() []*TamReportAttribute { +func (x *GetTamReportAttributeResponse) GetAttr() *TamReportAttribute { if x != nil { return x.Attr } @@ -2099,13 +2009,13 @@ type CreateTamEventThresholdRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - HighWatermark uint32 `protobuf:"varint,2,opt,name=high_watermark,json=highWatermark,proto3" json:"high_watermark,omitempty"` - LowWatermark uint32 `protobuf:"varint,3,opt,name=low_watermark,json=lowWatermark,proto3" json:"low_watermark,omitempty"` - Latency uint32 `protobuf:"varint,4,opt,name=latency,proto3" json:"latency,omitempty"` - Rate uint32 `protobuf:"varint,5,opt,name=rate,proto3" json:"rate,omitempty"` - AbsValue uint32 `protobuf:"varint,6,opt,name=abs_value,json=absValue,proto3" json:"abs_value,omitempty"` - Unit TamEventThresholdUnit `protobuf:"varint,7,opt,name=unit,proto3,enum=lemming.dataplane.sai.TamEventThresholdUnit" json:"unit,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + HighWatermark *uint32 `protobuf:"varint,2,opt,name=high_watermark,json=highWatermark,proto3,oneof" json:"high_watermark,omitempty"` + LowWatermark *uint32 `protobuf:"varint,3,opt,name=low_watermark,json=lowWatermark,proto3,oneof" json:"low_watermark,omitempty"` + Latency *uint32 `protobuf:"varint,4,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + Rate *uint32 `protobuf:"varint,5,opt,name=rate,proto3,oneof" json:"rate,omitempty"` + AbsValue *uint32 `protobuf:"varint,6,opt,name=abs_value,json=absValue,proto3,oneof" json:"abs_value,omitempty"` + Unit *TamEventThresholdUnit `protobuf:"varint,7,opt,name=unit,proto3,enum=lemming.dataplane.sai.TamEventThresholdUnit,oneof" json:"unit,omitempty"` } func (x *CreateTamEventThresholdRequest) Reset() { @@ -2148,43 +2058,43 @@ func (x *CreateTamEventThresholdRequest) GetSwitch() uint64 { } func (x *CreateTamEventThresholdRequest) GetHighWatermark() uint32 { - if x != nil { - return x.HighWatermark + if x != nil && x.HighWatermark != nil { + return *x.HighWatermark } return 0 } func (x *CreateTamEventThresholdRequest) GetLowWatermark() uint32 { - if x != nil { - return x.LowWatermark + if x != nil && x.LowWatermark != nil { + return *x.LowWatermark } return 0 } func (x *CreateTamEventThresholdRequest) GetLatency() uint32 { - if x != nil { - return x.Latency + if x != nil && x.Latency != nil { + return *x.Latency } return 0 } func (x *CreateTamEventThresholdRequest) GetRate() uint32 { - if x != nil { - return x.Rate + if x != nil && x.Rate != nil { + return *x.Rate } return 0 } func (x *CreateTamEventThresholdRequest) GetAbsValue() uint32 { - if x != nil { - return x.AbsValue + if x != nil && x.AbsValue != nil { + return *x.AbsValue } return 0 } func (x *CreateTamEventThresholdRequest) GetUnit() TamEventThresholdUnit { - if x != nil { - return x.Unit + if x != nil && x.Unit != nil { + return *x.Unit } return TamEventThresholdUnit_TAM_EVENT_THRESHOLD_UNIT_UNSPECIFIED } @@ -2326,16 +2236,13 @@ type SetTamEventThresholdAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamEventThresholdAttributeRequest_HighWatermark - // *SetTamEventThresholdAttributeRequest_LowWatermark - // *SetTamEventThresholdAttributeRequest_Latency - // *SetTamEventThresholdAttributeRequest_Rate - // *SetTamEventThresholdAttributeRequest_AbsValue - // *SetTamEventThresholdAttributeRequest_Unit - Attr isSetTamEventThresholdAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + HighWatermark *uint32 `protobuf:"varint,2,opt,name=high_watermark,json=highWatermark,proto3,oneof" json:"high_watermark,omitempty"` + LowWatermark *uint32 `protobuf:"varint,3,opt,name=low_watermark,json=lowWatermark,proto3,oneof" json:"low_watermark,omitempty"` + Latency *uint32 `protobuf:"varint,4,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + Rate *uint32 `protobuf:"varint,5,opt,name=rate,proto3,oneof" json:"rate,omitempty"` + AbsValue *uint32 `protobuf:"varint,6,opt,name=abs_value,json=absValue,proto3,oneof" json:"abs_value,omitempty"` + Unit *TamEventThresholdUnit `protobuf:"varint,7,opt,name=unit,proto3,enum=lemming.dataplane.sai.TamEventThresholdUnit,oneof" json:"unit,omitempty"` } func (x *SetTamEventThresholdAttributeRequest) Reset() { @@ -2377,97 +2284,48 @@ func (x *SetTamEventThresholdAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamEventThresholdAttributeRequest) GetAttr() isSetTamEventThresholdAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamEventThresholdAttributeRequest) GetHighWatermark() uint32 { - if x, ok := x.GetAttr().(*SetTamEventThresholdAttributeRequest_HighWatermark); ok { - return x.HighWatermark + if x != nil && x.HighWatermark != nil { + return *x.HighWatermark } return 0 } func (x *SetTamEventThresholdAttributeRequest) GetLowWatermark() uint32 { - if x, ok := x.GetAttr().(*SetTamEventThresholdAttributeRequest_LowWatermark); ok { - return x.LowWatermark + if x != nil && x.LowWatermark != nil { + return *x.LowWatermark } return 0 } func (x *SetTamEventThresholdAttributeRequest) GetLatency() uint32 { - if x, ok := x.GetAttr().(*SetTamEventThresholdAttributeRequest_Latency); ok { - return x.Latency + if x != nil && x.Latency != nil { + return *x.Latency } return 0 } func (x *SetTamEventThresholdAttributeRequest) GetRate() uint32 { - if x, ok := x.GetAttr().(*SetTamEventThresholdAttributeRequest_Rate); ok { - return x.Rate + if x != nil && x.Rate != nil { + return *x.Rate } return 0 } func (x *SetTamEventThresholdAttributeRequest) GetAbsValue() uint32 { - if x, ok := x.GetAttr().(*SetTamEventThresholdAttributeRequest_AbsValue); ok { - return x.AbsValue + if x != nil && x.AbsValue != nil { + return *x.AbsValue } return 0 } func (x *SetTamEventThresholdAttributeRequest) GetUnit() TamEventThresholdUnit { - if x, ok := x.GetAttr().(*SetTamEventThresholdAttributeRequest_Unit); ok { - return x.Unit + if x != nil && x.Unit != nil { + return *x.Unit } return TamEventThresholdUnit_TAM_EVENT_THRESHOLD_UNIT_UNSPECIFIED } -type isSetTamEventThresholdAttributeRequest_Attr interface { - isSetTamEventThresholdAttributeRequest_Attr() -} - -type SetTamEventThresholdAttributeRequest_HighWatermark struct { - HighWatermark uint32 `protobuf:"varint,2,opt,name=high_watermark,json=highWatermark,proto3,oneof"` -} - -type SetTamEventThresholdAttributeRequest_LowWatermark struct { - LowWatermark uint32 `protobuf:"varint,3,opt,name=low_watermark,json=lowWatermark,proto3,oneof"` -} - -type SetTamEventThresholdAttributeRequest_Latency struct { - Latency uint32 `protobuf:"varint,4,opt,name=latency,proto3,oneof"` -} - -type SetTamEventThresholdAttributeRequest_Rate struct { - Rate uint32 `protobuf:"varint,5,opt,name=rate,proto3,oneof"` -} - -type SetTamEventThresholdAttributeRequest_AbsValue struct { - AbsValue uint32 `protobuf:"varint,6,opt,name=abs_value,json=absValue,proto3,oneof"` -} - -type SetTamEventThresholdAttributeRequest_Unit struct { - Unit TamEventThresholdUnit `protobuf:"varint,7,opt,name=unit,proto3,enum=lemming.dataplane.sai.TamEventThresholdUnit,oneof"` -} - -func (*SetTamEventThresholdAttributeRequest_HighWatermark) isSetTamEventThresholdAttributeRequest_Attr() { -} - -func (*SetTamEventThresholdAttributeRequest_LowWatermark) isSetTamEventThresholdAttributeRequest_Attr() { -} - -func (*SetTamEventThresholdAttributeRequest_Latency) isSetTamEventThresholdAttributeRequest_Attr() {} - -func (*SetTamEventThresholdAttributeRequest_Rate) isSetTamEventThresholdAttributeRequest_Attr() {} - -func (*SetTamEventThresholdAttributeRequest_AbsValue) isSetTamEventThresholdAttributeRequest_Attr() {} - -func (*SetTamEventThresholdAttributeRequest_Unit) isSetTamEventThresholdAttributeRequest_Attr() {} - type SetTamEventThresholdAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2566,7 +2424,7 @@ type GetTamEventThresholdAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamEventThresholdAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamEventThresholdAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamEventThresholdAttributeResponse) Reset() { @@ -2601,7 +2459,7 @@ func (*GetTamEventThresholdAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{31} } -func (x *GetTamEventThresholdAttributeResponse) GetAttr() []*TamEventThresholdAttribute { +func (x *GetTamEventThresholdAttributeResponse) GetAttr() *TamEventThresholdAttribute { if x != nil { return x.Attr } @@ -2613,33 +2471,33 @@ type CreateTamIntRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type TamIntType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TamIntType" json:"type,omitempty"` - DeviceId uint32 `protobuf:"varint,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` - IoamTraceType uint32 `protobuf:"varint,4,opt,name=ioam_trace_type,json=ioamTraceType,proto3" json:"ioam_trace_type,omitempty"` - IntPresenceType TamIntPresenceType `protobuf:"varint,5,opt,name=int_presence_type,json=intPresenceType,proto3,enum=lemming.dataplane.sai.TamIntPresenceType" json:"int_presence_type,omitempty"` - IntPresencePb1 uint32 `protobuf:"varint,6,opt,name=int_presence_pb1,json=intPresencePb1,proto3" json:"int_presence_pb1,omitempty"` - IntPresencePb2 uint32 `protobuf:"varint,7,opt,name=int_presence_pb2,json=intPresencePb2,proto3" json:"int_presence_pb2,omitempty"` - IntPresenceDscpValue uint32 `protobuf:"varint,8,opt,name=int_presence_dscp_value,json=intPresenceDscpValue,proto3" json:"int_presence_dscp_value,omitempty"` - Inline bool `protobuf:"varint,9,opt,name=inline,proto3" json:"inline,omitempty"` - IntPresenceL3Protocol uint32 `protobuf:"varint,10,opt,name=int_presence_l3_protocol,json=intPresenceL3Protocol,proto3" json:"int_presence_l3_protocol,omitempty"` - TraceVector uint32 `protobuf:"varint,11,opt,name=trace_vector,json=traceVector,proto3" json:"trace_vector,omitempty"` - ActionVector uint32 `protobuf:"varint,12,opt,name=action_vector,json=actionVector,proto3" json:"action_vector,omitempty"` - P4IntInstructionBitmap uint32 `protobuf:"varint,13,opt,name=p4_int_instruction_bitmap,json=p4IntInstructionBitmap,proto3" json:"p4_int_instruction_bitmap,omitempty"` - MetadataFragmentEnable bool `protobuf:"varint,14,opt,name=metadata_fragment_enable,json=metadataFragmentEnable,proto3" json:"metadata_fragment_enable,omitempty"` - MetadataChecksumEnable bool `protobuf:"varint,15,opt,name=metadata_checksum_enable,json=metadataChecksumEnable,proto3" json:"metadata_checksum_enable,omitempty"` - ReportAllPackets bool `protobuf:"varint,16,opt,name=report_all_packets,json=reportAllPackets,proto3" json:"report_all_packets,omitempty"` - FlowLivenessPeriod uint32 `protobuf:"varint,17,opt,name=flow_liveness_period,json=flowLivenessPeriod,proto3" json:"flow_liveness_period,omitempty"` - LatencySensitivity uint32 `protobuf:"varint,18,opt,name=latency_sensitivity,json=latencySensitivity,proto3" json:"latency_sensitivity,omitempty"` - AclGroup uint64 `protobuf:"varint,19,opt,name=acl_group,json=aclGroup,proto3" json:"acl_group,omitempty"` - MaxHopCount uint32 `protobuf:"varint,20,opt,name=max_hop_count,json=maxHopCount,proto3" json:"max_hop_count,omitempty"` - MaxLength uint32 `protobuf:"varint,21,opt,name=max_length,json=maxLength,proto3" json:"max_length,omitempty"` - NameSpaceId uint32 `protobuf:"varint,22,opt,name=name_space_id,json=nameSpaceId,proto3" json:"name_space_id,omitempty"` - NameSpaceIdGlobal bool `protobuf:"varint,23,opt,name=name_space_id_global,json=nameSpaceIdGlobal,proto3" json:"name_space_id_global,omitempty"` - IngressSamplepacketEnable uint64 `protobuf:"varint,24,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3" json:"ingress_samplepacket_enable,omitempty"` - CollectorList []uint64 `protobuf:"varint,25,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` - MathFunc uint64 `protobuf:"varint,26,opt,name=math_func,json=mathFunc,proto3" json:"math_func,omitempty"` - ReportId uint64 `protobuf:"varint,27,opt,name=report_id,json=reportId,proto3" json:"report_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *TamIntType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TamIntType,oneof" json:"type,omitempty"` + DeviceId *uint32 `protobuf:"varint,3,opt,name=device_id,json=deviceId,proto3,oneof" json:"device_id,omitempty"` + IoamTraceType *uint32 `protobuf:"varint,4,opt,name=ioam_trace_type,json=ioamTraceType,proto3,oneof" json:"ioam_trace_type,omitempty"` + IntPresenceType *TamIntPresenceType `protobuf:"varint,5,opt,name=int_presence_type,json=intPresenceType,proto3,enum=lemming.dataplane.sai.TamIntPresenceType,oneof" json:"int_presence_type,omitempty"` + IntPresencePb1 *uint32 `protobuf:"varint,6,opt,name=int_presence_pb1,json=intPresencePb1,proto3,oneof" json:"int_presence_pb1,omitempty"` + IntPresencePb2 *uint32 `protobuf:"varint,7,opt,name=int_presence_pb2,json=intPresencePb2,proto3,oneof" json:"int_presence_pb2,omitempty"` + IntPresenceDscpValue *uint32 `protobuf:"varint,8,opt,name=int_presence_dscp_value,json=intPresenceDscpValue,proto3,oneof" json:"int_presence_dscp_value,omitempty"` + Inline *bool `protobuf:"varint,9,opt,name=inline,proto3,oneof" json:"inline,omitempty"` + IntPresenceL3Protocol *uint32 `protobuf:"varint,10,opt,name=int_presence_l3_protocol,json=intPresenceL3Protocol,proto3,oneof" json:"int_presence_l3_protocol,omitempty"` + TraceVector *uint32 `protobuf:"varint,11,opt,name=trace_vector,json=traceVector,proto3,oneof" json:"trace_vector,omitempty"` + ActionVector *uint32 `protobuf:"varint,12,opt,name=action_vector,json=actionVector,proto3,oneof" json:"action_vector,omitempty"` + P4IntInstructionBitmap *uint32 `protobuf:"varint,13,opt,name=p4_int_instruction_bitmap,json=p4IntInstructionBitmap,proto3,oneof" json:"p4_int_instruction_bitmap,omitempty"` + MetadataFragmentEnable *bool `protobuf:"varint,14,opt,name=metadata_fragment_enable,json=metadataFragmentEnable,proto3,oneof" json:"metadata_fragment_enable,omitempty"` + MetadataChecksumEnable *bool `protobuf:"varint,15,opt,name=metadata_checksum_enable,json=metadataChecksumEnable,proto3,oneof" json:"metadata_checksum_enable,omitempty"` + ReportAllPackets *bool `protobuf:"varint,16,opt,name=report_all_packets,json=reportAllPackets,proto3,oneof" json:"report_all_packets,omitempty"` + FlowLivenessPeriod *uint32 `protobuf:"varint,17,opt,name=flow_liveness_period,json=flowLivenessPeriod,proto3,oneof" json:"flow_liveness_period,omitempty"` + LatencySensitivity *uint32 `protobuf:"varint,18,opt,name=latency_sensitivity,json=latencySensitivity,proto3,oneof" json:"latency_sensitivity,omitempty"` + AclGroup *uint64 `protobuf:"varint,19,opt,name=acl_group,json=aclGroup,proto3,oneof" json:"acl_group,omitempty"` + MaxHopCount *uint32 `protobuf:"varint,20,opt,name=max_hop_count,json=maxHopCount,proto3,oneof" json:"max_hop_count,omitempty"` + MaxLength *uint32 `protobuf:"varint,21,opt,name=max_length,json=maxLength,proto3,oneof" json:"max_length,omitempty"` + NameSpaceId *uint32 `protobuf:"varint,22,opt,name=name_space_id,json=nameSpaceId,proto3,oneof" json:"name_space_id,omitempty"` + NameSpaceIdGlobal *bool `protobuf:"varint,23,opt,name=name_space_id_global,json=nameSpaceIdGlobal,proto3,oneof" json:"name_space_id_global,omitempty"` + IngressSamplepacketEnable *uint64 `protobuf:"varint,24,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3,oneof" json:"ingress_samplepacket_enable,omitempty"` + CollectorList []uint64 `protobuf:"varint,25,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` + MathFunc *uint64 `protobuf:"varint,26,opt,name=math_func,json=mathFunc,proto3,oneof" json:"math_func,omitempty"` + ReportId *uint64 `protobuf:"varint,27,opt,name=report_id,json=reportId,proto3,oneof" json:"report_id,omitempty"` } func (x *CreateTamIntRequest) Reset() { @@ -2682,162 +2540,162 @@ func (x *CreateTamIntRequest) GetSwitch() uint64 { } func (x *CreateTamIntRequest) GetType() TamIntType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TamIntType_TAM_INT_TYPE_UNSPECIFIED } func (x *CreateTamIntRequest) GetDeviceId() uint32 { - if x != nil { - return x.DeviceId + if x != nil && x.DeviceId != nil { + return *x.DeviceId } return 0 } func (x *CreateTamIntRequest) GetIoamTraceType() uint32 { - if x != nil { - return x.IoamTraceType + if x != nil && x.IoamTraceType != nil { + return *x.IoamTraceType } return 0 } func (x *CreateTamIntRequest) GetIntPresenceType() TamIntPresenceType { - if x != nil { - return x.IntPresenceType + if x != nil && x.IntPresenceType != nil { + return *x.IntPresenceType } return TamIntPresenceType_TAM_INT_PRESENCE_TYPE_UNSPECIFIED } func (x *CreateTamIntRequest) GetIntPresencePb1() uint32 { - if x != nil { - return x.IntPresencePb1 + if x != nil && x.IntPresencePb1 != nil { + return *x.IntPresencePb1 } return 0 } func (x *CreateTamIntRequest) GetIntPresencePb2() uint32 { - if x != nil { - return x.IntPresencePb2 + if x != nil && x.IntPresencePb2 != nil { + return *x.IntPresencePb2 } return 0 } func (x *CreateTamIntRequest) GetIntPresenceDscpValue() uint32 { - if x != nil { - return x.IntPresenceDscpValue + if x != nil && x.IntPresenceDscpValue != nil { + return *x.IntPresenceDscpValue } return 0 } func (x *CreateTamIntRequest) GetInline() bool { - if x != nil { - return x.Inline + if x != nil && x.Inline != nil { + return *x.Inline } return false } func (x *CreateTamIntRequest) GetIntPresenceL3Protocol() uint32 { - if x != nil { - return x.IntPresenceL3Protocol + if x != nil && x.IntPresenceL3Protocol != nil { + return *x.IntPresenceL3Protocol } return 0 } func (x *CreateTamIntRequest) GetTraceVector() uint32 { - if x != nil { - return x.TraceVector + if x != nil && x.TraceVector != nil { + return *x.TraceVector } return 0 } func (x *CreateTamIntRequest) GetActionVector() uint32 { - if x != nil { - return x.ActionVector + if x != nil && x.ActionVector != nil { + return *x.ActionVector } return 0 } func (x *CreateTamIntRequest) GetP4IntInstructionBitmap() uint32 { - if x != nil { - return x.P4IntInstructionBitmap + if x != nil && x.P4IntInstructionBitmap != nil { + return *x.P4IntInstructionBitmap } return 0 } func (x *CreateTamIntRequest) GetMetadataFragmentEnable() bool { - if x != nil { - return x.MetadataFragmentEnable + if x != nil && x.MetadataFragmentEnable != nil { + return *x.MetadataFragmentEnable } return false } func (x *CreateTamIntRequest) GetMetadataChecksumEnable() bool { - if x != nil { - return x.MetadataChecksumEnable + if x != nil && x.MetadataChecksumEnable != nil { + return *x.MetadataChecksumEnable } return false } func (x *CreateTamIntRequest) GetReportAllPackets() bool { - if x != nil { - return x.ReportAllPackets + if x != nil && x.ReportAllPackets != nil { + return *x.ReportAllPackets } return false } func (x *CreateTamIntRequest) GetFlowLivenessPeriod() uint32 { - if x != nil { - return x.FlowLivenessPeriod + if x != nil && x.FlowLivenessPeriod != nil { + return *x.FlowLivenessPeriod } return 0 } func (x *CreateTamIntRequest) GetLatencySensitivity() uint32 { - if x != nil { - return x.LatencySensitivity + if x != nil && x.LatencySensitivity != nil { + return *x.LatencySensitivity } return 0 } func (x *CreateTamIntRequest) GetAclGroup() uint64 { - if x != nil { - return x.AclGroup + if x != nil && x.AclGroup != nil { + return *x.AclGroup } return 0 } func (x *CreateTamIntRequest) GetMaxHopCount() uint32 { - if x != nil { - return x.MaxHopCount + if x != nil && x.MaxHopCount != nil { + return *x.MaxHopCount } return 0 } func (x *CreateTamIntRequest) GetMaxLength() uint32 { - if x != nil { - return x.MaxLength + if x != nil && x.MaxLength != nil { + return *x.MaxLength } return 0 } func (x *CreateTamIntRequest) GetNameSpaceId() uint32 { - if x != nil { - return x.NameSpaceId + if x != nil && x.NameSpaceId != nil { + return *x.NameSpaceId } return 0 } func (x *CreateTamIntRequest) GetNameSpaceIdGlobal() bool { - if x != nil { - return x.NameSpaceIdGlobal + if x != nil && x.NameSpaceIdGlobal != nil { + return *x.NameSpaceIdGlobal } return false } func (x *CreateTamIntRequest) GetIngressSamplepacketEnable() uint64 { - if x != nil { - return x.IngressSamplepacketEnable + if x != nil && x.IngressSamplepacketEnable != nil { + return *x.IngressSamplepacketEnable } return 0 } @@ -2850,15 +2708,15 @@ func (x *CreateTamIntRequest) GetCollectorList() []uint64 { } func (x *CreateTamIntRequest) GetMathFunc() uint64 { - if x != nil { - return x.MathFunc + if x != nil && x.MathFunc != nil { + return *x.MathFunc } return 0 } func (x *CreateTamIntRequest) GetReportId() uint64 { - if x != nil { - return x.ReportId + if x != nil && x.ReportId != nil { + return *x.ReportId } return 0 } @@ -3000,27 +2858,24 @@ type SetTamIntAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamIntAttributeRequest_IoamTraceType - // *SetTamIntAttributeRequest_TraceVector - // *SetTamIntAttributeRequest_ActionVector - // *SetTamIntAttributeRequest_P4IntInstructionBitmap - // *SetTamIntAttributeRequest_MetadataFragmentEnable - // *SetTamIntAttributeRequest_MetadataChecksumEnable - // *SetTamIntAttributeRequest_ReportAllPackets - // *SetTamIntAttributeRequest_FlowLivenessPeriod - // *SetTamIntAttributeRequest_LatencySensitivity - // *SetTamIntAttributeRequest_AclGroup - // *SetTamIntAttributeRequest_MaxHopCount - // *SetTamIntAttributeRequest_MaxLength - // *SetTamIntAttributeRequest_NameSpaceId - // *SetTamIntAttributeRequest_NameSpaceIdGlobal - // *SetTamIntAttributeRequest_IngressSamplepacketEnable - // *SetTamIntAttributeRequest_CollectorList - // *SetTamIntAttributeRequest_MathFunc - Attr isSetTamIntAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + IoamTraceType *uint32 `protobuf:"varint,2,opt,name=ioam_trace_type,json=ioamTraceType,proto3,oneof" json:"ioam_trace_type,omitempty"` + TraceVector *uint32 `protobuf:"varint,3,opt,name=trace_vector,json=traceVector,proto3,oneof" json:"trace_vector,omitempty"` + ActionVector *uint32 `protobuf:"varint,4,opt,name=action_vector,json=actionVector,proto3,oneof" json:"action_vector,omitempty"` + P4IntInstructionBitmap *uint32 `protobuf:"varint,5,opt,name=p4_int_instruction_bitmap,json=p4IntInstructionBitmap,proto3,oneof" json:"p4_int_instruction_bitmap,omitempty"` + MetadataFragmentEnable *bool `protobuf:"varint,6,opt,name=metadata_fragment_enable,json=metadataFragmentEnable,proto3,oneof" json:"metadata_fragment_enable,omitempty"` + MetadataChecksumEnable *bool `protobuf:"varint,7,opt,name=metadata_checksum_enable,json=metadataChecksumEnable,proto3,oneof" json:"metadata_checksum_enable,omitempty"` + ReportAllPackets *bool `protobuf:"varint,8,opt,name=report_all_packets,json=reportAllPackets,proto3,oneof" json:"report_all_packets,omitempty"` + FlowLivenessPeriod *uint32 `protobuf:"varint,9,opt,name=flow_liveness_period,json=flowLivenessPeriod,proto3,oneof" json:"flow_liveness_period,omitempty"` + LatencySensitivity *uint32 `protobuf:"varint,10,opt,name=latency_sensitivity,json=latencySensitivity,proto3,oneof" json:"latency_sensitivity,omitempty"` + AclGroup *uint64 `protobuf:"varint,11,opt,name=acl_group,json=aclGroup,proto3,oneof" json:"acl_group,omitempty"` + MaxHopCount *uint32 `protobuf:"varint,12,opt,name=max_hop_count,json=maxHopCount,proto3,oneof" json:"max_hop_count,omitempty"` + MaxLength *uint32 `protobuf:"varint,13,opt,name=max_length,json=maxLength,proto3,oneof" json:"max_length,omitempty"` + NameSpaceId *uint32 `protobuf:"varint,14,opt,name=name_space_id,json=nameSpaceId,proto3,oneof" json:"name_space_id,omitempty"` + NameSpaceIdGlobal *bool `protobuf:"varint,15,opt,name=name_space_id_global,json=nameSpaceIdGlobal,proto3,oneof" json:"name_space_id_global,omitempty"` + IngressSamplepacketEnable *uint64 `protobuf:"varint,16,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3,oneof" json:"ingress_samplepacket_enable,omitempty"` + CollectorList []uint64 `protobuf:"varint,17,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` + MathFunc *uint64 `protobuf:"varint,18,opt,name=math_func,json=mathFunc,proto3,oneof" json:"math_func,omitempty"` } func (x *SetTamIntAttributeRequest) Reset() { @@ -3062,238 +2917,125 @@ func (x *SetTamIntAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamIntAttributeRequest) GetAttr() isSetTamIntAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamIntAttributeRequest) GetIoamTraceType() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_IoamTraceType); ok { - return x.IoamTraceType + if x != nil && x.IoamTraceType != nil { + return *x.IoamTraceType } return 0 } func (x *SetTamIntAttributeRequest) GetTraceVector() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_TraceVector); ok { - return x.TraceVector + if x != nil && x.TraceVector != nil { + return *x.TraceVector } return 0 } func (x *SetTamIntAttributeRequest) GetActionVector() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_ActionVector); ok { - return x.ActionVector + if x != nil && x.ActionVector != nil { + return *x.ActionVector } return 0 } func (x *SetTamIntAttributeRequest) GetP4IntInstructionBitmap() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_P4IntInstructionBitmap); ok { - return x.P4IntInstructionBitmap + if x != nil && x.P4IntInstructionBitmap != nil { + return *x.P4IntInstructionBitmap } return 0 } func (x *SetTamIntAttributeRequest) GetMetadataFragmentEnable() bool { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_MetadataFragmentEnable); ok { - return x.MetadataFragmentEnable + if x != nil && x.MetadataFragmentEnable != nil { + return *x.MetadataFragmentEnable } return false } func (x *SetTamIntAttributeRequest) GetMetadataChecksumEnable() bool { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_MetadataChecksumEnable); ok { - return x.MetadataChecksumEnable + if x != nil && x.MetadataChecksumEnable != nil { + return *x.MetadataChecksumEnable } return false } func (x *SetTamIntAttributeRequest) GetReportAllPackets() bool { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_ReportAllPackets); ok { - return x.ReportAllPackets + if x != nil && x.ReportAllPackets != nil { + return *x.ReportAllPackets } return false } func (x *SetTamIntAttributeRequest) GetFlowLivenessPeriod() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_FlowLivenessPeriod); ok { - return x.FlowLivenessPeriod + if x != nil && x.FlowLivenessPeriod != nil { + return *x.FlowLivenessPeriod } return 0 } func (x *SetTamIntAttributeRequest) GetLatencySensitivity() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_LatencySensitivity); ok { - return x.LatencySensitivity + if x != nil && x.LatencySensitivity != nil { + return *x.LatencySensitivity } return 0 } func (x *SetTamIntAttributeRequest) GetAclGroup() uint64 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_AclGroup); ok { - return x.AclGroup + if x != nil && x.AclGroup != nil { + return *x.AclGroup } return 0 } func (x *SetTamIntAttributeRequest) GetMaxHopCount() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_MaxHopCount); ok { - return x.MaxHopCount + if x != nil && x.MaxHopCount != nil { + return *x.MaxHopCount } return 0 } func (x *SetTamIntAttributeRequest) GetMaxLength() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_MaxLength); ok { - return x.MaxLength + if x != nil && x.MaxLength != nil { + return *x.MaxLength } return 0 } func (x *SetTamIntAttributeRequest) GetNameSpaceId() uint32 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_NameSpaceId); ok { - return x.NameSpaceId + if x != nil && x.NameSpaceId != nil { + return *x.NameSpaceId } return 0 } func (x *SetTamIntAttributeRequest) GetNameSpaceIdGlobal() bool { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_NameSpaceIdGlobal); ok { - return x.NameSpaceIdGlobal + if x != nil && x.NameSpaceIdGlobal != nil { + return *x.NameSpaceIdGlobal } return false } func (x *SetTamIntAttributeRequest) GetIngressSamplepacketEnable() uint64 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_IngressSamplepacketEnable); ok { - return x.IngressSamplepacketEnable + if x != nil && x.IngressSamplepacketEnable != nil { + return *x.IngressSamplepacketEnable } return 0 } -func (x *SetTamIntAttributeRequest) GetCollectorList() *Uint64List { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_CollectorList); ok { +func (x *SetTamIntAttributeRequest) GetCollectorList() []uint64 { + if x != nil { return x.CollectorList } return nil } func (x *SetTamIntAttributeRequest) GetMathFunc() uint64 { - if x, ok := x.GetAttr().(*SetTamIntAttributeRequest_MathFunc); ok { - return x.MathFunc + if x != nil && x.MathFunc != nil { + return *x.MathFunc } return 0 } -type isSetTamIntAttributeRequest_Attr interface { - isSetTamIntAttributeRequest_Attr() -} - -type SetTamIntAttributeRequest_IoamTraceType struct { - IoamTraceType uint32 `protobuf:"varint,2,opt,name=ioam_trace_type,json=ioamTraceType,proto3,oneof"` -} - -type SetTamIntAttributeRequest_TraceVector struct { - TraceVector uint32 `protobuf:"varint,3,opt,name=trace_vector,json=traceVector,proto3,oneof"` -} - -type SetTamIntAttributeRequest_ActionVector struct { - ActionVector uint32 `protobuf:"varint,4,opt,name=action_vector,json=actionVector,proto3,oneof"` -} - -type SetTamIntAttributeRequest_P4IntInstructionBitmap struct { - P4IntInstructionBitmap uint32 `protobuf:"varint,5,opt,name=p4_int_instruction_bitmap,json=p4IntInstructionBitmap,proto3,oneof"` -} - -type SetTamIntAttributeRequest_MetadataFragmentEnable struct { - MetadataFragmentEnable bool `protobuf:"varint,6,opt,name=metadata_fragment_enable,json=metadataFragmentEnable,proto3,oneof"` -} - -type SetTamIntAttributeRequest_MetadataChecksumEnable struct { - MetadataChecksumEnable bool `protobuf:"varint,7,opt,name=metadata_checksum_enable,json=metadataChecksumEnable,proto3,oneof"` -} - -type SetTamIntAttributeRequest_ReportAllPackets struct { - ReportAllPackets bool `protobuf:"varint,8,opt,name=report_all_packets,json=reportAllPackets,proto3,oneof"` -} - -type SetTamIntAttributeRequest_FlowLivenessPeriod struct { - FlowLivenessPeriod uint32 `protobuf:"varint,9,opt,name=flow_liveness_period,json=flowLivenessPeriod,proto3,oneof"` -} - -type SetTamIntAttributeRequest_LatencySensitivity struct { - LatencySensitivity uint32 `protobuf:"varint,10,opt,name=latency_sensitivity,json=latencySensitivity,proto3,oneof"` -} - -type SetTamIntAttributeRequest_AclGroup struct { - AclGroup uint64 `protobuf:"varint,11,opt,name=acl_group,json=aclGroup,proto3,oneof"` -} - -type SetTamIntAttributeRequest_MaxHopCount struct { - MaxHopCount uint32 `protobuf:"varint,12,opt,name=max_hop_count,json=maxHopCount,proto3,oneof"` -} - -type SetTamIntAttributeRequest_MaxLength struct { - MaxLength uint32 `protobuf:"varint,13,opt,name=max_length,json=maxLength,proto3,oneof"` -} - -type SetTamIntAttributeRequest_NameSpaceId struct { - NameSpaceId uint32 `protobuf:"varint,14,opt,name=name_space_id,json=nameSpaceId,proto3,oneof"` -} - -type SetTamIntAttributeRequest_NameSpaceIdGlobal struct { - NameSpaceIdGlobal bool `protobuf:"varint,15,opt,name=name_space_id_global,json=nameSpaceIdGlobal,proto3,oneof"` -} - -type SetTamIntAttributeRequest_IngressSamplepacketEnable struct { - IngressSamplepacketEnable uint64 `protobuf:"varint,16,opt,name=ingress_samplepacket_enable,json=ingressSamplepacketEnable,proto3,oneof"` -} - -type SetTamIntAttributeRequest_CollectorList struct { - CollectorList *Uint64List `protobuf:"bytes,17,opt,name=collector_list,json=collectorList,proto3,oneof"` -} - -type SetTamIntAttributeRequest_MathFunc struct { - MathFunc uint64 `protobuf:"varint,18,opt,name=math_func,json=mathFunc,proto3,oneof"` -} - -func (*SetTamIntAttributeRequest_IoamTraceType) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_TraceVector) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_ActionVector) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_P4IntInstructionBitmap) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_MetadataFragmentEnable) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_MetadataChecksumEnable) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_ReportAllPackets) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_FlowLivenessPeriod) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_LatencySensitivity) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_AclGroup) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_MaxHopCount) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_MaxLength) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_NameSpaceId) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_NameSpaceIdGlobal) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_IngressSamplepacketEnable) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_CollectorList) isSetTamIntAttributeRequest_Attr() {} - -func (*SetTamIntAttributeRequest_MathFunc) isSetTamIntAttributeRequest_Attr() {} - type SetTamIntAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3392,7 +3134,7 @@ type GetTamIntAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamIntAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamIntAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamIntAttributeResponse) Reset() { @@ -3427,7 +3169,7 @@ func (*GetTamIntAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{39} } -func (x *GetTamIntAttributeResponse) GetAttr() []*TamIntAttribute { +func (x *GetTamIntAttributeResponse) GetAttr() *TamIntAttribute { if x != nil { return x.Attr } @@ -3439,23 +3181,23 @@ type CreateTamTelTypeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TamTelemetryType TamTelemetryType `protobuf:"varint,2,opt,name=tam_telemetry_type,json=tamTelemetryType,proto3,enum=lemming.dataplane.sai.TamTelemetryType" json:"tam_telemetry_type,omitempty"` - IntSwitchIdentifier uint32 `protobuf:"varint,3,opt,name=int_switch_identifier,json=intSwitchIdentifier,proto3" json:"int_switch_identifier,omitempty"` - SwitchEnablePortStats bool `protobuf:"varint,4,opt,name=switch_enable_port_stats,json=switchEnablePortStats,proto3" json:"switch_enable_port_stats,omitempty"` - SwitchEnablePortStatsIngress bool `protobuf:"varint,5,opt,name=switch_enable_port_stats_ingress,json=switchEnablePortStatsIngress,proto3" json:"switch_enable_port_stats_ingress,omitempty"` - SwitchEnablePortStatsEgress bool `protobuf:"varint,6,opt,name=switch_enable_port_stats_egress,json=switchEnablePortStatsEgress,proto3" json:"switch_enable_port_stats_egress,omitempty"` - SwitchEnableVirtualQueueStats bool `protobuf:"varint,7,opt,name=switch_enable_virtual_queue_stats,json=switchEnableVirtualQueueStats,proto3" json:"switch_enable_virtual_queue_stats,omitempty"` - SwitchEnableOutputQueueStats bool `protobuf:"varint,8,opt,name=switch_enable_output_queue_stats,json=switchEnableOutputQueueStats,proto3" json:"switch_enable_output_queue_stats,omitempty"` - SwitchEnableMmuStats bool `protobuf:"varint,9,opt,name=switch_enable_mmu_stats,json=switchEnableMmuStats,proto3" json:"switch_enable_mmu_stats,omitempty"` - SwitchEnableFabricStats bool `protobuf:"varint,10,opt,name=switch_enable_fabric_stats,json=switchEnableFabricStats,proto3" json:"switch_enable_fabric_stats,omitempty"` - SwitchEnableFilterStats bool `protobuf:"varint,11,opt,name=switch_enable_filter_stats,json=switchEnableFilterStats,proto3" json:"switch_enable_filter_stats,omitempty"` - SwitchEnableResourceUtilizationStats bool `protobuf:"varint,12,opt,name=switch_enable_resource_utilization_stats,json=switchEnableResourceUtilizationStats,proto3" json:"switch_enable_resource_utilization_stats,omitempty"` - FabricQ bool `protobuf:"varint,13,opt,name=fabric_q,json=fabricQ,proto3" json:"fabric_q,omitempty"` - NeEnable bool `protobuf:"varint,14,opt,name=ne_enable,json=neEnable,proto3" json:"ne_enable,omitempty"` - DscpValue uint32 `protobuf:"varint,15,opt,name=dscp_value,json=dscpValue,proto3" json:"dscp_value,omitempty"` - MathFunc uint64 `protobuf:"varint,16,opt,name=math_func,json=mathFunc,proto3" json:"math_func,omitempty"` - ReportId uint64 `protobuf:"varint,17,opt,name=report_id,json=reportId,proto3" json:"report_id,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + TamTelemetryType *TamTelemetryType `protobuf:"varint,2,opt,name=tam_telemetry_type,json=tamTelemetryType,proto3,enum=lemming.dataplane.sai.TamTelemetryType,oneof" json:"tam_telemetry_type,omitempty"` + IntSwitchIdentifier *uint32 `protobuf:"varint,3,opt,name=int_switch_identifier,json=intSwitchIdentifier,proto3,oneof" json:"int_switch_identifier,omitempty"` + SwitchEnablePortStats *bool `protobuf:"varint,4,opt,name=switch_enable_port_stats,json=switchEnablePortStats,proto3,oneof" json:"switch_enable_port_stats,omitempty"` + SwitchEnablePortStatsIngress *bool `protobuf:"varint,5,opt,name=switch_enable_port_stats_ingress,json=switchEnablePortStatsIngress,proto3,oneof" json:"switch_enable_port_stats_ingress,omitempty"` + SwitchEnablePortStatsEgress *bool `protobuf:"varint,6,opt,name=switch_enable_port_stats_egress,json=switchEnablePortStatsEgress,proto3,oneof" json:"switch_enable_port_stats_egress,omitempty"` + SwitchEnableVirtualQueueStats *bool `protobuf:"varint,7,opt,name=switch_enable_virtual_queue_stats,json=switchEnableVirtualQueueStats,proto3,oneof" json:"switch_enable_virtual_queue_stats,omitempty"` + SwitchEnableOutputQueueStats *bool `protobuf:"varint,8,opt,name=switch_enable_output_queue_stats,json=switchEnableOutputQueueStats,proto3,oneof" json:"switch_enable_output_queue_stats,omitempty"` + SwitchEnableMmuStats *bool `protobuf:"varint,9,opt,name=switch_enable_mmu_stats,json=switchEnableMmuStats,proto3,oneof" json:"switch_enable_mmu_stats,omitempty"` + SwitchEnableFabricStats *bool `protobuf:"varint,10,opt,name=switch_enable_fabric_stats,json=switchEnableFabricStats,proto3,oneof" json:"switch_enable_fabric_stats,omitempty"` + SwitchEnableFilterStats *bool `protobuf:"varint,11,opt,name=switch_enable_filter_stats,json=switchEnableFilterStats,proto3,oneof" json:"switch_enable_filter_stats,omitempty"` + SwitchEnableResourceUtilizationStats *bool `protobuf:"varint,12,opt,name=switch_enable_resource_utilization_stats,json=switchEnableResourceUtilizationStats,proto3,oneof" json:"switch_enable_resource_utilization_stats,omitempty"` + FabricQ *bool `protobuf:"varint,13,opt,name=fabric_q,json=fabricQ,proto3,oneof" json:"fabric_q,omitempty"` + NeEnable *bool `protobuf:"varint,14,opt,name=ne_enable,json=neEnable,proto3,oneof" json:"ne_enable,omitempty"` + DscpValue *uint32 `protobuf:"varint,15,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` + MathFunc *uint64 `protobuf:"varint,16,opt,name=math_func,json=mathFunc,proto3,oneof" json:"math_func,omitempty"` + ReportId *uint64 `protobuf:"varint,17,opt,name=report_id,json=reportId,proto3,oneof" json:"report_id,omitempty"` } func (x *CreateTamTelTypeRequest) Reset() { @@ -3498,113 +3240,113 @@ func (x *CreateTamTelTypeRequest) GetSwitch() uint64 { } func (x *CreateTamTelTypeRequest) GetTamTelemetryType() TamTelemetryType { - if x != nil { - return x.TamTelemetryType + if x != nil && x.TamTelemetryType != nil { + return *x.TamTelemetryType } return TamTelemetryType_TAM_TELEMETRY_TYPE_UNSPECIFIED } func (x *CreateTamTelTypeRequest) GetIntSwitchIdentifier() uint32 { - if x != nil { - return x.IntSwitchIdentifier + if x != nil && x.IntSwitchIdentifier != nil { + return *x.IntSwitchIdentifier } return 0 } func (x *CreateTamTelTypeRequest) GetSwitchEnablePortStats() bool { - if x != nil { - return x.SwitchEnablePortStats + if x != nil && x.SwitchEnablePortStats != nil { + return *x.SwitchEnablePortStats } return false } func (x *CreateTamTelTypeRequest) GetSwitchEnablePortStatsIngress() bool { - if x != nil { - return x.SwitchEnablePortStatsIngress + if x != nil && x.SwitchEnablePortStatsIngress != nil { + return *x.SwitchEnablePortStatsIngress } return false } func (x *CreateTamTelTypeRequest) GetSwitchEnablePortStatsEgress() bool { - if x != nil { - return x.SwitchEnablePortStatsEgress + if x != nil && x.SwitchEnablePortStatsEgress != nil { + return *x.SwitchEnablePortStatsEgress } return false } func (x *CreateTamTelTypeRequest) GetSwitchEnableVirtualQueueStats() bool { - if x != nil { - return x.SwitchEnableVirtualQueueStats + if x != nil && x.SwitchEnableVirtualQueueStats != nil { + return *x.SwitchEnableVirtualQueueStats } return false } func (x *CreateTamTelTypeRequest) GetSwitchEnableOutputQueueStats() bool { - if x != nil { - return x.SwitchEnableOutputQueueStats + if x != nil && x.SwitchEnableOutputQueueStats != nil { + return *x.SwitchEnableOutputQueueStats } return false } func (x *CreateTamTelTypeRequest) GetSwitchEnableMmuStats() bool { - if x != nil { - return x.SwitchEnableMmuStats + if x != nil && x.SwitchEnableMmuStats != nil { + return *x.SwitchEnableMmuStats } return false } func (x *CreateTamTelTypeRequest) GetSwitchEnableFabricStats() bool { - if x != nil { - return x.SwitchEnableFabricStats + if x != nil && x.SwitchEnableFabricStats != nil { + return *x.SwitchEnableFabricStats } return false } func (x *CreateTamTelTypeRequest) GetSwitchEnableFilterStats() bool { - if x != nil { - return x.SwitchEnableFilterStats + if x != nil && x.SwitchEnableFilterStats != nil { + return *x.SwitchEnableFilterStats } return false } func (x *CreateTamTelTypeRequest) GetSwitchEnableResourceUtilizationStats() bool { - if x != nil { - return x.SwitchEnableResourceUtilizationStats + if x != nil && x.SwitchEnableResourceUtilizationStats != nil { + return *x.SwitchEnableResourceUtilizationStats } return false } func (x *CreateTamTelTypeRequest) GetFabricQ() bool { - if x != nil { - return x.FabricQ + if x != nil && x.FabricQ != nil { + return *x.FabricQ } return false } func (x *CreateTamTelTypeRequest) GetNeEnable() bool { - if x != nil { - return x.NeEnable + if x != nil && x.NeEnable != nil { + return *x.NeEnable } return false } func (x *CreateTamTelTypeRequest) GetDscpValue() uint32 { - if x != nil { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } func (x *CreateTamTelTypeRequest) GetMathFunc() uint64 { - if x != nil { - return x.MathFunc + if x != nil && x.MathFunc != nil { + return *x.MathFunc } return 0 } func (x *CreateTamTelTypeRequest) GetReportId() uint64 { - if x != nil { - return x.ReportId + if x != nil && x.ReportId != nil { + return *x.ReportId } return 0 } @@ -3746,24 +3488,21 @@ type SetTamTelTypeAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamTelTypeAttributeRequest_IntSwitchIdentifier - // *SetTamTelTypeAttributeRequest_SwitchEnablePortStats - // *SetTamTelTypeAttributeRequest_SwitchEnablePortStatsIngress - // *SetTamTelTypeAttributeRequest_SwitchEnablePortStatsEgress - // *SetTamTelTypeAttributeRequest_SwitchEnableVirtualQueueStats - // *SetTamTelTypeAttributeRequest_SwitchEnableOutputQueueStats - // *SetTamTelTypeAttributeRequest_SwitchEnableMmuStats - // *SetTamTelTypeAttributeRequest_SwitchEnableFabricStats - // *SetTamTelTypeAttributeRequest_SwitchEnableFilterStats - // *SetTamTelTypeAttributeRequest_SwitchEnableResourceUtilizationStats - // *SetTamTelTypeAttributeRequest_FabricQ - // *SetTamTelTypeAttributeRequest_NeEnable - // *SetTamTelTypeAttributeRequest_DscpValue - // *SetTamTelTypeAttributeRequest_MathFunc - Attr isSetTamTelTypeAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + IntSwitchIdentifier *uint32 `protobuf:"varint,2,opt,name=int_switch_identifier,json=intSwitchIdentifier,proto3,oneof" json:"int_switch_identifier,omitempty"` + SwitchEnablePortStats *bool `protobuf:"varint,3,opt,name=switch_enable_port_stats,json=switchEnablePortStats,proto3,oneof" json:"switch_enable_port_stats,omitempty"` + SwitchEnablePortStatsIngress *bool `protobuf:"varint,4,opt,name=switch_enable_port_stats_ingress,json=switchEnablePortStatsIngress,proto3,oneof" json:"switch_enable_port_stats_ingress,omitempty"` + SwitchEnablePortStatsEgress *bool `protobuf:"varint,5,opt,name=switch_enable_port_stats_egress,json=switchEnablePortStatsEgress,proto3,oneof" json:"switch_enable_port_stats_egress,omitempty"` + SwitchEnableVirtualQueueStats *bool `protobuf:"varint,6,opt,name=switch_enable_virtual_queue_stats,json=switchEnableVirtualQueueStats,proto3,oneof" json:"switch_enable_virtual_queue_stats,omitempty"` + SwitchEnableOutputQueueStats *bool `protobuf:"varint,7,opt,name=switch_enable_output_queue_stats,json=switchEnableOutputQueueStats,proto3,oneof" json:"switch_enable_output_queue_stats,omitempty"` + SwitchEnableMmuStats *bool `protobuf:"varint,8,opt,name=switch_enable_mmu_stats,json=switchEnableMmuStats,proto3,oneof" json:"switch_enable_mmu_stats,omitempty"` + SwitchEnableFabricStats *bool `protobuf:"varint,9,opt,name=switch_enable_fabric_stats,json=switchEnableFabricStats,proto3,oneof" json:"switch_enable_fabric_stats,omitempty"` + SwitchEnableFilterStats *bool `protobuf:"varint,10,opt,name=switch_enable_filter_stats,json=switchEnableFilterStats,proto3,oneof" json:"switch_enable_filter_stats,omitempty"` + SwitchEnableResourceUtilizationStats *bool `protobuf:"varint,11,opt,name=switch_enable_resource_utilization_stats,json=switchEnableResourceUtilizationStats,proto3,oneof" json:"switch_enable_resource_utilization_stats,omitempty"` + FabricQ *bool `protobuf:"varint,12,opt,name=fabric_q,json=fabricQ,proto3,oneof" json:"fabric_q,omitempty"` + NeEnable *bool `protobuf:"varint,13,opt,name=ne_enable,json=neEnable,proto3,oneof" json:"ne_enable,omitempty"` + DscpValue *uint32 `protobuf:"varint,14,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` + MathFunc *uint64 `protobuf:"varint,15,opt,name=math_func,json=mathFunc,proto3,oneof" json:"math_func,omitempty"` } func (x *SetTamTelTypeAttributeRequest) Reset() { @@ -3805,206 +3544,104 @@ func (x *SetTamTelTypeAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamTelTypeAttributeRequest) GetAttr() isSetTamTelTypeAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamTelTypeAttributeRequest) GetIntSwitchIdentifier() uint32 { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_IntSwitchIdentifier); ok { - return x.IntSwitchIdentifier + if x != nil && x.IntSwitchIdentifier != nil { + return *x.IntSwitchIdentifier } return 0 } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnablePortStats() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnablePortStats); ok { - return x.SwitchEnablePortStats + if x != nil && x.SwitchEnablePortStats != nil { + return *x.SwitchEnablePortStats } return false } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnablePortStatsIngress() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnablePortStatsIngress); ok { - return x.SwitchEnablePortStatsIngress + if x != nil && x.SwitchEnablePortStatsIngress != nil { + return *x.SwitchEnablePortStatsIngress } return false } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnablePortStatsEgress() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnablePortStatsEgress); ok { - return x.SwitchEnablePortStatsEgress + if x != nil && x.SwitchEnablePortStatsEgress != nil { + return *x.SwitchEnablePortStatsEgress } return false } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnableVirtualQueueStats() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnableVirtualQueueStats); ok { - return x.SwitchEnableVirtualQueueStats + if x != nil && x.SwitchEnableVirtualQueueStats != nil { + return *x.SwitchEnableVirtualQueueStats } return false } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnableOutputQueueStats() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnableOutputQueueStats); ok { - return x.SwitchEnableOutputQueueStats + if x != nil && x.SwitchEnableOutputQueueStats != nil { + return *x.SwitchEnableOutputQueueStats } return false } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnableMmuStats() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnableMmuStats); ok { - return x.SwitchEnableMmuStats + if x != nil && x.SwitchEnableMmuStats != nil { + return *x.SwitchEnableMmuStats } return false } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnableFabricStats() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnableFabricStats); ok { - return x.SwitchEnableFabricStats + if x != nil && x.SwitchEnableFabricStats != nil { + return *x.SwitchEnableFabricStats } return false } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnableFilterStats() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnableFilterStats); ok { - return x.SwitchEnableFilterStats + if x != nil && x.SwitchEnableFilterStats != nil { + return *x.SwitchEnableFilterStats } return false } func (x *SetTamTelTypeAttributeRequest) GetSwitchEnableResourceUtilizationStats() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_SwitchEnableResourceUtilizationStats); ok { - return x.SwitchEnableResourceUtilizationStats + if x != nil && x.SwitchEnableResourceUtilizationStats != nil { + return *x.SwitchEnableResourceUtilizationStats } return false } func (x *SetTamTelTypeAttributeRequest) GetFabricQ() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_FabricQ); ok { - return x.FabricQ + if x != nil && x.FabricQ != nil { + return *x.FabricQ } return false } func (x *SetTamTelTypeAttributeRequest) GetNeEnable() bool { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_NeEnable); ok { - return x.NeEnable + if x != nil && x.NeEnable != nil { + return *x.NeEnable } return false } func (x *SetTamTelTypeAttributeRequest) GetDscpValue() uint32 { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_DscpValue); ok { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } func (x *SetTamTelTypeAttributeRequest) GetMathFunc() uint64 { - if x, ok := x.GetAttr().(*SetTamTelTypeAttributeRequest_MathFunc); ok { - return x.MathFunc + if x != nil && x.MathFunc != nil { + return *x.MathFunc } return 0 } -type isSetTamTelTypeAttributeRequest_Attr interface { - isSetTamTelTypeAttributeRequest_Attr() -} - -type SetTamTelTypeAttributeRequest_IntSwitchIdentifier struct { - IntSwitchIdentifier uint32 `protobuf:"varint,2,opt,name=int_switch_identifier,json=intSwitchIdentifier,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnablePortStats struct { - SwitchEnablePortStats bool `protobuf:"varint,3,opt,name=switch_enable_port_stats,json=switchEnablePortStats,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnablePortStatsIngress struct { - SwitchEnablePortStatsIngress bool `protobuf:"varint,4,opt,name=switch_enable_port_stats_ingress,json=switchEnablePortStatsIngress,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnablePortStatsEgress struct { - SwitchEnablePortStatsEgress bool `protobuf:"varint,5,opt,name=switch_enable_port_stats_egress,json=switchEnablePortStatsEgress,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnableVirtualQueueStats struct { - SwitchEnableVirtualQueueStats bool `protobuf:"varint,6,opt,name=switch_enable_virtual_queue_stats,json=switchEnableVirtualQueueStats,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnableOutputQueueStats struct { - SwitchEnableOutputQueueStats bool `protobuf:"varint,7,opt,name=switch_enable_output_queue_stats,json=switchEnableOutputQueueStats,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnableMmuStats struct { - SwitchEnableMmuStats bool `protobuf:"varint,8,opt,name=switch_enable_mmu_stats,json=switchEnableMmuStats,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnableFabricStats struct { - SwitchEnableFabricStats bool `protobuf:"varint,9,opt,name=switch_enable_fabric_stats,json=switchEnableFabricStats,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnableFilterStats struct { - SwitchEnableFilterStats bool `protobuf:"varint,10,opt,name=switch_enable_filter_stats,json=switchEnableFilterStats,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_SwitchEnableResourceUtilizationStats struct { - SwitchEnableResourceUtilizationStats bool `protobuf:"varint,11,opt,name=switch_enable_resource_utilization_stats,json=switchEnableResourceUtilizationStats,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_FabricQ struct { - FabricQ bool `protobuf:"varint,12,opt,name=fabric_q,json=fabricQ,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_NeEnable struct { - NeEnable bool `protobuf:"varint,13,opt,name=ne_enable,json=neEnable,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_DscpValue struct { - DscpValue uint32 `protobuf:"varint,14,opt,name=dscp_value,json=dscpValue,proto3,oneof"` -} - -type SetTamTelTypeAttributeRequest_MathFunc struct { - MathFunc uint64 `protobuf:"varint,15,opt,name=math_func,json=mathFunc,proto3,oneof"` -} - -func (*SetTamTelTypeAttributeRequest_IntSwitchIdentifier) isSetTamTelTypeAttributeRequest_Attr() {} - -func (*SetTamTelTypeAttributeRequest_SwitchEnablePortStats) isSetTamTelTypeAttributeRequest_Attr() {} - -func (*SetTamTelTypeAttributeRequest_SwitchEnablePortStatsIngress) isSetTamTelTypeAttributeRequest_Attr() { -} - -func (*SetTamTelTypeAttributeRequest_SwitchEnablePortStatsEgress) isSetTamTelTypeAttributeRequest_Attr() { -} - -func (*SetTamTelTypeAttributeRequest_SwitchEnableVirtualQueueStats) isSetTamTelTypeAttributeRequest_Attr() { -} - -func (*SetTamTelTypeAttributeRequest_SwitchEnableOutputQueueStats) isSetTamTelTypeAttributeRequest_Attr() { -} - -func (*SetTamTelTypeAttributeRequest_SwitchEnableMmuStats) isSetTamTelTypeAttributeRequest_Attr() {} - -func (*SetTamTelTypeAttributeRequest_SwitchEnableFabricStats) isSetTamTelTypeAttributeRequest_Attr() { -} - -func (*SetTamTelTypeAttributeRequest_SwitchEnableFilterStats) isSetTamTelTypeAttributeRequest_Attr() { -} - -func (*SetTamTelTypeAttributeRequest_SwitchEnableResourceUtilizationStats) isSetTamTelTypeAttributeRequest_Attr() { -} - -func (*SetTamTelTypeAttributeRequest_FabricQ) isSetTamTelTypeAttributeRequest_Attr() {} - -func (*SetTamTelTypeAttributeRequest_NeEnable) isSetTamTelTypeAttributeRequest_Attr() {} - -func (*SetTamTelTypeAttributeRequest_DscpValue) isSetTamTelTypeAttributeRequest_Attr() {} - -func (*SetTamTelTypeAttributeRequest_MathFunc) isSetTamTelTypeAttributeRequest_Attr() {} - type SetTamTelTypeAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4103,7 +3740,7 @@ type GetTamTelTypeAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamTelTypeAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamTelTypeAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamTelTypeAttributeResponse) Reset() { @@ -4138,7 +3775,7 @@ func (*GetTamTelTypeAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{47} } -func (x *GetTamTelTypeAttributeResponse) GetAttr() []*TamTelTypeAttribute { +func (x *GetTamTelTypeAttributeResponse) GetAttr() *TamTelTypeAttribute { if x != nil { return x.Attr } @@ -4150,12 +3787,12 @@ type CreateTamTransportRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TransportType TamTransportType `protobuf:"varint,2,opt,name=transport_type,json=transportType,proto3,enum=lemming.dataplane.sai.TamTransportType" json:"transport_type,omitempty"` - SrcPort uint32 `protobuf:"varint,3,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` - DstPort uint32 `protobuf:"varint,4,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` - TransportAuthType TamTransportAuthType `protobuf:"varint,5,opt,name=transport_auth_type,json=transportAuthType,proto3,enum=lemming.dataplane.sai.TamTransportAuthType" json:"transport_auth_type,omitempty"` - Mtu uint32 `protobuf:"varint,6,opt,name=mtu,proto3" json:"mtu,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + TransportType *TamTransportType `protobuf:"varint,2,opt,name=transport_type,json=transportType,proto3,enum=lemming.dataplane.sai.TamTransportType,oneof" json:"transport_type,omitempty"` + SrcPort *uint32 `protobuf:"varint,3,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` + DstPort *uint32 `protobuf:"varint,4,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + TransportAuthType *TamTransportAuthType `protobuf:"varint,5,opt,name=transport_auth_type,json=transportAuthType,proto3,enum=lemming.dataplane.sai.TamTransportAuthType,oneof" json:"transport_auth_type,omitempty"` + Mtu *uint32 `protobuf:"varint,6,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` } func (x *CreateTamTransportRequest) Reset() { @@ -4198,36 +3835,36 @@ func (x *CreateTamTransportRequest) GetSwitch() uint64 { } func (x *CreateTamTransportRequest) GetTransportType() TamTransportType { - if x != nil { - return x.TransportType + if x != nil && x.TransportType != nil { + return *x.TransportType } return TamTransportType_TAM_TRANSPORT_TYPE_UNSPECIFIED } func (x *CreateTamTransportRequest) GetSrcPort() uint32 { - if x != nil { - return x.SrcPort + if x != nil && x.SrcPort != nil { + return *x.SrcPort } return 0 } func (x *CreateTamTransportRequest) GetDstPort() uint32 { - if x != nil { - return x.DstPort + if x != nil && x.DstPort != nil { + return *x.DstPort } return 0 } func (x *CreateTamTransportRequest) GetTransportAuthType() TamTransportAuthType { - if x != nil { - return x.TransportAuthType + if x != nil && x.TransportAuthType != nil { + return *x.TransportAuthType } return TamTransportAuthType_TAM_TRANSPORT_AUTH_TYPE_UNSPECIFIED } func (x *CreateTamTransportRequest) GetMtu() uint32 { - if x != nil { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } @@ -4369,14 +4006,11 @@ type SetTamTransportAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamTransportAttributeRequest_SrcPort - // *SetTamTransportAttributeRequest_DstPort - // *SetTamTransportAttributeRequest_TransportAuthType - // *SetTamTransportAttributeRequest_Mtu - Attr isSetTamTransportAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + SrcPort *uint32 `protobuf:"varint,2,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` + DstPort *uint32 `protobuf:"varint,3,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + TransportAuthType *TamTransportAuthType `protobuf:"varint,4,opt,name=transport_auth_type,json=transportAuthType,proto3,enum=lemming.dataplane.sai.TamTransportAuthType,oneof" json:"transport_auth_type,omitempty"` + Mtu *uint32 `protobuf:"varint,5,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` } func (x *SetTamTransportAttributeRequest) Reset() { @@ -4418,69 +4052,34 @@ func (x *SetTamTransportAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamTransportAttributeRequest) GetAttr() isSetTamTransportAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamTransportAttributeRequest) GetSrcPort() uint32 { - if x, ok := x.GetAttr().(*SetTamTransportAttributeRequest_SrcPort); ok { - return x.SrcPort + if x != nil && x.SrcPort != nil { + return *x.SrcPort } return 0 } func (x *SetTamTransportAttributeRequest) GetDstPort() uint32 { - if x, ok := x.GetAttr().(*SetTamTransportAttributeRequest_DstPort); ok { - return x.DstPort + if x != nil && x.DstPort != nil { + return *x.DstPort } return 0 } func (x *SetTamTransportAttributeRequest) GetTransportAuthType() TamTransportAuthType { - if x, ok := x.GetAttr().(*SetTamTransportAttributeRequest_TransportAuthType); ok { - return x.TransportAuthType + if x != nil && x.TransportAuthType != nil { + return *x.TransportAuthType } return TamTransportAuthType_TAM_TRANSPORT_AUTH_TYPE_UNSPECIFIED } func (x *SetTamTransportAttributeRequest) GetMtu() uint32 { - if x, ok := x.GetAttr().(*SetTamTransportAttributeRequest_Mtu); ok { - return x.Mtu + if x != nil && x.Mtu != nil { + return *x.Mtu } return 0 } -type isSetTamTransportAttributeRequest_Attr interface { - isSetTamTransportAttributeRequest_Attr() -} - -type SetTamTransportAttributeRequest_SrcPort struct { - SrcPort uint32 `protobuf:"varint,2,opt,name=src_port,json=srcPort,proto3,oneof"` -} - -type SetTamTransportAttributeRequest_DstPort struct { - DstPort uint32 `protobuf:"varint,3,opt,name=dst_port,json=dstPort,proto3,oneof"` -} - -type SetTamTransportAttributeRequest_TransportAuthType struct { - TransportAuthType TamTransportAuthType `protobuf:"varint,4,opt,name=transport_auth_type,json=transportAuthType,proto3,enum=lemming.dataplane.sai.TamTransportAuthType,oneof"` -} - -type SetTamTransportAttributeRequest_Mtu struct { - Mtu uint32 `protobuf:"varint,5,opt,name=mtu,proto3,oneof"` -} - -func (*SetTamTransportAttributeRequest_SrcPort) isSetTamTransportAttributeRequest_Attr() {} - -func (*SetTamTransportAttributeRequest_DstPort) isSetTamTransportAttributeRequest_Attr() {} - -func (*SetTamTransportAttributeRequest_TransportAuthType) isSetTamTransportAttributeRequest_Attr() {} - -func (*SetTamTransportAttributeRequest_Mtu) isSetTamTransportAttributeRequest_Attr() {} - type SetTamTransportAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4579,7 +4178,7 @@ type GetTamTransportAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamTransportAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamTransportAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamTransportAttributeResponse) Reset() { @@ -4614,7 +4213,7 @@ func (*GetTamTransportAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{55} } -func (x *GetTamTransportAttributeResponse) GetAttr() []*TamTransportAttribute { +func (x *GetTamTransportAttributeResponse) GetAttr() *TamTransportAttribute { if x != nil { return x.Attr } @@ -4626,11 +4225,11 @@ type CreateTamTelemetryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TamTypeList []uint64 `protobuf:"varint,2,rep,packed,name=tam_type_list,json=tamTypeList,proto3" json:"tam_type_list,omitempty"` - CollectorList []uint64 `protobuf:"varint,3,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` - TamReportingUnit TamReportingUnit `protobuf:"varint,4,opt,name=tam_reporting_unit,json=tamReportingUnit,proto3,enum=lemming.dataplane.sai.TamReportingUnit" json:"tam_reporting_unit,omitempty"` - ReportingInterval uint32 `protobuf:"varint,5,opt,name=reporting_interval,json=reportingInterval,proto3" json:"reporting_interval,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + TamTypeList []uint64 `protobuf:"varint,2,rep,packed,name=tam_type_list,json=tamTypeList,proto3" json:"tam_type_list,omitempty"` + CollectorList []uint64 `protobuf:"varint,3,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` + TamReportingUnit *TamReportingUnit `protobuf:"varint,4,opt,name=tam_reporting_unit,json=tamReportingUnit,proto3,enum=lemming.dataplane.sai.TamReportingUnit,oneof" json:"tam_reporting_unit,omitempty"` + ReportingInterval *uint32 `protobuf:"varint,5,opt,name=reporting_interval,json=reportingInterval,proto3,oneof" json:"reporting_interval,omitempty"` } func (x *CreateTamTelemetryRequest) Reset() { @@ -4687,15 +4286,15 @@ func (x *CreateTamTelemetryRequest) GetCollectorList() []uint64 { } func (x *CreateTamTelemetryRequest) GetTamReportingUnit() TamReportingUnit { - if x != nil { - return x.TamReportingUnit + if x != nil && x.TamReportingUnit != nil { + return *x.TamReportingUnit } return TamReportingUnit_TAM_REPORTING_UNIT_UNSPECIFIED } func (x *CreateTamTelemetryRequest) GetReportingInterval() uint32 { - if x != nil { - return x.ReportingInterval + if x != nil && x.ReportingInterval != nil { + return *x.ReportingInterval } return 0 } @@ -4837,13 +4436,10 @@ type SetTamTelemetryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamTelemetryAttributeRequest_TamTypeList - // *SetTamTelemetryAttributeRequest_TamReportingUnit - // *SetTamTelemetryAttributeRequest_ReportingInterval - Attr isSetTamTelemetryAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + TamTypeList []uint64 `protobuf:"varint,2,rep,packed,name=tam_type_list,json=tamTypeList,proto3" json:"tam_type_list,omitempty"` + TamReportingUnit *TamReportingUnit `protobuf:"varint,3,opt,name=tam_reporting_unit,json=tamReportingUnit,proto3,enum=lemming.dataplane.sai.TamReportingUnit,oneof" json:"tam_reporting_unit,omitempty"` + ReportingInterval *uint32 `protobuf:"varint,4,opt,name=reporting_interval,json=reportingInterval,proto3,oneof" json:"reporting_interval,omitempty"` } func (x *SetTamTelemetryAttributeRequest) Reset() { @@ -4885,56 +4481,27 @@ func (x *SetTamTelemetryAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamTelemetryAttributeRequest) GetAttr() isSetTamTelemetryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - -func (x *SetTamTelemetryAttributeRequest) GetTamTypeList() *Uint64List { - if x, ok := x.GetAttr().(*SetTamTelemetryAttributeRequest_TamTypeList); ok { +func (x *SetTamTelemetryAttributeRequest) GetTamTypeList() []uint64 { + if x != nil { return x.TamTypeList } return nil } func (x *SetTamTelemetryAttributeRequest) GetTamReportingUnit() TamReportingUnit { - if x, ok := x.GetAttr().(*SetTamTelemetryAttributeRequest_TamReportingUnit); ok { - return x.TamReportingUnit + if x != nil && x.TamReportingUnit != nil { + return *x.TamReportingUnit } return TamReportingUnit_TAM_REPORTING_UNIT_UNSPECIFIED } func (x *SetTamTelemetryAttributeRequest) GetReportingInterval() uint32 { - if x, ok := x.GetAttr().(*SetTamTelemetryAttributeRequest_ReportingInterval); ok { - return x.ReportingInterval + if x != nil && x.ReportingInterval != nil { + return *x.ReportingInterval } return 0 } -type isSetTamTelemetryAttributeRequest_Attr interface { - isSetTamTelemetryAttributeRequest_Attr() -} - -type SetTamTelemetryAttributeRequest_TamTypeList struct { - TamTypeList *Uint64List `protobuf:"bytes,2,opt,name=tam_type_list,json=tamTypeList,proto3,oneof"` -} - -type SetTamTelemetryAttributeRequest_TamReportingUnit struct { - TamReportingUnit TamReportingUnit `protobuf:"varint,3,opt,name=tam_reporting_unit,json=tamReportingUnit,proto3,enum=lemming.dataplane.sai.TamReportingUnit,oneof"` -} - -type SetTamTelemetryAttributeRequest_ReportingInterval struct { - ReportingInterval uint32 `protobuf:"varint,4,opt,name=reporting_interval,json=reportingInterval,proto3,oneof"` -} - -func (*SetTamTelemetryAttributeRequest_TamTypeList) isSetTamTelemetryAttributeRequest_Attr() {} - -func (*SetTamTelemetryAttributeRequest_TamReportingUnit) isSetTamTelemetryAttributeRequest_Attr() {} - -func (*SetTamTelemetryAttributeRequest_ReportingInterval) isSetTamTelemetryAttributeRequest_Attr() {} - type SetTamTelemetryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5033,7 +4600,7 @@ type GetTamTelemetryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamTelemetryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamTelemetryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamTelemetryAttributeResponse) Reset() { @@ -5068,7 +4635,7 @@ func (*GetTamTelemetryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{63} } -func (x *GetTamTelemetryAttributeResponse) GetAttr() []*TamTelemetryAttribute { +func (x *GetTamTelemetryAttributeResponse) GetAttr() *TamTelemetryAttribute { if x != nil { return x.Attr } @@ -5080,14 +4647,14 @@ type CreateTamCollectorRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` - DstIp []byte `protobuf:"bytes,3,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - Localhost bool `protobuf:"varint,4,opt,name=localhost,proto3" json:"localhost,omitempty"` - VirtualRouterId uint64 `protobuf:"varint,5,opt,name=virtual_router_id,json=virtualRouterId,proto3" json:"virtual_router_id,omitempty"` - TruncateSize uint32 `protobuf:"varint,6,opt,name=truncate_size,json=truncateSize,proto3" json:"truncate_size,omitempty"` - Transport uint64 `protobuf:"varint,7,opt,name=transport,proto3" json:"transport,omitempty"` - DscpValue uint32 `protobuf:"varint,8,opt,name=dscp_value,json=dscpValue,proto3" json:"dscp_value,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + DstIp []byte `protobuf:"bytes,3,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + Localhost *bool `protobuf:"varint,4,opt,name=localhost,proto3,oneof" json:"localhost,omitempty"` + VirtualRouterId *uint64 `protobuf:"varint,5,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof" json:"virtual_router_id,omitempty"` + TruncateSize *uint32 `protobuf:"varint,6,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + Transport *uint64 `protobuf:"varint,7,opt,name=transport,proto3,oneof" json:"transport,omitempty"` + DscpValue *uint32 `protobuf:"varint,8,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *CreateTamCollectorRequest) Reset() { @@ -5144,36 +4711,36 @@ func (x *CreateTamCollectorRequest) GetDstIp() []byte { } func (x *CreateTamCollectorRequest) GetLocalhost() bool { - if x != nil { - return x.Localhost + if x != nil && x.Localhost != nil { + return *x.Localhost } return false } func (x *CreateTamCollectorRequest) GetVirtualRouterId() uint64 { - if x != nil { - return x.VirtualRouterId + if x != nil && x.VirtualRouterId != nil { + return *x.VirtualRouterId } return 0 } func (x *CreateTamCollectorRequest) GetTruncateSize() uint32 { - if x != nil { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *CreateTamCollectorRequest) GetTransport() uint64 { - if x != nil { - return x.Transport + if x != nil && x.Transport != nil { + return *x.Transport } return 0 } func (x *CreateTamCollectorRequest) GetDscpValue() uint32 { - if x != nil { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } @@ -5315,17 +4882,14 @@ type SetTamCollectorAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamCollectorAttributeRequest_SrcIp - // *SetTamCollectorAttributeRequest_DstIp - // *SetTamCollectorAttributeRequest_Localhost - // *SetTamCollectorAttributeRequest_VirtualRouterId - // *SetTamCollectorAttributeRequest_TruncateSize - // *SetTamCollectorAttributeRequest_Transport - // *SetTamCollectorAttributeRequest_DscpValue - Attr isSetTamCollectorAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + DstIp []byte `protobuf:"bytes,3,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + Localhost *bool `protobuf:"varint,4,opt,name=localhost,proto3,oneof" json:"localhost,omitempty"` + VirtualRouterId *uint64 `protobuf:"varint,5,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof" json:"virtual_router_id,omitempty"` + TruncateSize *uint32 `protobuf:"varint,6,opt,name=truncate_size,json=truncateSize,proto3,oneof" json:"truncate_size,omitempty"` + Transport *uint64 `protobuf:"varint,7,opt,name=transport,proto3,oneof" json:"transport,omitempty"` + DscpValue *uint32 `protobuf:"varint,8,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *SetTamCollectorAttributeRequest) Reset() { @@ -5367,108 +4931,55 @@ func (x *SetTamCollectorAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamCollectorAttributeRequest) GetAttr() isSetTamCollectorAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamCollectorAttributeRequest) GetSrcIp() []byte { - if x, ok := x.GetAttr().(*SetTamCollectorAttributeRequest_SrcIp); ok { + if x != nil { return x.SrcIp } return nil } func (x *SetTamCollectorAttributeRequest) GetDstIp() []byte { - if x, ok := x.GetAttr().(*SetTamCollectorAttributeRequest_DstIp); ok { + if x != nil { return x.DstIp } return nil } func (x *SetTamCollectorAttributeRequest) GetLocalhost() bool { - if x, ok := x.GetAttr().(*SetTamCollectorAttributeRequest_Localhost); ok { - return x.Localhost + if x != nil && x.Localhost != nil { + return *x.Localhost } return false } func (x *SetTamCollectorAttributeRequest) GetVirtualRouterId() uint64 { - if x, ok := x.GetAttr().(*SetTamCollectorAttributeRequest_VirtualRouterId); ok { - return x.VirtualRouterId + if x != nil && x.VirtualRouterId != nil { + return *x.VirtualRouterId } return 0 } func (x *SetTamCollectorAttributeRequest) GetTruncateSize() uint32 { - if x, ok := x.GetAttr().(*SetTamCollectorAttributeRequest_TruncateSize); ok { - return x.TruncateSize + if x != nil && x.TruncateSize != nil { + return *x.TruncateSize } return 0 } func (x *SetTamCollectorAttributeRequest) GetTransport() uint64 { - if x, ok := x.GetAttr().(*SetTamCollectorAttributeRequest_Transport); ok { - return x.Transport + if x != nil && x.Transport != nil { + return *x.Transport } return 0 } func (x *SetTamCollectorAttributeRequest) GetDscpValue() uint32 { - if x, ok := x.GetAttr().(*SetTamCollectorAttributeRequest_DscpValue); ok { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } -type isSetTamCollectorAttributeRequest_Attr interface { - isSetTamCollectorAttributeRequest_Attr() -} - -type SetTamCollectorAttributeRequest_SrcIp struct { - SrcIp []byte `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3,oneof"` -} - -type SetTamCollectorAttributeRequest_DstIp struct { - DstIp []byte `protobuf:"bytes,3,opt,name=dst_ip,json=dstIp,proto3,oneof"` -} - -type SetTamCollectorAttributeRequest_Localhost struct { - Localhost bool `protobuf:"varint,4,opt,name=localhost,proto3,oneof"` -} - -type SetTamCollectorAttributeRequest_VirtualRouterId struct { - VirtualRouterId uint64 `protobuf:"varint,5,opt,name=virtual_router_id,json=virtualRouterId,proto3,oneof"` -} - -type SetTamCollectorAttributeRequest_TruncateSize struct { - TruncateSize uint32 `protobuf:"varint,6,opt,name=truncate_size,json=truncateSize,proto3,oneof"` -} - -type SetTamCollectorAttributeRequest_Transport struct { - Transport uint64 `protobuf:"varint,7,opt,name=transport,proto3,oneof"` -} - -type SetTamCollectorAttributeRequest_DscpValue struct { - DscpValue uint32 `protobuf:"varint,8,opt,name=dscp_value,json=dscpValue,proto3,oneof"` -} - -func (*SetTamCollectorAttributeRequest_SrcIp) isSetTamCollectorAttributeRequest_Attr() {} - -func (*SetTamCollectorAttributeRequest_DstIp) isSetTamCollectorAttributeRequest_Attr() {} - -func (*SetTamCollectorAttributeRequest_Localhost) isSetTamCollectorAttributeRequest_Attr() {} - -func (*SetTamCollectorAttributeRequest_VirtualRouterId) isSetTamCollectorAttributeRequest_Attr() {} - -func (*SetTamCollectorAttributeRequest_TruncateSize) isSetTamCollectorAttributeRequest_Attr() {} - -func (*SetTamCollectorAttributeRequest_Transport) isSetTamCollectorAttributeRequest_Attr() {} - -func (*SetTamCollectorAttributeRequest_DscpValue) isSetTamCollectorAttributeRequest_Attr() {} - type SetTamCollectorAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5567,7 +5078,7 @@ type GetTamCollectorAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamCollectorAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamCollectorAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamCollectorAttributeResponse) Reset() { @@ -5602,7 +5113,7 @@ func (*GetTamCollectorAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{71} } -func (x *GetTamCollectorAttributeResponse) GetAttr() []*TamCollectorAttribute { +func (x *GetTamCollectorAttributeResponse) GetAttr() *TamCollectorAttribute { if x != nil { return x.Attr } @@ -5614,9 +5125,9 @@ type CreateTamEventActionRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - ReportType uint64 `protobuf:"varint,2,opt,name=report_type,json=reportType,proto3" json:"report_type,omitempty"` - QosActionType uint32 `protobuf:"varint,3,opt,name=qos_action_type,json=qosActionType,proto3" json:"qos_action_type,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + ReportType *uint64 `protobuf:"varint,2,opt,name=report_type,json=reportType,proto3,oneof" json:"report_type,omitempty"` + QosActionType *uint32 `protobuf:"varint,3,opt,name=qos_action_type,json=qosActionType,proto3,oneof" json:"qos_action_type,omitempty"` } func (x *CreateTamEventActionRequest) Reset() { @@ -5659,15 +5170,15 @@ func (x *CreateTamEventActionRequest) GetSwitch() uint64 { } func (x *CreateTamEventActionRequest) GetReportType() uint64 { - if x != nil { - return x.ReportType + if x != nil && x.ReportType != nil { + return *x.ReportType } return 0 } func (x *CreateTamEventActionRequest) GetQosActionType() uint32 { - if x != nil { - return x.QosActionType + if x != nil && x.QosActionType != nil { + return *x.QosActionType } return 0 } @@ -5809,12 +5320,9 @@ type SetTamEventActionAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamEventActionAttributeRequest_ReportType - // *SetTamEventActionAttributeRequest_QosActionType - Attr isSetTamEventActionAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + ReportType *uint64 `protobuf:"varint,2,opt,name=report_type,json=reportType,proto3,oneof" json:"report_type,omitempty"` + QosActionType *uint32 `protobuf:"varint,3,opt,name=qos_action_type,json=qosActionType,proto3,oneof" json:"qos_action_type,omitempty"` } func (x *SetTamEventActionAttributeRequest) Reset() { @@ -5856,43 +5364,20 @@ func (x *SetTamEventActionAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamEventActionAttributeRequest) GetAttr() isSetTamEventActionAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamEventActionAttributeRequest) GetReportType() uint64 { - if x, ok := x.GetAttr().(*SetTamEventActionAttributeRequest_ReportType); ok { - return x.ReportType + if x != nil && x.ReportType != nil { + return *x.ReportType } return 0 } func (x *SetTamEventActionAttributeRequest) GetQosActionType() uint32 { - if x, ok := x.GetAttr().(*SetTamEventActionAttributeRequest_QosActionType); ok { - return x.QosActionType + if x != nil && x.QosActionType != nil { + return *x.QosActionType } return 0 } -type isSetTamEventActionAttributeRequest_Attr interface { - isSetTamEventActionAttributeRequest_Attr() -} - -type SetTamEventActionAttributeRequest_ReportType struct { - ReportType uint64 `protobuf:"varint,2,opt,name=report_type,json=reportType,proto3,oneof"` -} - -type SetTamEventActionAttributeRequest_QosActionType struct { - QosActionType uint32 `protobuf:"varint,3,opt,name=qos_action_type,json=qosActionType,proto3,oneof"` -} - -func (*SetTamEventActionAttributeRequest_ReportType) isSetTamEventActionAttributeRequest_Attr() {} - -func (*SetTamEventActionAttributeRequest_QosActionType) isSetTamEventActionAttributeRequest_Attr() {} - type SetTamEventActionAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5991,7 +5476,7 @@ type GetTamEventActionAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamEventActionAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamEventActionAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamEventActionAttributeResponse) Reset() { @@ -6026,7 +5511,7 @@ func (*GetTamEventActionAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{79} } -func (x *GetTamEventActionAttributeResponse) GetAttr() []*TamEventActionAttribute { +func (x *GetTamEventActionAttributeResponse) GetAttr() *TamEventActionAttribute { if x != nil { return x.Attr } @@ -6038,12 +5523,12 @@ type CreateTamEventRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type TamEventType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TamEventType" json:"type,omitempty"` - ActionList []uint64 `protobuf:"varint,3,rep,packed,name=action_list,json=actionList,proto3" json:"action_list,omitempty"` - CollectorList []uint64 `protobuf:"varint,4,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` - Threshold uint64 `protobuf:"varint,5,opt,name=threshold,proto3" json:"threshold,omitempty"` - DscpValue uint32 `protobuf:"varint,6,opt,name=dscp_value,json=dscpValue,proto3" json:"dscp_value,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *TamEventType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TamEventType,oneof" json:"type,omitempty"` + ActionList []uint64 `protobuf:"varint,3,rep,packed,name=action_list,json=actionList,proto3" json:"action_list,omitempty"` + CollectorList []uint64 `protobuf:"varint,4,rep,packed,name=collector_list,json=collectorList,proto3" json:"collector_list,omitempty"` + Threshold *uint64 `protobuf:"varint,5,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` + DscpValue *uint32 `protobuf:"varint,6,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *CreateTamEventRequest) Reset() { @@ -6086,8 +5571,8 @@ func (x *CreateTamEventRequest) GetSwitch() uint64 { } func (x *CreateTamEventRequest) GetType() TamEventType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TamEventType_TAM_EVENT_TYPE_UNSPECIFIED } @@ -6107,15 +5592,15 @@ func (x *CreateTamEventRequest) GetCollectorList() []uint64 { } func (x *CreateTamEventRequest) GetThreshold() uint64 { - if x != nil { - return x.Threshold + if x != nil && x.Threshold != nil { + return *x.Threshold } return 0 } func (x *CreateTamEventRequest) GetDscpValue() uint32 { - if x != nil { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } @@ -6257,12 +5742,9 @@ type SetTamEventAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTamEventAttributeRequest_Threshold - // *SetTamEventAttributeRequest_DscpValue - Attr isSetTamEventAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Threshold *uint64 `protobuf:"varint,2,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` + DscpValue *uint32 `protobuf:"varint,3,opt,name=dscp_value,json=dscpValue,proto3,oneof" json:"dscp_value,omitempty"` } func (x *SetTamEventAttributeRequest) Reset() { @@ -6304,43 +5786,20 @@ func (x *SetTamEventAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTamEventAttributeRequest) GetAttr() isSetTamEventAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTamEventAttributeRequest) GetThreshold() uint64 { - if x, ok := x.GetAttr().(*SetTamEventAttributeRequest_Threshold); ok { - return x.Threshold + if x != nil && x.Threshold != nil { + return *x.Threshold } return 0 } func (x *SetTamEventAttributeRequest) GetDscpValue() uint32 { - if x, ok := x.GetAttr().(*SetTamEventAttributeRequest_DscpValue); ok { - return x.DscpValue + if x != nil && x.DscpValue != nil { + return *x.DscpValue } return 0 } -type isSetTamEventAttributeRequest_Attr interface { - isSetTamEventAttributeRequest_Attr() -} - -type SetTamEventAttributeRequest_Threshold struct { - Threshold uint64 `protobuf:"varint,2,opt,name=threshold,proto3,oneof"` -} - -type SetTamEventAttributeRequest_DscpValue struct { - DscpValue uint32 `protobuf:"varint,3,opt,name=dscp_value,json=dscpValue,proto3,oneof"` -} - -func (*SetTamEventAttributeRequest_Threshold) isSetTamEventAttributeRequest_Attr() {} - -func (*SetTamEventAttributeRequest_DscpValue) isSetTamEventAttributeRequest_Attr() {} - type SetTamEventAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6439,7 +5898,7 @@ type GetTamEventAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TamEventAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TamEventAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTamEventAttributeResponse) Reset() { @@ -6474,7 +5933,7 @@ func (*GetTamEventAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tam_proto_rawDescGZIP(), []int{87} } -func (x *GetTamEventAttributeResponse) GetAttr() []*TamEventAttribute { +func (x *GetTamEventAttributeResponse) GetAttr() *TamEventAttribute { if x != nil { return x.Attr } @@ -6490,153 +5949,169 @@ var file_dataplane_standalone_proto_tam_proto_rawDesc = []byte{ 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x74, 0x63, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x04, 0x52, 0x14, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x5f, 0x0a, 0x18, 0x74, 0x61, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x42, - 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x74, 0x61, - 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x25, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x13, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, 0x14, 0x74, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x32, 0x0a, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x65, 0x0a, 0x18, 0x74, 0x61, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, + 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x52, 0x14, 0x74, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x25, 0x0a, 0x11, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x59, 0x0a, 0x16, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x12, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x4d, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, - 0x69, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x06, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x67, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3b, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x64, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xca, 0x01, 0x0a, + 0x16, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x16, 0x74, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, + 0x14, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x10, 0x69, 0x6e, 0x74, + 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, + 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x91, - 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, - 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x5d, 0x0a, 0x16, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x5f, 0x6d, - 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, - 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, - 0x74, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x4d, - 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, - 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, - 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x01, 0x0a, - 0x1e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x5f, 0x0a, 0x16, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x74, - 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, - 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x12, - 0x74, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, - 0x1e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x43, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, - 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, - 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x62, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, + 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, + 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x22, 0xb7, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x4d, + 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x68, 0x0a, 0x16, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, + 0x6c, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, + 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x12, 0x74, 0x61, 0x6d, 0x54, 0x65, + 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x74, + 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x19, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x8c, 0x03, 0x0a, 0x16, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x38, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x68, 0x69, 0x73, 0x74, 0x6f, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x68, 0x0a, 0x16, 0x74, 0x61, + 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, + 0x63, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x12, 0x74, + 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, + 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x21, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, + 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x77, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, + 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, + 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x62, 0x0a, 0x1f, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, + 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, + 0xbe, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x62, - 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x67, 0x72, 0x61, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x42, 0x69, 0x6e, 0x73, - 0x12, 0x34, 0x0a, 0x16, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x62, 0x69, - 0x6e, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x0b, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2b, 0x0a, 0x11, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x69, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, 0x01, - 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x05, - 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x71, - 0x75, 0x6f, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, - 0x2d, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x65, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x06, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, + 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, + 0x01, 0x52, 0x15, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4f, 0x66, 0x42, 0x69, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x68, + 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x5f, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x52, 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x05, + 0x71, 0x75, 0x6f, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x05, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x6e, 0x73, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, + 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, + 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, + 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x01, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, + 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x02, 0x52, 0x0e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x36, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x07, 0x48, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, @@ -6648,1216 +6123,1437 @@ var file_dataplane_standalone_proto_tam_proto_rawDesc = []byte{ 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x91, 0x02, 0x0a, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xa4, 0x03, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x69, 0x67, 0x68, 0x5f, - 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x68, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x23, - 0x0a, 0x0d, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6c, 0x6f, 0x77, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, - 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x74, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x62, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x62, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, - 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, - 0x22, 0x33, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa5, 0x02, 0x0a, - 0x24, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0e, 0x68, 0x69, 0x67, 0x68, 0x5f, - 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x0d, 0x68, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, - 0x12, 0x25, 0x0a, 0x0d, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, - 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x6f, 0x77, 0x57, 0x61, - 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x62, 0x73, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, - 0x61, 0x62, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x0e, 0x68, 0x69, 0x67, 0x68, 0x5f, + 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x68, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, + 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6c, 0x6f, 0x77, + 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x6f, 0x77, 0x57, 0x61, 0x74, + 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x07, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x02, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x03, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x09, 0x61, 0x62, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, 0x61, 0x62, 0x73, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x55, 0x6e, 0x69, + 0x74, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, + 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, + 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x61, 0x62, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, + 0x6e, 0x69, 0x74, 0x22, 0x33, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x21, 0x0a, 0x1f, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xa4, 0x03, 0x0a, 0x24, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x0e, 0x68, 0x69, + 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x68, 0x69, 0x67, 0x68, + 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, + 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x6f, 0x77, + 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x07, + 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x1d, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x61, 0x62, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x08, 0x61, 0x62, 0x73, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x55, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x22, 0x27, 0x0a, 0x25, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x83, 0x01, - 0x0a, 0x24, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, + 0x55, 0x6e, 0x69, 0x74, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x04, 0x75, 0x6e, + 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x77, + 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x77, + 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x62, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x27, 0x0a, 0x25, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x83, 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6e, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, + 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x6e, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x22, 0xba, 0x09, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6f, 0x61, 0x6d, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x69, 0x6f, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x55, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x62, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x62, 0x31, - 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x70, 0x62, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x50, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x62, 0x32, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x6e, - 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x69, 0x6e, 0x74, - 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x74, - 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x33, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x69, 0x6e, 0x74, - 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x19, 0x70, 0x34, - 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x70, - 0x34, 0x49, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x18, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x38, 0x0a, 0x18, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x6c, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x76, 0x65, 0x6e, - 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x6c, 0x61, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, - 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, - 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x61, - 0x63, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x61, - 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2f, - 0x0a, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, - 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6e, 0x61, - 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, - 0x3e, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x19, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, - 0x75, 0x6e, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, - 0x75, 0x6e, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, - 0x49, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe3, 0x06, 0x0a, 0x19, - 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x69, - 0x6f, 0x61, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6f, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x76, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0d, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x3b, 0x0a, 0x19, 0x70, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x16, 0x70, 0x34, 0x49, 0x6e, 0x74, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x3a, - 0x0a, 0x18, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x16, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, - 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x12, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x76, 0x65, - 0x6e, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x31, 0x0a, 0x13, 0x6c, 0x61, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, - 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x24, 0x0a, 0x0d, - 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x61, - 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x4a, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xdb, 0x0f, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x0f, 0x69, 0x6f, 0x61, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, + 0x52, 0x0d, 0x69, 0x6f, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x60, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, + 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x62, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x63, 0x65, 0x50, 0x62, 0x31, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x69, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x62, 0x32, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x74, + 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x62, 0x32, 0x88, 0x01, 0x01, 0x12, 0x40, + 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x63, 0x65, 0x44, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x21, 0x0a, 0x06, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x06, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x33, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x15, 0x69, + 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x33, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x19, 0x70, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x6d, + 0x61, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, + 0x52, 0x16, 0x70, 0x34, 0x49, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x18, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x16, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, + 0x0a, 0x14, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x10, 0x48, 0x0f, 0x52, 0x12, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x76, 0x65, 0x6e, 0x65, + 0x73, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, + 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, + 0x48, 0x11, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x0b, + 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x13, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x15, 0x52, 0x11, 0x6e, + 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x16, + 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x61, - 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x18, 0x19, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x52, 0x0d, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x09, 0x6d, + 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x19, 0x48, 0x17, 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x18, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6f, 0x61, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x62, + 0x31, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x63, 0x65, 0x5f, 0x70, 0x62, 0x32, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, + 0x33, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x1c, 0x0a, + 0x1a, 0x5f, 0x70, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x61, 0x74, 0x68, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, + 0x49, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, + 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, + 0x0a, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3e, - 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, - 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xaf, 0x07, 0x0a, 0x17, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x55, 0x0a, 0x12, - 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x10, 0x74, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x13, 0x69, 0x6e, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x46, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x73, 0x77, 0x69, 0x74, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x31, + 0x0a, 0x0f, 0x69, 0x6f, 0x61, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, + 0x0d, 0x69, 0x6f, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x01, 0x52, + 0x0b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x02, 0x52, 0x0c, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x19, 0x70, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x03, 0x52, 0x16, 0x70, 0x34, 0x49, 0x6e, + 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x6d, + 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x04, 0x52, + 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x18, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0e, 0x48, 0x05, 0x52, 0x16, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x0f, 0x48, 0x06, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x07, 0x52, 0x12, + 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x08, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x09, 0x52, 0x08, 0x61, 0x63, + 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x0a, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x6f, 0x70, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x14, 0x48, 0x0b, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, + 0x0c, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x0e, 0x52, 0x19, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, + 0x6e, 0x63, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x0f, + 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x69, 0x6f, 0x61, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x6d, + 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x76, + 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x42, 0x1e, + 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x22, 0x1c, 0x0a, 0x1a, + 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, + 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, + 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x22, 0x8e, 0x0c, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, + 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x60, 0x0a, 0x12, 0x74, 0x61, 0x6d, 0x5f, 0x74, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x74, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x69, 0x6e, 0x74, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x13, 0x69, 0x6e, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x1b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x48, - 0x0a, 0x21, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x35, 0x0a, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x14, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, - 0x6d, 0x75, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x12, 0x56, 0x0a, 0x28, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x74, 0x69, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x24, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x61, 0x62, - 0x72, 0x69, 0x63, 0x5f, 0x71, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x61, 0x62, - 0x72, 0x69, 0x63, 0x51, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x1b, 0x0a, + 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x02, 0x52, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x1c, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x4f, 0x0a, 0x1f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, + 0x52, 0x1b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x53, 0x0a, 0x21, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x1d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, + 0x07, 0x52, 0x14, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, + 0x6d, 0x75, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x62, 0x72, + 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x17, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x28, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x24, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x08, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x07, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x51, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x08, + 0x6e, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, + 0x6e, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, + 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, - 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xdf, 0x06, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x13, 0x69, 0x6e, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x18, 0x73, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x24, 0x0a, 0x22, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x42, 0x2b, 0x0a, 0x29, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, + 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x61, 0x74, + 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, + 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, + 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdf, 0x0a, 0x0a, 0x1d, + 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x3d, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x13, 0x69, 0x6e, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x18, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x02, 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x1f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x1b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x21, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x04, 0x52, 0x1d, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x20, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, 0x52, 0x1c, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x40, + 0x0a, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x14, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6d, 0x75, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x46, 0x0a, 0x1a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, 0x17, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0a, 0x48, 0x08, 0x52, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x61, 0x0a, 0x28, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x09, 0x52, 0x24, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x07, 0x66, + 0x61, 0x62, 0x72, 0x69, 0x63, 0x51, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6e, 0x65, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0d, 0x48, 0x0b, 0x52, 0x08, 0x6e, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0c, 0x52, 0x09, 0x64, + 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x6d, + 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, + 0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x15, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x46, 0x0a, 0x1f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x22, 0x0a, 0x20, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x21, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, - 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x1d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x1c, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x37, - 0x0a, 0x17, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x14, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, - 0x6d, 0x75, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x1a, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x61, 0x62, 0x72, 0x69, - 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x1a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x28, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x24, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, - 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, - 0x1b, 0x0a, 0x08, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x07, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x51, 0x12, 0x1d, 0x0a, 0x09, - 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x08, 0x6e, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x64, - 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, - 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x00, 0x52, 0x08, 0x6d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, - 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xa8, - 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x12, 0x4e, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5b, 0x0a, 0x13, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, - 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, + 0x65, 0x73, 0x73, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x6d, 0x6d, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x62, + 0x72, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x2b, 0x0a, 0x29, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, + 0x5f, 0x71, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x61, 0x74, 0x68, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x22, 0x20, 0x0a, + 0x1e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, + 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, + 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, + 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, + 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xac, 0x03, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x54, 0x61, - 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, - 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x64, 0x73, 0x74, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x64, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5d, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x59, + 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, + 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x73, 0x72, 0x63, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x03, 0x6d, 0x74, 0x75, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, + 0x48, 0x04, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x08, 0x73, 0x72, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x24, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, + 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x00, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x05, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, + 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x84, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x0d, - 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x12, 0x74, 0x61, 0x6d, 0x5f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, + 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xd4, 0x02, 0x0a, 0x19, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x12, 0x28, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x52, 0x0b, 0x74, + 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x60, 0x0a, 0x12, 0x74, 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x10, 0x74, 0x61, - 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x2d, - 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x2e, 0x0a, - 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2d, 0x0a, - 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x1f, 0x53, - 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x00, 0x52, 0x10, 0x74, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x12, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x11, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x47, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x61, - 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x57, 0x0a, 0x12, 0x74, 0x61, 0x6d, - 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, - 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x48, 0x00, - 0x52, 0x10, 0x74, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, - 0x69, 0x74, 0x12, 0x2f, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x53, - 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa7, + 0x02, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x22, 0x8d, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x12, 0x15, 0x0a, - 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x64, - 0x73, 0x74, 0x49, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, - 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, - 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x02, - 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x12, 0x17, 0x0a, 0x06, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, - 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, - 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x72, - 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x09, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x64, 0x73, - 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x54, 0x61, - 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x09, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x74, 0x61, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x60, + 0x0a, 0x12, 0x74, 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, + 0x6e, 0x69, 0x74, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x10, 0x74, 0x61, 0x6d, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x38, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, + 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69, + 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x54, + 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, + 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, + 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, + 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xc3, 0x03, + 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, 0x73, 0x72, 0x63, + 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x05, 0x64, + 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, + 0x48, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x04, 0x48, 0x03, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x6e, 0x63, + 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, + 0x48, 0x05, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x09, 0x64, 0x73, + 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xc3, 0x03, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x72, 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x09, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x74, 0x72, + 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x6e, 0x63, + 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x09, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, + 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, + 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x75, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x7e, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, - 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x26, 0x0a, 0x0f, 0x71, 0x6f, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x71, 0x6f, 0x73, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x1b, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x21, - 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x71, 0x6f, 0x73, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x0d, 0x71, 0x6f, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x54, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, - 0x0a, 0x21, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, - 0x22, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xed, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x0a, 0x1f, 0x47, 0x65, + 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x44, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x64, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x61, 0x74, 0x74, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x73, - 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, - 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x54, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xb8, 0x01, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x0f, 0x71, 0x6f, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, + 0x52, 0x0d, 0x71, 0x6f, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x09, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x64, 0x73, 0x63, - 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, - 0x74, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x21, 0x53, 0x65, + 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x0f, 0x71, 0x6f, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0d, + 0x71, 0x6f, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x71, 0x6f, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, + 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, + 0x64, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, + 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x22, 0xc0, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, + 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x2a, 0xaf, 0x01, 0x0a, 0x07, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x18, 0x0a, 0x14, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1f, - 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, - 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x25, - 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x42, - 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, - 0x49, 0x53, 0x54, 0x10, 0x04, 0x2a, 0x64, 0x0a, 0x0f, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, - 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, - 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, - 0x54, 0x41, 0x4d, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, - 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x2a, 0xac, 0x02, 0x0a, 0x0d, - 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, - 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, - 0x0a, 0x14, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x41, 0x4d, 0x5f, - 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x49, 0x53, 0x54, - 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, - 0x42, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, - 0x52, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x52, 0x59, - 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x10, 0x04, 0x12, 0x1f, 0x0a, - 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x23, - 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, - 0x4c, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, - 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x07, 0x2a, 0xae, 0x02, 0x0a, 0x15, 0x54, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x41, 0x74, 0x74, 0x72, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, - 0x0a, 0x27, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, - 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, - 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x54, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x52, 0x0d, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, + 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, + 0x48, 0x02, 0x52, 0x09, 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x73, 0x63, 0x70, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, + 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x54, + 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x09, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x04, 0x48, 0x00, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x01, 0x52, 0x09, + 0x64, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, + 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xaf, 0x01, 0x0a, 0x07, 0x54, + 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x45, 0x4c, + 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x5f, 0x4c, + 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x5f, + 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x5f, 0x4c, + 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x2a, 0x64, 0x0a, 0x0f, + 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x12, + 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x41, 0x4d, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, + 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, + 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x10, 0x01, 0x2a, 0xac, 0x02, 0x0a, 0x0d, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, + 0x2c, 0x0a, 0x28, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x5f, 0x4e, 0x55, 0x4d, + 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x42, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x2a, 0x0a, + 0x26, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x5f, 0x42, 0x49, 0x4e, 0x5f, 0x42, + 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x4d, + 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x55, 0x4f, + 0x54, 0x41, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, + 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x4e, + 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, + 0x07, 0x2a, 0xae, 0x02, 0x0a, 0x15, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, - 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x54, 0x45, - 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x45, + 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, + 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, + 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x02, 0x12, 0x24, + 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, + 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, + 0x43, 0x59, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x03, 0x12, 0x21, 0x0a, - 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, - 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x04, - 0x12, 0x26, 0x0a, 0x22, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, - 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x42, 0x53, - 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x10, 0x06, 0x2a, 0xb1, 0x07, 0x0a, 0x0a, - 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, - 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x4d, 0x5f, - 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, - 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x54, - 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4f, 0x41, 0x4d, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x22, 0x0a, - 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, - 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x50, - 0x42, 0x31, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, + 0x54, 0x54, 0x52, 0x5f, 0x41, 0x42, 0x53, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x05, 0x12, + 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x48, 0x52, + 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x49, 0x54, + 0x10, 0x06, 0x2a, 0xb1, 0x07, 0x0a, 0x0a, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x15, 0x0a, 0x11, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x49, 0x44, + 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x49, 0x4f, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, - 0x45, 0x5f, 0x50, 0x42, 0x32, 0x10, 0x06, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x49, - 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, - 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, - 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x08, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, - 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, - 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x33, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, - 0x43, 0x4f, 0x4c, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x56, 0x45, 0x43, 0x54, - 0x4f, 0x52, 0x10, 0x0a, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x43, 0x54, - 0x4f, 0x52, 0x10, 0x0b, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x34, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x53, 0x54, - 0x52, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x49, 0x54, 0x4d, 0x41, 0x50, 0x10, 0x0c, - 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x4d, 0x45, - 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0d, 0x12, 0x29, 0x0a, 0x25, 0x54, - 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x5f, 0x45, 0x4e, - 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0e, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x4c, - 0x4c, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x0f, 0x12, 0x25, 0x0a, 0x21, 0x54, - 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x57, - 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, - 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x49, - 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x10, 0x11, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, - 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x4c, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x10, 0x12, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x48, 0x4f, 0x50, 0x5f, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x10, 0x13, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, - 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x10, - 0x15, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x5f, - 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x10, 0x16, 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x41, 0x4d, 0x5f, - 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, - 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, - 0x41, 0x42, 0x4c, 0x45, 0x10, 0x17, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, - 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, - 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x49, - 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, - 0x43, 0x10, 0x19, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x1a, 0x2a, - 0x92, 0x06, 0x0a, 0x0e, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, - 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, - 0x2b, 0x0a, 0x27, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x02, 0x12, 0x2e, 0x0a, 0x2a, - 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x03, 0x12, 0x36, 0x0a, 0x32, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, + 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, + 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x42, 0x31, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x54, + 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, + 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x42, 0x32, 0x10, 0x06, 0x12, 0x28, + 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, + 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x53, 0x43, 0x50, + 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x4d, 0x5f, + 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, + 0x08, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, + 0x33, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, + 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x0a, 0x12, 0x1e, 0x0a, 0x1a, 0x54, + 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x0b, 0x12, 0x2a, 0x0a, 0x26, 0x54, + 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x34, 0x5f, 0x49, + 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, + 0x49, 0x54, 0x4d, 0x41, 0x50, 0x10, 0x0c, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x49, + 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, + 0x5f, 0x46, 0x52, 0x41, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x0d, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x48, 0x45, 0x43, + 0x4b, 0x53, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0e, 0x12, 0x23, 0x0a, + 0x1f, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, + 0x10, 0x0f, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x4e, 0x45, 0x53, 0x53, + 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, + 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, 0x43, + 0x59, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x10, 0x11, 0x12, + 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x43, 0x4c, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x12, 0x12, 0x1e, 0x0a, 0x1a, 0x54, + 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, + 0x48, 0x4f, 0x50, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x13, 0x12, 0x1b, 0x0a, 0x17, 0x54, + 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, + 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, + 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x50, + 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, + 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x50, + 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x10, 0x16, 0x12, + 0x2c, 0x0a, 0x28, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x17, 0x12, 0x1f, 0x0a, + 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, + 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, + 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x10, 0x19, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, + 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x49, 0x44, 0x10, 0x1a, 0x2a, 0x92, 0x06, 0x0a, 0x0e, 0x54, 0x61, 0x6d, 0x54, 0x65, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, + 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, - 0x53, 0x53, 0x10, 0x04, 0x12, 0x35, 0x0a, 0x31, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x53, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x37, 0x0a, 0x33, 0x54, + 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x5f, + 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, + 0x52, 0x10, 0x02, 0x12, 0x2e, 0x0a, 0x2a, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x53, 0x10, 0x03, 0x12, 0x36, 0x0a, 0x32, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x53, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x35, 0x0a, 0x31, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x56, - 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x53, 0x10, 0x06, 0x12, 0x36, 0x0a, 0x32, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, - 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x51, - 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x07, 0x12, 0x2d, 0x0a, 0x29, - 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x4d, 0x4d, 0x55, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x08, 0x12, 0x30, 0x0a, 0x2c, 0x54, + 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x05, 0x12, 0x37, 0x0a, 0x33, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x06, 0x12, 0x36, 0x0a, 0x32, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, - 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x09, 0x12, 0x30, 0x0a, - 0x2c, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x0a, 0x12, - 0x3e, 0x0a, 0x3a, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, - 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x54, 0x49, 0x4c, - 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x0b, 0x12, - 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x51, 0x10, 0x0c, 0x12, - 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0d, - 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, - 0x10, 0x0e, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, - 0x43, 0x10, 0x0f, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x49, 0x44, 0x10, 0x10, 0x2a, 0xe7, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, + 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4f, + 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x53, 0x10, 0x07, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x4d, 0x55, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, + 0x10, 0x08, 0x12, 0x30, 0x0a, 0x2c, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x41, 0x42, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x53, 0x10, 0x09, 0x12, 0x30, 0x0a, 0x2c, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, + 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x53, 0x10, 0x0a, 0x12, 0x3e, 0x0a, 0x3a, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, + 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x55, 0x54, 0x49, 0x4c, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x53, 0x10, 0x0b, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x46, 0x41, 0x42, 0x52, + 0x49, 0x43, 0x5f, 0x51, 0x10, 0x0c, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4e, 0x45, 0x5f, 0x45, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, 0x54, + 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x43, + 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x0e, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, + 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, + 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x10, 0x0f, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, + 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x10, 0x2a, 0xe7, 0x01, 0x0a, 0x10, + 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, + 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, + 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x03, 0x12, 0x2a, 0x0a, + 0x26, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, + 0x54, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, - 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, - 0x50, 0x4f, 0x52, 0x54, 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x05, 0x2a, 0xd9, - 0x01, 0x0a, 0x10, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, - 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, - 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x54, - 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, - 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x25, 0x0a, - 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x49, - 0x53, 0x54, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, - 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x10, 0x03, 0x12, - 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x04, 0x2a, 0xab, 0x02, 0x0a, 0x10, 0x54, - 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, - 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, - 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, - 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, - 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, - 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x48, 0x4f, 0x53, - 0x54, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, - 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, - 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x24, 0x0a, - 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x55, 0x4e, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, - 0x45, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, - 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, - 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, - 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x43, 0x50, - 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x07, 0x2a, 0x8d, 0x01, 0x0a, 0x12, 0x54, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, + 0x4d, 0x54, 0x55, 0x10, 0x05, 0x2a, 0xd9, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, + 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, + 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, + 0x53, 0x54, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, + 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, + 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x54, + 0x41, 0x4d, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, + 0x52, 0x5f, 0x54, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, + 0x55, 0x4e, 0x49, 0x54, 0x10, 0x03, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x54, 0x45, + 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, + 0x04, 0x2a, 0xab, 0x02, 0x0a, 0x10, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, + 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, + 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x49, 0x50, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, + 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x44, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x4d, 0x5f, + 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, + 0x4f, 0x43, 0x41, 0x4c, 0x48, 0x4f, 0x53, 0x54, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, + 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, + 0x49, 0x44, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, + 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x52, 0x55, 0x4e, 0x43, + 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, + 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x21, 0x0a, 0x1d, + 0x54, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x07, 0x2a, + 0x8d, 0x01, 0x0a, 0x12, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x29, 0x0a, - 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x2a, 0xc7, 0x01, 0x0a, 0x0c, 0x54, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x4d, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, - 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, - 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, - 0x44, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x43, 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, - 0x10, 0x05, 0x32, 0xcb, 0x2c, 0x0a, 0x03, 0x54, 0x61, 0x6d, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, + 0x21, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x51, 0x4f, + 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x2a, + 0xc7, 0x01, 0x0a, 0x0c, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x4d, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x4d, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, + 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, + 0x54, 0x41, 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, + 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, + 0x4d, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x44, 0x53, 0x43, + 0x50, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x05, 0x32, 0xcb, 0x2c, 0x0a, 0x03, 0x54, 0x61, + 0x6d, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x12, 0x27, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, + 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, + 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, - 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x2f, 0x2e, 0x6c, 0x65, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, - 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, + 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, + 0x6e, 0x63, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, - 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x78, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, - 0x68, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x53, - 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, 0x61, + 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x4d, + 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, + 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, - 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, - 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, + 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, + 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, + 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, - 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, - 0x15, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, + 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, + 0x4d, 0x61, 0x74, 0x68, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2d, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, + 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, - 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, - 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x49, - 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, - 0x49, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, - 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x12, 0x2a, 0x2e, + 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x1d, + 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x49, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x1d, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x3b, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x54, - 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, - 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, - 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x2e, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, + 0x6d, 0x49, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, + 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x7b, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, + 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, - 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, + 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x54, + 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, + 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, - 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, - 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, - 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, - 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x74, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x6d, 0x54, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, - 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, - 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x30, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, - 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x30, 0x2e, 0x6c, 0x65, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, + 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, + 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x54, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x7b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, - 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x53, - 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x30, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x53, 0x65, + 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, + 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, + 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x39, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, + 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, + 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, + 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, + 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, - 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, - 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7975,168 +7671,162 @@ var file_dataplane_standalone_proto_tam_proto_goTypes = []interface{}{ (*GetTamEventAttributeRequest)(nil), // 97: lemming.dataplane.sai.GetTamEventAttributeRequest (*GetTamEventAttributeResponse)(nil), // 98: lemming.dataplane.sai.GetTamEventAttributeResponse (TamBindPointType)(0), // 99: lemming.dataplane.sai.TamBindPointType - (*Uint64List)(nil), // 100: lemming.dataplane.sai.Uint64List - (*TamAttribute)(nil), // 101: lemming.dataplane.sai.TamAttribute - (TamTelMathFuncType)(0), // 102: lemming.dataplane.sai.TamTelMathFuncType - (*TamMathFuncAttribute)(nil), // 103: lemming.dataplane.sai.TamMathFuncAttribute - (TamReportType)(0), // 104: lemming.dataplane.sai.TamReportType - (TamReportMode)(0), // 105: lemming.dataplane.sai.TamReportMode - (*TamReportAttribute)(nil), // 106: lemming.dataplane.sai.TamReportAttribute - (TamEventThresholdUnit)(0), // 107: lemming.dataplane.sai.TamEventThresholdUnit - (*TamEventThresholdAttribute)(nil), // 108: lemming.dataplane.sai.TamEventThresholdAttribute - (TamIntType)(0), // 109: lemming.dataplane.sai.TamIntType - (TamIntPresenceType)(0), // 110: lemming.dataplane.sai.TamIntPresenceType - (*TamIntAttribute)(nil), // 111: lemming.dataplane.sai.TamIntAttribute - (TamTelemetryType)(0), // 112: lemming.dataplane.sai.TamTelemetryType - (*TamTelTypeAttribute)(nil), // 113: lemming.dataplane.sai.TamTelTypeAttribute - (TamTransportType)(0), // 114: lemming.dataplane.sai.TamTransportType - (TamTransportAuthType)(0), // 115: lemming.dataplane.sai.TamTransportAuthType - (*TamTransportAttribute)(nil), // 116: lemming.dataplane.sai.TamTransportAttribute - (TamReportingUnit)(0), // 117: lemming.dataplane.sai.TamReportingUnit - (*TamTelemetryAttribute)(nil), // 118: lemming.dataplane.sai.TamTelemetryAttribute - (*TamCollectorAttribute)(nil), // 119: lemming.dataplane.sai.TamCollectorAttribute - (*TamEventActionAttribute)(nil), // 120: lemming.dataplane.sai.TamEventActionAttribute - (TamEventType)(0), // 121: lemming.dataplane.sai.TamEventType - (*TamEventAttribute)(nil), // 122: lemming.dataplane.sai.TamEventAttribute + (*TamAttribute)(nil), // 100: lemming.dataplane.sai.TamAttribute + (TamTelMathFuncType)(0), // 101: lemming.dataplane.sai.TamTelMathFuncType + (*TamMathFuncAttribute)(nil), // 102: lemming.dataplane.sai.TamMathFuncAttribute + (TamReportType)(0), // 103: lemming.dataplane.sai.TamReportType + (TamReportMode)(0), // 104: lemming.dataplane.sai.TamReportMode + (*TamReportAttribute)(nil), // 105: lemming.dataplane.sai.TamReportAttribute + (TamEventThresholdUnit)(0), // 106: lemming.dataplane.sai.TamEventThresholdUnit + (*TamEventThresholdAttribute)(nil), // 107: lemming.dataplane.sai.TamEventThresholdAttribute + (TamIntType)(0), // 108: lemming.dataplane.sai.TamIntType + (TamIntPresenceType)(0), // 109: lemming.dataplane.sai.TamIntPresenceType + (*TamIntAttribute)(nil), // 110: lemming.dataplane.sai.TamIntAttribute + (TamTelemetryType)(0), // 111: lemming.dataplane.sai.TamTelemetryType + (*TamTelTypeAttribute)(nil), // 112: lemming.dataplane.sai.TamTelTypeAttribute + (TamTransportType)(0), // 113: lemming.dataplane.sai.TamTransportType + (TamTransportAuthType)(0), // 114: lemming.dataplane.sai.TamTransportAuthType + (*TamTransportAttribute)(nil), // 115: lemming.dataplane.sai.TamTransportAttribute + (TamReportingUnit)(0), // 116: lemming.dataplane.sai.TamReportingUnit + (*TamTelemetryAttribute)(nil), // 117: lemming.dataplane.sai.TamTelemetryAttribute + (*TamCollectorAttribute)(nil), // 118: lemming.dataplane.sai.TamCollectorAttribute + (*TamEventActionAttribute)(nil), // 119: lemming.dataplane.sai.TamEventActionAttribute + (TamEventType)(0), // 120: lemming.dataplane.sai.TamEventType + (*TamEventAttribute)(nil), // 121: lemming.dataplane.sai.TamEventAttribute } var file_dataplane_standalone_proto_tam_proto_depIdxs = []int32{ 99, // 0: lemming.dataplane.sai.CreateTamRequest.tam_bind_point_type_list:type_name -> lemming.dataplane.sai.TamBindPointType - 100, // 1: lemming.dataplane.sai.SetTamAttributeRequest.telemetry_objects_list:type_name -> lemming.dataplane.sai.Uint64List - 100, // 2: lemming.dataplane.sai.SetTamAttributeRequest.event_objects_list:type_name -> lemming.dataplane.sai.Uint64List - 100, // 3: lemming.dataplane.sai.SetTamAttributeRequest.int_objects_list:type_name -> lemming.dataplane.sai.Uint64List - 0, // 4: lemming.dataplane.sai.GetTamAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamAttr - 101, // 5: lemming.dataplane.sai.GetTamAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamAttribute - 102, // 6: lemming.dataplane.sai.CreateTamMathFuncRequest.tam_tel_math_func_type:type_name -> lemming.dataplane.sai.TamTelMathFuncType - 102, // 7: lemming.dataplane.sai.SetTamMathFuncAttributeRequest.tam_tel_math_func_type:type_name -> lemming.dataplane.sai.TamTelMathFuncType - 1, // 8: lemming.dataplane.sai.GetTamMathFuncAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamMathFuncAttr - 103, // 9: lemming.dataplane.sai.GetTamMathFuncAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamMathFuncAttribute - 104, // 10: lemming.dataplane.sai.CreateTamReportRequest.type:type_name -> lemming.dataplane.sai.TamReportType - 105, // 11: lemming.dataplane.sai.CreateTamReportRequest.report_mode:type_name -> lemming.dataplane.sai.TamReportMode - 104, // 12: lemming.dataplane.sai.SetTamReportAttributeRequest.type:type_name -> lemming.dataplane.sai.TamReportType - 2, // 13: lemming.dataplane.sai.GetTamReportAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamReportAttr - 106, // 14: lemming.dataplane.sai.GetTamReportAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamReportAttribute - 107, // 15: lemming.dataplane.sai.CreateTamEventThresholdRequest.unit:type_name -> lemming.dataplane.sai.TamEventThresholdUnit - 107, // 16: lemming.dataplane.sai.SetTamEventThresholdAttributeRequest.unit:type_name -> lemming.dataplane.sai.TamEventThresholdUnit - 3, // 17: lemming.dataplane.sai.GetTamEventThresholdAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamEventThresholdAttr - 108, // 18: lemming.dataplane.sai.GetTamEventThresholdAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamEventThresholdAttribute - 109, // 19: lemming.dataplane.sai.CreateTamIntRequest.type:type_name -> lemming.dataplane.sai.TamIntType - 110, // 20: lemming.dataplane.sai.CreateTamIntRequest.int_presence_type:type_name -> lemming.dataplane.sai.TamIntPresenceType - 100, // 21: lemming.dataplane.sai.SetTamIntAttributeRequest.collector_list:type_name -> lemming.dataplane.sai.Uint64List - 4, // 22: lemming.dataplane.sai.GetTamIntAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamIntAttr - 111, // 23: lemming.dataplane.sai.GetTamIntAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamIntAttribute - 112, // 24: lemming.dataplane.sai.CreateTamTelTypeRequest.tam_telemetry_type:type_name -> lemming.dataplane.sai.TamTelemetryType - 5, // 25: lemming.dataplane.sai.GetTamTelTypeAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamTelTypeAttr - 113, // 26: lemming.dataplane.sai.GetTamTelTypeAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamTelTypeAttribute - 114, // 27: lemming.dataplane.sai.CreateTamTransportRequest.transport_type:type_name -> lemming.dataplane.sai.TamTransportType - 115, // 28: lemming.dataplane.sai.CreateTamTransportRequest.transport_auth_type:type_name -> lemming.dataplane.sai.TamTransportAuthType - 115, // 29: lemming.dataplane.sai.SetTamTransportAttributeRequest.transport_auth_type:type_name -> lemming.dataplane.sai.TamTransportAuthType - 6, // 30: lemming.dataplane.sai.GetTamTransportAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamTransportAttr - 116, // 31: lemming.dataplane.sai.GetTamTransportAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamTransportAttribute - 117, // 32: lemming.dataplane.sai.CreateTamTelemetryRequest.tam_reporting_unit:type_name -> lemming.dataplane.sai.TamReportingUnit - 100, // 33: lemming.dataplane.sai.SetTamTelemetryAttributeRequest.tam_type_list:type_name -> lemming.dataplane.sai.Uint64List - 117, // 34: lemming.dataplane.sai.SetTamTelemetryAttributeRequest.tam_reporting_unit:type_name -> lemming.dataplane.sai.TamReportingUnit - 7, // 35: lemming.dataplane.sai.GetTamTelemetryAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamTelemetryAttr - 118, // 36: lemming.dataplane.sai.GetTamTelemetryAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamTelemetryAttribute - 8, // 37: lemming.dataplane.sai.GetTamCollectorAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamCollectorAttr - 119, // 38: lemming.dataplane.sai.GetTamCollectorAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamCollectorAttribute - 9, // 39: lemming.dataplane.sai.GetTamEventActionAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamEventActionAttr - 120, // 40: lemming.dataplane.sai.GetTamEventActionAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamEventActionAttribute - 121, // 41: lemming.dataplane.sai.CreateTamEventRequest.type:type_name -> lemming.dataplane.sai.TamEventType - 10, // 42: lemming.dataplane.sai.GetTamEventAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamEventAttr - 122, // 43: lemming.dataplane.sai.GetTamEventAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamEventAttribute - 11, // 44: lemming.dataplane.sai.Tam.CreateTam:input_type -> lemming.dataplane.sai.CreateTamRequest - 13, // 45: lemming.dataplane.sai.Tam.RemoveTam:input_type -> lemming.dataplane.sai.RemoveTamRequest - 15, // 46: lemming.dataplane.sai.Tam.SetTamAttribute:input_type -> lemming.dataplane.sai.SetTamAttributeRequest - 17, // 47: lemming.dataplane.sai.Tam.GetTamAttribute:input_type -> lemming.dataplane.sai.GetTamAttributeRequest - 19, // 48: lemming.dataplane.sai.Tam.CreateTamMathFunc:input_type -> lemming.dataplane.sai.CreateTamMathFuncRequest - 21, // 49: lemming.dataplane.sai.Tam.RemoveTamMathFunc:input_type -> lemming.dataplane.sai.RemoveTamMathFuncRequest - 23, // 50: lemming.dataplane.sai.Tam.SetTamMathFuncAttribute:input_type -> lemming.dataplane.sai.SetTamMathFuncAttributeRequest - 25, // 51: lemming.dataplane.sai.Tam.GetTamMathFuncAttribute:input_type -> lemming.dataplane.sai.GetTamMathFuncAttributeRequest - 27, // 52: lemming.dataplane.sai.Tam.CreateTamReport:input_type -> lemming.dataplane.sai.CreateTamReportRequest - 29, // 53: lemming.dataplane.sai.Tam.RemoveTamReport:input_type -> lemming.dataplane.sai.RemoveTamReportRequest - 31, // 54: lemming.dataplane.sai.Tam.SetTamReportAttribute:input_type -> lemming.dataplane.sai.SetTamReportAttributeRequest - 33, // 55: lemming.dataplane.sai.Tam.GetTamReportAttribute:input_type -> lemming.dataplane.sai.GetTamReportAttributeRequest - 35, // 56: lemming.dataplane.sai.Tam.CreateTamEventThreshold:input_type -> lemming.dataplane.sai.CreateTamEventThresholdRequest - 37, // 57: lemming.dataplane.sai.Tam.RemoveTamEventThreshold:input_type -> lemming.dataplane.sai.RemoveTamEventThresholdRequest - 39, // 58: lemming.dataplane.sai.Tam.SetTamEventThresholdAttribute:input_type -> lemming.dataplane.sai.SetTamEventThresholdAttributeRequest - 41, // 59: lemming.dataplane.sai.Tam.GetTamEventThresholdAttribute:input_type -> lemming.dataplane.sai.GetTamEventThresholdAttributeRequest - 43, // 60: lemming.dataplane.sai.Tam.CreateTamInt:input_type -> lemming.dataplane.sai.CreateTamIntRequest - 45, // 61: lemming.dataplane.sai.Tam.RemoveTamInt:input_type -> lemming.dataplane.sai.RemoveTamIntRequest - 47, // 62: lemming.dataplane.sai.Tam.SetTamIntAttribute:input_type -> lemming.dataplane.sai.SetTamIntAttributeRequest - 49, // 63: lemming.dataplane.sai.Tam.GetTamIntAttribute:input_type -> lemming.dataplane.sai.GetTamIntAttributeRequest - 51, // 64: lemming.dataplane.sai.Tam.CreateTamTelType:input_type -> lemming.dataplane.sai.CreateTamTelTypeRequest - 53, // 65: lemming.dataplane.sai.Tam.RemoveTamTelType:input_type -> lemming.dataplane.sai.RemoveTamTelTypeRequest - 55, // 66: lemming.dataplane.sai.Tam.SetTamTelTypeAttribute:input_type -> lemming.dataplane.sai.SetTamTelTypeAttributeRequest - 57, // 67: lemming.dataplane.sai.Tam.GetTamTelTypeAttribute:input_type -> lemming.dataplane.sai.GetTamTelTypeAttributeRequest - 59, // 68: lemming.dataplane.sai.Tam.CreateTamTransport:input_type -> lemming.dataplane.sai.CreateTamTransportRequest - 61, // 69: lemming.dataplane.sai.Tam.RemoveTamTransport:input_type -> lemming.dataplane.sai.RemoveTamTransportRequest - 63, // 70: lemming.dataplane.sai.Tam.SetTamTransportAttribute:input_type -> lemming.dataplane.sai.SetTamTransportAttributeRequest - 65, // 71: lemming.dataplane.sai.Tam.GetTamTransportAttribute:input_type -> lemming.dataplane.sai.GetTamTransportAttributeRequest - 67, // 72: lemming.dataplane.sai.Tam.CreateTamTelemetry:input_type -> lemming.dataplane.sai.CreateTamTelemetryRequest - 69, // 73: lemming.dataplane.sai.Tam.RemoveTamTelemetry:input_type -> lemming.dataplane.sai.RemoveTamTelemetryRequest - 71, // 74: lemming.dataplane.sai.Tam.SetTamTelemetryAttribute:input_type -> lemming.dataplane.sai.SetTamTelemetryAttributeRequest - 73, // 75: lemming.dataplane.sai.Tam.GetTamTelemetryAttribute:input_type -> lemming.dataplane.sai.GetTamTelemetryAttributeRequest - 75, // 76: lemming.dataplane.sai.Tam.CreateTamCollector:input_type -> lemming.dataplane.sai.CreateTamCollectorRequest - 77, // 77: lemming.dataplane.sai.Tam.RemoveTamCollector:input_type -> lemming.dataplane.sai.RemoveTamCollectorRequest - 79, // 78: lemming.dataplane.sai.Tam.SetTamCollectorAttribute:input_type -> lemming.dataplane.sai.SetTamCollectorAttributeRequest - 81, // 79: lemming.dataplane.sai.Tam.GetTamCollectorAttribute:input_type -> lemming.dataplane.sai.GetTamCollectorAttributeRequest - 83, // 80: lemming.dataplane.sai.Tam.CreateTamEventAction:input_type -> lemming.dataplane.sai.CreateTamEventActionRequest - 85, // 81: lemming.dataplane.sai.Tam.RemoveTamEventAction:input_type -> lemming.dataplane.sai.RemoveTamEventActionRequest - 87, // 82: lemming.dataplane.sai.Tam.SetTamEventActionAttribute:input_type -> lemming.dataplane.sai.SetTamEventActionAttributeRequest - 89, // 83: lemming.dataplane.sai.Tam.GetTamEventActionAttribute:input_type -> lemming.dataplane.sai.GetTamEventActionAttributeRequest - 91, // 84: lemming.dataplane.sai.Tam.CreateTamEvent:input_type -> lemming.dataplane.sai.CreateTamEventRequest - 93, // 85: lemming.dataplane.sai.Tam.RemoveTamEvent:input_type -> lemming.dataplane.sai.RemoveTamEventRequest - 95, // 86: lemming.dataplane.sai.Tam.SetTamEventAttribute:input_type -> lemming.dataplane.sai.SetTamEventAttributeRequest - 97, // 87: lemming.dataplane.sai.Tam.GetTamEventAttribute:input_type -> lemming.dataplane.sai.GetTamEventAttributeRequest - 12, // 88: lemming.dataplane.sai.Tam.CreateTam:output_type -> lemming.dataplane.sai.CreateTamResponse - 14, // 89: lemming.dataplane.sai.Tam.RemoveTam:output_type -> lemming.dataplane.sai.RemoveTamResponse - 16, // 90: lemming.dataplane.sai.Tam.SetTamAttribute:output_type -> lemming.dataplane.sai.SetTamAttributeResponse - 18, // 91: lemming.dataplane.sai.Tam.GetTamAttribute:output_type -> lemming.dataplane.sai.GetTamAttributeResponse - 20, // 92: lemming.dataplane.sai.Tam.CreateTamMathFunc:output_type -> lemming.dataplane.sai.CreateTamMathFuncResponse - 22, // 93: lemming.dataplane.sai.Tam.RemoveTamMathFunc:output_type -> lemming.dataplane.sai.RemoveTamMathFuncResponse - 24, // 94: lemming.dataplane.sai.Tam.SetTamMathFuncAttribute:output_type -> lemming.dataplane.sai.SetTamMathFuncAttributeResponse - 26, // 95: lemming.dataplane.sai.Tam.GetTamMathFuncAttribute:output_type -> lemming.dataplane.sai.GetTamMathFuncAttributeResponse - 28, // 96: lemming.dataplane.sai.Tam.CreateTamReport:output_type -> lemming.dataplane.sai.CreateTamReportResponse - 30, // 97: lemming.dataplane.sai.Tam.RemoveTamReport:output_type -> lemming.dataplane.sai.RemoveTamReportResponse - 32, // 98: lemming.dataplane.sai.Tam.SetTamReportAttribute:output_type -> lemming.dataplane.sai.SetTamReportAttributeResponse - 34, // 99: lemming.dataplane.sai.Tam.GetTamReportAttribute:output_type -> lemming.dataplane.sai.GetTamReportAttributeResponse - 36, // 100: lemming.dataplane.sai.Tam.CreateTamEventThreshold:output_type -> lemming.dataplane.sai.CreateTamEventThresholdResponse - 38, // 101: lemming.dataplane.sai.Tam.RemoveTamEventThreshold:output_type -> lemming.dataplane.sai.RemoveTamEventThresholdResponse - 40, // 102: lemming.dataplane.sai.Tam.SetTamEventThresholdAttribute:output_type -> lemming.dataplane.sai.SetTamEventThresholdAttributeResponse - 42, // 103: lemming.dataplane.sai.Tam.GetTamEventThresholdAttribute:output_type -> lemming.dataplane.sai.GetTamEventThresholdAttributeResponse - 44, // 104: lemming.dataplane.sai.Tam.CreateTamInt:output_type -> lemming.dataplane.sai.CreateTamIntResponse - 46, // 105: lemming.dataplane.sai.Tam.RemoveTamInt:output_type -> lemming.dataplane.sai.RemoveTamIntResponse - 48, // 106: lemming.dataplane.sai.Tam.SetTamIntAttribute:output_type -> lemming.dataplane.sai.SetTamIntAttributeResponse - 50, // 107: lemming.dataplane.sai.Tam.GetTamIntAttribute:output_type -> lemming.dataplane.sai.GetTamIntAttributeResponse - 52, // 108: lemming.dataplane.sai.Tam.CreateTamTelType:output_type -> lemming.dataplane.sai.CreateTamTelTypeResponse - 54, // 109: lemming.dataplane.sai.Tam.RemoveTamTelType:output_type -> lemming.dataplane.sai.RemoveTamTelTypeResponse - 56, // 110: lemming.dataplane.sai.Tam.SetTamTelTypeAttribute:output_type -> lemming.dataplane.sai.SetTamTelTypeAttributeResponse - 58, // 111: lemming.dataplane.sai.Tam.GetTamTelTypeAttribute:output_type -> lemming.dataplane.sai.GetTamTelTypeAttributeResponse - 60, // 112: lemming.dataplane.sai.Tam.CreateTamTransport:output_type -> lemming.dataplane.sai.CreateTamTransportResponse - 62, // 113: lemming.dataplane.sai.Tam.RemoveTamTransport:output_type -> lemming.dataplane.sai.RemoveTamTransportResponse - 64, // 114: lemming.dataplane.sai.Tam.SetTamTransportAttribute:output_type -> lemming.dataplane.sai.SetTamTransportAttributeResponse - 66, // 115: lemming.dataplane.sai.Tam.GetTamTransportAttribute:output_type -> lemming.dataplane.sai.GetTamTransportAttributeResponse - 68, // 116: lemming.dataplane.sai.Tam.CreateTamTelemetry:output_type -> lemming.dataplane.sai.CreateTamTelemetryResponse - 70, // 117: lemming.dataplane.sai.Tam.RemoveTamTelemetry:output_type -> lemming.dataplane.sai.RemoveTamTelemetryResponse - 72, // 118: lemming.dataplane.sai.Tam.SetTamTelemetryAttribute:output_type -> lemming.dataplane.sai.SetTamTelemetryAttributeResponse - 74, // 119: lemming.dataplane.sai.Tam.GetTamTelemetryAttribute:output_type -> lemming.dataplane.sai.GetTamTelemetryAttributeResponse - 76, // 120: lemming.dataplane.sai.Tam.CreateTamCollector:output_type -> lemming.dataplane.sai.CreateTamCollectorResponse - 78, // 121: lemming.dataplane.sai.Tam.RemoveTamCollector:output_type -> lemming.dataplane.sai.RemoveTamCollectorResponse - 80, // 122: lemming.dataplane.sai.Tam.SetTamCollectorAttribute:output_type -> lemming.dataplane.sai.SetTamCollectorAttributeResponse - 82, // 123: lemming.dataplane.sai.Tam.GetTamCollectorAttribute:output_type -> lemming.dataplane.sai.GetTamCollectorAttributeResponse - 84, // 124: lemming.dataplane.sai.Tam.CreateTamEventAction:output_type -> lemming.dataplane.sai.CreateTamEventActionResponse - 86, // 125: lemming.dataplane.sai.Tam.RemoveTamEventAction:output_type -> lemming.dataplane.sai.RemoveTamEventActionResponse - 88, // 126: lemming.dataplane.sai.Tam.SetTamEventActionAttribute:output_type -> lemming.dataplane.sai.SetTamEventActionAttributeResponse - 90, // 127: lemming.dataplane.sai.Tam.GetTamEventActionAttribute:output_type -> lemming.dataplane.sai.GetTamEventActionAttributeResponse - 92, // 128: lemming.dataplane.sai.Tam.CreateTamEvent:output_type -> lemming.dataplane.sai.CreateTamEventResponse - 94, // 129: lemming.dataplane.sai.Tam.RemoveTamEvent:output_type -> lemming.dataplane.sai.RemoveTamEventResponse - 96, // 130: lemming.dataplane.sai.Tam.SetTamEventAttribute:output_type -> lemming.dataplane.sai.SetTamEventAttributeResponse - 98, // 131: lemming.dataplane.sai.Tam.GetTamEventAttribute:output_type -> lemming.dataplane.sai.GetTamEventAttributeResponse - 88, // [88:132] is the sub-list for method output_type - 44, // [44:88] is the sub-list for method input_type - 44, // [44:44] is the sub-list for extension type_name - 44, // [44:44] is the sub-list for extension extendee - 0, // [0:44] is the sub-list for field type_name + 0, // 1: lemming.dataplane.sai.GetTamAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamAttr + 100, // 2: lemming.dataplane.sai.GetTamAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamAttribute + 101, // 3: lemming.dataplane.sai.CreateTamMathFuncRequest.tam_tel_math_func_type:type_name -> lemming.dataplane.sai.TamTelMathFuncType + 101, // 4: lemming.dataplane.sai.SetTamMathFuncAttributeRequest.tam_tel_math_func_type:type_name -> lemming.dataplane.sai.TamTelMathFuncType + 1, // 5: lemming.dataplane.sai.GetTamMathFuncAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamMathFuncAttr + 102, // 6: lemming.dataplane.sai.GetTamMathFuncAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamMathFuncAttribute + 103, // 7: lemming.dataplane.sai.CreateTamReportRequest.type:type_name -> lemming.dataplane.sai.TamReportType + 104, // 8: lemming.dataplane.sai.CreateTamReportRequest.report_mode:type_name -> lemming.dataplane.sai.TamReportMode + 103, // 9: lemming.dataplane.sai.SetTamReportAttributeRequest.type:type_name -> lemming.dataplane.sai.TamReportType + 2, // 10: lemming.dataplane.sai.GetTamReportAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamReportAttr + 105, // 11: lemming.dataplane.sai.GetTamReportAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamReportAttribute + 106, // 12: lemming.dataplane.sai.CreateTamEventThresholdRequest.unit:type_name -> lemming.dataplane.sai.TamEventThresholdUnit + 106, // 13: lemming.dataplane.sai.SetTamEventThresholdAttributeRequest.unit:type_name -> lemming.dataplane.sai.TamEventThresholdUnit + 3, // 14: lemming.dataplane.sai.GetTamEventThresholdAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamEventThresholdAttr + 107, // 15: lemming.dataplane.sai.GetTamEventThresholdAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamEventThresholdAttribute + 108, // 16: lemming.dataplane.sai.CreateTamIntRequest.type:type_name -> lemming.dataplane.sai.TamIntType + 109, // 17: lemming.dataplane.sai.CreateTamIntRequest.int_presence_type:type_name -> lemming.dataplane.sai.TamIntPresenceType + 4, // 18: lemming.dataplane.sai.GetTamIntAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamIntAttr + 110, // 19: lemming.dataplane.sai.GetTamIntAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamIntAttribute + 111, // 20: lemming.dataplane.sai.CreateTamTelTypeRequest.tam_telemetry_type:type_name -> lemming.dataplane.sai.TamTelemetryType + 5, // 21: lemming.dataplane.sai.GetTamTelTypeAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamTelTypeAttr + 112, // 22: lemming.dataplane.sai.GetTamTelTypeAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamTelTypeAttribute + 113, // 23: lemming.dataplane.sai.CreateTamTransportRequest.transport_type:type_name -> lemming.dataplane.sai.TamTransportType + 114, // 24: lemming.dataplane.sai.CreateTamTransportRequest.transport_auth_type:type_name -> lemming.dataplane.sai.TamTransportAuthType + 114, // 25: lemming.dataplane.sai.SetTamTransportAttributeRequest.transport_auth_type:type_name -> lemming.dataplane.sai.TamTransportAuthType + 6, // 26: lemming.dataplane.sai.GetTamTransportAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamTransportAttr + 115, // 27: lemming.dataplane.sai.GetTamTransportAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamTransportAttribute + 116, // 28: lemming.dataplane.sai.CreateTamTelemetryRequest.tam_reporting_unit:type_name -> lemming.dataplane.sai.TamReportingUnit + 116, // 29: lemming.dataplane.sai.SetTamTelemetryAttributeRequest.tam_reporting_unit:type_name -> lemming.dataplane.sai.TamReportingUnit + 7, // 30: lemming.dataplane.sai.GetTamTelemetryAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamTelemetryAttr + 117, // 31: lemming.dataplane.sai.GetTamTelemetryAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamTelemetryAttribute + 8, // 32: lemming.dataplane.sai.GetTamCollectorAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamCollectorAttr + 118, // 33: lemming.dataplane.sai.GetTamCollectorAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamCollectorAttribute + 9, // 34: lemming.dataplane.sai.GetTamEventActionAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamEventActionAttr + 119, // 35: lemming.dataplane.sai.GetTamEventActionAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamEventActionAttribute + 120, // 36: lemming.dataplane.sai.CreateTamEventRequest.type:type_name -> lemming.dataplane.sai.TamEventType + 10, // 37: lemming.dataplane.sai.GetTamEventAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TamEventAttr + 121, // 38: lemming.dataplane.sai.GetTamEventAttributeResponse.attr:type_name -> lemming.dataplane.sai.TamEventAttribute + 11, // 39: lemming.dataplane.sai.Tam.CreateTam:input_type -> lemming.dataplane.sai.CreateTamRequest + 13, // 40: lemming.dataplane.sai.Tam.RemoveTam:input_type -> lemming.dataplane.sai.RemoveTamRequest + 15, // 41: lemming.dataplane.sai.Tam.SetTamAttribute:input_type -> lemming.dataplane.sai.SetTamAttributeRequest + 17, // 42: lemming.dataplane.sai.Tam.GetTamAttribute:input_type -> lemming.dataplane.sai.GetTamAttributeRequest + 19, // 43: lemming.dataplane.sai.Tam.CreateTamMathFunc:input_type -> lemming.dataplane.sai.CreateTamMathFuncRequest + 21, // 44: lemming.dataplane.sai.Tam.RemoveTamMathFunc:input_type -> lemming.dataplane.sai.RemoveTamMathFuncRequest + 23, // 45: lemming.dataplane.sai.Tam.SetTamMathFuncAttribute:input_type -> lemming.dataplane.sai.SetTamMathFuncAttributeRequest + 25, // 46: lemming.dataplane.sai.Tam.GetTamMathFuncAttribute:input_type -> lemming.dataplane.sai.GetTamMathFuncAttributeRequest + 27, // 47: lemming.dataplane.sai.Tam.CreateTamReport:input_type -> lemming.dataplane.sai.CreateTamReportRequest + 29, // 48: lemming.dataplane.sai.Tam.RemoveTamReport:input_type -> lemming.dataplane.sai.RemoveTamReportRequest + 31, // 49: lemming.dataplane.sai.Tam.SetTamReportAttribute:input_type -> lemming.dataplane.sai.SetTamReportAttributeRequest + 33, // 50: lemming.dataplane.sai.Tam.GetTamReportAttribute:input_type -> lemming.dataplane.sai.GetTamReportAttributeRequest + 35, // 51: lemming.dataplane.sai.Tam.CreateTamEventThreshold:input_type -> lemming.dataplane.sai.CreateTamEventThresholdRequest + 37, // 52: lemming.dataplane.sai.Tam.RemoveTamEventThreshold:input_type -> lemming.dataplane.sai.RemoveTamEventThresholdRequest + 39, // 53: lemming.dataplane.sai.Tam.SetTamEventThresholdAttribute:input_type -> lemming.dataplane.sai.SetTamEventThresholdAttributeRequest + 41, // 54: lemming.dataplane.sai.Tam.GetTamEventThresholdAttribute:input_type -> lemming.dataplane.sai.GetTamEventThresholdAttributeRequest + 43, // 55: lemming.dataplane.sai.Tam.CreateTamInt:input_type -> lemming.dataplane.sai.CreateTamIntRequest + 45, // 56: lemming.dataplane.sai.Tam.RemoveTamInt:input_type -> lemming.dataplane.sai.RemoveTamIntRequest + 47, // 57: lemming.dataplane.sai.Tam.SetTamIntAttribute:input_type -> lemming.dataplane.sai.SetTamIntAttributeRequest + 49, // 58: lemming.dataplane.sai.Tam.GetTamIntAttribute:input_type -> lemming.dataplane.sai.GetTamIntAttributeRequest + 51, // 59: lemming.dataplane.sai.Tam.CreateTamTelType:input_type -> lemming.dataplane.sai.CreateTamTelTypeRequest + 53, // 60: lemming.dataplane.sai.Tam.RemoveTamTelType:input_type -> lemming.dataplane.sai.RemoveTamTelTypeRequest + 55, // 61: lemming.dataplane.sai.Tam.SetTamTelTypeAttribute:input_type -> lemming.dataplane.sai.SetTamTelTypeAttributeRequest + 57, // 62: lemming.dataplane.sai.Tam.GetTamTelTypeAttribute:input_type -> lemming.dataplane.sai.GetTamTelTypeAttributeRequest + 59, // 63: lemming.dataplane.sai.Tam.CreateTamTransport:input_type -> lemming.dataplane.sai.CreateTamTransportRequest + 61, // 64: lemming.dataplane.sai.Tam.RemoveTamTransport:input_type -> lemming.dataplane.sai.RemoveTamTransportRequest + 63, // 65: lemming.dataplane.sai.Tam.SetTamTransportAttribute:input_type -> lemming.dataplane.sai.SetTamTransportAttributeRequest + 65, // 66: lemming.dataplane.sai.Tam.GetTamTransportAttribute:input_type -> lemming.dataplane.sai.GetTamTransportAttributeRequest + 67, // 67: lemming.dataplane.sai.Tam.CreateTamTelemetry:input_type -> lemming.dataplane.sai.CreateTamTelemetryRequest + 69, // 68: lemming.dataplane.sai.Tam.RemoveTamTelemetry:input_type -> lemming.dataplane.sai.RemoveTamTelemetryRequest + 71, // 69: lemming.dataplane.sai.Tam.SetTamTelemetryAttribute:input_type -> lemming.dataplane.sai.SetTamTelemetryAttributeRequest + 73, // 70: lemming.dataplane.sai.Tam.GetTamTelemetryAttribute:input_type -> lemming.dataplane.sai.GetTamTelemetryAttributeRequest + 75, // 71: lemming.dataplane.sai.Tam.CreateTamCollector:input_type -> lemming.dataplane.sai.CreateTamCollectorRequest + 77, // 72: lemming.dataplane.sai.Tam.RemoveTamCollector:input_type -> lemming.dataplane.sai.RemoveTamCollectorRequest + 79, // 73: lemming.dataplane.sai.Tam.SetTamCollectorAttribute:input_type -> lemming.dataplane.sai.SetTamCollectorAttributeRequest + 81, // 74: lemming.dataplane.sai.Tam.GetTamCollectorAttribute:input_type -> lemming.dataplane.sai.GetTamCollectorAttributeRequest + 83, // 75: lemming.dataplane.sai.Tam.CreateTamEventAction:input_type -> lemming.dataplane.sai.CreateTamEventActionRequest + 85, // 76: lemming.dataplane.sai.Tam.RemoveTamEventAction:input_type -> lemming.dataplane.sai.RemoveTamEventActionRequest + 87, // 77: lemming.dataplane.sai.Tam.SetTamEventActionAttribute:input_type -> lemming.dataplane.sai.SetTamEventActionAttributeRequest + 89, // 78: lemming.dataplane.sai.Tam.GetTamEventActionAttribute:input_type -> lemming.dataplane.sai.GetTamEventActionAttributeRequest + 91, // 79: lemming.dataplane.sai.Tam.CreateTamEvent:input_type -> lemming.dataplane.sai.CreateTamEventRequest + 93, // 80: lemming.dataplane.sai.Tam.RemoveTamEvent:input_type -> lemming.dataplane.sai.RemoveTamEventRequest + 95, // 81: lemming.dataplane.sai.Tam.SetTamEventAttribute:input_type -> lemming.dataplane.sai.SetTamEventAttributeRequest + 97, // 82: lemming.dataplane.sai.Tam.GetTamEventAttribute:input_type -> lemming.dataplane.sai.GetTamEventAttributeRequest + 12, // 83: lemming.dataplane.sai.Tam.CreateTam:output_type -> lemming.dataplane.sai.CreateTamResponse + 14, // 84: lemming.dataplane.sai.Tam.RemoveTam:output_type -> lemming.dataplane.sai.RemoveTamResponse + 16, // 85: lemming.dataplane.sai.Tam.SetTamAttribute:output_type -> lemming.dataplane.sai.SetTamAttributeResponse + 18, // 86: lemming.dataplane.sai.Tam.GetTamAttribute:output_type -> lemming.dataplane.sai.GetTamAttributeResponse + 20, // 87: lemming.dataplane.sai.Tam.CreateTamMathFunc:output_type -> lemming.dataplane.sai.CreateTamMathFuncResponse + 22, // 88: lemming.dataplane.sai.Tam.RemoveTamMathFunc:output_type -> lemming.dataplane.sai.RemoveTamMathFuncResponse + 24, // 89: lemming.dataplane.sai.Tam.SetTamMathFuncAttribute:output_type -> lemming.dataplane.sai.SetTamMathFuncAttributeResponse + 26, // 90: lemming.dataplane.sai.Tam.GetTamMathFuncAttribute:output_type -> lemming.dataplane.sai.GetTamMathFuncAttributeResponse + 28, // 91: lemming.dataplane.sai.Tam.CreateTamReport:output_type -> lemming.dataplane.sai.CreateTamReportResponse + 30, // 92: lemming.dataplane.sai.Tam.RemoveTamReport:output_type -> lemming.dataplane.sai.RemoveTamReportResponse + 32, // 93: lemming.dataplane.sai.Tam.SetTamReportAttribute:output_type -> lemming.dataplane.sai.SetTamReportAttributeResponse + 34, // 94: lemming.dataplane.sai.Tam.GetTamReportAttribute:output_type -> lemming.dataplane.sai.GetTamReportAttributeResponse + 36, // 95: lemming.dataplane.sai.Tam.CreateTamEventThreshold:output_type -> lemming.dataplane.sai.CreateTamEventThresholdResponse + 38, // 96: lemming.dataplane.sai.Tam.RemoveTamEventThreshold:output_type -> lemming.dataplane.sai.RemoveTamEventThresholdResponse + 40, // 97: lemming.dataplane.sai.Tam.SetTamEventThresholdAttribute:output_type -> lemming.dataplane.sai.SetTamEventThresholdAttributeResponse + 42, // 98: lemming.dataplane.sai.Tam.GetTamEventThresholdAttribute:output_type -> lemming.dataplane.sai.GetTamEventThresholdAttributeResponse + 44, // 99: lemming.dataplane.sai.Tam.CreateTamInt:output_type -> lemming.dataplane.sai.CreateTamIntResponse + 46, // 100: lemming.dataplane.sai.Tam.RemoveTamInt:output_type -> lemming.dataplane.sai.RemoveTamIntResponse + 48, // 101: lemming.dataplane.sai.Tam.SetTamIntAttribute:output_type -> lemming.dataplane.sai.SetTamIntAttributeResponse + 50, // 102: lemming.dataplane.sai.Tam.GetTamIntAttribute:output_type -> lemming.dataplane.sai.GetTamIntAttributeResponse + 52, // 103: lemming.dataplane.sai.Tam.CreateTamTelType:output_type -> lemming.dataplane.sai.CreateTamTelTypeResponse + 54, // 104: lemming.dataplane.sai.Tam.RemoveTamTelType:output_type -> lemming.dataplane.sai.RemoveTamTelTypeResponse + 56, // 105: lemming.dataplane.sai.Tam.SetTamTelTypeAttribute:output_type -> lemming.dataplane.sai.SetTamTelTypeAttributeResponse + 58, // 106: lemming.dataplane.sai.Tam.GetTamTelTypeAttribute:output_type -> lemming.dataplane.sai.GetTamTelTypeAttributeResponse + 60, // 107: lemming.dataplane.sai.Tam.CreateTamTransport:output_type -> lemming.dataplane.sai.CreateTamTransportResponse + 62, // 108: lemming.dataplane.sai.Tam.RemoveTamTransport:output_type -> lemming.dataplane.sai.RemoveTamTransportResponse + 64, // 109: lemming.dataplane.sai.Tam.SetTamTransportAttribute:output_type -> lemming.dataplane.sai.SetTamTransportAttributeResponse + 66, // 110: lemming.dataplane.sai.Tam.GetTamTransportAttribute:output_type -> lemming.dataplane.sai.GetTamTransportAttributeResponse + 68, // 111: lemming.dataplane.sai.Tam.CreateTamTelemetry:output_type -> lemming.dataplane.sai.CreateTamTelemetryResponse + 70, // 112: lemming.dataplane.sai.Tam.RemoveTamTelemetry:output_type -> lemming.dataplane.sai.RemoveTamTelemetryResponse + 72, // 113: lemming.dataplane.sai.Tam.SetTamTelemetryAttribute:output_type -> lemming.dataplane.sai.SetTamTelemetryAttributeResponse + 74, // 114: lemming.dataplane.sai.Tam.GetTamTelemetryAttribute:output_type -> lemming.dataplane.sai.GetTamTelemetryAttributeResponse + 76, // 115: lemming.dataplane.sai.Tam.CreateTamCollector:output_type -> lemming.dataplane.sai.CreateTamCollectorResponse + 78, // 116: lemming.dataplane.sai.Tam.RemoveTamCollector:output_type -> lemming.dataplane.sai.RemoveTamCollectorResponse + 80, // 117: lemming.dataplane.sai.Tam.SetTamCollectorAttribute:output_type -> lemming.dataplane.sai.SetTamCollectorAttributeResponse + 82, // 118: lemming.dataplane.sai.Tam.GetTamCollectorAttribute:output_type -> lemming.dataplane.sai.GetTamCollectorAttributeResponse + 84, // 119: lemming.dataplane.sai.Tam.CreateTamEventAction:output_type -> lemming.dataplane.sai.CreateTamEventActionResponse + 86, // 120: lemming.dataplane.sai.Tam.RemoveTamEventAction:output_type -> lemming.dataplane.sai.RemoveTamEventActionResponse + 88, // 121: lemming.dataplane.sai.Tam.SetTamEventActionAttribute:output_type -> lemming.dataplane.sai.SetTamEventActionAttributeResponse + 90, // 122: lemming.dataplane.sai.Tam.GetTamEventActionAttribute:output_type -> lemming.dataplane.sai.GetTamEventActionAttributeResponse + 92, // 123: lemming.dataplane.sai.Tam.CreateTamEvent:output_type -> lemming.dataplane.sai.CreateTamEventResponse + 94, // 124: lemming.dataplane.sai.Tam.RemoveTamEvent:output_type -> lemming.dataplane.sai.RemoveTamEventResponse + 96, // 125: lemming.dataplane.sai.Tam.SetTamEventAttribute:output_type -> lemming.dataplane.sai.SetTamEventAttributeResponse + 98, // 126: lemming.dataplane.sai.Tam.GetTamEventAttribute:output_type -> lemming.dataplane.sai.GetTamEventAttributeResponse + 83, // [83:127] is the sub-list for method output_type + 39, // [39:83] is the sub-list for method input_type + 39, // [39:39] is the sub-list for extension type_name + 39, // [39:39] is the sub-list for extension extendee + 0, // [0:39] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_tam_proto_init() } @@ -9203,91 +8893,26 @@ func file_dataplane_standalone_proto_tam_proto_init() { } } } - file_dataplane_standalone_proto_tam_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetTamAttributeRequest_TelemetryObjectsList)(nil), - (*SetTamAttributeRequest_EventObjectsList)(nil), - (*SetTamAttributeRequest_IntObjectsList)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetTamMathFuncAttributeRequest_TamTelMathFuncType)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[20].OneofWrappers = []interface{}{ - (*SetTamReportAttributeRequest_Type)(nil), - (*SetTamReportAttributeRequest_Quota)(nil), - (*SetTamReportAttributeRequest_ReportInterval)(nil), - (*SetTamReportAttributeRequest_EnterpriseNumber)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[28].OneofWrappers = []interface{}{ - (*SetTamEventThresholdAttributeRequest_HighWatermark)(nil), - (*SetTamEventThresholdAttributeRequest_LowWatermark)(nil), - (*SetTamEventThresholdAttributeRequest_Latency)(nil), - (*SetTamEventThresholdAttributeRequest_Rate)(nil), - (*SetTamEventThresholdAttributeRequest_AbsValue)(nil), - (*SetTamEventThresholdAttributeRequest_Unit)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[36].OneofWrappers = []interface{}{ - (*SetTamIntAttributeRequest_IoamTraceType)(nil), - (*SetTamIntAttributeRequest_TraceVector)(nil), - (*SetTamIntAttributeRequest_ActionVector)(nil), - (*SetTamIntAttributeRequest_P4IntInstructionBitmap)(nil), - (*SetTamIntAttributeRequest_MetadataFragmentEnable)(nil), - (*SetTamIntAttributeRequest_MetadataChecksumEnable)(nil), - (*SetTamIntAttributeRequest_ReportAllPackets)(nil), - (*SetTamIntAttributeRequest_FlowLivenessPeriod)(nil), - (*SetTamIntAttributeRequest_LatencySensitivity)(nil), - (*SetTamIntAttributeRequest_AclGroup)(nil), - (*SetTamIntAttributeRequest_MaxHopCount)(nil), - (*SetTamIntAttributeRequest_MaxLength)(nil), - (*SetTamIntAttributeRequest_NameSpaceId)(nil), - (*SetTamIntAttributeRequest_NameSpaceIdGlobal)(nil), - (*SetTamIntAttributeRequest_IngressSamplepacketEnable)(nil), - (*SetTamIntAttributeRequest_CollectorList)(nil), - (*SetTamIntAttributeRequest_MathFunc)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[44].OneofWrappers = []interface{}{ - (*SetTamTelTypeAttributeRequest_IntSwitchIdentifier)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnablePortStats)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnablePortStatsIngress)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnablePortStatsEgress)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnableVirtualQueueStats)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnableOutputQueueStats)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnableMmuStats)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnableFabricStats)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnableFilterStats)(nil), - (*SetTamTelTypeAttributeRequest_SwitchEnableResourceUtilizationStats)(nil), - (*SetTamTelTypeAttributeRequest_FabricQ)(nil), - (*SetTamTelTypeAttributeRequest_NeEnable)(nil), - (*SetTamTelTypeAttributeRequest_DscpValue)(nil), - (*SetTamTelTypeAttributeRequest_MathFunc)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[52].OneofWrappers = []interface{}{ - (*SetTamTransportAttributeRequest_SrcPort)(nil), - (*SetTamTransportAttributeRequest_DstPort)(nil), - (*SetTamTransportAttributeRequest_TransportAuthType)(nil), - (*SetTamTransportAttributeRequest_Mtu)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[60].OneofWrappers = []interface{}{ - (*SetTamTelemetryAttributeRequest_TamTypeList)(nil), - (*SetTamTelemetryAttributeRequest_TamReportingUnit)(nil), - (*SetTamTelemetryAttributeRequest_ReportingInterval)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[68].OneofWrappers = []interface{}{ - (*SetTamCollectorAttributeRequest_SrcIp)(nil), - (*SetTamCollectorAttributeRequest_DstIp)(nil), - (*SetTamCollectorAttributeRequest_Localhost)(nil), - (*SetTamCollectorAttributeRequest_VirtualRouterId)(nil), - (*SetTamCollectorAttributeRequest_TruncateSize)(nil), - (*SetTamCollectorAttributeRequest_Transport)(nil), - (*SetTamCollectorAttributeRequest_DscpValue)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[76].OneofWrappers = []interface{}{ - (*SetTamEventActionAttributeRequest_ReportType)(nil), - (*SetTamEventActionAttributeRequest_QosActionType)(nil), - } - file_dataplane_standalone_proto_tam_proto_msgTypes[84].OneofWrappers = []interface{}{ - (*SetTamEventAttributeRequest_Threshold)(nil), - (*SetTamEventAttributeRequest_DscpValue)(nil), - } + file_dataplane_standalone_proto_tam_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[32].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[36].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[40].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[44].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[48].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[52].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[56].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[60].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[64].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[68].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[72].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[76].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[80].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tam_proto_msgTypes[84].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/tam.proto b/dataplane/standalone/proto/tam.proto index 408bf933..bf2411cc 100644 --- a/dataplane/standalone/proto/tam.proto +++ b/dataplane/standalone/proto/tam.proto @@ -7,841 +7,684 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum TamAttr { - TAM_ATTR_UNSPECIFIED = 0; - TAM_ATTR_TELEMETRY_OBJECTS_LIST = 1; - TAM_ATTR_EVENT_OBJECTS_LIST = 2; - TAM_ATTR_INT_OBJECTS_LIST = 3; - TAM_ATTR_TAM_BIND_POINT_TYPE_LIST = 4; + TAM_ATTR_UNSPECIFIED = 0; + TAM_ATTR_TELEMETRY_OBJECTS_LIST = 1; + TAM_ATTR_EVENT_OBJECTS_LIST = 2; + TAM_ATTR_INT_OBJECTS_LIST = 3; + TAM_ATTR_TAM_BIND_POINT_TYPE_LIST = 4; } enum TamMathFuncAttr { - TAM_MATH_FUNC_ATTR_UNSPECIFIED = 0; - TAM_MATH_FUNC_ATTR_TAM_TEL_MATH_FUNC_TYPE = 1; + TAM_MATH_FUNC_ATTR_UNSPECIFIED = 0; + TAM_MATH_FUNC_ATTR_TAM_TEL_MATH_FUNC_TYPE = 1; } enum TamReportAttr { - TAM_REPORT_ATTR_UNSPECIFIED = 0; - TAM_REPORT_ATTR_TYPE = 1; - TAM_REPORT_ATTR_HISTOGRAM_NUMBER_OF_BINS = 2; - TAM_REPORT_ATTR_HISTOGRAM_BIN_BOUNDARY = 3; - TAM_REPORT_ATTR_QUOTA = 4; - TAM_REPORT_ATTR_REPORT_MODE = 5; - TAM_REPORT_ATTR_REPORT_INTERVAL = 6; - TAM_REPORT_ATTR_ENTERPRISE_NUMBER = 7; + TAM_REPORT_ATTR_UNSPECIFIED = 0; + TAM_REPORT_ATTR_TYPE = 1; + TAM_REPORT_ATTR_HISTOGRAM_NUMBER_OF_BINS = 2; + TAM_REPORT_ATTR_HISTOGRAM_BIN_BOUNDARY = 3; + TAM_REPORT_ATTR_QUOTA = 4; + TAM_REPORT_ATTR_REPORT_MODE = 5; + TAM_REPORT_ATTR_REPORT_INTERVAL = 6; + TAM_REPORT_ATTR_ENTERPRISE_NUMBER = 7; } enum TamEventThresholdAttr { - TAM_EVENT_THRESHOLD_ATTR_UNSPECIFIED = 0; - TAM_EVENT_THRESHOLD_ATTR_HIGH_WATERMARK = 1; - TAM_EVENT_THRESHOLD_ATTR_LOW_WATERMARK = 2; - TAM_EVENT_THRESHOLD_ATTR_LATENCY = 3; - TAM_EVENT_THRESHOLD_ATTR_RATE = 4; - TAM_EVENT_THRESHOLD_ATTR_ABS_VALUE = 5; - TAM_EVENT_THRESHOLD_ATTR_UNIT = 6; + TAM_EVENT_THRESHOLD_ATTR_UNSPECIFIED = 0; + TAM_EVENT_THRESHOLD_ATTR_HIGH_WATERMARK = 1; + TAM_EVENT_THRESHOLD_ATTR_LOW_WATERMARK = 2; + TAM_EVENT_THRESHOLD_ATTR_LATENCY = 3; + TAM_EVENT_THRESHOLD_ATTR_RATE = 4; + TAM_EVENT_THRESHOLD_ATTR_ABS_VALUE = 5; + TAM_EVENT_THRESHOLD_ATTR_UNIT = 6; } enum TamIntAttr { - TAM_INT_ATTR_UNSPECIFIED = 0; - TAM_INT_ATTR_TYPE = 1; - TAM_INT_ATTR_DEVICE_ID = 2; - TAM_INT_ATTR_IOAM_TRACE_TYPE = 3; - TAM_INT_ATTR_INT_PRESENCE_TYPE = 4; - TAM_INT_ATTR_INT_PRESENCE_PB1 = 5; - TAM_INT_ATTR_INT_PRESENCE_PB2 = 6; - TAM_INT_ATTR_INT_PRESENCE_DSCP_VALUE = 7; - TAM_INT_ATTR_INLINE = 8; - TAM_INT_ATTR_INT_PRESENCE_L3_PROTOCOL = 9; - TAM_INT_ATTR_TRACE_VECTOR = 10; - TAM_INT_ATTR_ACTION_VECTOR = 11; - TAM_INT_ATTR_P4_INT_INSTRUCTION_BITMAP = 12; - TAM_INT_ATTR_METADATA_FRAGMENT_ENABLE = 13; - TAM_INT_ATTR_METADATA_CHECKSUM_ENABLE = 14; - TAM_INT_ATTR_REPORT_ALL_PACKETS = 15; - TAM_INT_ATTR_FLOW_LIVENESS_PERIOD = 16; - TAM_INT_ATTR_LATENCY_SENSITIVITY = 17; - TAM_INT_ATTR_ACL_GROUP = 18; - TAM_INT_ATTR_MAX_HOP_COUNT = 19; - TAM_INT_ATTR_MAX_LENGTH = 20; - TAM_INT_ATTR_NAME_SPACE_ID = 21; - TAM_INT_ATTR_NAME_SPACE_ID_GLOBAL = 22; - TAM_INT_ATTR_INGRESS_SAMPLEPACKET_ENABLE = 23; - TAM_INT_ATTR_COLLECTOR_LIST = 24; - TAM_INT_ATTR_MATH_FUNC = 25; - TAM_INT_ATTR_REPORT_ID = 26; + TAM_INT_ATTR_UNSPECIFIED = 0; + TAM_INT_ATTR_TYPE = 1; + TAM_INT_ATTR_DEVICE_ID = 2; + TAM_INT_ATTR_IOAM_TRACE_TYPE = 3; + TAM_INT_ATTR_INT_PRESENCE_TYPE = 4; + TAM_INT_ATTR_INT_PRESENCE_PB1 = 5; + TAM_INT_ATTR_INT_PRESENCE_PB2 = 6; + TAM_INT_ATTR_INT_PRESENCE_DSCP_VALUE = 7; + TAM_INT_ATTR_INLINE = 8; + TAM_INT_ATTR_INT_PRESENCE_L3_PROTOCOL = 9; + TAM_INT_ATTR_TRACE_VECTOR = 10; + TAM_INT_ATTR_ACTION_VECTOR = 11; + TAM_INT_ATTR_P4_INT_INSTRUCTION_BITMAP = 12; + TAM_INT_ATTR_METADATA_FRAGMENT_ENABLE = 13; + TAM_INT_ATTR_METADATA_CHECKSUM_ENABLE = 14; + TAM_INT_ATTR_REPORT_ALL_PACKETS = 15; + TAM_INT_ATTR_FLOW_LIVENESS_PERIOD = 16; + TAM_INT_ATTR_LATENCY_SENSITIVITY = 17; + TAM_INT_ATTR_ACL_GROUP = 18; + TAM_INT_ATTR_MAX_HOP_COUNT = 19; + TAM_INT_ATTR_MAX_LENGTH = 20; + TAM_INT_ATTR_NAME_SPACE_ID = 21; + TAM_INT_ATTR_NAME_SPACE_ID_GLOBAL = 22; + TAM_INT_ATTR_INGRESS_SAMPLEPACKET_ENABLE = 23; + TAM_INT_ATTR_COLLECTOR_LIST = 24; + TAM_INT_ATTR_MATH_FUNC = 25; + TAM_INT_ATTR_REPORT_ID = 26; } enum TamTelTypeAttr { - TAM_TEL_TYPE_ATTR_UNSPECIFIED = 0; - TAM_TEL_TYPE_ATTR_TAM_TELEMETRY_TYPE = 1; - TAM_TEL_TYPE_ATTR_INT_SWITCH_IDENTIFIER = 2; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS = 3; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_INGRESS = 4; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_EGRESS = 5; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_VIRTUAL_QUEUE_STATS = 6; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_OUTPUT_QUEUE_STATS = 7; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_MMU_STATS = 8; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FABRIC_STATS = 9; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FILTER_STATS = 10; - TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_RESOURCE_UTILIZATION_STATS = 11; - TAM_TEL_TYPE_ATTR_FABRIC_Q = 12; - TAM_TEL_TYPE_ATTR_NE_ENABLE = 13; - TAM_TEL_TYPE_ATTR_DSCP_VALUE = 14; - TAM_TEL_TYPE_ATTR_MATH_FUNC = 15; - TAM_TEL_TYPE_ATTR_REPORT_ID = 16; + TAM_TEL_TYPE_ATTR_UNSPECIFIED = 0; + TAM_TEL_TYPE_ATTR_TAM_TELEMETRY_TYPE = 1; + TAM_TEL_TYPE_ATTR_INT_SWITCH_IDENTIFIER = 2; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS = 3; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_INGRESS = 4; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_EGRESS = 5; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_VIRTUAL_QUEUE_STATS = 6; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_OUTPUT_QUEUE_STATS = 7; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_MMU_STATS = 8; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FABRIC_STATS = 9; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FILTER_STATS = 10; + TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_RESOURCE_UTILIZATION_STATS = 11; + TAM_TEL_TYPE_ATTR_FABRIC_Q = 12; + TAM_TEL_TYPE_ATTR_NE_ENABLE = 13; + TAM_TEL_TYPE_ATTR_DSCP_VALUE = 14; + TAM_TEL_TYPE_ATTR_MATH_FUNC = 15; + TAM_TEL_TYPE_ATTR_REPORT_ID = 16; } enum TamTransportAttr { - TAM_TRANSPORT_ATTR_UNSPECIFIED = 0; - TAM_TRANSPORT_ATTR_TRANSPORT_TYPE = 1; - TAM_TRANSPORT_ATTR_SRC_PORT = 2; - TAM_TRANSPORT_ATTR_DST_PORT = 3; - TAM_TRANSPORT_ATTR_TRANSPORT_AUTH_TYPE = 4; - TAM_TRANSPORT_ATTR_MTU = 5; + TAM_TRANSPORT_ATTR_UNSPECIFIED = 0; + TAM_TRANSPORT_ATTR_TRANSPORT_TYPE = 1; + TAM_TRANSPORT_ATTR_SRC_PORT = 2; + TAM_TRANSPORT_ATTR_DST_PORT = 3; + TAM_TRANSPORT_ATTR_TRANSPORT_AUTH_TYPE = 4; + TAM_TRANSPORT_ATTR_MTU = 5; } enum TamTelemetryAttr { - TAM_TELEMETRY_ATTR_UNSPECIFIED = 0; - TAM_TELEMETRY_ATTR_TAM_TYPE_LIST = 1; - TAM_TELEMETRY_ATTR_COLLECTOR_LIST = 2; - TAM_TELEMETRY_ATTR_TAM_REPORTING_UNIT = 3; - TAM_TELEMETRY_ATTR_REPORTING_INTERVAL = 4; + TAM_TELEMETRY_ATTR_UNSPECIFIED = 0; + TAM_TELEMETRY_ATTR_TAM_TYPE_LIST = 1; + TAM_TELEMETRY_ATTR_COLLECTOR_LIST = 2; + TAM_TELEMETRY_ATTR_TAM_REPORTING_UNIT = 3; + TAM_TELEMETRY_ATTR_REPORTING_INTERVAL = 4; } enum TamCollectorAttr { - TAM_COLLECTOR_ATTR_UNSPECIFIED = 0; - TAM_COLLECTOR_ATTR_SRC_IP = 1; - TAM_COLLECTOR_ATTR_DST_IP = 2; - TAM_COLLECTOR_ATTR_LOCALHOST = 3; - TAM_COLLECTOR_ATTR_VIRTUAL_ROUTER_ID = 4; - TAM_COLLECTOR_ATTR_TRUNCATE_SIZE = 5; - TAM_COLLECTOR_ATTR_TRANSPORT = 6; - TAM_COLLECTOR_ATTR_DSCP_VALUE = 7; + TAM_COLLECTOR_ATTR_UNSPECIFIED = 0; + TAM_COLLECTOR_ATTR_SRC_IP = 1; + TAM_COLLECTOR_ATTR_DST_IP = 2; + TAM_COLLECTOR_ATTR_LOCALHOST = 3; + TAM_COLLECTOR_ATTR_VIRTUAL_ROUTER_ID = 4; + TAM_COLLECTOR_ATTR_TRUNCATE_SIZE = 5; + TAM_COLLECTOR_ATTR_TRANSPORT = 6; + TAM_COLLECTOR_ATTR_DSCP_VALUE = 7; } enum TamEventActionAttr { - TAM_EVENT_ACTION_ATTR_UNSPECIFIED = 0; - TAM_EVENT_ACTION_ATTR_REPORT_TYPE = 1; - TAM_EVENT_ACTION_ATTR_QOS_ACTION_TYPE = 2; + TAM_EVENT_ACTION_ATTR_UNSPECIFIED = 0; + TAM_EVENT_ACTION_ATTR_REPORT_TYPE = 1; + TAM_EVENT_ACTION_ATTR_QOS_ACTION_TYPE = 2; } enum TamEventAttr { - TAM_EVENT_ATTR_UNSPECIFIED = 0; - TAM_EVENT_ATTR_TYPE = 1; - TAM_EVENT_ATTR_ACTION_LIST = 2; - TAM_EVENT_ATTR_COLLECTOR_LIST = 3; - TAM_EVENT_ATTR_THRESHOLD = 4; - TAM_EVENT_ATTR_DSCP_VALUE = 5; + TAM_EVENT_ATTR_UNSPECIFIED = 0; + TAM_EVENT_ATTR_TYPE = 1; + TAM_EVENT_ATTR_ACTION_LIST = 2; + TAM_EVENT_ATTR_COLLECTOR_LIST = 3; + TAM_EVENT_ATTR_THRESHOLD = 4; + TAM_EVENT_ATTR_DSCP_VALUE = 5; } message CreateTamRequest { - uint64 switch = 1; - - repeated uint64 telemetry_objects_list = 2; - repeated uint64 event_objects_list = 3; - repeated uint64 int_objects_list = 4; - repeated TamBindPointType tam_bind_point_type_list = 5; - + uint64 switch = 1; + repeated uint64 telemetry_objects_list = 2 [(attr_enum_value) = 1]; + repeated uint64 event_objects_list = 3 [(attr_enum_value) = 2]; + repeated uint64 int_objects_list = 4 [(attr_enum_value) = 3]; + repeated TamBindPointType tam_bind_point_type_list = 5 + [(attr_enum_value) = 4]; } message CreateTamResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamResponse { - - -} +message RemoveTamResponse {} message SetTamAttributeRequest { - uint64 oid = 1; - oneof attr { - Uint64List telemetry_objects_list = 2; - Uint64List event_objects_list = 3; - Uint64List int_objects_list = 4; - } + uint64 oid = 1; + repeated uint64 telemetry_objects_list = 2 [(attr_enum_value) = 1]; + repeated uint64 event_objects_list = 3 [(attr_enum_value) = 2]; + repeated uint64 int_objects_list = 4 [(attr_enum_value) = 3]; } -message SetTamAttributeResponse { - - -} +message SetTamAttributeResponse {} message GetTamAttributeRequest { - uint64 oid = 1; - repeated TamAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamAttr attr_type = 2; } message GetTamAttributeResponse { - repeated TamAttribute attr = 1; - - + TamAttribute attr = 1; } message CreateTamMathFuncRequest { - uint64 switch = 1; - - TamTelMathFuncType tam_tel_math_func_type = 2; - + uint64 switch = 1; + optional TamTelMathFuncType tam_tel_math_func_type = 2 + [(attr_enum_value) = 1]; } message CreateTamMathFuncResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamMathFuncRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamMathFuncResponse { - - -} +message RemoveTamMathFuncResponse {} message SetTamMathFuncAttributeRequest { - uint64 oid = 1; - oneof attr { - TamTelMathFuncType tam_tel_math_func_type = 2; - } + uint64 oid = 1; + optional TamTelMathFuncType tam_tel_math_func_type = 2 + [(attr_enum_value) = 1]; } -message SetTamMathFuncAttributeResponse { - - -} +message SetTamMathFuncAttributeResponse {} message GetTamMathFuncAttributeRequest { - uint64 oid = 1; - repeated TamMathFuncAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamMathFuncAttr attr_type = 2; } message GetTamMathFuncAttributeResponse { - repeated TamMathFuncAttribute attr = 1; - - + TamMathFuncAttribute attr = 1; } message CreateTamReportRequest { - uint64 switch = 1; - - TamReportType type = 2; - uint32 histogram_number_of_bins = 3; - repeated uint32 histogram_bin_boundary = 4; - uint32 quota = 5; - TamReportMode report_mode = 6; - uint32 report_interval = 7; - uint32 enterprise_number = 8; - + uint64 switch = 1; + optional TamReportType type = 2 [(attr_enum_value) = 1]; + optional uint32 histogram_number_of_bins = 3 [(attr_enum_value) = 2]; + repeated uint32 histogram_bin_boundary = 4 [(attr_enum_value) = 3]; + optional uint32 quota = 5 [(attr_enum_value) = 4]; + optional TamReportMode report_mode = 6 [(attr_enum_value) = 5]; + optional uint32 report_interval = 7 [(attr_enum_value) = 6]; + optional uint32 enterprise_number = 8 [(attr_enum_value) = 7]; } message CreateTamReportResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamReportRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamReportResponse { - - -} +message RemoveTamReportResponse {} message SetTamReportAttributeRequest { - uint64 oid = 1; - oneof attr { - TamReportType type = 2; - uint32 quota = 3; - uint32 report_interval = 4; - uint32 enterprise_number = 5; - } + uint64 oid = 1; + optional TamReportType type = 2 [(attr_enum_value) = 1]; + optional uint32 quota = 3 [(attr_enum_value) = 4]; + optional uint32 report_interval = 4 [(attr_enum_value) = 6]; + optional uint32 enterprise_number = 5 [(attr_enum_value) = 7]; } -message SetTamReportAttributeResponse { - - -} +message SetTamReportAttributeResponse {} message GetTamReportAttributeRequest { - uint64 oid = 1; - repeated TamReportAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamReportAttr attr_type = 2; } message GetTamReportAttributeResponse { - repeated TamReportAttribute attr = 1; - - + TamReportAttribute attr = 1; } message CreateTamEventThresholdRequest { - uint64 switch = 1; - - uint32 high_watermark = 2; - uint32 low_watermark = 3; - uint32 latency = 4; - uint32 rate = 5; - uint32 abs_value = 6; - TamEventThresholdUnit unit = 7; - + uint64 switch = 1; + optional uint32 high_watermark = 2 [(attr_enum_value) = 1]; + optional uint32 low_watermark = 3 [(attr_enum_value) = 2]; + optional uint32 latency = 4 [(attr_enum_value) = 3]; + optional uint32 rate = 5 [(attr_enum_value) = 4]; + optional uint32 abs_value = 6 [(attr_enum_value) = 5]; + optional TamEventThresholdUnit unit = 7 [(attr_enum_value) = 6]; } message CreateTamEventThresholdResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamEventThresholdRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamEventThresholdResponse { - - -} +message RemoveTamEventThresholdResponse {} message SetTamEventThresholdAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 high_watermark = 2; - uint32 low_watermark = 3; - uint32 latency = 4; - uint32 rate = 5; - uint32 abs_value = 6; - TamEventThresholdUnit unit = 7; - } + uint64 oid = 1; + optional uint32 high_watermark = 2 [(attr_enum_value) = 1]; + optional uint32 low_watermark = 3 [(attr_enum_value) = 2]; + optional uint32 latency = 4 [(attr_enum_value) = 3]; + optional uint32 rate = 5 [(attr_enum_value) = 4]; + optional uint32 abs_value = 6 [(attr_enum_value) = 5]; + optional TamEventThresholdUnit unit = 7 [(attr_enum_value) = 6]; } -message SetTamEventThresholdAttributeResponse { - - -} +message SetTamEventThresholdAttributeResponse {} message GetTamEventThresholdAttributeRequest { - uint64 oid = 1; - repeated TamEventThresholdAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamEventThresholdAttr attr_type = 2; } message GetTamEventThresholdAttributeResponse { - repeated TamEventThresholdAttribute attr = 1; - - + TamEventThresholdAttribute attr = 1; } message CreateTamIntRequest { - uint64 switch = 1; - - TamIntType type = 2; - uint32 device_id = 3; - uint32 ioam_trace_type = 4; - TamIntPresenceType int_presence_type = 5; - uint32 int_presence_pb1 = 6; - uint32 int_presence_pb2 = 7; - uint32 int_presence_dscp_value = 8; - bool inline = 9; - uint32 int_presence_l3_protocol = 10; - uint32 trace_vector = 11; - uint32 action_vector = 12; - uint32 p4_int_instruction_bitmap = 13; - bool metadata_fragment_enable = 14; - bool metadata_checksum_enable = 15; - bool report_all_packets = 16; - uint32 flow_liveness_period = 17; - uint32 latency_sensitivity = 18; - uint64 acl_group = 19; - uint32 max_hop_count = 20; - uint32 max_length = 21; - uint32 name_space_id = 22; - bool name_space_id_global = 23; - uint64 ingress_samplepacket_enable = 24; - repeated uint64 collector_list = 25; - uint64 math_func = 26; - uint64 report_id = 27; - + uint64 switch = 1; + optional TamIntType type = 2 [(attr_enum_value) = 1]; + optional uint32 device_id = 3 [(attr_enum_value) = 2]; + optional uint32 ioam_trace_type = 4 [(attr_enum_value) = 3]; + optional TamIntPresenceType int_presence_type = 5 [(attr_enum_value) = 4]; + optional uint32 int_presence_pb1 = 6 [(attr_enum_value) = 5]; + optional uint32 int_presence_pb2 = 7 [(attr_enum_value) = 6]; + optional uint32 int_presence_dscp_value = 8 [(attr_enum_value) = 7]; + optional bool inline = 9 [(attr_enum_value) = 8]; + optional uint32 int_presence_l3_protocol = 10 [(attr_enum_value) = 9]; + optional uint32 trace_vector = 11 [(attr_enum_value) = 10]; + optional uint32 action_vector = 12 [(attr_enum_value) = 11]; + optional uint32 p4_int_instruction_bitmap = 13 [(attr_enum_value) = 12]; + optional bool metadata_fragment_enable = 14 [(attr_enum_value) = 13]; + optional bool metadata_checksum_enable = 15 [(attr_enum_value) = 14]; + optional bool report_all_packets = 16 [(attr_enum_value) = 15]; + optional uint32 flow_liveness_period = 17 [(attr_enum_value) = 16]; + optional uint32 latency_sensitivity = 18 [(attr_enum_value) = 17]; + optional uint64 acl_group = 19 [(attr_enum_value) = 18]; + optional uint32 max_hop_count = 20 [(attr_enum_value) = 19]; + optional uint32 max_length = 21 [(attr_enum_value) = 20]; + optional uint32 name_space_id = 22 [(attr_enum_value) = 21]; + optional bool name_space_id_global = 23 [(attr_enum_value) = 22]; + optional uint64 ingress_samplepacket_enable = 24 [(attr_enum_value) = 23]; + repeated uint64 collector_list = 25 [(attr_enum_value) = 24]; + optional uint64 math_func = 26 [(attr_enum_value) = 25]; + optional uint64 report_id = 27 [(attr_enum_value) = 26]; } message CreateTamIntResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamIntRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamIntResponse { - - -} +message RemoveTamIntResponse {} message SetTamIntAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 ioam_trace_type = 2; - uint32 trace_vector = 3; - uint32 action_vector = 4; - uint32 p4_int_instruction_bitmap = 5; - bool metadata_fragment_enable = 6; - bool metadata_checksum_enable = 7; - bool report_all_packets = 8; - uint32 flow_liveness_period = 9; - uint32 latency_sensitivity = 10; - uint64 acl_group = 11; - uint32 max_hop_count = 12; - uint32 max_length = 13; - uint32 name_space_id = 14; - bool name_space_id_global = 15; - uint64 ingress_samplepacket_enable = 16; - Uint64List collector_list = 17; - uint64 math_func = 18; - } -} - -message SetTamIntAttributeResponse { - - -} + uint64 oid = 1; + optional uint32 ioam_trace_type = 2 [(attr_enum_value) = 3]; + optional uint32 trace_vector = 3 [(attr_enum_value) = 10]; + optional uint32 action_vector = 4 [(attr_enum_value) = 11]; + optional uint32 p4_int_instruction_bitmap = 5 [(attr_enum_value) = 12]; + optional bool metadata_fragment_enable = 6 [(attr_enum_value) = 13]; + optional bool metadata_checksum_enable = 7 [(attr_enum_value) = 14]; + optional bool report_all_packets = 8 [(attr_enum_value) = 15]; + optional uint32 flow_liveness_period = 9 [(attr_enum_value) = 16]; + optional uint32 latency_sensitivity = 10 [(attr_enum_value) = 17]; + optional uint64 acl_group = 11 [(attr_enum_value) = 18]; + optional uint32 max_hop_count = 12 [(attr_enum_value) = 19]; + optional uint32 max_length = 13 [(attr_enum_value) = 20]; + optional uint32 name_space_id = 14 [(attr_enum_value) = 21]; + optional bool name_space_id_global = 15 [(attr_enum_value) = 22]; + optional uint64 ingress_samplepacket_enable = 16 [(attr_enum_value) = 23]; + repeated uint64 collector_list = 17 [(attr_enum_value) = 24]; + optional uint64 math_func = 18 [(attr_enum_value) = 25]; +} + +message SetTamIntAttributeResponse {} message GetTamIntAttributeRequest { - uint64 oid = 1; - repeated TamIntAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamIntAttr attr_type = 2; } message GetTamIntAttributeResponse { - repeated TamIntAttribute attr = 1; - - + TamIntAttribute attr = 1; } message CreateTamTelTypeRequest { - uint64 switch = 1; - - TamTelemetryType tam_telemetry_type = 2; - uint32 int_switch_identifier = 3; - bool switch_enable_port_stats = 4; - bool switch_enable_port_stats_ingress = 5; - bool switch_enable_port_stats_egress = 6; - bool switch_enable_virtual_queue_stats = 7; - bool switch_enable_output_queue_stats = 8; - bool switch_enable_mmu_stats = 9; - bool switch_enable_fabric_stats = 10; - bool switch_enable_filter_stats = 11; - bool switch_enable_resource_utilization_stats = 12; - bool fabric_q = 13; - bool ne_enable = 14; - uint32 dscp_value = 15; - uint64 math_func = 16; - uint64 report_id = 17; - + uint64 switch = 1; + optional TamTelemetryType tam_telemetry_type = 2 [(attr_enum_value) = 1]; + optional uint32 int_switch_identifier = 3 [(attr_enum_value) = 2]; + optional bool switch_enable_port_stats = 4 [(attr_enum_value) = 3]; + optional bool switch_enable_port_stats_ingress = 5 [(attr_enum_value) = 4]; + optional bool switch_enable_port_stats_egress = 6 [(attr_enum_value) = 5]; + optional bool switch_enable_virtual_queue_stats = 7 [(attr_enum_value) = 6]; + optional bool switch_enable_output_queue_stats = 8 [(attr_enum_value) = 7]; + optional bool switch_enable_mmu_stats = 9 [(attr_enum_value) = 8]; + optional bool switch_enable_fabric_stats = 10 [(attr_enum_value) = 9]; + optional bool switch_enable_filter_stats = 11 [(attr_enum_value) = 10]; + optional bool switch_enable_resource_utilization_stats = 12 + [(attr_enum_value) = 11]; + optional bool fabric_q = 13 [(attr_enum_value) = 12]; + optional bool ne_enable = 14 [(attr_enum_value) = 13]; + optional uint32 dscp_value = 15 [(attr_enum_value) = 14]; + optional uint64 math_func = 16 [(attr_enum_value) = 15]; + optional uint64 report_id = 17 [(attr_enum_value) = 16]; } message CreateTamTelTypeResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamTelTypeRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamTelTypeResponse { - - -} +message RemoveTamTelTypeResponse {} message SetTamTelTypeAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 int_switch_identifier = 2; - bool switch_enable_port_stats = 3; - bool switch_enable_port_stats_ingress = 4; - bool switch_enable_port_stats_egress = 5; - bool switch_enable_virtual_queue_stats = 6; - bool switch_enable_output_queue_stats = 7; - bool switch_enable_mmu_stats = 8; - bool switch_enable_fabric_stats = 9; - bool switch_enable_filter_stats = 10; - bool switch_enable_resource_utilization_stats = 11; - bool fabric_q = 12; - bool ne_enable = 13; - uint32 dscp_value = 14; - uint64 math_func = 15; - } -} - -message SetTamTelTypeAttributeResponse { - - -} + uint64 oid = 1; + optional uint32 int_switch_identifier = 2 [(attr_enum_value) = 2]; + optional bool switch_enable_port_stats = 3 [(attr_enum_value) = 3]; + optional bool switch_enable_port_stats_ingress = 4 [(attr_enum_value) = 4]; + optional bool switch_enable_port_stats_egress = 5 [(attr_enum_value) = 5]; + optional bool switch_enable_virtual_queue_stats = 6 [(attr_enum_value) = 6]; + optional bool switch_enable_output_queue_stats = 7 [(attr_enum_value) = 7]; + optional bool switch_enable_mmu_stats = 8 [(attr_enum_value) = 8]; + optional bool switch_enable_fabric_stats = 9 [(attr_enum_value) = 9]; + optional bool switch_enable_filter_stats = 10 [(attr_enum_value) = 10]; + optional bool switch_enable_resource_utilization_stats = 11 + [(attr_enum_value) = 11]; + optional bool fabric_q = 12 [(attr_enum_value) = 12]; + optional bool ne_enable = 13 [(attr_enum_value) = 13]; + optional uint32 dscp_value = 14 [(attr_enum_value) = 14]; + optional uint64 math_func = 15 [(attr_enum_value) = 15]; +} + +message SetTamTelTypeAttributeResponse {} message GetTamTelTypeAttributeRequest { - uint64 oid = 1; - repeated TamTelTypeAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamTelTypeAttr attr_type = 2; } message GetTamTelTypeAttributeResponse { - repeated TamTelTypeAttribute attr = 1; - - + TamTelTypeAttribute attr = 1; } message CreateTamTransportRequest { - uint64 switch = 1; - - TamTransportType transport_type = 2; - uint32 src_port = 3; - uint32 dst_port = 4; - TamTransportAuthType transport_auth_type = 5; - uint32 mtu = 6; - + uint64 switch = 1; + optional TamTransportType transport_type = 2 [(attr_enum_value) = 1]; + optional uint32 src_port = 3 [(attr_enum_value) = 2]; + optional uint32 dst_port = 4 [(attr_enum_value) = 3]; + optional TamTransportAuthType transport_auth_type = 5 [(attr_enum_value) = 4]; + optional uint32 mtu = 6 [(attr_enum_value) = 5]; } message CreateTamTransportResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamTransportRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamTransportResponse { - - -} +message RemoveTamTransportResponse {} message SetTamTransportAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 src_port = 2; - uint32 dst_port = 3; - TamTransportAuthType transport_auth_type = 4; - uint32 mtu = 5; - } + uint64 oid = 1; + optional uint32 src_port = 2 [(attr_enum_value) = 2]; + optional uint32 dst_port = 3 [(attr_enum_value) = 3]; + optional TamTransportAuthType transport_auth_type = 4 [(attr_enum_value) = 4]; + optional uint32 mtu = 5 [(attr_enum_value) = 5]; } -message SetTamTransportAttributeResponse { - - -} +message SetTamTransportAttributeResponse {} message GetTamTransportAttributeRequest { - uint64 oid = 1; - repeated TamTransportAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamTransportAttr attr_type = 2; } message GetTamTransportAttributeResponse { - repeated TamTransportAttribute attr = 1; - - + TamTransportAttribute attr = 1; } message CreateTamTelemetryRequest { - uint64 switch = 1; - - repeated uint64 tam_type_list = 2; - repeated uint64 collector_list = 3; - TamReportingUnit tam_reporting_unit = 4; - uint32 reporting_interval = 5; - + uint64 switch = 1; + repeated uint64 tam_type_list = 2 [(attr_enum_value) = 1]; + repeated uint64 collector_list = 3 [(attr_enum_value) = 2]; + optional TamReportingUnit tam_reporting_unit = 4 [(attr_enum_value) = 3]; + optional uint32 reporting_interval = 5 [(attr_enum_value) = 4]; } message CreateTamTelemetryResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamTelemetryRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamTelemetryResponse { - - -} +message RemoveTamTelemetryResponse {} message SetTamTelemetryAttributeRequest { - uint64 oid = 1; - oneof attr { - Uint64List tam_type_list = 2; - TamReportingUnit tam_reporting_unit = 3; - uint32 reporting_interval = 4; - } + uint64 oid = 1; + repeated uint64 tam_type_list = 2 [(attr_enum_value) = 1]; + optional TamReportingUnit tam_reporting_unit = 3 [(attr_enum_value) = 3]; + optional uint32 reporting_interval = 4 [(attr_enum_value) = 4]; } -message SetTamTelemetryAttributeResponse { - - -} +message SetTamTelemetryAttributeResponse {} message GetTamTelemetryAttributeRequest { - uint64 oid = 1; - repeated TamTelemetryAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamTelemetryAttr attr_type = 2; } message GetTamTelemetryAttributeResponse { - repeated TamTelemetryAttribute attr = 1; - - + TamTelemetryAttribute attr = 1; } message CreateTamCollectorRequest { - uint64 switch = 1; - - bytes src_ip = 2; - bytes dst_ip = 3; - bool localhost = 4; - uint64 virtual_router_id = 5; - uint32 truncate_size = 6; - uint64 transport = 7; - uint32 dscp_value = 8; - + uint64 switch = 1; + optional bytes src_ip = 2 [(attr_enum_value) = 1]; + optional bytes dst_ip = 3 [(attr_enum_value) = 2]; + optional bool localhost = 4 [(attr_enum_value) = 3]; + optional uint64 virtual_router_id = 5 [(attr_enum_value) = 4]; + optional uint32 truncate_size = 6 [(attr_enum_value) = 5]; + optional uint64 transport = 7 [(attr_enum_value) = 6]; + optional uint32 dscp_value = 8 [(attr_enum_value) = 7]; } message CreateTamCollectorResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamCollectorRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamCollectorResponse { - - -} +message RemoveTamCollectorResponse {} message SetTamCollectorAttributeRequest { - uint64 oid = 1; - oneof attr { - bytes src_ip = 2; - bytes dst_ip = 3; - bool localhost = 4; - uint64 virtual_router_id = 5; - uint32 truncate_size = 6; - uint64 transport = 7; - uint32 dscp_value = 8; - } + uint64 oid = 1; + optional bytes src_ip = 2 [(attr_enum_value) = 1]; + optional bytes dst_ip = 3 [(attr_enum_value) = 2]; + optional bool localhost = 4 [(attr_enum_value) = 3]; + optional uint64 virtual_router_id = 5 [(attr_enum_value) = 4]; + optional uint32 truncate_size = 6 [(attr_enum_value) = 5]; + optional uint64 transport = 7 [(attr_enum_value) = 6]; + optional uint32 dscp_value = 8 [(attr_enum_value) = 7]; } -message SetTamCollectorAttributeResponse { - - -} +message SetTamCollectorAttributeResponse {} message GetTamCollectorAttributeRequest { - uint64 oid = 1; - repeated TamCollectorAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamCollectorAttr attr_type = 2; } message GetTamCollectorAttributeResponse { - repeated TamCollectorAttribute attr = 1; - - + TamCollectorAttribute attr = 1; } message CreateTamEventActionRequest { - uint64 switch = 1; - - uint64 report_type = 2; - uint32 qos_action_type = 3; - + uint64 switch = 1; + optional uint64 report_type = 2 [(attr_enum_value) = 1]; + optional uint32 qos_action_type = 3 [(attr_enum_value) = 2]; } message CreateTamEventActionResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamEventActionRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamEventActionResponse { - - -} +message RemoveTamEventActionResponse {} message SetTamEventActionAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 report_type = 2; - uint32 qos_action_type = 3; - } + uint64 oid = 1; + optional uint64 report_type = 2 [(attr_enum_value) = 1]; + optional uint32 qos_action_type = 3 [(attr_enum_value) = 2]; } -message SetTamEventActionAttributeResponse { - - -} +message SetTamEventActionAttributeResponse {} message GetTamEventActionAttributeRequest { - uint64 oid = 1; - repeated TamEventActionAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamEventActionAttr attr_type = 2; } message GetTamEventActionAttributeResponse { - repeated TamEventActionAttribute attr = 1; - - + TamEventActionAttribute attr = 1; } message CreateTamEventRequest { - uint64 switch = 1; - - TamEventType type = 2; - repeated uint64 action_list = 3; - repeated uint64 collector_list = 4; - uint64 threshold = 5; - uint32 dscp_value = 6; - + uint64 switch = 1; + optional TamEventType type = 2 [(attr_enum_value) = 1]; + repeated uint64 action_list = 3 [(attr_enum_value) = 2]; + repeated uint64 collector_list = 4 [(attr_enum_value) = 3]; + optional uint64 threshold = 5 [(attr_enum_value) = 4]; + optional uint32 dscp_value = 6 [(attr_enum_value) = 5]; } message CreateTamEventResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTamEventRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTamEventResponse { - - -} +message RemoveTamEventResponse {} message SetTamEventAttributeRequest { - uint64 oid = 1; - oneof attr { - uint64 threshold = 2; - uint32 dscp_value = 3; - } + uint64 oid = 1; + optional uint64 threshold = 2 [(attr_enum_value) = 4]; + optional uint32 dscp_value = 3 [(attr_enum_value) = 5]; } -message SetTamEventAttributeResponse { - - -} +message SetTamEventAttributeResponse {} message GetTamEventAttributeRequest { - uint64 oid = 1; - repeated TamEventAttr attr_type = 2; - - + uint64 oid = 1; + repeated TamEventAttr attr_type = 2; } message GetTamEventAttributeResponse { - repeated TamEventAttribute attr = 1; - - + TamEventAttribute attr = 1; } - service Tam { - rpc CreateTam (CreateTamRequest) returns (CreateTamResponse) {} - rpc RemoveTam (RemoveTamRequest) returns (RemoveTamResponse) {} - rpc SetTamAttribute (SetTamAttributeRequest) returns (SetTamAttributeResponse) {} - rpc GetTamAttribute (GetTamAttributeRequest) returns (GetTamAttributeResponse) {} - rpc CreateTamMathFunc (CreateTamMathFuncRequest) returns (CreateTamMathFuncResponse) {} - rpc RemoveTamMathFunc (RemoveTamMathFuncRequest) returns (RemoveTamMathFuncResponse) {} - rpc SetTamMathFuncAttribute (SetTamMathFuncAttributeRequest) returns (SetTamMathFuncAttributeResponse) {} - rpc GetTamMathFuncAttribute (GetTamMathFuncAttributeRequest) returns (GetTamMathFuncAttributeResponse) {} - rpc CreateTamReport (CreateTamReportRequest) returns (CreateTamReportResponse) {} - rpc RemoveTamReport (RemoveTamReportRequest) returns (RemoveTamReportResponse) {} - rpc SetTamReportAttribute (SetTamReportAttributeRequest) returns (SetTamReportAttributeResponse) {} - rpc GetTamReportAttribute (GetTamReportAttributeRequest) returns (GetTamReportAttributeResponse) {} - rpc CreateTamEventThreshold (CreateTamEventThresholdRequest) returns (CreateTamEventThresholdResponse) {} - rpc RemoveTamEventThreshold (RemoveTamEventThresholdRequest) returns (RemoveTamEventThresholdResponse) {} - rpc SetTamEventThresholdAttribute (SetTamEventThresholdAttributeRequest) returns (SetTamEventThresholdAttributeResponse) {} - rpc GetTamEventThresholdAttribute (GetTamEventThresholdAttributeRequest) returns (GetTamEventThresholdAttributeResponse) {} - rpc CreateTamInt (CreateTamIntRequest) returns (CreateTamIntResponse) {} - rpc RemoveTamInt (RemoveTamIntRequest) returns (RemoveTamIntResponse) {} - rpc SetTamIntAttribute (SetTamIntAttributeRequest) returns (SetTamIntAttributeResponse) {} - rpc GetTamIntAttribute (GetTamIntAttributeRequest) returns (GetTamIntAttributeResponse) {} - rpc CreateTamTelType (CreateTamTelTypeRequest) returns (CreateTamTelTypeResponse) {} - rpc RemoveTamTelType (RemoveTamTelTypeRequest) returns (RemoveTamTelTypeResponse) {} - rpc SetTamTelTypeAttribute (SetTamTelTypeAttributeRequest) returns (SetTamTelTypeAttributeResponse) {} - rpc GetTamTelTypeAttribute (GetTamTelTypeAttributeRequest) returns (GetTamTelTypeAttributeResponse) {} - rpc CreateTamTransport (CreateTamTransportRequest) returns (CreateTamTransportResponse) {} - rpc RemoveTamTransport (RemoveTamTransportRequest) returns (RemoveTamTransportResponse) {} - rpc SetTamTransportAttribute (SetTamTransportAttributeRequest) returns (SetTamTransportAttributeResponse) {} - rpc GetTamTransportAttribute (GetTamTransportAttributeRequest) returns (GetTamTransportAttributeResponse) {} - rpc CreateTamTelemetry (CreateTamTelemetryRequest) returns (CreateTamTelemetryResponse) {} - rpc RemoveTamTelemetry (RemoveTamTelemetryRequest) returns (RemoveTamTelemetryResponse) {} - rpc SetTamTelemetryAttribute (SetTamTelemetryAttributeRequest) returns (SetTamTelemetryAttributeResponse) {} - rpc GetTamTelemetryAttribute (GetTamTelemetryAttributeRequest) returns (GetTamTelemetryAttributeResponse) {} - rpc CreateTamCollector (CreateTamCollectorRequest) returns (CreateTamCollectorResponse) {} - rpc RemoveTamCollector (RemoveTamCollectorRequest) returns (RemoveTamCollectorResponse) {} - rpc SetTamCollectorAttribute (SetTamCollectorAttributeRequest) returns (SetTamCollectorAttributeResponse) {} - rpc GetTamCollectorAttribute (GetTamCollectorAttributeRequest) returns (GetTamCollectorAttributeResponse) {} - rpc CreateTamEventAction (CreateTamEventActionRequest) returns (CreateTamEventActionResponse) {} - rpc RemoveTamEventAction (RemoveTamEventActionRequest) returns (RemoveTamEventActionResponse) {} - rpc SetTamEventActionAttribute (SetTamEventActionAttributeRequest) returns (SetTamEventActionAttributeResponse) {} - rpc GetTamEventActionAttribute (GetTamEventActionAttributeRequest) returns (GetTamEventActionAttributeResponse) {} - rpc CreateTamEvent (CreateTamEventRequest) returns (CreateTamEventResponse) {} - rpc RemoveTamEvent (RemoveTamEventRequest) returns (RemoveTamEventResponse) {} - rpc SetTamEventAttribute (SetTamEventAttributeRequest) returns (SetTamEventAttributeResponse) {} - rpc GetTamEventAttribute (GetTamEventAttributeRequest) returns (GetTamEventAttributeResponse) {} + rpc CreateTam(CreateTamRequest) returns (CreateTamResponse) {} + rpc RemoveTam(RemoveTamRequest) returns (RemoveTamResponse) {} + rpc SetTamAttribute(SetTamAttributeRequest) + returns (SetTamAttributeResponse) {} + rpc GetTamAttribute(GetTamAttributeRequest) + returns (GetTamAttributeResponse) {} + rpc CreateTamMathFunc(CreateTamMathFuncRequest) + returns (CreateTamMathFuncResponse) {} + rpc RemoveTamMathFunc(RemoveTamMathFuncRequest) + returns (RemoveTamMathFuncResponse) {} + rpc SetTamMathFuncAttribute(SetTamMathFuncAttributeRequest) + returns (SetTamMathFuncAttributeResponse) {} + rpc GetTamMathFuncAttribute(GetTamMathFuncAttributeRequest) + returns (GetTamMathFuncAttributeResponse) {} + rpc CreateTamReport(CreateTamReportRequest) + returns (CreateTamReportResponse) {} + rpc RemoveTamReport(RemoveTamReportRequest) + returns (RemoveTamReportResponse) {} + rpc SetTamReportAttribute(SetTamReportAttributeRequest) + returns (SetTamReportAttributeResponse) {} + rpc GetTamReportAttribute(GetTamReportAttributeRequest) + returns (GetTamReportAttributeResponse) {} + rpc CreateTamEventThreshold(CreateTamEventThresholdRequest) + returns (CreateTamEventThresholdResponse) {} + rpc RemoveTamEventThreshold(RemoveTamEventThresholdRequest) + returns (RemoveTamEventThresholdResponse) {} + rpc SetTamEventThresholdAttribute(SetTamEventThresholdAttributeRequest) + returns (SetTamEventThresholdAttributeResponse) {} + rpc GetTamEventThresholdAttribute(GetTamEventThresholdAttributeRequest) + returns (GetTamEventThresholdAttributeResponse) {} + rpc CreateTamInt(CreateTamIntRequest) returns (CreateTamIntResponse) {} + rpc RemoveTamInt(RemoveTamIntRequest) returns (RemoveTamIntResponse) {} + rpc SetTamIntAttribute(SetTamIntAttributeRequest) + returns (SetTamIntAttributeResponse) {} + rpc GetTamIntAttribute(GetTamIntAttributeRequest) + returns (GetTamIntAttributeResponse) {} + rpc CreateTamTelType(CreateTamTelTypeRequest) + returns (CreateTamTelTypeResponse) {} + rpc RemoveTamTelType(RemoveTamTelTypeRequest) + returns (RemoveTamTelTypeResponse) {} + rpc SetTamTelTypeAttribute(SetTamTelTypeAttributeRequest) + returns (SetTamTelTypeAttributeResponse) {} + rpc GetTamTelTypeAttribute(GetTamTelTypeAttributeRequest) + returns (GetTamTelTypeAttributeResponse) {} + rpc CreateTamTransport(CreateTamTransportRequest) + returns (CreateTamTransportResponse) {} + rpc RemoveTamTransport(RemoveTamTransportRequest) + returns (RemoveTamTransportResponse) {} + rpc SetTamTransportAttribute(SetTamTransportAttributeRequest) + returns (SetTamTransportAttributeResponse) {} + rpc GetTamTransportAttribute(GetTamTransportAttributeRequest) + returns (GetTamTransportAttributeResponse) {} + rpc CreateTamTelemetry(CreateTamTelemetryRequest) + returns (CreateTamTelemetryResponse) {} + rpc RemoveTamTelemetry(RemoveTamTelemetryRequest) + returns (RemoveTamTelemetryResponse) {} + rpc SetTamTelemetryAttribute(SetTamTelemetryAttributeRequest) + returns (SetTamTelemetryAttributeResponse) {} + rpc GetTamTelemetryAttribute(GetTamTelemetryAttributeRequest) + returns (GetTamTelemetryAttributeResponse) {} + rpc CreateTamCollector(CreateTamCollectorRequest) + returns (CreateTamCollectorResponse) {} + rpc RemoveTamCollector(RemoveTamCollectorRequest) + returns (RemoveTamCollectorResponse) {} + rpc SetTamCollectorAttribute(SetTamCollectorAttributeRequest) + returns (SetTamCollectorAttributeResponse) {} + rpc GetTamCollectorAttribute(GetTamCollectorAttributeRequest) + returns (GetTamCollectorAttributeResponse) {} + rpc CreateTamEventAction(CreateTamEventActionRequest) + returns (CreateTamEventActionResponse) {} + rpc RemoveTamEventAction(RemoveTamEventActionRequest) + returns (RemoveTamEventActionResponse) {} + rpc SetTamEventActionAttribute(SetTamEventActionAttributeRequest) + returns (SetTamEventActionAttributeResponse) {} + rpc GetTamEventActionAttribute(GetTamEventActionAttributeRequest) + returns (GetTamEventActionAttributeResponse) {} + rpc CreateTamEvent(CreateTamEventRequest) returns (CreateTamEventResponse) {} + rpc RemoveTamEvent(RemoveTamEventRequest) returns (RemoveTamEventResponse) {} + rpc SetTamEventAttribute(SetTamEventAttributeRequest) + returns (SetTamEventAttributeResponse) {} + rpc GetTamEventAttribute(GetTamEventAttributeRequest) + returns (GetTamEventAttributeResponse) {} } diff --git a/dataplane/standalone/proto/tunnel.pb.go b/dataplane/standalone/proto/tunnel.pb.go index c91a4c68..3778b9b5 100755 --- a/dataplane/standalone/proto/tunnel.pb.go +++ b/dataplane/standalone/proto/tunnel.pb.go @@ -360,8 +360,8 @@ type CreateTunnelMapRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type TunnelMapType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelMapType" json:"type,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *TunnelMapType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelMapType,oneof" json:"type,omitempty"` } func (x *CreateTunnelMapRequest) Reset() { @@ -404,8 +404,8 @@ func (x *CreateTunnelMapRequest) GetSwitch() uint64 { } func (x *CreateTunnelMapRequest) GetType() TunnelMapType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TunnelMapType_TUNNEL_MAP_TYPE_UNSPECIFIED } @@ -602,7 +602,7 @@ type GetTunnelMapAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TunnelMapAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TunnelMapAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTunnelMapAttributeResponse) Reset() { @@ -637,7 +637,7 @@ func (*GetTunnelMapAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tunnel_proto_rawDescGZIP(), []int{5} } -func (x *GetTunnelMapAttributeResponse) GetAttr() []*TunnelMapAttribute { +func (x *GetTunnelMapAttributeResponse) GetAttr() *TunnelMapAttribute { if x != nil { return x.Attr } @@ -649,31 +649,31 @@ type CreateTunnelRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type TunnelType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelType" json:"type,omitempty"` - UnderlayInterface uint64 `protobuf:"varint,3,opt,name=underlay_interface,json=underlayInterface,proto3" json:"underlay_interface,omitempty"` - OverlayInterface uint64 `protobuf:"varint,4,opt,name=overlay_interface,json=overlayInterface,proto3" json:"overlay_interface,omitempty"` - PeerMode TunnelPeerMode `protobuf:"varint,5,opt,name=peer_mode,json=peerMode,proto3,enum=lemming.dataplane.sai.TunnelPeerMode" json:"peer_mode,omitempty"` - EncapSrcIp []byte `protobuf:"bytes,6,opt,name=encap_src_ip,json=encapSrcIp,proto3" json:"encap_src_ip,omitempty"` - EncapDstIp []byte `protobuf:"bytes,7,opt,name=encap_dst_ip,json=encapDstIp,proto3" json:"encap_dst_ip,omitempty"` - EncapTtlMode TunnelTtlMode `protobuf:"varint,8,opt,name=encap_ttl_mode,json=encapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode" json:"encap_ttl_mode,omitempty"` - EncapTtlVal uint32 `protobuf:"varint,9,opt,name=encap_ttl_val,json=encapTtlVal,proto3" json:"encap_ttl_val,omitempty"` - EncapDscpMode TunnelDscpMode `protobuf:"varint,10,opt,name=encap_dscp_mode,json=encapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode" json:"encap_dscp_mode,omitempty"` - EncapDscpVal uint32 `protobuf:"varint,11,opt,name=encap_dscp_val,json=encapDscpVal,proto3" json:"encap_dscp_val,omitempty"` - EncapGreKeyValid bool `protobuf:"varint,12,opt,name=encap_gre_key_valid,json=encapGreKeyValid,proto3" json:"encap_gre_key_valid,omitempty"` - EncapGreKey uint32 `protobuf:"varint,13,opt,name=encap_gre_key,json=encapGreKey,proto3" json:"encap_gre_key,omitempty"` - EncapEcnMode TunnelEncapEcnMode `protobuf:"varint,14,opt,name=encap_ecn_mode,json=encapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelEncapEcnMode" json:"encap_ecn_mode,omitempty"` - EncapMappers []uint64 `protobuf:"varint,15,rep,packed,name=encap_mappers,json=encapMappers,proto3" json:"encap_mappers,omitempty"` - DecapEcnMode TunnelDecapEcnMode `protobuf:"varint,16,opt,name=decap_ecn_mode,json=decapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelDecapEcnMode" json:"decap_ecn_mode,omitempty"` - DecapMappers []uint64 `protobuf:"varint,17,rep,packed,name=decap_mappers,json=decapMappers,proto3" json:"decap_mappers,omitempty"` - DecapTtlMode TunnelTtlMode `protobuf:"varint,18,opt,name=decap_ttl_mode,json=decapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode" json:"decap_ttl_mode,omitempty"` - DecapDscpMode TunnelDscpMode `protobuf:"varint,19,opt,name=decap_dscp_mode,json=decapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode" json:"decap_dscp_mode,omitempty"` - LoopbackPacketAction PacketAction `protobuf:"varint,20,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"loopback_packet_action,omitempty"` - VxlanUdpSportMode TunnelVxlanUdpSportMode `protobuf:"varint,21,opt,name=vxlan_udp_sport_mode,json=vxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode" json:"vxlan_udp_sport_mode,omitempty"` - VxlanUdpSport uint32 `protobuf:"varint,22,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3" json:"vxlan_udp_sport,omitempty"` - VxlanUdpSportMask uint32 `protobuf:"varint,23,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3" json:"vxlan_udp_sport_mask,omitempty"` - SaIndex uint32 `protobuf:"varint,24,opt,name=sa_index,json=saIndex,proto3" json:"sa_index,omitempty"` - IpsecSaPortList []uint64 `protobuf:"varint,25,rep,packed,name=ipsec_sa_port_list,json=ipsecSaPortList,proto3" json:"ipsec_sa_port_list,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *TunnelType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelType,oneof" json:"type,omitempty"` + UnderlayInterface *uint64 `protobuf:"varint,3,opt,name=underlay_interface,json=underlayInterface,proto3,oneof" json:"underlay_interface,omitempty"` + OverlayInterface *uint64 `protobuf:"varint,4,opt,name=overlay_interface,json=overlayInterface,proto3,oneof" json:"overlay_interface,omitempty"` + PeerMode *TunnelPeerMode `protobuf:"varint,5,opt,name=peer_mode,json=peerMode,proto3,enum=lemming.dataplane.sai.TunnelPeerMode,oneof" json:"peer_mode,omitempty"` + EncapSrcIp []byte `protobuf:"bytes,6,opt,name=encap_src_ip,json=encapSrcIp,proto3,oneof" json:"encap_src_ip,omitempty"` + EncapDstIp []byte `protobuf:"bytes,7,opt,name=encap_dst_ip,json=encapDstIp,proto3,oneof" json:"encap_dst_ip,omitempty"` + EncapTtlMode *TunnelTtlMode `protobuf:"varint,8,opt,name=encap_ttl_mode,json=encapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode,oneof" json:"encap_ttl_mode,omitempty"` + EncapTtlVal *uint32 `protobuf:"varint,9,opt,name=encap_ttl_val,json=encapTtlVal,proto3,oneof" json:"encap_ttl_val,omitempty"` + EncapDscpMode *TunnelDscpMode `protobuf:"varint,10,opt,name=encap_dscp_mode,json=encapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode,oneof" json:"encap_dscp_mode,omitempty"` + EncapDscpVal *uint32 `protobuf:"varint,11,opt,name=encap_dscp_val,json=encapDscpVal,proto3,oneof" json:"encap_dscp_val,omitempty"` + EncapGreKeyValid *bool `protobuf:"varint,12,opt,name=encap_gre_key_valid,json=encapGreKeyValid,proto3,oneof" json:"encap_gre_key_valid,omitempty"` + EncapGreKey *uint32 `protobuf:"varint,13,opt,name=encap_gre_key,json=encapGreKey,proto3,oneof" json:"encap_gre_key,omitempty"` + EncapEcnMode *TunnelEncapEcnMode `protobuf:"varint,14,opt,name=encap_ecn_mode,json=encapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelEncapEcnMode,oneof" json:"encap_ecn_mode,omitempty"` + EncapMappers []uint64 `protobuf:"varint,15,rep,packed,name=encap_mappers,json=encapMappers,proto3" json:"encap_mappers,omitempty"` + DecapEcnMode *TunnelDecapEcnMode `protobuf:"varint,16,opt,name=decap_ecn_mode,json=decapEcnMode,proto3,enum=lemming.dataplane.sai.TunnelDecapEcnMode,oneof" json:"decap_ecn_mode,omitempty"` + DecapMappers []uint64 `protobuf:"varint,17,rep,packed,name=decap_mappers,json=decapMappers,proto3" json:"decap_mappers,omitempty"` + DecapTtlMode *TunnelTtlMode `protobuf:"varint,18,opt,name=decap_ttl_mode,json=decapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode,oneof" json:"decap_ttl_mode,omitempty"` + DecapDscpMode *TunnelDscpMode `protobuf:"varint,19,opt,name=decap_dscp_mode,json=decapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode,oneof" json:"decap_dscp_mode,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,20,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + VxlanUdpSportMode *TunnelVxlanUdpSportMode `protobuf:"varint,21,opt,name=vxlan_udp_sport_mode,json=vxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode,oneof" json:"vxlan_udp_sport_mode,omitempty"` + VxlanUdpSport *uint32 `protobuf:"varint,22,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3,oneof" json:"vxlan_udp_sport,omitempty"` + VxlanUdpSportMask *uint32 `protobuf:"varint,23,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3,oneof" json:"vxlan_udp_sport_mask,omitempty"` + SaIndex *uint32 `protobuf:"varint,24,opt,name=sa_index,json=saIndex,proto3,oneof" json:"sa_index,omitempty"` + IpsecSaPortList []uint64 `protobuf:"varint,25,rep,packed,name=ipsec_sa_port_list,json=ipsecSaPortList,proto3" json:"ipsec_sa_port_list,omitempty"` } func (x *CreateTunnelRequest) Reset() { @@ -716,29 +716,29 @@ func (x *CreateTunnelRequest) GetSwitch() uint64 { } func (x *CreateTunnelRequest) GetType() TunnelType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TunnelType_TUNNEL_TYPE_UNSPECIFIED } func (x *CreateTunnelRequest) GetUnderlayInterface() uint64 { - if x != nil { - return x.UnderlayInterface + if x != nil && x.UnderlayInterface != nil { + return *x.UnderlayInterface } return 0 } func (x *CreateTunnelRequest) GetOverlayInterface() uint64 { - if x != nil { - return x.OverlayInterface + if x != nil && x.OverlayInterface != nil { + return *x.OverlayInterface } return 0 } func (x *CreateTunnelRequest) GetPeerMode() TunnelPeerMode { - if x != nil { - return x.PeerMode + if x != nil && x.PeerMode != nil { + return *x.PeerMode } return TunnelPeerMode_TUNNEL_PEER_MODE_UNSPECIFIED } @@ -758,50 +758,50 @@ func (x *CreateTunnelRequest) GetEncapDstIp() []byte { } func (x *CreateTunnelRequest) GetEncapTtlMode() TunnelTtlMode { - if x != nil { - return x.EncapTtlMode + if x != nil && x.EncapTtlMode != nil { + return *x.EncapTtlMode } return TunnelTtlMode_TUNNEL_TTL_MODE_UNSPECIFIED } func (x *CreateTunnelRequest) GetEncapTtlVal() uint32 { - if x != nil { - return x.EncapTtlVal + if x != nil && x.EncapTtlVal != nil { + return *x.EncapTtlVal } return 0 } func (x *CreateTunnelRequest) GetEncapDscpMode() TunnelDscpMode { - if x != nil { - return x.EncapDscpMode + if x != nil && x.EncapDscpMode != nil { + return *x.EncapDscpMode } return TunnelDscpMode_TUNNEL_DSCP_MODE_UNSPECIFIED } func (x *CreateTunnelRequest) GetEncapDscpVal() uint32 { - if x != nil { - return x.EncapDscpVal + if x != nil && x.EncapDscpVal != nil { + return *x.EncapDscpVal } return 0 } func (x *CreateTunnelRequest) GetEncapGreKeyValid() bool { - if x != nil { - return x.EncapGreKeyValid + if x != nil && x.EncapGreKeyValid != nil { + return *x.EncapGreKeyValid } return false } func (x *CreateTunnelRequest) GetEncapGreKey() uint32 { - if x != nil { - return x.EncapGreKey + if x != nil && x.EncapGreKey != nil { + return *x.EncapGreKey } return 0 } func (x *CreateTunnelRequest) GetEncapEcnMode() TunnelEncapEcnMode { - if x != nil { - return x.EncapEcnMode + if x != nil && x.EncapEcnMode != nil { + return *x.EncapEcnMode } return TunnelEncapEcnMode_TUNNEL_ENCAP_ECN_MODE_UNSPECIFIED } @@ -814,8 +814,8 @@ func (x *CreateTunnelRequest) GetEncapMappers() []uint64 { } func (x *CreateTunnelRequest) GetDecapEcnMode() TunnelDecapEcnMode { - if x != nil { - return x.DecapEcnMode + if x != nil && x.DecapEcnMode != nil { + return *x.DecapEcnMode } return TunnelDecapEcnMode_TUNNEL_DECAP_ECN_MODE_UNSPECIFIED } @@ -828,50 +828,50 @@ func (x *CreateTunnelRequest) GetDecapMappers() []uint64 { } func (x *CreateTunnelRequest) GetDecapTtlMode() TunnelTtlMode { - if x != nil { - return x.DecapTtlMode + if x != nil && x.DecapTtlMode != nil { + return *x.DecapTtlMode } return TunnelTtlMode_TUNNEL_TTL_MODE_UNSPECIFIED } func (x *CreateTunnelRequest) GetDecapDscpMode() TunnelDscpMode { - if x != nil { - return x.DecapDscpMode + if x != nil && x.DecapDscpMode != nil { + return *x.DecapDscpMode } return TunnelDscpMode_TUNNEL_DSCP_MODE_UNSPECIFIED } func (x *CreateTunnelRequest) GetLoopbackPacketAction() PacketAction { - if x != nil { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateTunnelRequest) GetVxlanUdpSportMode() TunnelVxlanUdpSportMode { - if x != nil { - return x.VxlanUdpSportMode + if x != nil && x.VxlanUdpSportMode != nil { + return *x.VxlanUdpSportMode } return TunnelVxlanUdpSportMode_TUNNEL_VXLAN_UDP_SPORT_MODE_UNSPECIFIED } func (x *CreateTunnelRequest) GetVxlanUdpSport() uint32 { - if x != nil { - return x.VxlanUdpSport + if x != nil && x.VxlanUdpSport != nil { + return *x.VxlanUdpSport } return 0 } func (x *CreateTunnelRequest) GetVxlanUdpSportMask() uint32 { - if x != nil { - return x.VxlanUdpSportMask + if x != nil && x.VxlanUdpSportMask != nil { + return *x.VxlanUdpSportMask } return 0 } func (x *CreateTunnelRequest) GetSaIndex() uint32 { - if x != nil { - return x.SaIndex + if x != nil && x.SaIndex != nil { + return *x.SaIndex } return 0 } @@ -1020,23 +1020,20 @@ type SetTunnelAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTunnelAttributeRequest_EncapTtlMode - // *SetTunnelAttributeRequest_EncapTtlVal - // *SetTunnelAttributeRequest_EncapDscpMode - // *SetTunnelAttributeRequest_EncapDscpVal - // *SetTunnelAttributeRequest_EncapGreKey - // *SetTunnelAttributeRequest_DecapTtlMode - // *SetTunnelAttributeRequest_DecapDscpMode - // *SetTunnelAttributeRequest_LoopbackPacketAction - // *SetTunnelAttributeRequest_VxlanUdpSportMode - // *SetTunnelAttributeRequest_VxlanUdpSport - // *SetTunnelAttributeRequest_VxlanUdpSportMask - // *SetTunnelAttributeRequest_SaIndex - // *SetTunnelAttributeRequest_IpsecSaPortList - Attr isSetTunnelAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + EncapTtlMode *TunnelTtlMode `protobuf:"varint,2,opt,name=encap_ttl_mode,json=encapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode,oneof" json:"encap_ttl_mode,omitempty"` + EncapTtlVal *uint32 `protobuf:"varint,3,opt,name=encap_ttl_val,json=encapTtlVal,proto3,oneof" json:"encap_ttl_val,omitempty"` + EncapDscpMode *TunnelDscpMode `protobuf:"varint,4,opt,name=encap_dscp_mode,json=encapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode,oneof" json:"encap_dscp_mode,omitempty"` + EncapDscpVal *uint32 `protobuf:"varint,5,opt,name=encap_dscp_val,json=encapDscpVal,proto3,oneof" json:"encap_dscp_val,omitempty"` + EncapGreKey *uint32 `protobuf:"varint,6,opt,name=encap_gre_key,json=encapGreKey,proto3,oneof" json:"encap_gre_key,omitempty"` + DecapTtlMode *TunnelTtlMode `protobuf:"varint,7,opt,name=decap_ttl_mode,json=decapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode,oneof" json:"decap_ttl_mode,omitempty"` + DecapDscpMode *TunnelDscpMode `protobuf:"varint,8,opt,name=decap_dscp_mode,json=decapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode,oneof" json:"decap_dscp_mode,omitempty"` + LoopbackPacketAction *PacketAction `protobuf:"varint,9,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"loopback_packet_action,omitempty"` + VxlanUdpSportMode *TunnelVxlanUdpSportMode `protobuf:"varint,10,opt,name=vxlan_udp_sport_mode,json=vxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode,oneof" json:"vxlan_udp_sport_mode,omitempty"` + VxlanUdpSport *uint32 `protobuf:"varint,11,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3,oneof" json:"vxlan_udp_sport,omitempty"` + VxlanUdpSportMask *uint32 `protobuf:"varint,12,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3,oneof" json:"vxlan_udp_sport_mask,omitempty"` + SaIndex *uint32 `protobuf:"varint,13,opt,name=sa_index,json=saIndex,proto3,oneof" json:"sa_index,omitempty"` + IpsecSaPortList []uint64 `protobuf:"varint,14,rep,packed,name=ipsec_sa_port_list,json=ipsecSaPortList,proto3" json:"ipsec_sa_port_list,omitempty"` } func (x *SetTunnelAttributeRequest) Reset() { @@ -1078,186 +1075,97 @@ func (x *SetTunnelAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTunnelAttributeRequest) GetAttr() isSetTunnelAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTunnelAttributeRequest) GetEncapTtlMode() TunnelTtlMode { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_EncapTtlMode); ok { - return x.EncapTtlMode + if x != nil && x.EncapTtlMode != nil { + return *x.EncapTtlMode } return TunnelTtlMode_TUNNEL_TTL_MODE_UNSPECIFIED } func (x *SetTunnelAttributeRequest) GetEncapTtlVal() uint32 { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_EncapTtlVal); ok { - return x.EncapTtlVal + if x != nil && x.EncapTtlVal != nil { + return *x.EncapTtlVal } return 0 } func (x *SetTunnelAttributeRequest) GetEncapDscpMode() TunnelDscpMode { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_EncapDscpMode); ok { - return x.EncapDscpMode + if x != nil && x.EncapDscpMode != nil { + return *x.EncapDscpMode } return TunnelDscpMode_TUNNEL_DSCP_MODE_UNSPECIFIED } func (x *SetTunnelAttributeRequest) GetEncapDscpVal() uint32 { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_EncapDscpVal); ok { - return x.EncapDscpVal + if x != nil && x.EncapDscpVal != nil { + return *x.EncapDscpVal } return 0 } func (x *SetTunnelAttributeRequest) GetEncapGreKey() uint32 { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_EncapGreKey); ok { - return x.EncapGreKey + if x != nil && x.EncapGreKey != nil { + return *x.EncapGreKey } return 0 } func (x *SetTunnelAttributeRequest) GetDecapTtlMode() TunnelTtlMode { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_DecapTtlMode); ok { - return x.DecapTtlMode + if x != nil && x.DecapTtlMode != nil { + return *x.DecapTtlMode } return TunnelTtlMode_TUNNEL_TTL_MODE_UNSPECIFIED } func (x *SetTunnelAttributeRequest) GetDecapDscpMode() TunnelDscpMode { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_DecapDscpMode); ok { - return x.DecapDscpMode + if x != nil && x.DecapDscpMode != nil { + return *x.DecapDscpMode } return TunnelDscpMode_TUNNEL_DSCP_MODE_UNSPECIFIED } func (x *SetTunnelAttributeRequest) GetLoopbackPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_LoopbackPacketAction); ok { - return x.LoopbackPacketAction + if x != nil && x.LoopbackPacketAction != nil { + return *x.LoopbackPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetTunnelAttributeRequest) GetVxlanUdpSportMode() TunnelVxlanUdpSportMode { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_VxlanUdpSportMode); ok { - return x.VxlanUdpSportMode + if x != nil && x.VxlanUdpSportMode != nil { + return *x.VxlanUdpSportMode } return TunnelVxlanUdpSportMode_TUNNEL_VXLAN_UDP_SPORT_MODE_UNSPECIFIED } func (x *SetTunnelAttributeRequest) GetVxlanUdpSport() uint32 { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_VxlanUdpSport); ok { - return x.VxlanUdpSport + if x != nil && x.VxlanUdpSport != nil { + return *x.VxlanUdpSport } return 0 } func (x *SetTunnelAttributeRequest) GetVxlanUdpSportMask() uint32 { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_VxlanUdpSportMask); ok { - return x.VxlanUdpSportMask + if x != nil && x.VxlanUdpSportMask != nil { + return *x.VxlanUdpSportMask } return 0 } func (x *SetTunnelAttributeRequest) GetSaIndex() uint32 { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_SaIndex); ok { - return x.SaIndex + if x != nil && x.SaIndex != nil { + return *x.SaIndex } return 0 } -func (x *SetTunnelAttributeRequest) GetIpsecSaPortList() *Uint64List { - if x, ok := x.GetAttr().(*SetTunnelAttributeRequest_IpsecSaPortList); ok { +func (x *SetTunnelAttributeRequest) GetIpsecSaPortList() []uint64 { + if x != nil { return x.IpsecSaPortList } return nil } -type isSetTunnelAttributeRequest_Attr interface { - isSetTunnelAttributeRequest_Attr() -} - -type SetTunnelAttributeRequest_EncapTtlMode struct { - EncapTtlMode TunnelTtlMode `protobuf:"varint,2,opt,name=encap_ttl_mode,json=encapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode,oneof"` -} - -type SetTunnelAttributeRequest_EncapTtlVal struct { - EncapTtlVal uint32 `protobuf:"varint,3,opt,name=encap_ttl_val,json=encapTtlVal,proto3,oneof"` -} - -type SetTunnelAttributeRequest_EncapDscpMode struct { - EncapDscpMode TunnelDscpMode `protobuf:"varint,4,opt,name=encap_dscp_mode,json=encapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode,oneof"` -} - -type SetTunnelAttributeRequest_EncapDscpVal struct { - EncapDscpVal uint32 `protobuf:"varint,5,opt,name=encap_dscp_val,json=encapDscpVal,proto3,oneof"` -} - -type SetTunnelAttributeRequest_EncapGreKey struct { - EncapGreKey uint32 `protobuf:"varint,6,opt,name=encap_gre_key,json=encapGreKey,proto3,oneof"` -} - -type SetTunnelAttributeRequest_DecapTtlMode struct { - DecapTtlMode TunnelTtlMode `protobuf:"varint,7,opt,name=decap_ttl_mode,json=decapTtlMode,proto3,enum=lemming.dataplane.sai.TunnelTtlMode,oneof"` -} - -type SetTunnelAttributeRequest_DecapDscpMode struct { - DecapDscpMode TunnelDscpMode `protobuf:"varint,8,opt,name=decap_dscp_mode,json=decapDscpMode,proto3,enum=lemming.dataplane.sai.TunnelDscpMode,oneof"` -} - -type SetTunnelAttributeRequest_LoopbackPacketAction struct { - LoopbackPacketAction PacketAction `protobuf:"varint,9,opt,name=loopback_packet_action,json=loopbackPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetTunnelAttributeRequest_VxlanUdpSportMode struct { - VxlanUdpSportMode TunnelVxlanUdpSportMode `protobuf:"varint,10,opt,name=vxlan_udp_sport_mode,json=vxlanUdpSportMode,proto3,enum=lemming.dataplane.sai.TunnelVxlanUdpSportMode,oneof"` -} - -type SetTunnelAttributeRequest_VxlanUdpSport struct { - VxlanUdpSport uint32 `protobuf:"varint,11,opt,name=vxlan_udp_sport,json=vxlanUdpSport,proto3,oneof"` -} - -type SetTunnelAttributeRequest_VxlanUdpSportMask struct { - VxlanUdpSportMask uint32 `protobuf:"varint,12,opt,name=vxlan_udp_sport_mask,json=vxlanUdpSportMask,proto3,oneof"` -} - -type SetTunnelAttributeRequest_SaIndex struct { - SaIndex uint32 `protobuf:"varint,13,opt,name=sa_index,json=saIndex,proto3,oneof"` -} - -type SetTunnelAttributeRequest_IpsecSaPortList struct { - IpsecSaPortList *Uint64List `protobuf:"bytes,14,opt,name=ipsec_sa_port_list,json=ipsecSaPortList,proto3,oneof"` -} - -func (*SetTunnelAttributeRequest_EncapTtlMode) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_EncapTtlVal) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_EncapDscpMode) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_EncapDscpVal) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_EncapGreKey) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_DecapTtlMode) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_DecapDscpMode) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_LoopbackPacketAction) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_VxlanUdpSportMode) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_VxlanUdpSport) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_VxlanUdpSportMask) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_SaIndex) isSetTunnelAttributeRequest_Attr() {} - -func (*SetTunnelAttributeRequest_IpsecSaPortList) isSetTunnelAttributeRequest_Attr() {} - type SetTunnelAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1356,7 +1264,7 @@ type GetTunnelAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TunnelAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TunnelAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTunnelAttributeResponse) Reset() { @@ -1391,7 +1299,7 @@ func (*GetTunnelAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tunnel_proto_rawDescGZIP(), []int{13} } -func (x *GetTunnelAttributeResponse) GetAttr() []*TunnelAttribute { +func (x *GetTunnelAttributeResponse) GetAttr() *TunnelAttribute { if x != nil { return x.Attr } @@ -1403,16 +1311,16 @@ type CreateTunnelTermTableEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - VrId uint64 `protobuf:"varint,2,opt,name=vr_id,json=vrId,proto3" json:"vr_id,omitempty"` - Type TunnelTermTableEntryType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelTermTableEntryType" json:"type,omitempty"` - DstIp []byte `protobuf:"bytes,4,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - DstIpMask []byte `protobuf:"bytes,5,opt,name=dst_ip_mask,json=dstIpMask,proto3" json:"dst_ip_mask,omitempty"` - SrcIp []byte `protobuf:"bytes,6,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` - SrcIpMask []byte `protobuf:"bytes,7,opt,name=src_ip_mask,json=srcIpMask,proto3" json:"src_ip_mask,omitempty"` - TunnelType TunnelType `protobuf:"varint,8,opt,name=tunnel_type,json=tunnelType,proto3,enum=lemming.dataplane.sai.TunnelType" json:"tunnel_type,omitempty"` - ActionTunnelId uint64 `protobuf:"varint,9,opt,name=action_tunnel_id,json=actionTunnelId,proto3" json:"action_tunnel_id,omitempty"` - IpsecVerified bool `protobuf:"varint,10,opt,name=ipsec_verified,json=ipsecVerified,proto3" json:"ipsec_verified,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + VrId *uint64 `protobuf:"varint,2,opt,name=vr_id,json=vrId,proto3,oneof" json:"vr_id,omitempty"` + Type *TunnelTermTableEntryType `protobuf:"varint,3,opt,name=type,proto3,enum=lemming.dataplane.sai.TunnelTermTableEntryType,oneof" json:"type,omitempty"` + DstIp []byte `protobuf:"bytes,4,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + DstIpMask []byte `protobuf:"bytes,5,opt,name=dst_ip_mask,json=dstIpMask,proto3,oneof" json:"dst_ip_mask,omitempty"` + SrcIp []byte `protobuf:"bytes,6,opt,name=src_ip,json=srcIp,proto3,oneof" json:"src_ip,omitempty"` + SrcIpMask []byte `protobuf:"bytes,7,opt,name=src_ip_mask,json=srcIpMask,proto3,oneof" json:"src_ip_mask,omitempty"` + TunnelType *TunnelType `protobuf:"varint,8,opt,name=tunnel_type,json=tunnelType,proto3,enum=lemming.dataplane.sai.TunnelType,oneof" json:"tunnel_type,omitempty"` + ActionTunnelId *uint64 `protobuf:"varint,9,opt,name=action_tunnel_id,json=actionTunnelId,proto3,oneof" json:"action_tunnel_id,omitempty"` + IpsecVerified *bool `protobuf:"varint,10,opt,name=ipsec_verified,json=ipsecVerified,proto3,oneof" json:"ipsec_verified,omitempty"` } func (x *CreateTunnelTermTableEntryRequest) Reset() { @@ -1455,15 +1363,15 @@ func (x *CreateTunnelTermTableEntryRequest) GetSwitch() uint64 { } func (x *CreateTunnelTermTableEntryRequest) GetVrId() uint64 { - if x != nil { - return x.VrId + if x != nil && x.VrId != nil { + return *x.VrId } return 0 } func (x *CreateTunnelTermTableEntryRequest) GetType() TunnelTermTableEntryType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return TunnelTermTableEntryType_TUNNEL_TERM_TABLE_ENTRY_TYPE_UNSPECIFIED } @@ -1497,22 +1405,22 @@ func (x *CreateTunnelTermTableEntryRequest) GetSrcIpMask() []byte { } func (x *CreateTunnelTermTableEntryRequest) GetTunnelType() TunnelType { - if x != nil { - return x.TunnelType + if x != nil && x.TunnelType != nil { + return *x.TunnelType } return TunnelType_TUNNEL_TYPE_UNSPECIFIED } func (x *CreateTunnelTermTableEntryRequest) GetActionTunnelId() uint64 { - if x != nil { - return x.ActionTunnelId + if x != nil && x.ActionTunnelId != nil { + return *x.ActionTunnelId } return 0 } func (x *CreateTunnelTermTableEntryRequest) GetIpsecVerified() bool { - if x != nil { - return x.IpsecVerified + if x != nil && x.IpsecVerified != nil { + return *x.IpsecVerified } return false } @@ -1654,11 +1562,8 @@ type SetTunnelTermTableEntryAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetTunnelTermTableEntryAttributeRequest_IpsecVerified - Attr isSetTunnelTermTableEntryAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + IpsecVerified *bool `protobuf:"varint,2,opt,name=ipsec_verified,json=ipsecVerified,proto3,oneof" json:"ipsec_verified,omitempty"` } func (x *SetTunnelTermTableEntryAttributeRequest) Reset() { @@ -1700,31 +1605,13 @@ func (x *SetTunnelTermTableEntryAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetTunnelTermTableEntryAttributeRequest) GetAttr() isSetTunnelTermTableEntryAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetTunnelTermTableEntryAttributeRequest) GetIpsecVerified() bool { - if x, ok := x.GetAttr().(*SetTunnelTermTableEntryAttributeRequest_IpsecVerified); ok { - return x.IpsecVerified + if x != nil && x.IpsecVerified != nil { + return *x.IpsecVerified } return false } -type isSetTunnelTermTableEntryAttributeRequest_Attr interface { - isSetTunnelTermTableEntryAttributeRequest_Attr() -} - -type SetTunnelTermTableEntryAttributeRequest_IpsecVerified struct { - IpsecVerified bool `protobuf:"varint,2,opt,name=ipsec_verified,json=ipsecVerified,proto3,oneof"` -} - -func (*SetTunnelTermTableEntryAttributeRequest_IpsecVerified) isSetTunnelTermTableEntryAttributeRequest_Attr() { -} - type SetTunnelTermTableEntryAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1823,7 +1710,7 @@ type GetTunnelTermTableEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TunnelTermTableEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TunnelTermTableEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTunnelTermTableEntryAttributeResponse) Reset() { @@ -1858,7 +1745,7 @@ func (*GetTunnelTermTableEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tunnel_proto_rawDescGZIP(), []int{21} } -func (x *GetTunnelTermTableEntryAttributeResponse) GetAttr() []*TunnelTermTableEntryAttribute { +func (x *GetTunnelTermTableEntryAttributeResponse) GetAttr() *TunnelTermTableEntryAttribute { if x != nil { return x.Attr } @@ -1870,23 +1757,23 @@ type CreateTunnelMapEntryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - TunnelMapType TunnelMapType `protobuf:"varint,2,opt,name=tunnel_map_type,json=tunnelMapType,proto3,enum=lemming.dataplane.sai.TunnelMapType" json:"tunnel_map_type,omitempty"` - TunnelMap uint64 `protobuf:"varint,3,opt,name=tunnel_map,json=tunnelMap,proto3" json:"tunnel_map,omitempty"` - OecnKey uint32 `protobuf:"varint,4,opt,name=oecn_key,json=oecnKey,proto3" json:"oecn_key,omitempty"` - OecnValue uint32 `protobuf:"varint,5,opt,name=oecn_value,json=oecnValue,proto3" json:"oecn_value,omitempty"` - UecnKey uint32 `protobuf:"varint,6,opt,name=uecn_key,json=uecnKey,proto3" json:"uecn_key,omitempty"` - UecnValue uint32 `protobuf:"varint,7,opt,name=uecn_value,json=uecnValue,proto3" json:"uecn_value,omitempty"` - VlanIdKey uint32 `protobuf:"varint,8,opt,name=vlan_id_key,json=vlanIdKey,proto3" json:"vlan_id_key,omitempty"` - VlanIdValue uint32 `protobuf:"varint,9,opt,name=vlan_id_value,json=vlanIdValue,proto3" json:"vlan_id_value,omitempty"` - VniIdKey uint32 `protobuf:"varint,10,opt,name=vni_id_key,json=vniIdKey,proto3" json:"vni_id_key,omitempty"` - VniIdValue uint32 `protobuf:"varint,11,opt,name=vni_id_value,json=vniIdValue,proto3" json:"vni_id_value,omitempty"` - BridgeIdKey uint64 `protobuf:"varint,12,opt,name=bridge_id_key,json=bridgeIdKey,proto3" json:"bridge_id_key,omitempty"` - BridgeIdValue uint64 `protobuf:"varint,13,opt,name=bridge_id_value,json=bridgeIdValue,proto3" json:"bridge_id_value,omitempty"` - VirtualRouterIdKey uint64 `protobuf:"varint,14,opt,name=virtual_router_id_key,json=virtualRouterIdKey,proto3" json:"virtual_router_id_key,omitempty"` - VirtualRouterIdValue uint64 `protobuf:"varint,15,opt,name=virtual_router_id_value,json=virtualRouterIdValue,proto3" json:"virtual_router_id_value,omitempty"` - VsidIdKey uint32 `protobuf:"varint,16,opt,name=vsid_id_key,json=vsidIdKey,proto3" json:"vsid_id_key,omitempty"` - VsidIdValue uint32 `protobuf:"varint,17,opt,name=vsid_id_value,json=vsidIdValue,proto3" json:"vsid_id_value,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + TunnelMapType *TunnelMapType `protobuf:"varint,2,opt,name=tunnel_map_type,json=tunnelMapType,proto3,enum=lemming.dataplane.sai.TunnelMapType,oneof" json:"tunnel_map_type,omitempty"` + TunnelMap *uint64 `protobuf:"varint,3,opt,name=tunnel_map,json=tunnelMap,proto3,oneof" json:"tunnel_map,omitempty"` + OecnKey *uint32 `protobuf:"varint,4,opt,name=oecn_key,json=oecnKey,proto3,oneof" json:"oecn_key,omitempty"` + OecnValue *uint32 `protobuf:"varint,5,opt,name=oecn_value,json=oecnValue,proto3,oneof" json:"oecn_value,omitempty"` + UecnKey *uint32 `protobuf:"varint,6,opt,name=uecn_key,json=uecnKey,proto3,oneof" json:"uecn_key,omitempty"` + UecnValue *uint32 `protobuf:"varint,7,opt,name=uecn_value,json=uecnValue,proto3,oneof" json:"uecn_value,omitempty"` + VlanIdKey *uint32 `protobuf:"varint,8,opt,name=vlan_id_key,json=vlanIdKey,proto3,oneof" json:"vlan_id_key,omitempty"` + VlanIdValue *uint32 `protobuf:"varint,9,opt,name=vlan_id_value,json=vlanIdValue,proto3,oneof" json:"vlan_id_value,omitempty"` + VniIdKey *uint32 `protobuf:"varint,10,opt,name=vni_id_key,json=vniIdKey,proto3,oneof" json:"vni_id_key,omitempty"` + VniIdValue *uint32 `protobuf:"varint,11,opt,name=vni_id_value,json=vniIdValue,proto3,oneof" json:"vni_id_value,omitempty"` + BridgeIdKey *uint64 `protobuf:"varint,12,opt,name=bridge_id_key,json=bridgeIdKey,proto3,oneof" json:"bridge_id_key,omitempty"` + BridgeIdValue *uint64 `protobuf:"varint,13,opt,name=bridge_id_value,json=bridgeIdValue,proto3,oneof" json:"bridge_id_value,omitempty"` + VirtualRouterIdKey *uint64 `protobuf:"varint,14,opt,name=virtual_router_id_key,json=virtualRouterIdKey,proto3,oneof" json:"virtual_router_id_key,omitempty"` + VirtualRouterIdValue *uint64 `protobuf:"varint,15,opt,name=virtual_router_id_value,json=virtualRouterIdValue,proto3,oneof" json:"virtual_router_id_value,omitempty"` + VsidIdKey *uint32 `protobuf:"varint,16,opt,name=vsid_id_key,json=vsidIdKey,proto3,oneof" json:"vsid_id_key,omitempty"` + VsidIdValue *uint32 `protobuf:"varint,17,opt,name=vsid_id_value,json=vsidIdValue,proto3,oneof" json:"vsid_id_value,omitempty"` } func (x *CreateTunnelMapEntryRequest) Reset() { @@ -1929,113 +1816,113 @@ func (x *CreateTunnelMapEntryRequest) GetSwitch() uint64 { } func (x *CreateTunnelMapEntryRequest) GetTunnelMapType() TunnelMapType { - if x != nil { - return x.TunnelMapType + if x != nil && x.TunnelMapType != nil { + return *x.TunnelMapType } return TunnelMapType_TUNNEL_MAP_TYPE_UNSPECIFIED } func (x *CreateTunnelMapEntryRequest) GetTunnelMap() uint64 { - if x != nil { - return x.TunnelMap + if x != nil && x.TunnelMap != nil { + return *x.TunnelMap } return 0 } func (x *CreateTunnelMapEntryRequest) GetOecnKey() uint32 { - if x != nil { - return x.OecnKey + if x != nil && x.OecnKey != nil { + return *x.OecnKey } return 0 } func (x *CreateTunnelMapEntryRequest) GetOecnValue() uint32 { - if x != nil { - return x.OecnValue + if x != nil && x.OecnValue != nil { + return *x.OecnValue } return 0 } func (x *CreateTunnelMapEntryRequest) GetUecnKey() uint32 { - if x != nil { - return x.UecnKey + if x != nil && x.UecnKey != nil { + return *x.UecnKey } return 0 } func (x *CreateTunnelMapEntryRequest) GetUecnValue() uint32 { - if x != nil { - return x.UecnValue + if x != nil && x.UecnValue != nil { + return *x.UecnValue } return 0 } func (x *CreateTunnelMapEntryRequest) GetVlanIdKey() uint32 { - if x != nil { - return x.VlanIdKey + if x != nil && x.VlanIdKey != nil { + return *x.VlanIdKey } return 0 } func (x *CreateTunnelMapEntryRequest) GetVlanIdValue() uint32 { - if x != nil { - return x.VlanIdValue + if x != nil && x.VlanIdValue != nil { + return *x.VlanIdValue } return 0 } func (x *CreateTunnelMapEntryRequest) GetVniIdKey() uint32 { - if x != nil { - return x.VniIdKey + if x != nil && x.VniIdKey != nil { + return *x.VniIdKey } return 0 } func (x *CreateTunnelMapEntryRequest) GetVniIdValue() uint32 { - if x != nil { - return x.VniIdValue + if x != nil && x.VniIdValue != nil { + return *x.VniIdValue } return 0 } func (x *CreateTunnelMapEntryRequest) GetBridgeIdKey() uint64 { - if x != nil { - return x.BridgeIdKey + if x != nil && x.BridgeIdKey != nil { + return *x.BridgeIdKey } return 0 } func (x *CreateTunnelMapEntryRequest) GetBridgeIdValue() uint64 { - if x != nil { - return x.BridgeIdValue + if x != nil && x.BridgeIdValue != nil { + return *x.BridgeIdValue } return 0 } func (x *CreateTunnelMapEntryRequest) GetVirtualRouterIdKey() uint64 { - if x != nil { - return x.VirtualRouterIdKey + if x != nil && x.VirtualRouterIdKey != nil { + return *x.VirtualRouterIdKey } return 0 } func (x *CreateTunnelMapEntryRequest) GetVirtualRouterIdValue() uint64 { - if x != nil { - return x.VirtualRouterIdValue + if x != nil && x.VirtualRouterIdValue != nil { + return *x.VirtualRouterIdValue } return 0 } func (x *CreateTunnelMapEntryRequest) GetVsidIdKey() uint32 { - if x != nil { - return x.VsidIdKey + if x != nil && x.VsidIdKey != nil { + return *x.VsidIdKey } return 0 } func (x *CreateTunnelMapEntryRequest) GetVsidIdValue() uint32 { - if x != nil { - return x.VsidIdValue + if x != nil && x.VsidIdValue != nil { + return *x.VsidIdValue } return 0 } @@ -2232,7 +2119,7 @@ type GetTunnelMapEntryAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*TunnelMapEntryAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *TunnelMapEntryAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetTunnelMapEntryAttributeResponse) Reset() { @@ -2267,7 +2154,7 @@ func (*GetTunnelMapEntryAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_tunnel_proto_rawDescGZIP(), []int{27} } -func (x *GetTunnelMapEntryAttributeResponse) GetAttr() []*TunnelMapEntryAttribute { +func (x *GetTunnelMapEntryAttributeResponse) GetAttr() *TunnelMapEntryAttribute { if x != nil { return x.Attr } @@ -2283,223 +2170,299 @@ var file_dataplane_standalone_proto_tunnel_proto_rawDesc = []byte{ 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7e, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x38, 0x0a, 0x04, 0x74, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, - 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x19, - 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, + 0x69, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, + 0x1c, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x41, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x61, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, + 0x74, 0x72, 0x22, 0xf4, 0x0f, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x12, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x79, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x11, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, + 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, + 0x02, 0x52, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x4d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x05, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x53, 0x72, 0x63, 0x49, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, + 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x55, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, + 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x56, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5e, - 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xe4, - 0x0a, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x35, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, + 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x0d, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, + 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, + 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x38, 0x0a, 0x13, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x47, 0x72, 0x65, 0x4b, + 0x65, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x6e, + 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, + 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0e, 0x65, 0x6e, 0x63, + 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0e, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x12, 0x5a, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x0c, 0x64, 0x65, 0x63, + 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, + 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, + 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, + 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, + 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, + 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0e, 0x52, 0x0c, 0x64, + 0x65, 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x58, + 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x12, 0x48, 0x0f, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, + 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x14, 0x48, 0x10, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6a, + 0x0a, 0x14, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x15, 0x48, 0x11, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, + 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x12, 0x52, 0x0d, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x14, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x17, 0x48, 0x13, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, + 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x73, 0x61, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x18, 0x48, 0x14, 0x52, 0x07, 0x73, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x12, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x19, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x19, 0x52, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, + 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x63, 0x61, + 0x70, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6e, 0x63, + 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, + 0x5f, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, + 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x74, + 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x65, 0x63, 0x61, + 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, + 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, + 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x09, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6f, 0x69, 0x64, 0x12, 0x55, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, + 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, + 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, + 0x70, 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x6e, + 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, + 0x48, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, + 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0a, 0x48, 0x03, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x56, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, + 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0c, 0x48, 0x04, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x47, 0x72, 0x65, 0x4b, 0x65, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, + 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x61, - 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x11, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x10, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x12, 0x42, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x05, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, + 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x64, + 0x65, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, - 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x73, - 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x53, 0x72, 0x63, 0x49, 0x70, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, - 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x65, - 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4a, 0x0a, 0x0e, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x54, 0x74, - 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, - 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6e, - 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x4d, 0x0a, 0x0f, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, - 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, - 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x12, 0x2d, - 0x0a, 0x13, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x47, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x22, 0x0a, - 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x47, 0x72, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x12, 0x48, 0x06, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, + 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, + 0x48, 0x07, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x14, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, - 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, - 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, - 0x63, 0x61, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, - 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x61, - 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, - 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x63, - 0x61, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x64, 0x65, 0x63, - 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, + 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, + 0x08, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x09, 0x52, 0x0d, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, + 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x14, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x0a, + 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, + 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, 0x0b, + 0x52, 0x07, 0x73, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, + 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, 0x52, 0x0f, + 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, + 0x5f, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, + 0x73, 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6e, 0x63, + 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, + 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, - 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, - 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x6c, - 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x14, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, - 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, - 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x14, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, - 0x08, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x73, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2b, 0x0a, 0x12, 0x69, 0x70, 0x73, 0x65, - 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x19, - 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x50, 0x6f, 0x72, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x27, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xf3, 0x06, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, - 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, - 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x54, 0x74, - 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x4f, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, - 0x63, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, - 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x64, - 0x73, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0c, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x12, 0x24, 0x0a, - 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x47, 0x72, 0x65, - 0x4b, 0x65, 0x79, 0x12, 0x4c, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x74, 0x6c, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6c, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, - 0x65, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x70, 0x54, 0x74, 0x6c, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x4f, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x61, 0x70, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x61, 0x70, 0x44, 0x73, 0x63, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x5b, 0x0a, 0x16, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x70, 0x62, - 0x61, 0x63, 0x6b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x61, 0x0a, 0x14, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, - 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x14, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x76, 0x78, - 0x6c, 0x61, 0x6e, 0x55, 0x64, 0x70, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x12, - 0x1b, 0x0a, 0x08, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x50, 0x0a, 0x12, - 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x73, 0x61, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x69, - 0x70, 0x73, 0x65, 0x63, 0x53, 0x61, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x06, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xfc, 0x04, 0x0a, 0x21, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, + 0x76, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, + 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4d, 0x61, 0x73, + 0x6b, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x05, 0x73, 0x72, + 0x63, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x09, 0x73, 0x72, 0x63, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, + 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x98, 0x03, - 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, - 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x13, 0x0a, 0x05, 0x76, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x72, 0x49, 0x64, - 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, - 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x64, 0x73, 0x74, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x15, 0x0a, 0x06, - 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x72, - 0x63, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x72, 0x63, 0x49, 0x70, 0x4d, - 0x61, 0x73, 0x6b, 0x12, 0x42, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x36, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, + 0x06, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, + 0x48, 0x07, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0e, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x72, 0x5f, 0x69, + 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x36, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, @@ -2508,74 +2471,104 @@ var file_dataplane_standalone_proto_tunnel_proto_rawDesc = []byte{ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x0a, - 0x27, 0x53, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x01, + 0x0a, 0x27, 0x53, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x0e, 0x69, + 0x70, 0x73, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x70, 0x73, + 0x65, 0x63, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x22, 0x2a, 0x0a, 0x28, 0x53, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, + 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, + 0x27, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0e, 0x69, 0x70, - 0x73, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x70, 0x73, 0x65, 0x63, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x2a, 0x0a, 0x28, 0x53, - 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x48, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x94, 0x05, 0x0a, 0x1b, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x4c, 0x0a, 0x0f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x0d, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x19, - 0x0a, 0x08, 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x6f, 0x65, 0x63, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x65, 0x63, - 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6f, - 0x65, 0x63, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x65, 0x63, 0x6e, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x75, 0x65, 0x63, 0x6e, - 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x65, 0x63, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x75, 0x65, 0x63, 0x6e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4b, - 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x6c, 0x61, 0x6e, 0x49, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x76, 0x6e, 0x69, 0x5f, 0x69, 0x64, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x76, 0x6e, 0x69, 0x49, - 0x64, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x6e, 0x69, 0x5f, 0x69, 0x64, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x6e, 0x69, 0x49, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x12, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x49, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x17, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0b, - 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x76, 0x73, 0x69, 0x64, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0d, - 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x73, 0x69, 0x64, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, + 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x65, 0x72, 0x6d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xdf, + 0x08, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x57, 0x0a, 0x0f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x09, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x6f, 0x65, 0x63, + 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x07, 0x6f, 0x65, 0x63, 0x6e, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x09, 0x6f, 0x65, 0x63, + 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x75, 0x65, 0x63, + 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x05, 0x48, 0x04, 0x52, 0x07, 0x75, 0x65, 0x63, 0x6e, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0a, 0x75, 0x65, 0x63, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x09, 0x75, 0x65, 0x63, + 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x09, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4b, 0x65, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x08, 0x48, 0x07, 0x52, 0x0b, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0a, 0x76, 0x6e, 0x69, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, + 0x08, 0x76, 0x6e, 0x69, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, + 0x76, 0x6e, 0x69, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0a, 0x76, 0x6e, 0x69, 0x49, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x49, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x76, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, + 0x48, 0x0c, 0x52, 0x12, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x76, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, + 0x48, 0x0d, 0x52, 0x14, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0b, 0x76, + 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x09, 0x76, 0x73, 0x69, 0x64, 0x49, 0x64, + 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, + 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x0b, 0x76, 0x73, 0x69, 0x64, 0x49, 0x64, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x65, 0x63, + 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x65, 0x63, 0x6e, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x65, 0x63, 0x6e, 0x5f, 0x6b, 0x65, + 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x75, 0x65, 0x63, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x6e, 0x69, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x76, 0x6e, 0x69, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, + 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x76, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6b, + 0x65, 0x79, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x76, 0x73, 0x69, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x30, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, @@ -2595,7 +2588,7 @@ var file_dataplane_standalone_proto_tunnel_proto_rawDesc = []byte{ 0x70, 0x65, 0x22, 0x68, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x6a, 0x0a, 0x0d, @@ -2919,11 +2912,10 @@ var file_dataplane_standalone_proto_tunnel_proto_goTypes = []interface{}{ (TunnelDecapEcnMode)(0), // 39: lemming.dataplane.sai.TunnelDecapEcnMode (PacketAction)(0), // 40: lemming.dataplane.sai.PacketAction (TunnelVxlanUdpSportMode)(0), // 41: lemming.dataplane.sai.TunnelVxlanUdpSportMode - (*Uint64List)(nil), // 42: lemming.dataplane.sai.Uint64List - (*TunnelAttribute)(nil), // 43: lemming.dataplane.sai.TunnelAttribute - (TunnelTermTableEntryType)(0), // 44: lemming.dataplane.sai.TunnelTermTableEntryType - (*TunnelTermTableEntryAttribute)(nil), // 45: lemming.dataplane.sai.TunnelTermTableEntryAttribute - (*TunnelMapEntryAttribute)(nil), // 46: lemming.dataplane.sai.TunnelMapEntryAttribute + (*TunnelAttribute)(nil), // 42: lemming.dataplane.sai.TunnelAttribute + (TunnelTermTableEntryType)(0), // 43: lemming.dataplane.sai.TunnelTermTableEntryType + (*TunnelTermTableEntryAttribute)(nil), // 44: lemming.dataplane.sai.TunnelTermTableEntryAttribute + (*TunnelMapEntryAttribute)(nil), // 45: lemming.dataplane.sai.TunnelMapEntryAttribute } var file_dataplane_standalone_proto_tunnel_proto_depIdxs = []int32{ 32, // 0: lemming.dataplane.sai.CreateTunnelMapRequest.type:type_name -> lemming.dataplane.sai.TunnelMapType @@ -2945,49 +2937,48 @@ var file_dataplane_standalone_proto_tunnel_proto_depIdxs = []int32{ 37, // 16: lemming.dataplane.sai.SetTunnelAttributeRequest.decap_dscp_mode:type_name -> lemming.dataplane.sai.TunnelDscpMode 40, // 17: lemming.dataplane.sai.SetTunnelAttributeRequest.loopback_packet_action:type_name -> lemming.dataplane.sai.PacketAction 41, // 18: lemming.dataplane.sai.SetTunnelAttributeRequest.vxlan_udp_sport_mode:type_name -> lemming.dataplane.sai.TunnelVxlanUdpSportMode - 42, // 19: lemming.dataplane.sai.SetTunnelAttributeRequest.ipsec_sa_port_list:type_name -> lemming.dataplane.sai.Uint64List - 1, // 20: lemming.dataplane.sai.GetTunnelAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TunnelAttr - 43, // 21: lemming.dataplane.sai.GetTunnelAttributeResponse.attr:type_name -> lemming.dataplane.sai.TunnelAttribute - 44, // 22: lemming.dataplane.sai.CreateTunnelTermTableEntryRequest.type:type_name -> lemming.dataplane.sai.TunnelTermTableEntryType - 34, // 23: lemming.dataplane.sai.CreateTunnelTermTableEntryRequest.tunnel_type:type_name -> lemming.dataplane.sai.TunnelType - 2, // 24: lemming.dataplane.sai.GetTunnelTermTableEntryAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TunnelTermTableEntryAttr - 45, // 25: lemming.dataplane.sai.GetTunnelTermTableEntryAttributeResponse.attr:type_name -> lemming.dataplane.sai.TunnelTermTableEntryAttribute - 32, // 26: lemming.dataplane.sai.CreateTunnelMapEntryRequest.tunnel_map_type:type_name -> lemming.dataplane.sai.TunnelMapType - 3, // 27: lemming.dataplane.sai.GetTunnelMapEntryAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TunnelMapEntryAttr - 46, // 28: lemming.dataplane.sai.GetTunnelMapEntryAttributeResponse.attr:type_name -> lemming.dataplane.sai.TunnelMapEntryAttribute - 4, // 29: lemming.dataplane.sai.Tunnel.CreateTunnelMap:input_type -> lemming.dataplane.sai.CreateTunnelMapRequest - 6, // 30: lemming.dataplane.sai.Tunnel.RemoveTunnelMap:input_type -> lemming.dataplane.sai.RemoveTunnelMapRequest - 8, // 31: lemming.dataplane.sai.Tunnel.GetTunnelMapAttribute:input_type -> lemming.dataplane.sai.GetTunnelMapAttributeRequest - 10, // 32: lemming.dataplane.sai.Tunnel.CreateTunnel:input_type -> lemming.dataplane.sai.CreateTunnelRequest - 12, // 33: lemming.dataplane.sai.Tunnel.RemoveTunnel:input_type -> lemming.dataplane.sai.RemoveTunnelRequest - 14, // 34: lemming.dataplane.sai.Tunnel.SetTunnelAttribute:input_type -> lemming.dataplane.sai.SetTunnelAttributeRequest - 16, // 35: lemming.dataplane.sai.Tunnel.GetTunnelAttribute:input_type -> lemming.dataplane.sai.GetTunnelAttributeRequest - 18, // 36: lemming.dataplane.sai.Tunnel.CreateTunnelTermTableEntry:input_type -> lemming.dataplane.sai.CreateTunnelTermTableEntryRequest - 20, // 37: lemming.dataplane.sai.Tunnel.RemoveTunnelTermTableEntry:input_type -> lemming.dataplane.sai.RemoveTunnelTermTableEntryRequest - 22, // 38: lemming.dataplane.sai.Tunnel.SetTunnelTermTableEntryAttribute:input_type -> lemming.dataplane.sai.SetTunnelTermTableEntryAttributeRequest - 24, // 39: lemming.dataplane.sai.Tunnel.GetTunnelTermTableEntryAttribute:input_type -> lemming.dataplane.sai.GetTunnelTermTableEntryAttributeRequest - 26, // 40: lemming.dataplane.sai.Tunnel.CreateTunnelMapEntry:input_type -> lemming.dataplane.sai.CreateTunnelMapEntryRequest - 28, // 41: lemming.dataplane.sai.Tunnel.RemoveTunnelMapEntry:input_type -> lemming.dataplane.sai.RemoveTunnelMapEntryRequest - 30, // 42: lemming.dataplane.sai.Tunnel.GetTunnelMapEntryAttribute:input_type -> lemming.dataplane.sai.GetTunnelMapEntryAttributeRequest - 5, // 43: lemming.dataplane.sai.Tunnel.CreateTunnelMap:output_type -> lemming.dataplane.sai.CreateTunnelMapResponse - 7, // 44: lemming.dataplane.sai.Tunnel.RemoveTunnelMap:output_type -> lemming.dataplane.sai.RemoveTunnelMapResponse - 9, // 45: lemming.dataplane.sai.Tunnel.GetTunnelMapAttribute:output_type -> lemming.dataplane.sai.GetTunnelMapAttributeResponse - 11, // 46: lemming.dataplane.sai.Tunnel.CreateTunnel:output_type -> lemming.dataplane.sai.CreateTunnelResponse - 13, // 47: lemming.dataplane.sai.Tunnel.RemoveTunnel:output_type -> lemming.dataplane.sai.RemoveTunnelResponse - 15, // 48: lemming.dataplane.sai.Tunnel.SetTunnelAttribute:output_type -> lemming.dataplane.sai.SetTunnelAttributeResponse - 17, // 49: lemming.dataplane.sai.Tunnel.GetTunnelAttribute:output_type -> lemming.dataplane.sai.GetTunnelAttributeResponse - 19, // 50: lemming.dataplane.sai.Tunnel.CreateTunnelTermTableEntry:output_type -> lemming.dataplane.sai.CreateTunnelTermTableEntryResponse - 21, // 51: lemming.dataplane.sai.Tunnel.RemoveTunnelTermTableEntry:output_type -> lemming.dataplane.sai.RemoveTunnelTermTableEntryResponse - 23, // 52: lemming.dataplane.sai.Tunnel.SetTunnelTermTableEntryAttribute:output_type -> lemming.dataplane.sai.SetTunnelTermTableEntryAttributeResponse - 25, // 53: lemming.dataplane.sai.Tunnel.GetTunnelTermTableEntryAttribute:output_type -> lemming.dataplane.sai.GetTunnelTermTableEntryAttributeResponse - 27, // 54: lemming.dataplane.sai.Tunnel.CreateTunnelMapEntry:output_type -> lemming.dataplane.sai.CreateTunnelMapEntryResponse - 29, // 55: lemming.dataplane.sai.Tunnel.RemoveTunnelMapEntry:output_type -> lemming.dataplane.sai.RemoveTunnelMapEntryResponse - 31, // 56: lemming.dataplane.sai.Tunnel.GetTunnelMapEntryAttribute:output_type -> lemming.dataplane.sai.GetTunnelMapEntryAttributeResponse - 43, // [43:57] is the sub-list for method output_type - 29, // [29:43] is the sub-list for method input_type - 29, // [29:29] is the sub-list for extension type_name - 29, // [29:29] is the sub-list for extension extendee - 0, // [0:29] is the sub-list for field type_name + 1, // 19: lemming.dataplane.sai.GetTunnelAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TunnelAttr + 42, // 20: lemming.dataplane.sai.GetTunnelAttributeResponse.attr:type_name -> lemming.dataplane.sai.TunnelAttribute + 43, // 21: lemming.dataplane.sai.CreateTunnelTermTableEntryRequest.type:type_name -> lemming.dataplane.sai.TunnelTermTableEntryType + 34, // 22: lemming.dataplane.sai.CreateTunnelTermTableEntryRequest.tunnel_type:type_name -> lemming.dataplane.sai.TunnelType + 2, // 23: lemming.dataplane.sai.GetTunnelTermTableEntryAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TunnelTermTableEntryAttr + 44, // 24: lemming.dataplane.sai.GetTunnelTermTableEntryAttributeResponse.attr:type_name -> lemming.dataplane.sai.TunnelTermTableEntryAttribute + 32, // 25: lemming.dataplane.sai.CreateTunnelMapEntryRequest.tunnel_map_type:type_name -> lemming.dataplane.sai.TunnelMapType + 3, // 26: lemming.dataplane.sai.GetTunnelMapEntryAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.TunnelMapEntryAttr + 45, // 27: lemming.dataplane.sai.GetTunnelMapEntryAttributeResponse.attr:type_name -> lemming.dataplane.sai.TunnelMapEntryAttribute + 4, // 28: lemming.dataplane.sai.Tunnel.CreateTunnelMap:input_type -> lemming.dataplane.sai.CreateTunnelMapRequest + 6, // 29: lemming.dataplane.sai.Tunnel.RemoveTunnelMap:input_type -> lemming.dataplane.sai.RemoveTunnelMapRequest + 8, // 30: lemming.dataplane.sai.Tunnel.GetTunnelMapAttribute:input_type -> lemming.dataplane.sai.GetTunnelMapAttributeRequest + 10, // 31: lemming.dataplane.sai.Tunnel.CreateTunnel:input_type -> lemming.dataplane.sai.CreateTunnelRequest + 12, // 32: lemming.dataplane.sai.Tunnel.RemoveTunnel:input_type -> lemming.dataplane.sai.RemoveTunnelRequest + 14, // 33: lemming.dataplane.sai.Tunnel.SetTunnelAttribute:input_type -> lemming.dataplane.sai.SetTunnelAttributeRequest + 16, // 34: lemming.dataplane.sai.Tunnel.GetTunnelAttribute:input_type -> lemming.dataplane.sai.GetTunnelAttributeRequest + 18, // 35: lemming.dataplane.sai.Tunnel.CreateTunnelTermTableEntry:input_type -> lemming.dataplane.sai.CreateTunnelTermTableEntryRequest + 20, // 36: lemming.dataplane.sai.Tunnel.RemoveTunnelTermTableEntry:input_type -> lemming.dataplane.sai.RemoveTunnelTermTableEntryRequest + 22, // 37: lemming.dataplane.sai.Tunnel.SetTunnelTermTableEntryAttribute:input_type -> lemming.dataplane.sai.SetTunnelTermTableEntryAttributeRequest + 24, // 38: lemming.dataplane.sai.Tunnel.GetTunnelTermTableEntryAttribute:input_type -> lemming.dataplane.sai.GetTunnelTermTableEntryAttributeRequest + 26, // 39: lemming.dataplane.sai.Tunnel.CreateTunnelMapEntry:input_type -> lemming.dataplane.sai.CreateTunnelMapEntryRequest + 28, // 40: lemming.dataplane.sai.Tunnel.RemoveTunnelMapEntry:input_type -> lemming.dataplane.sai.RemoveTunnelMapEntryRequest + 30, // 41: lemming.dataplane.sai.Tunnel.GetTunnelMapEntryAttribute:input_type -> lemming.dataplane.sai.GetTunnelMapEntryAttributeRequest + 5, // 42: lemming.dataplane.sai.Tunnel.CreateTunnelMap:output_type -> lemming.dataplane.sai.CreateTunnelMapResponse + 7, // 43: lemming.dataplane.sai.Tunnel.RemoveTunnelMap:output_type -> lemming.dataplane.sai.RemoveTunnelMapResponse + 9, // 44: lemming.dataplane.sai.Tunnel.GetTunnelMapAttribute:output_type -> lemming.dataplane.sai.GetTunnelMapAttributeResponse + 11, // 45: lemming.dataplane.sai.Tunnel.CreateTunnel:output_type -> lemming.dataplane.sai.CreateTunnelResponse + 13, // 46: lemming.dataplane.sai.Tunnel.RemoveTunnel:output_type -> lemming.dataplane.sai.RemoveTunnelResponse + 15, // 47: lemming.dataplane.sai.Tunnel.SetTunnelAttribute:output_type -> lemming.dataplane.sai.SetTunnelAttributeResponse + 17, // 48: lemming.dataplane.sai.Tunnel.GetTunnelAttribute:output_type -> lemming.dataplane.sai.GetTunnelAttributeResponse + 19, // 49: lemming.dataplane.sai.Tunnel.CreateTunnelTermTableEntry:output_type -> lemming.dataplane.sai.CreateTunnelTermTableEntryResponse + 21, // 50: lemming.dataplane.sai.Tunnel.RemoveTunnelTermTableEntry:output_type -> lemming.dataplane.sai.RemoveTunnelTermTableEntryResponse + 23, // 51: lemming.dataplane.sai.Tunnel.SetTunnelTermTableEntryAttribute:output_type -> lemming.dataplane.sai.SetTunnelTermTableEntryAttributeResponse + 25, // 52: lemming.dataplane.sai.Tunnel.GetTunnelTermTableEntryAttribute:output_type -> lemming.dataplane.sai.GetTunnelTermTableEntryAttributeResponse + 27, // 53: lemming.dataplane.sai.Tunnel.CreateTunnelMapEntry:output_type -> lemming.dataplane.sai.CreateTunnelMapEntryResponse + 29, // 54: lemming.dataplane.sai.Tunnel.RemoveTunnelMapEntry:output_type -> lemming.dataplane.sai.RemoveTunnelMapEntryResponse + 31, // 55: lemming.dataplane.sai.Tunnel.GetTunnelMapEntryAttribute:output_type -> lemming.dataplane.sai.GetTunnelMapEntryAttributeResponse + 42, // [42:56] is the sub-list for method output_type + 28, // [28:42] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_tunnel_proto_init() } @@ -3334,24 +3325,12 @@ func file_dataplane_standalone_proto_tunnel_proto_init() { } } } - file_dataplane_standalone_proto_tunnel_proto_msgTypes[10].OneofWrappers = []interface{}{ - (*SetTunnelAttributeRequest_EncapTtlMode)(nil), - (*SetTunnelAttributeRequest_EncapTtlVal)(nil), - (*SetTunnelAttributeRequest_EncapDscpMode)(nil), - (*SetTunnelAttributeRequest_EncapDscpVal)(nil), - (*SetTunnelAttributeRequest_EncapGreKey)(nil), - (*SetTunnelAttributeRequest_DecapTtlMode)(nil), - (*SetTunnelAttributeRequest_DecapDscpMode)(nil), - (*SetTunnelAttributeRequest_LoopbackPacketAction)(nil), - (*SetTunnelAttributeRequest_VxlanUdpSportMode)(nil), - (*SetTunnelAttributeRequest_VxlanUdpSport)(nil), - (*SetTunnelAttributeRequest_VxlanUdpSportMask)(nil), - (*SetTunnelAttributeRequest_SaIndex)(nil), - (*SetTunnelAttributeRequest_IpsecSaPortList)(nil), - } - file_dataplane_standalone_proto_tunnel_proto_msgTypes[18].OneofWrappers = []interface{}{ - (*SetTunnelTermTableEntryAttributeRequest_IpsecVerified)(nil), - } + file_dataplane_standalone_proto_tunnel_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tunnel_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tunnel_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tunnel_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tunnel_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_tunnel_proto_msgTypes[22].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/tunnel.proto b/dataplane/standalone/proto/tunnel.proto index 1568add0..32f0d5bc 100644 --- a/dataplane/standalone/proto/tunnel.proto +++ b/dataplane/standalone/proto/tunnel.proto @@ -7,320 +7,270 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum TunnelMapAttr { - TUNNEL_MAP_ATTR_UNSPECIFIED = 0; - TUNNEL_MAP_ATTR_TYPE = 1; - TUNNEL_MAP_ATTR_ENTRY_LIST = 2; + TUNNEL_MAP_ATTR_UNSPECIFIED = 0; + TUNNEL_MAP_ATTR_TYPE = 1; + TUNNEL_MAP_ATTR_ENTRY_LIST = 2; } enum TunnelAttr { - TUNNEL_ATTR_UNSPECIFIED = 0; - TUNNEL_ATTR_TYPE = 1; - TUNNEL_ATTR_UNDERLAY_INTERFACE = 2; - TUNNEL_ATTR_OVERLAY_INTERFACE = 3; - TUNNEL_ATTR_PEER_MODE = 4; - TUNNEL_ATTR_ENCAP_SRC_IP = 5; - TUNNEL_ATTR_ENCAP_DST_IP = 6; - TUNNEL_ATTR_ENCAP_TTL_MODE = 7; - TUNNEL_ATTR_ENCAP_TTL_VAL = 8; - TUNNEL_ATTR_ENCAP_DSCP_MODE = 9; - TUNNEL_ATTR_ENCAP_DSCP_VAL = 10; - TUNNEL_ATTR_ENCAP_GRE_KEY_VALID = 11; - TUNNEL_ATTR_ENCAP_GRE_KEY = 12; - TUNNEL_ATTR_ENCAP_ECN_MODE = 13; - TUNNEL_ATTR_ENCAP_MAPPERS = 14; - TUNNEL_ATTR_DECAP_ECN_MODE = 15; - TUNNEL_ATTR_DECAP_MAPPERS = 16; - TUNNEL_ATTR_DECAP_TTL_MODE = 17; - TUNNEL_ATTR_DECAP_DSCP_MODE = 18; - TUNNEL_ATTR_TERM_TABLE_ENTRY_LIST = 19; - TUNNEL_ATTR_LOOPBACK_PACKET_ACTION = 20; - TUNNEL_ATTR_VXLAN_UDP_SPORT_MODE = 21; - TUNNEL_ATTR_VXLAN_UDP_SPORT = 22; - TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK = 23; - TUNNEL_ATTR_SA_INDEX = 24; - TUNNEL_ATTR_IPSEC_SA_PORT_LIST = 25; + TUNNEL_ATTR_UNSPECIFIED = 0; + TUNNEL_ATTR_TYPE = 1; + TUNNEL_ATTR_UNDERLAY_INTERFACE = 2; + TUNNEL_ATTR_OVERLAY_INTERFACE = 3; + TUNNEL_ATTR_PEER_MODE = 4; + TUNNEL_ATTR_ENCAP_SRC_IP = 5; + TUNNEL_ATTR_ENCAP_DST_IP = 6; + TUNNEL_ATTR_ENCAP_TTL_MODE = 7; + TUNNEL_ATTR_ENCAP_TTL_VAL = 8; + TUNNEL_ATTR_ENCAP_DSCP_MODE = 9; + TUNNEL_ATTR_ENCAP_DSCP_VAL = 10; + TUNNEL_ATTR_ENCAP_GRE_KEY_VALID = 11; + TUNNEL_ATTR_ENCAP_GRE_KEY = 12; + TUNNEL_ATTR_ENCAP_ECN_MODE = 13; + TUNNEL_ATTR_ENCAP_MAPPERS = 14; + TUNNEL_ATTR_DECAP_ECN_MODE = 15; + TUNNEL_ATTR_DECAP_MAPPERS = 16; + TUNNEL_ATTR_DECAP_TTL_MODE = 17; + TUNNEL_ATTR_DECAP_DSCP_MODE = 18; + TUNNEL_ATTR_TERM_TABLE_ENTRY_LIST = 19; + TUNNEL_ATTR_LOOPBACK_PACKET_ACTION = 20; + TUNNEL_ATTR_VXLAN_UDP_SPORT_MODE = 21; + TUNNEL_ATTR_VXLAN_UDP_SPORT = 22; + TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK = 23; + TUNNEL_ATTR_SA_INDEX = 24; + TUNNEL_ATTR_IPSEC_SA_PORT_LIST = 25; } enum TunnelTermTableEntryAttr { - TUNNEL_TERM_TABLE_ENTRY_ATTR_UNSPECIFIED = 0; - TUNNEL_TERM_TABLE_ENTRY_ATTR_VR_ID = 1; - TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE = 2; - TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP = 3; - TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP_MASK = 4; - TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP = 5; - TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP_MASK = 6; - TUNNEL_TERM_TABLE_ENTRY_ATTR_TUNNEL_TYPE = 7; - TUNNEL_TERM_TABLE_ENTRY_ATTR_ACTION_TUNNEL_ID = 8; - TUNNEL_TERM_TABLE_ENTRY_ATTR_IP_ADDR_FAMILY = 9; - TUNNEL_TERM_TABLE_ENTRY_ATTR_IPSEC_VERIFIED = 10; + TUNNEL_TERM_TABLE_ENTRY_ATTR_UNSPECIFIED = 0; + TUNNEL_TERM_TABLE_ENTRY_ATTR_VR_ID = 1; + TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE = 2; + TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP = 3; + TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP_MASK = 4; + TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP = 5; + TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP_MASK = 6; + TUNNEL_TERM_TABLE_ENTRY_ATTR_TUNNEL_TYPE = 7; + TUNNEL_TERM_TABLE_ENTRY_ATTR_ACTION_TUNNEL_ID = 8; + TUNNEL_TERM_TABLE_ENTRY_ATTR_IP_ADDR_FAMILY = 9; + TUNNEL_TERM_TABLE_ENTRY_ATTR_IPSEC_VERIFIED = 10; } enum TunnelMapEntryAttr { - TUNNEL_MAP_ENTRY_ATTR_UNSPECIFIED = 0; - TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP_TYPE = 1; - TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP = 2; - TUNNEL_MAP_ENTRY_ATTR_OECN_KEY = 3; - TUNNEL_MAP_ENTRY_ATTR_OECN_VALUE = 4; - TUNNEL_MAP_ENTRY_ATTR_UECN_KEY = 5; - TUNNEL_MAP_ENTRY_ATTR_UECN_VALUE = 6; - TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_KEY = 7; - TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_VALUE = 8; - TUNNEL_MAP_ENTRY_ATTR_VNI_ID_KEY = 9; - TUNNEL_MAP_ENTRY_ATTR_VNI_ID_VALUE = 10; - TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_KEY = 11; - TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_VALUE = 12; - TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_KEY = 13; - TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_VALUE = 14; - TUNNEL_MAP_ENTRY_ATTR_VSID_ID_KEY = 15; - TUNNEL_MAP_ENTRY_ATTR_VSID_ID_VALUE = 16; + TUNNEL_MAP_ENTRY_ATTR_UNSPECIFIED = 0; + TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP_TYPE = 1; + TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP = 2; + TUNNEL_MAP_ENTRY_ATTR_OECN_KEY = 3; + TUNNEL_MAP_ENTRY_ATTR_OECN_VALUE = 4; + TUNNEL_MAP_ENTRY_ATTR_UECN_KEY = 5; + TUNNEL_MAP_ENTRY_ATTR_UECN_VALUE = 6; + TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_KEY = 7; + TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_VALUE = 8; + TUNNEL_MAP_ENTRY_ATTR_VNI_ID_KEY = 9; + TUNNEL_MAP_ENTRY_ATTR_VNI_ID_VALUE = 10; + TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_KEY = 11; + TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_VALUE = 12; + TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_KEY = 13; + TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_VALUE = 14; + TUNNEL_MAP_ENTRY_ATTR_VSID_ID_KEY = 15; + TUNNEL_MAP_ENTRY_ATTR_VSID_ID_VALUE = 16; } message CreateTunnelMapRequest { - uint64 switch = 1; - - TunnelMapType type = 2; - + uint64 switch = 1; + optional TunnelMapType type = 2 [(attr_enum_value) = 1]; } message CreateTunnelMapResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTunnelMapRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTunnelMapResponse { - - -} +message RemoveTunnelMapResponse {} message GetTunnelMapAttributeRequest { - uint64 oid = 1; - repeated TunnelMapAttr attr_type = 2; - - + uint64 oid = 1; + repeated TunnelMapAttr attr_type = 2; } message GetTunnelMapAttributeResponse { - repeated TunnelMapAttribute attr = 1; - - + TunnelMapAttribute attr = 1; } message CreateTunnelRequest { - uint64 switch = 1; - - TunnelType type = 2; - uint64 underlay_interface = 3; - uint64 overlay_interface = 4; - TunnelPeerMode peer_mode = 5; - bytes encap_src_ip = 6; - bytes encap_dst_ip = 7; - TunnelTtlMode encap_ttl_mode = 8; - uint32 encap_ttl_val = 9; - TunnelDscpMode encap_dscp_mode = 10; - uint32 encap_dscp_val = 11; - bool encap_gre_key_valid = 12; - uint32 encap_gre_key = 13; - TunnelEncapEcnMode encap_ecn_mode = 14; - repeated uint64 encap_mappers = 15; - TunnelDecapEcnMode decap_ecn_mode = 16; - repeated uint64 decap_mappers = 17; - TunnelTtlMode decap_ttl_mode = 18; - TunnelDscpMode decap_dscp_mode = 19; - PacketAction loopback_packet_action = 20; - TunnelVxlanUdpSportMode vxlan_udp_sport_mode = 21; - uint32 vxlan_udp_sport = 22; - uint32 vxlan_udp_sport_mask = 23; - uint32 sa_index = 24; - repeated uint64 ipsec_sa_port_list = 25; - + uint64 switch = 1; + optional TunnelType type = 2 [(attr_enum_value) = 1]; + optional uint64 underlay_interface = 3 [(attr_enum_value) = 2]; + optional uint64 overlay_interface = 4 [(attr_enum_value) = 3]; + optional TunnelPeerMode peer_mode = 5 [(attr_enum_value) = 4]; + optional bytes encap_src_ip = 6 [(attr_enum_value) = 5]; + optional bytes encap_dst_ip = 7 [(attr_enum_value) = 6]; + optional TunnelTtlMode encap_ttl_mode = 8 [(attr_enum_value) = 7]; + optional uint32 encap_ttl_val = 9 [(attr_enum_value) = 8]; + optional TunnelDscpMode encap_dscp_mode = 10 [(attr_enum_value) = 9]; + optional uint32 encap_dscp_val = 11 [(attr_enum_value) = 10]; + optional bool encap_gre_key_valid = 12 [(attr_enum_value) = 11]; + optional uint32 encap_gre_key = 13 [(attr_enum_value) = 12]; + optional TunnelEncapEcnMode encap_ecn_mode = 14 [(attr_enum_value) = 13]; + repeated uint64 encap_mappers = 15 [(attr_enum_value) = 14]; + optional TunnelDecapEcnMode decap_ecn_mode = 16 [(attr_enum_value) = 15]; + repeated uint64 decap_mappers = 17 [(attr_enum_value) = 16]; + optional TunnelTtlMode decap_ttl_mode = 18 [(attr_enum_value) = 17]; + optional TunnelDscpMode decap_dscp_mode = 19 [(attr_enum_value) = 18]; + optional PacketAction loopback_packet_action = 20 [(attr_enum_value) = 20]; + optional TunnelVxlanUdpSportMode vxlan_udp_sport_mode = 21 + [(attr_enum_value) = 21]; + optional uint32 vxlan_udp_sport = 22 [(attr_enum_value) = 22]; + optional uint32 vxlan_udp_sport_mask = 23 [(attr_enum_value) = 23]; + optional uint32 sa_index = 24 [(attr_enum_value) = 24]; + repeated uint64 ipsec_sa_port_list = 25 [(attr_enum_value) = 25]; } message CreateTunnelResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTunnelRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTunnelResponse { - - -} +message RemoveTunnelResponse {} message SetTunnelAttributeRequest { - uint64 oid = 1; - oneof attr { - TunnelTtlMode encap_ttl_mode = 2; - uint32 encap_ttl_val = 3; - TunnelDscpMode encap_dscp_mode = 4; - uint32 encap_dscp_val = 5; - uint32 encap_gre_key = 6; - TunnelTtlMode decap_ttl_mode = 7; - TunnelDscpMode decap_dscp_mode = 8; - PacketAction loopback_packet_action = 9; - TunnelVxlanUdpSportMode vxlan_udp_sport_mode = 10; - uint32 vxlan_udp_sport = 11; - uint32 vxlan_udp_sport_mask = 12; - uint32 sa_index = 13; - Uint64List ipsec_sa_port_list = 14; - } -} - -message SetTunnelAttributeResponse { - - -} + uint64 oid = 1; + optional TunnelTtlMode encap_ttl_mode = 2 [(attr_enum_value) = 7]; + optional uint32 encap_ttl_val = 3 [(attr_enum_value) = 8]; + optional TunnelDscpMode encap_dscp_mode = 4 [(attr_enum_value) = 9]; + optional uint32 encap_dscp_val = 5 [(attr_enum_value) = 10]; + optional uint32 encap_gre_key = 6 [(attr_enum_value) = 12]; + optional TunnelTtlMode decap_ttl_mode = 7 [(attr_enum_value) = 17]; + optional TunnelDscpMode decap_dscp_mode = 8 [(attr_enum_value) = 18]; + optional PacketAction loopback_packet_action = 9 [(attr_enum_value) = 20]; + optional TunnelVxlanUdpSportMode vxlan_udp_sport_mode = 10 + [(attr_enum_value) = 21]; + optional uint32 vxlan_udp_sport = 11 [(attr_enum_value) = 22]; + optional uint32 vxlan_udp_sport_mask = 12 [(attr_enum_value) = 23]; + optional uint32 sa_index = 13 [(attr_enum_value) = 24]; + repeated uint64 ipsec_sa_port_list = 14 [(attr_enum_value) = 25]; +} + +message SetTunnelAttributeResponse {} message GetTunnelAttributeRequest { - uint64 oid = 1; - repeated TunnelAttr attr_type = 2; - - + uint64 oid = 1; + repeated TunnelAttr attr_type = 2; } message GetTunnelAttributeResponse { - repeated TunnelAttribute attr = 1; - - + TunnelAttribute attr = 1; } message CreateTunnelTermTableEntryRequest { - uint64 switch = 1; - - uint64 vr_id = 2; - TunnelTermTableEntryType type = 3; - bytes dst_ip = 4; - bytes dst_ip_mask = 5; - bytes src_ip = 6; - bytes src_ip_mask = 7; - TunnelType tunnel_type = 8; - uint64 action_tunnel_id = 9; - bool ipsec_verified = 10; - + uint64 switch = 1; + optional uint64 vr_id = 2 [(attr_enum_value) = 1]; + optional TunnelTermTableEntryType type = 3 [(attr_enum_value) = 2]; + optional bytes dst_ip = 4 [(attr_enum_value) = 3]; + optional bytes dst_ip_mask = 5 [(attr_enum_value) = 4]; + optional bytes src_ip = 6 [(attr_enum_value) = 5]; + optional bytes src_ip_mask = 7 [(attr_enum_value) = 6]; + optional TunnelType tunnel_type = 8 [(attr_enum_value) = 7]; + optional uint64 action_tunnel_id = 9 [(attr_enum_value) = 8]; + optional bool ipsec_verified = 10 [(attr_enum_value) = 10]; } message CreateTunnelTermTableEntryResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTunnelTermTableEntryRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTunnelTermTableEntryResponse { - - -} +message RemoveTunnelTermTableEntryResponse {} message SetTunnelTermTableEntryAttributeRequest { - uint64 oid = 1; - oneof attr { - bool ipsec_verified = 2; - } + uint64 oid = 1; + optional bool ipsec_verified = 2 [(attr_enum_value) = 10]; } -message SetTunnelTermTableEntryAttributeResponse { - - -} +message SetTunnelTermTableEntryAttributeResponse {} message GetTunnelTermTableEntryAttributeRequest { - uint64 oid = 1; - repeated TunnelTermTableEntryAttr attr_type = 2; - - + uint64 oid = 1; + repeated TunnelTermTableEntryAttr attr_type = 2; } message GetTunnelTermTableEntryAttributeResponse { - repeated TunnelTermTableEntryAttribute attr = 1; - - + TunnelTermTableEntryAttribute attr = 1; } message CreateTunnelMapEntryRequest { - uint64 switch = 1; - - TunnelMapType tunnel_map_type = 2; - uint64 tunnel_map = 3; - uint32 oecn_key = 4; - uint32 oecn_value = 5; - uint32 uecn_key = 6; - uint32 uecn_value = 7; - uint32 vlan_id_key = 8; - uint32 vlan_id_value = 9; - uint32 vni_id_key = 10; - uint32 vni_id_value = 11; - uint64 bridge_id_key = 12; - uint64 bridge_id_value = 13; - uint64 virtual_router_id_key = 14; - uint64 virtual_router_id_value = 15; - uint32 vsid_id_key = 16; - uint32 vsid_id_value = 17; - + uint64 switch = 1; + optional TunnelMapType tunnel_map_type = 2 [(attr_enum_value) = 1]; + optional uint64 tunnel_map = 3 [(attr_enum_value) = 2]; + optional uint32 oecn_key = 4 [(attr_enum_value) = 3]; + optional uint32 oecn_value = 5 [(attr_enum_value) = 4]; + optional uint32 uecn_key = 6 [(attr_enum_value) = 5]; + optional uint32 uecn_value = 7 [(attr_enum_value) = 6]; + optional uint32 vlan_id_key = 8 [(attr_enum_value) = 7]; + optional uint32 vlan_id_value = 9 [(attr_enum_value) = 8]; + optional uint32 vni_id_key = 10 [(attr_enum_value) = 9]; + optional uint32 vni_id_value = 11 [(attr_enum_value) = 10]; + optional uint64 bridge_id_key = 12 [(attr_enum_value) = 11]; + optional uint64 bridge_id_value = 13 [(attr_enum_value) = 12]; + optional uint64 virtual_router_id_key = 14 [(attr_enum_value) = 13]; + optional uint64 virtual_router_id_value = 15 [(attr_enum_value) = 14]; + optional uint32 vsid_id_key = 16 [(attr_enum_value) = 15]; + optional uint32 vsid_id_value = 17 [(attr_enum_value) = 16]; } message CreateTunnelMapEntryResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveTunnelMapEntryRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveTunnelMapEntryResponse { - - -} +message RemoveTunnelMapEntryResponse {} message GetTunnelMapEntryAttributeRequest { - uint64 oid = 1; - repeated TunnelMapEntryAttr attr_type = 2; - - + uint64 oid = 1; + repeated TunnelMapEntryAttr attr_type = 2; } message GetTunnelMapEntryAttributeResponse { - repeated TunnelMapEntryAttribute attr = 1; - - + TunnelMapEntryAttribute attr = 1; } - service Tunnel { - rpc CreateTunnelMap (CreateTunnelMapRequest) returns (CreateTunnelMapResponse) {} - rpc RemoveTunnelMap (RemoveTunnelMapRequest) returns (RemoveTunnelMapResponse) {} - rpc GetTunnelMapAttribute (GetTunnelMapAttributeRequest) returns (GetTunnelMapAttributeResponse) {} - rpc CreateTunnel (CreateTunnelRequest) returns (CreateTunnelResponse) {} - rpc RemoveTunnel (RemoveTunnelRequest) returns (RemoveTunnelResponse) {} - rpc SetTunnelAttribute (SetTunnelAttributeRequest) returns (SetTunnelAttributeResponse) {} - rpc GetTunnelAttribute (GetTunnelAttributeRequest) returns (GetTunnelAttributeResponse) {} - rpc CreateTunnelTermTableEntry (CreateTunnelTermTableEntryRequest) returns (CreateTunnelTermTableEntryResponse) {} - rpc RemoveTunnelTermTableEntry (RemoveTunnelTermTableEntryRequest) returns (RemoveTunnelTermTableEntryResponse) {} - rpc SetTunnelTermTableEntryAttribute (SetTunnelTermTableEntryAttributeRequest) returns (SetTunnelTermTableEntryAttributeResponse) {} - rpc GetTunnelTermTableEntryAttribute (GetTunnelTermTableEntryAttributeRequest) returns (GetTunnelTermTableEntryAttributeResponse) {} - rpc CreateTunnelMapEntry (CreateTunnelMapEntryRequest) returns (CreateTunnelMapEntryResponse) {} - rpc RemoveTunnelMapEntry (RemoveTunnelMapEntryRequest) returns (RemoveTunnelMapEntryResponse) {} - rpc GetTunnelMapEntryAttribute (GetTunnelMapEntryAttributeRequest) returns (GetTunnelMapEntryAttributeResponse) {} + rpc CreateTunnelMap(CreateTunnelMapRequest) + returns (CreateTunnelMapResponse) {} + rpc RemoveTunnelMap(RemoveTunnelMapRequest) + returns (RemoveTunnelMapResponse) {} + rpc GetTunnelMapAttribute(GetTunnelMapAttributeRequest) + returns (GetTunnelMapAttributeResponse) {} + rpc CreateTunnel(CreateTunnelRequest) returns (CreateTunnelResponse) {} + rpc RemoveTunnel(RemoveTunnelRequest) returns (RemoveTunnelResponse) {} + rpc SetTunnelAttribute(SetTunnelAttributeRequest) + returns (SetTunnelAttributeResponse) {} + rpc GetTunnelAttribute(GetTunnelAttributeRequest) + returns (GetTunnelAttributeResponse) {} + rpc CreateTunnelTermTableEntry(CreateTunnelTermTableEntryRequest) + returns (CreateTunnelTermTableEntryResponse) {} + rpc RemoveTunnelTermTableEntry(RemoveTunnelTermTableEntryRequest) + returns (RemoveTunnelTermTableEntryResponse) {} + rpc SetTunnelTermTableEntryAttribute(SetTunnelTermTableEntryAttributeRequest) + returns (SetTunnelTermTableEntryAttributeResponse) {} + rpc GetTunnelTermTableEntryAttribute(GetTunnelTermTableEntryAttributeRequest) + returns (GetTunnelTermTableEntryAttributeResponse) {} + rpc CreateTunnelMapEntry(CreateTunnelMapEntryRequest) + returns (CreateTunnelMapEntryResponse) {} + rpc RemoveTunnelMapEntry(RemoveTunnelMapEntryRequest) + returns (RemoveTunnelMapEntryResponse) {} + rpc GetTunnelMapEntryAttribute(GetTunnelMapEntryAttributeRequest) + returns (GetTunnelMapEntryAttributeResponse) {} } diff --git a/dataplane/standalone/proto/udf.pb.go b/dataplane/standalone/proto/udf.pb.go index 2c51d7dc..c72dc931 100755 --- a/dataplane/standalone/proto/udf.pb.go +++ b/dataplane/standalone/proto/udf.pb.go @@ -195,10 +195,10 @@ type CreateUdfRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - MatchId uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId,proto3" json:"match_id,omitempty"` - GroupId uint64 `protobuf:"varint,3,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` - Base UdfBase `protobuf:"varint,4,opt,name=base,proto3,enum=lemming.dataplane.sai.UdfBase" json:"base,omitempty"` - Offset uint32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"` + MatchId *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId,proto3,oneof" json:"match_id,omitempty"` + GroupId *uint64 `protobuf:"varint,3,opt,name=group_id,json=groupId,proto3,oneof" json:"group_id,omitempty"` + Base *UdfBase `protobuf:"varint,4,opt,name=base,proto3,enum=lemming.dataplane.sai.UdfBase,oneof" json:"base,omitempty"` + Offset *uint32 `protobuf:"varint,5,opt,name=offset,proto3,oneof" json:"offset,omitempty"` HashMask []uint32 `protobuf:"varint,6,rep,packed,name=hash_mask,json=hashMask,proto3" json:"hash_mask,omitempty"` } @@ -242,29 +242,29 @@ func (x *CreateUdfRequest) GetSwitch() uint64 { } func (x *CreateUdfRequest) GetMatchId() uint64 { - if x != nil { - return x.MatchId + if x != nil && x.MatchId != nil { + return *x.MatchId } return 0 } func (x *CreateUdfRequest) GetGroupId() uint64 { - if x != nil { - return x.GroupId + if x != nil && x.GroupId != nil { + return *x.GroupId } return 0 } func (x *CreateUdfRequest) GetBase() UdfBase { - if x != nil { - return x.Base + if x != nil && x.Base != nil { + return *x.Base } return UdfBase_UDF_BASE_UNSPECIFIED } func (x *CreateUdfRequest) GetOffset() uint32 { - if x != nil { - return x.Offset + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } @@ -413,12 +413,9 @@ type SetUdfAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetUdfAttributeRequest_Base - // *SetUdfAttributeRequest_HashMask - Attr isSetUdfAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + Base *UdfBase `protobuf:"varint,2,opt,name=base,proto3,enum=lemming.dataplane.sai.UdfBase,oneof" json:"base,omitempty"` + HashMask []uint32 `protobuf:"varint,3,rep,packed,name=hash_mask,json=hashMask,proto3" json:"hash_mask,omitempty"` } func (x *SetUdfAttributeRequest) Reset() { @@ -460,43 +457,20 @@ func (x *SetUdfAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetUdfAttributeRequest) GetAttr() isSetUdfAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetUdfAttributeRequest) GetBase() UdfBase { - if x, ok := x.GetAttr().(*SetUdfAttributeRequest_Base); ok { - return x.Base + if x != nil && x.Base != nil { + return *x.Base } return UdfBase_UDF_BASE_UNSPECIFIED } -func (x *SetUdfAttributeRequest) GetHashMask() *Uint32List { - if x, ok := x.GetAttr().(*SetUdfAttributeRequest_HashMask); ok { +func (x *SetUdfAttributeRequest) GetHashMask() []uint32 { + if x != nil { return x.HashMask } return nil } -type isSetUdfAttributeRequest_Attr interface { - isSetUdfAttributeRequest_Attr() -} - -type SetUdfAttributeRequest_Base struct { - Base UdfBase `protobuf:"varint,2,opt,name=base,proto3,enum=lemming.dataplane.sai.UdfBase,oneof"` -} - -type SetUdfAttributeRequest_HashMask struct { - HashMask *Uint32List `protobuf:"bytes,3,opt,name=hash_mask,json=hashMask,proto3,oneof"` -} - -func (*SetUdfAttributeRequest_Base) isSetUdfAttributeRequest_Attr() {} - -func (*SetUdfAttributeRequest_HashMask) isSetUdfAttributeRequest_Attr() {} - type SetUdfAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -595,7 +569,7 @@ type GetUdfAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*UdfAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *UdfAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetUdfAttributeResponse) Reset() { @@ -630,7 +604,7 @@ func (*GetUdfAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_udf_proto_rawDescGZIP(), []int{7} } -func (x *GetUdfAttributeResponse) GetAttr() []*UdfAttribute { +func (x *GetUdfAttributeResponse) GetAttr() *UdfAttribute { if x != nil { return x.Attr } @@ -643,10 +617,10 @@ type CreateUdfMatchRequest struct { unknownFields protoimpl.UnknownFields Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - L2Type *AclFieldData `protobuf:"bytes,2,opt,name=l2_type,json=l2Type,proto3" json:"l2_type,omitempty"` - L3Type *AclFieldData `protobuf:"bytes,3,opt,name=l3_type,json=l3Type,proto3" json:"l3_type,omitempty"` - GreType *AclFieldData `protobuf:"bytes,4,opt,name=gre_type,json=greType,proto3" json:"gre_type,omitempty"` - Priority uint32 `protobuf:"varint,5,opt,name=priority,proto3" json:"priority,omitempty"` + L2Type *AclFieldData `protobuf:"bytes,2,opt,name=l2_type,json=l2Type,proto3,oneof" json:"l2_type,omitempty"` + L3Type *AclFieldData `protobuf:"bytes,3,opt,name=l3_type,json=l3Type,proto3,oneof" json:"l3_type,omitempty"` + GreType *AclFieldData `protobuf:"bytes,4,opt,name=gre_type,json=greType,proto3,oneof" json:"gre_type,omitempty"` + Priority *uint32 `protobuf:"varint,5,opt,name=priority,proto3,oneof" json:"priority,omitempty"` } func (x *CreateUdfMatchRequest) Reset() { @@ -710,8 +684,8 @@ func (x *CreateUdfMatchRequest) GetGreType() *AclFieldData { } func (x *CreateUdfMatchRequest) GetPriority() uint32 { - if x != nil { - return x.Priority + if x != nil && x.Priority != nil { + return *x.Priority } return 0 } @@ -908,7 +882,7 @@ type GetUdfMatchAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*UdfMatchAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *UdfMatchAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetUdfMatchAttributeResponse) Reset() { @@ -943,7 +917,7 @@ func (*GetUdfMatchAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_udf_proto_rawDescGZIP(), []int{13} } -func (x *GetUdfMatchAttributeResponse) GetAttr() []*UdfMatchAttribute { +func (x *GetUdfMatchAttributeResponse) GetAttr() *UdfMatchAttribute { if x != nil { return x.Attr } @@ -955,9 +929,9 @@ type CreateUdfGroupRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - Type UdfGroupType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.UdfGroupType" json:"type,omitempty"` - Length uint32 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + Type *UdfGroupType `protobuf:"varint,2,opt,name=type,proto3,enum=lemming.dataplane.sai.UdfGroupType,oneof" json:"type,omitempty"` + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } func (x *CreateUdfGroupRequest) Reset() { @@ -1000,15 +974,15 @@ func (x *CreateUdfGroupRequest) GetSwitch() uint64 { } func (x *CreateUdfGroupRequest) GetType() UdfGroupType { - if x != nil { - return x.Type + if x != nil && x.Type != nil { + return *x.Type } return UdfGroupType_UDF_GROUP_TYPE_UNSPECIFIED } func (x *CreateUdfGroupRequest) GetLength() uint32 { - if x != nil { - return x.Length + if x != nil && x.Length != nil { + return *x.Length } return 0 } @@ -1205,7 +1179,7 @@ type GetUdfGroupAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*UdfGroupAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *UdfGroupAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetUdfGroupAttributeResponse) Reset() { @@ -1240,7 +1214,7 @@ func (*GetUdfGroupAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_udf_proto_rawDescGZIP(), []int{19} } -func (x *GetUdfGroupAttributeResponse) GetAttr() []*UdfGroupAttribute { +func (x *GetUdfGroupAttributeResponse) GetAttr() *UdfGroupAttribute { if x != nil { return x.Attr } @@ -1256,219 +1230,232 @@ var file_dataplane_standalone_proto_udf_proto_rawDesc = []byte{ 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc9, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa9, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x55, 0x64, 0x66, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x4d, 0x61, - 0x73, 0x6b, 0x22, 0x25, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x52, + 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x02, 0x48, 0x01, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x42, 0x61, 0x73, 0x65, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, + 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x22, 0x25, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x64, 0x12, 0x3d, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x42, 0x61, 0x73, 0x65, 0x48, - 0x00, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, - 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x65, 0x6d, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x42, 0x61, 0x73, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x21, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x4d, + 0x61, 0x73, 0x6b, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x22, 0x19, 0x0a, 0x17, + 0x53, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x64, + 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, + 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x52, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x61, + 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, + 0x61, 0x74, 0x74, 0x72, 0x22, 0xe5, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x47, 0x0a, 0x07, 0x6c, 0x32, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x32, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x07, 0x6c, 0x33, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x33, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x08, 0x67, 0x72, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, - 0x08, 0x68, 0x61, 0x73, 0x68, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x07, 0x67, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x08, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, + 0x32, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x33, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x67, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x2a, 0x0a, 0x16, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, + 0x1b, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, + 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x37, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x87, 0x02, 0x0a, 0x15, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x07, 0x6c, - 0x32, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x06, 0x6c, 0x32, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x6c, 0x33, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x06, 0x6c, 0x33, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x67, 0x72, 0x65, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x41, 0x63, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, - 0x67, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, - 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x55, 0x64, - 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, - 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x80, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, - 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x2a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, - 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, - 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, - 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0xaa, + 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x2a, 0x0a, 0x16, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x40, 0x0a, + 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3c, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x1c, - 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x91, 0x01, + 0x0a, 0x07, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x44, 0x46, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x44, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x44, + 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, + 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x44, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x41, + 0x53, 0x45, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x44, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x44, 0x46, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, + 0x05, 0x2a, 0xa0, 0x01, 0x0a, 0x0c, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, + 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x44, 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x44, 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x32, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x1a, + 0x0a, 0x16, 0x55, 0x44, 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x4c, 0x33, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x44, + 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x44, 0x46, 0x5f, 0x4d, + 0x41, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, + 0x54, 0x59, 0x10, 0x04, 0x2a, 0x7f, 0x0a, 0x0c, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x46, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0x01, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x44, + 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x45, 0x4e, + 0x47, 0x54, 0x48, 0x10, 0x03, 0x32, 0xfd, 0x08, 0x0a, 0x03, 0x55, 0x64, 0x66, 0x12, 0x60, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x91, 0x01, 0x0a, 0x07, 0x55, - 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x44, 0x46, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x15, 0x0a, 0x11, 0x55, 0x44, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x54, - 0x43, 0x48, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x44, 0x46, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x11, - 0x0a, 0x0d, 0x55, 0x44, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, - 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x44, 0x46, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4f, 0x46, - 0x46, 0x53, 0x45, 0x54, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x44, 0x46, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x05, 0x2a, 0xa0, - 0x01, 0x0a, 0x0c, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x1e, 0x0a, 0x1a, 0x55, 0x44, 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1a, 0x0a, 0x16, 0x55, 0x44, 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x4c, 0x32, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x55, - 0x44, 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x33, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x44, 0x46, 0x5f, 0x4d, - 0x41, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x44, 0x46, 0x5f, 0x4d, 0x41, 0x54, 0x43, - 0x48, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, - 0x04, 0x2a, 0x7f, 0x0a, 0x0c, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, - 0x72, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x44, 0x46, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x17, - 0x0a, 0x13, 0x55, 0x44, 0x46, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x44, 0x46, 0x5f, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, - 0x10, 0x03, 0x32, 0xfd, 0x08, 0x0a, 0x03, 0x55, 0x64, 0x66, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x60, 0x0a, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x12, 0x27, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x55, + 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, - 0x64, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x12, 0x27, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x55, 0x64, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, - 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x64, 0x66, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x64, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x6f, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, + 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, + 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, - 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x2c, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, - 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x64, 0x66, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, - 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x64, 0x66, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1510,52 +1497,50 @@ var file_dataplane_standalone_proto_udf_proto_goTypes = []interface{}{ (*GetUdfGroupAttributeRequest)(nil), // 21: lemming.dataplane.sai.GetUdfGroupAttributeRequest (*GetUdfGroupAttributeResponse)(nil), // 22: lemming.dataplane.sai.GetUdfGroupAttributeResponse (UdfBase)(0), // 23: lemming.dataplane.sai.UdfBase - (*Uint32List)(nil), // 24: lemming.dataplane.sai.Uint32List - (*UdfAttribute)(nil), // 25: lemming.dataplane.sai.UdfAttribute - (*AclFieldData)(nil), // 26: lemming.dataplane.sai.AclFieldData - (*UdfMatchAttribute)(nil), // 27: lemming.dataplane.sai.UdfMatchAttribute - (UdfGroupType)(0), // 28: lemming.dataplane.sai.UdfGroupType - (*UdfGroupAttribute)(nil), // 29: lemming.dataplane.sai.UdfGroupAttribute + (*UdfAttribute)(nil), // 24: lemming.dataplane.sai.UdfAttribute + (*AclFieldData)(nil), // 25: lemming.dataplane.sai.AclFieldData + (*UdfMatchAttribute)(nil), // 26: lemming.dataplane.sai.UdfMatchAttribute + (UdfGroupType)(0), // 27: lemming.dataplane.sai.UdfGroupType + (*UdfGroupAttribute)(nil), // 28: lemming.dataplane.sai.UdfGroupAttribute } var file_dataplane_standalone_proto_udf_proto_depIdxs = []int32{ 23, // 0: lemming.dataplane.sai.CreateUdfRequest.base:type_name -> lemming.dataplane.sai.UdfBase 23, // 1: lemming.dataplane.sai.SetUdfAttributeRequest.base:type_name -> lemming.dataplane.sai.UdfBase - 24, // 2: lemming.dataplane.sai.SetUdfAttributeRequest.hash_mask:type_name -> lemming.dataplane.sai.Uint32List - 0, // 3: lemming.dataplane.sai.GetUdfAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.UdfAttr - 25, // 4: lemming.dataplane.sai.GetUdfAttributeResponse.attr:type_name -> lemming.dataplane.sai.UdfAttribute - 26, // 5: lemming.dataplane.sai.CreateUdfMatchRequest.l2_type:type_name -> lemming.dataplane.sai.AclFieldData - 26, // 6: lemming.dataplane.sai.CreateUdfMatchRequest.l3_type:type_name -> lemming.dataplane.sai.AclFieldData - 26, // 7: lemming.dataplane.sai.CreateUdfMatchRequest.gre_type:type_name -> lemming.dataplane.sai.AclFieldData - 1, // 8: lemming.dataplane.sai.GetUdfMatchAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.UdfMatchAttr - 27, // 9: lemming.dataplane.sai.GetUdfMatchAttributeResponse.attr:type_name -> lemming.dataplane.sai.UdfMatchAttribute - 28, // 10: lemming.dataplane.sai.CreateUdfGroupRequest.type:type_name -> lemming.dataplane.sai.UdfGroupType - 2, // 11: lemming.dataplane.sai.GetUdfGroupAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.UdfGroupAttr - 29, // 12: lemming.dataplane.sai.GetUdfGroupAttributeResponse.attr:type_name -> lemming.dataplane.sai.UdfGroupAttribute - 3, // 13: lemming.dataplane.sai.Udf.CreateUdf:input_type -> lemming.dataplane.sai.CreateUdfRequest - 5, // 14: lemming.dataplane.sai.Udf.RemoveUdf:input_type -> lemming.dataplane.sai.RemoveUdfRequest - 7, // 15: lemming.dataplane.sai.Udf.SetUdfAttribute:input_type -> lemming.dataplane.sai.SetUdfAttributeRequest - 9, // 16: lemming.dataplane.sai.Udf.GetUdfAttribute:input_type -> lemming.dataplane.sai.GetUdfAttributeRequest - 11, // 17: lemming.dataplane.sai.Udf.CreateUdfMatch:input_type -> lemming.dataplane.sai.CreateUdfMatchRequest - 13, // 18: lemming.dataplane.sai.Udf.RemoveUdfMatch:input_type -> lemming.dataplane.sai.RemoveUdfMatchRequest - 15, // 19: lemming.dataplane.sai.Udf.GetUdfMatchAttribute:input_type -> lemming.dataplane.sai.GetUdfMatchAttributeRequest - 17, // 20: lemming.dataplane.sai.Udf.CreateUdfGroup:input_type -> lemming.dataplane.sai.CreateUdfGroupRequest - 19, // 21: lemming.dataplane.sai.Udf.RemoveUdfGroup:input_type -> lemming.dataplane.sai.RemoveUdfGroupRequest - 21, // 22: lemming.dataplane.sai.Udf.GetUdfGroupAttribute:input_type -> lemming.dataplane.sai.GetUdfGroupAttributeRequest - 4, // 23: lemming.dataplane.sai.Udf.CreateUdf:output_type -> lemming.dataplane.sai.CreateUdfResponse - 6, // 24: lemming.dataplane.sai.Udf.RemoveUdf:output_type -> lemming.dataplane.sai.RemoveUdfResponse - 8, // 25: lemming.dataplane.sai.Udf.SetUdfAttribute:output_type -> lemming.dataplane.sai.SetUdfAttributeResponse - 10, // 26: lemming.dataplane.sai.Udf.GetUdfAttribute:output_type -> lemming.dataplane.sai.GetUdfAttributeResponse - 12, // 27: lemming.dataplane.sai.Udf.CreateUdfMatch:output_type -> lemming.dataplane.sai.CreateUdfMatchResponse - 14, // 28: lemming.dataplane.sai.Udf.RemoveUdfMatch:output_type -> lemming.dataplane.sai.RemoveUdfMatchResponse - 16, // 29: lemming.dataplane.sai.Udf.GetUdfMatchAttribute:output_type -> lemming.dataplane.sai.GetUdfMatchAttributeResponse - 18, // 30: lemming.dataplane.sai.Udf.CreateUdfGroup:output_type -> lemming.dataplane.sai.CreateUdfGroupResponse - 20, // 31: lemming.dataplane.sai.Udf.RemoveUdfGroup:output_type -> lemming.dataplane.sai.RemoveUdfGroupResponse - 22, // 32: lemming.dataplane.sai.Udf.GetUdfGroupAttribute:output_type -> lemming.dataplane.sai.GetUdfGroupAttributeResponse - 23, // [23:33] is the sub-list for method output_type - 13, // [13:23] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 0, // 2: lemming.dataplane.sai.GetUdfAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.UdfAttr + 24, // 3: lemming.dataplane.sai.GetUdfAttributeResponse.attr:type_name -> lemming.dataplane.sai.UdfAttribute + 25, // 4: lemming.dataplane.sai.CreateUdfMatchRequest.l2_type:type_name -> lemming.dataplane.sai.AclFieldData + 25, // 5: lemming.dataplane.sai.CreateUdfMatchRequest.l3_type:type_name -> lemming.dataplane.sai.AclFieldData + 25, // 6: lemming.dataplane.sai.CreateUdfMatchRequest.gre_type:type_name -> lemming.dataplane.sai.AclFieldData + 1, // 7: lemming.dataplane.sai.GetUdfMatchAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.UdfMatchAttr + 26, // 8: lemming.dataplane.sai.GetUdfMatchAttributeResponse.attr:type_name -> lemming.dataplane.sai.UdfMatchAttribute + 27, // 9: lemming.dataplane.sai.CreateUdfGroupRequest.type:type_name -> lemming.dataplane.sai.UdfGroupType + 2, // 10: lemming.dataplane.sai.GetUdfGroupAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.UdfGroupAttr + 28, // 11: lemming.dataplane.sai.GetUdfGroupAttributeResponse.attr:type_name -> lemming.dataplane.sai.UdfGroupAttribute + 3, // 12: lemming.dataplane.sai.Udf.CreateUdf:input_type -> lemming.dataplane.sai.CreateUdfRequest + 5, // 13: lemming.dataplane.sai.Udf.RemoveUdf:input_type -> lemming.dataplane.sai.RemoveUdfRequest + 7, // 14: lemming.dataplane.sai.Udf.SetUdfAttribute:input_type -> lemming.dataplane.sai.SetUdfAttributeRequest + 9, // 15: lemming.dataplane.sai.Udf.GetUdfAttribute:input_type -> lemming.dataplane.sai.GetUdfAttributeRequest + 11, // 16: lemming.dataplane.sai.Udf.CreateUdfMatch:input_type -> lemming.dataplane.sai.CreateUdfMatchRequest + 13, // 17: lemming.dataplane.sai.Udf.RemoveUdfMatch:input_type -> lemming.dataplane.sai.RemoveUdfMatchRequest + 15, // 18: lemming.dataplane.sai.Udf.GetUdfMatchAttribute:input_type -> lemming.dataplane.sai.GetUdfMatchAttributeRequest + 17, // 19: lemming.dataplane.sai.Udf.CreateUdfGroup:input_type -> lemming.dataplane.sai.CreateUdfGroupRequest + 19, // 20: lemming.dataplane.sai.Udf.RemoveUdfGroup:input_type -> lemming.dataplane.sai.RemoveUdfGroupRequest + 21, // 21: lemming.dataplane.sai.Udf.GetUdfGroupAttribute:input_type -> lemming.dataplane.sai.GetUdfGroupAttributeRequest + 4, // 22: lemming.dataplane.sai.Udf.CreateUdf:output_type -> lemming.dataplane.sai.CreateUdfResponse + 6, // 23: lemming.dataplane.sai.Udf.RemoveUdf:output_type -> lemming.dataplane.sai.RemoveUdfResponse + 8, // 24: lemming.dataplane.sai.Udf.SetUdfAttribute:output_type -> lemming.dataplane.sai.SetUdfAttributeResponse + 10, // 25: lemming.dataplane.sai.Udf.GetUdfAttribute:output_type -> lemming.dataplane.sai.GetUdfAttributeResponse + 12, // 26: lemming.dataplane.sai.Udf.CreateUdfMatch:output_type -> lemming.dataplane.sai.CreateUdfMatchResponse + 14, // 27: lemming.dataplane.sai.Udf.RemoveUdfMatch:output_type -> lemming.dataplane.sai.RemoveUdfMatchResponse + 16, // 28: lemming.dataplane.sai.Udf.GetUdfMatchAttribute:output_type -> lemming.dataplane.sai.GetUdfMatchAttributeResponse + 18, // 29: lemming.dataplane.sai.Udf.CreateUdfGroup:output_type -> lemming.dataplane.sai.CreateUdfGroupResponse + 20, // 30: lemming.dataplane.sai.Udf.RemoveUdfGroup:output_type -> lemming.dataplane.sai.RemoveUdfGroupResponse + 22, // 31: lemming.dataplane.sai.Udf.GetUdfGroupAttribute:output_type -> lemming.dataplane.sai.GetUdfGroupAttributeResponse + 22, // [22:32] is the sub-list for method output_type + 12, // [12:22] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_udf_proto_init() } @@ -1806,10 +1791,10 @@ func file_dataplane_standalone_proto_udf_proto_init() { } } } - file_dataplane_standalone_proto_udf_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetUdfAttributeRequest_Base)(nil), - (*SetUdfAttributeRequest_HashMask)(nil), - } + file_dataplane_standalone_proto_udf_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_udf_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_udf_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_udf_proto_msgTypes[14].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/udf.proto b/dataplane/standalone/proto/udf.proto index a1b7f7f1..72ba2c29 100644 --- a/dataplane/standalone/proto/udf.proto +++ b/dataplane/standalone/proto/udf.proto @@ -7,173 +7,131 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum UdfAttr { - UDF_ATTR_UNSPECIFIED = 0; - UDF_ATTR_MATCH_ID = 1; - UDF_ATTR_GROUP_ID = 2; - UDF_ATTR_BASE = 3; - UDF_ATTR_OFFSET = 4; - UDF_ATTR_HASH_MASK = 5; + UDF_ATTR_UNSPECIFIED = 0; + UDF_ATTR_MATCH_ID = 1; + UDF_ATTR_GROUP_ID = 2; + UDF_ATTR_BASE = 3; + UDF_ATTR_OFFSET = 4; + UDF_ATTR_HASH_MASK = 5; } enum UdfMatchAttr { - UDF_MATCH_ATTR_UNSPECIFIED = 0; - UDF_MATCH_ATTR_L2_TYPE = 1; - UDF_MATCH_ATTR_L3_TYPE = 2; - UDF_MATCH_ATTR_GRE_TYPE = 3; - UDF_MATCH_ATTR_PRIORITY = 4; + UDF_MATCH_ATTR_UNSPECIFIED = 0; + UDF_MATCH_ATTR_L2_TYPE = 1; + UDF_MATCH_ATTR_L3_TYPE = 2; + UDF_MATCH_ATTR_GRE_TYPE = 3; + UDF_MATCH_ATTR_PRIORITY = 4; } enum UdfGroupAttr { - UDF_GROUP_ATTR_UNSPECIFIED = 0; - UDF_GROUP_ATTR_UDF_LIST = 1; - UDF_GROUP_ATTR_TYPE = 2; - UDF_GROUP_ATTR_LENGTH = 3; + UDF_GROUP_ATTR_UNSPECIFIED = 0; + UDF_GROUP_ATTR_UDF_LIST = 1; + UDF_GROUP_ATTR_TYPE = 2; + UDF_GROUP_ATTR_LENGTH = 3; } message CreateUdfRequest { - uint64 switch = 1; - - uint64 match_id = 2; - uint64 group_id = 3; - UdfBase base = 4; - uint32 offset = 5; - repeated uint32 hash_mask = 6; - + uint64 switch = 1; + optional uint64 match_id = 2 [(attr_enum_value) = 1]; + optional uint64 group_id = 3 [(attr_enum_value) = 2]; + optional UdfBase base = 4 [(attr_enum_value) = 3]; + optional uint32 offset = 5 [(attr_enum_value) = 4]; + repeated uint32 hash_mask = 6 [(attr_enum_value) = 5]; } message CreateUdfResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveUdfRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveUdfResponse { - - -} +message RemoveUdfResponse {} message SetUdfAttributeRequest { - uint64 oid = 1; - oneof attr { - UdfBase base = 2; - Uint32List hash_mask = 3; - } + uint64 oid = 1; + optional UdfBase base = 2 [(attr_enum_value) = 3]; + repeated uint32 hash_mask = 3 [(attr_enum_value) = 5]; } -message SetUdfAttributeResponse { - - -} +message SetUdfAttributeResponse {} message GetUdfAttributeRequest { - uint64 oid = 1; - repeated UdfAttr attr_type = 2; - - + uint64 oid = 1; + repeated UdfAttr attr_type = 2; } message GetUdfAttributeResponse { - repeated UdfAttribute attr = 1; - - + UdfAttribute attr = 1; } message CreateUdfMatchRequest { - uint64 switch = 1; - - AclFieldData l2_type = 2; - AclFieldData l3_type = 3; - AclFieldData gre_type = 4; - uint32 priority = 5; - + uint64 switch = 1; + optional AclFieldData l2_type = 2 [(attr_enum_value) = 1]; + optional AclFieldData l3_type = 3 [(attr_enum_value) = 2]; + optional AclFieldData gre_type = 4 [(attr_enum_value) = 3]; + optional uint32 priority = 5 [(attr_enum_value) = 4]; } message CreateUdfMatchResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveUdfMatchRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveUdfMatchResponse { - - -} +message RemoveUdfMatchResponse {} message GetUdfMatchAttributeRequest { - uint64 oid = 1; - repeated UdfMatchAttr attr_type = 2; - - + uint64 oid = 1; + repeated UdfMatchAttr attr_type = 2; } message GetUdfMatchAttributeResponse { - repeated UdfMatchAttribute attr = 1; - - + UdfMatchAttribute attr = 1; } message CreateUdfGroupRequest { - uint64 switch = 1; - - UdfGroupType type = 2; - uint32 length = 3; - + uint64 switch = 1; + optional UdfGroupType type = 2 [(attr_enum_value) = 2]; + optional uint32 length = 3 [(attr_enum_value) = 3]; } message CreateUdfGroupResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveUdfGroupRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveUdfGroupResponse { - - -} +message RemoveUdfGroupResponse {} message GetUdfGroupAttributeRequest { - uint64 oid = 1; - repeated UdfGroupAttr attr_type = 2; - - + uint64 oid = 1; + repeated UdfGroupAttr attr_type = 2; } message GetUdfGroupAttributeResponse { - repeated UdfGroupAttribute attr = 1; - - + UdfGroupAttribute attr = 1; } - service Udf { - rpc CreateUdf (CreateUdfRequest) returns (CreateUdfResponse) {} - rpc RemoveUdf (RemoveUdfRequest) returns (RemoveUdfResponse) {} - rpc SetUdfAttribute (SetUdfAttributeRequest) returns (SetUdfAttributeResponse) {} - rpc GetUdfAttribute (GetUdfAttributeRequest) returns (GetUdfAttributeResponse) {} - rpc CreateUdfMatch (CreateUdfMatchRequest) returns (CreateUdfMatchResponse) {} - rpc RemoveUdfMatch (RemoveUdfMatchRequest) returns (RemoveUdfMatchResponse) {} - rpc GetUdfMatchAttribute (GetUdfMatchAttributeRequest) returns (GetUdfMatchAttributeResponse) {} - rpc CreateUdfGroup (CreateUdfGroupRequest) returns (CreateUdfGroupResponse) {} - rpc RemoveUdfGroup (RemoveUdfGroupRequest) returns (RemoveUdfGroupResponse) {} - rpc GetUdfGroupAttribute (GetUdfGroupAttributeRequest) returns (GetUdfGroupAttributeResponse) {} + rpc CreateUdf(CreateUdfRequest) returns (CreateUdfResponse) {} + rpc RemoveUdf(RemoveUdfRequest) returns (RemoveUdfResponse) {} + rpc SetUdfAttribute(SetUdfAttributeRequest) + returns (SetUdfAttributeResponse) {} + rpc GetUdfAttribute(GetUdfAttributeRequest) + returns (GetUdfAttributeResponse) {} + rpc CreateUdfMatch(CreateUdfMatchRequest) returns (CreateUdfMatchResponse) {} + rpc RemoveUdfMatch(RemoveUdfMatchRequest) returns (RemoveUdfMatchResponse) {} + rpc GetUdfMatchAttribute(GetUdfMatchAttributeRequest) + returns (GetUdfMatchAttributeResponse) {} + rpc CreateUdfGroup(CreateUdfGroupRequest) returns (CreateUdfGroupResponse) {} + rpc RemoveUdfGroup(RemoveUdfGroupRequest) returns (RemoveUdfGroupResponse) {} + rpc GetUdfGroupAttribute(GetUdfGroupAttributeRequest) + returns (GetUdfGroupAttributeResponse) {} } diff --git a/dataplane/standalone/proto/virtual_router.pb.go b/dataplane/standalone/proto/virtual_router.pb.go index 5ddcc297..ee1b7da4 100755 --- a/dataplane/standalone/proto/virtual_router.pb.go +++ b/dataplane/standalone/proto/virtual_router.pb.go @@ -93,14 +93,14 @@ type CreateVirtualRouterRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - AdminV4State bool `protobuf:"varint,2,opt,name=admin_v4_state,json=adminV4State,proto3" json:"admin_v4_state,omitempty"` - AdminV6State bool `protobuf:"varint,3,opt,name=admin_v6_state,json=adminV6State,proto3" json:"admin_v6_state,omitempty"` - SrcMacAddress []byte `protobuf:"bytes,4,opt,name=src_mac_address,json=srcMacAddress,proto3" json:"src_mac_address,omitempty"` - ViolationTtl1PacketAction PacketAction `protobuf:"varint,5,opt,name=violation_ttl1_packet_action,json=violationTtl1PacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"violation_ttl1_packet_action,omitempty"` - ViolationIpOptionsPacketAction PacketAction `protobuf:"varint,6,opt,name=violation_ip_options_packet_action,json=violationIpOptionsPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"violation_ip_options_packet_action,omitempty"` - UnknownL3MulticastPacketAction PacketAction `protobuf:"varint,7,opt,name=unknown_l3_multicast_packet_action,json=unknownL3MulticastPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction" json:"unknown_l3_multicast_packet_action,omitempty"` - Label []byte `protobuf:"bytes,8,opt,name=label,proto3" json:"label,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + AdminV4State *bool `protobuf:"varint,2,opt,name=admin_v4_state,json=adminV4State,proto3,oneof" json:"admin_v4_state,omitempty"` + AdminV6State *bool `protobuf:"varint,3,opt,name=admin_v6_state,json=adminV6State,proto3,oneof" json:"admin_v6_state,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,4,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + ViolationTtl1PacketAction *PacketAction `protobuf:"varint,5,opt,name=violation_ttl1_packet_action,json=violationTtl1PacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"violation_ttl1_packet_action,omitempty"` + ViolationIpOptionsPacketAction *PacketAction `protobuf:"varint,6,opt,name=violation_ip_options_packet_action,json=violationIpOptionsPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"violation_ip_options_packet_action,omitempty"` + UnknownL3MulticastPacketAction *PacketAction `protobuf:"varint,7,opt,name=unknown_l3_multicast_packet_action,json=unknownL3MulticastPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"unknown_l3_multicast_packet_action,omitempty"` + Label []byte `protobuf:"bytes,8,opt,name=label,proto3,oneof" json:"label,omitempty"` } func (x *CreateVirtualRouterRequest) Reset() { @@ -143,15 +143,15 @@ func (x *CreateVirtualRouterRequest) GetSwitch() uint64 { } func (x *CreateVirtualRouterRequest) GetAdminV4State() bool { - if x != nil { - return x.AdminV4State + if x != nil && x.AdminV4State != nil { + return *x.AdminV4State } return false } func (x *CreateVirtualRouterRequest) GetAdminV6State() bool { - if x != nil { - return x.AdminV6State + if x != nil && x.AdminV6State != nil { + return *x.AdminV6State } return false } @@ -164,22 +164,22 @@ func (x *CreateVirtualRouterRequest) GetSrcMacAddress() []byte { } func (x *CreateVirtualRouterRequest) GetViolationTtl1PacketAction() PacketAction { - if x != nil { - return x.ViolationTtl1PacketAction + if x != nil && x.ViolationTtl1PacketAction != nil { + return *x.ViolationTtl1PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateVirtualRouterRequest) GetViolationIpOptionsPacketAction() PacketAction { - if x != nil { - return x.ViolationIpOptionsPacketAction + if x != nil && x.ViolationIpOptionsPacketAction != nil { + return *x.ViolationIpOptionsPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *CreateVirtualRouterRequest) GetUnknownL3MulticastPacketAction() PacketAction { - if x != nil { - return x.UnknownL3MulticastPacketAction + if x != nil && x.UnknownL3MulticastPacketAction != nil { + return *x.UnknownL3MulticastPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } @@ -328,17 +328,14 @@ type SetVirtualRouterAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetVirtualRouterAttributeRequest_AdminV4State - // *SetVirtualRouterAttributeRequest_AdminV6State - // *SetVirtualRouterAttributeRequest_SrcMacAddress - // *SetVirtualRouterAttributeRequest_ViolationTtl1PacketAction - // *SetVirtualRouterAttributeRequest_ViolationIpOptionsPacketAction - // *SetVirtualRouterAttributeRequest_UnknownL3MulticastPacketAction - // *SetVirtualRouterAttributeRequest_Label - Attr isSetVirtualRouterAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + AdminV4State *bool `protobuf:"varint,2,opt,name=admin_v4_state,json=adminV4State,proto3,oneof" json:"admin_v4_state,omitempty"` + AdminV6State *bool `protobuf:"varint,3,opt,name=admin_v6_state,json=adminV6State,proto3,oneof" json:"admin_v6_state,omitempty"` + SrcMacAddress []byte `protobuf:"bytes,4,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof" json:"src_mac_address,omitempty"` + ViolationTtl1PacketAction *PacketAction `protobuf:"varint,5,opt,name=violation_ttl1_packet_action,json=violationTtl1PacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"violation_ttl1_packet_action,omitempty"` + ViolationIpOptionsPacketAction *PacketAction `protobuf:"varint,6,opt,name=violation_ip_options_packet_action,json=violationIpOptionsPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"violation_ip_options_packet_action,omitempty"` + UnknownL3MulticastPacketAction *PacketAction `protobuf:"varint,7,opt,name=unknown_l3_multicast_packet_action,json=unknownL3MulticastPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof" json:"unknown_l3_multicast_packet_action,omitempty"` + Label []byte `protobuf:"bytes,8,opt,name=label,proto3,oneof" json:"label,omitempty"` } func (x *SetVirtualRouterAttributeRequest) Reset() { @@ -380,111 +377,55 @@ func (x *SetVirtualRouterAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetVirtualRouterAttributeRequest) GetAttr() isSetVirtualRouterAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetVirtualRouterAttributeRequest) GetAdminV4State() bool { - if x, ok := x.GetAttr().(*SetVirtualRouterAttributeRequest_AdminV4State); ok { - return x.AdminV4State + if x != nil && x.AdminV4State != nil { + return *x.AdminV4State } return false } func (x *SetVirtualRouterAttributeRequest) GetAdminV6State() bool { - if x, ok := x.GetAttr().(*SetVirtualRouterAttributeRequest_AdminV6State); ok { - return x.AdminV6State + if x != nil && x.AdminV6State != nil { + return *x.AdminV6State } return false } func (x *SetVirtualRouterAttributeRequest) GetSrcMacAddress() []byte { - if x, ok := x.GetAttr().(*SetVirtualRouterAttributeRequest_SrcMacAddress); ok { + if x != nil { return x.SrcMacAddress } return nil } func (x *SetVirtualRouterAttributeRequest) GetViolationTtl1PacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetVirtualRouterAttributeRequest_ViolationTtl1PacketAction); ok { - return x.ViolationTtl1PacketAction + if x != nil && x.ViolationTtl1PacketAction != nil { + return *x.ViolationTtl1PacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetVirtualRouterAttributeRequest) GetViolationIpOptionsPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetVirtualRouterAttributeRequest_ViolationIpOptionsPacketAction); ok { - return x.ViolationIpOptionsPacketAction + if x != nil && x.ViolationIpOptionsPacketAction != nil { + return *x.ViolationIpOptionsPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetVirtualRouterAttributeRequest) GetUnknownL3MulticastPacketAction() PacketAction { - if x, ok := x.GetAttr().(*SetVirtualRouterAttributeRequest_UnknownL3MulticastPacketAction); ok { - return x.UnknownL3MulticastPacketAction + if x != nil && x.UnknownL3MulticastPacketAction != nil { + return *x.UnknownL3MulticastPacketAction } return PacketAction_PACKET_ACTION_UNSPECIFIED } func (x *SetVirtualRouterAttributeRequest) GetLabel() []byte { - if x, ok := x.GetAttr().(*SetVirtualRouterAttributeRequest_Label); ok { + if x != nil { return x.Label } return nil } -type isSetVirtualRouterAttributeRequest_Attr interface { - isSetVirtualRouterAttributeRequest_Attr() -} - -type SetVirtualRouterAttributeRequest_AdminV4State struct { - AdminV4State bool `protobuf:"varint,2,opt,name=admin_v4_state,json=adminV4State,proto3,oneof"` -} - -type SetVirtualRouterAttributeRequest_AdminV6State struct { - AdminV6State bool `protobuf:"varint,3,opt,name=admin_v6_state,json=adminV6State,proto3,oneof"` -} - -type SetVirtualRouterAttributeRequest_SrcMacAddress struct { - SrcMacAddress []byte `protobuf:"bytes,4,opt,name=src_mac_address,json=srcMacAddress,proto3,oneof"` -} - -type SetVirtualRouterAttributeRequest_ViolationTtl1PacketAction struct { - ViolationTtl1PacketAction PacketAction `protobuf:"varint,5,opt,name=violation_ttl1_packet_action,json=violationTtl1PacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetVirtualRouterAttributeRequest_ViolationIpOptionsPacketAction struct { - ViolationIpOptionsPacketAction PacketAction `protobuf:"varint,6,opt,name=violation_ip_options_packet_action,json=violationIpOptionsPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetVirtualRouterAttributeRequest_UnknownL3MulticastPacketAction struct { - UnknownL3MulticastPacketAction PacketAction `protobuf:"varint,7,opt,name=unknown_l3_multicast_packet_action,json=unknownL3MulticastPacketAction,proto3,enum=lemming.dataplane.sai.PacketAction,oneof"` -} - -type SetVirtualRouterAttributeRequest_Label struct { - Label []byte `protobuf:"bytes,8,opt,name=label,proto3,oneof"` -} - -func (*SetVirtualRouterAttributeRequest_AdminV4State) isSetVirtualRouterAttributeRequest_Attr() {} - -func (*SetVirtualRouterAttributeRequest_AdminV6State) isSetVirtualRouterAttributeRequest_Attr() {} - -func (*SetVirtualRouterAttributeRequest_SrcMacAddress) isSetVirtualRouterAttributeRequest_Attr() {} - -func (*SetVirtualRouterAttributeRequest_ViolationTtl1PacketAction) isSetVirtualRouterAttributeRequest_Attr() { -} - -func (*SetVirtualRouterAttributeRequest_ViolationIpOptionsPacketAction) isSetVirtualRouterAttributeRequest_Attr() { -} - -func (*SetVirtualRouterAttributeRequest_UnknownL3MulticastPacketAction) isSetVirtualRouterAttributeRequest_Attr() { -} - -func (*SetVirtualRouterAttributeRequest_Label) isSetVirtualRouterAttributeRequest_Attr() {} - type SetVirtualRouterAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -583,7 +524,7 @@ type GetVirtualRouterAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*VirtualRouterAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *VirtualRouterAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetVirtualRouterAttributeResponse) Reset() { @@ -618,7 +559,7 @@ func (*GetVirtualRouterAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_virtual_router_proto_rawDescGZIP(), []int{7} } -func (x *GetVirtualRouterAttributeResponse) GetAttr() []*VirtualRouterAttribute { +func (x *GetVirtualRouterAttributeResponse) GetAttr() *VirtualRouterAttribute { if x != nil { return x.Attr } @@ -635,39 +576,55 @@ var file_dataplane_standalone_proto_virtual_router_proto_rawDesc = []byte{ 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x86, 0x04, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, + 0x6f, 0x22, 0x86, 0x06, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, + 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, - 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, - 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x64, 0x0a, 0x1c, - 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, 0x6c, 0x31, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x19, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x74, 0x6c, 0x31, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x22, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x1e, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, - 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x33, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, + 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x56, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, + 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x72, 0x63, + 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, + 0x1c, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, 0x6c, 0x31, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, + 0x52, 0x19, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x74, 0x6c, 0x31, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x7a, + 0x0a, 0x22, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x1e, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x22, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x06, 0x48, 0x05, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x33, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x74, 0x6c, 0x31, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x2f, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x1a, 0x52, @@ -675,121 +632,136 @@ var file_dataplane_standalone_proto_virtual_router_proto_rawDesc = []byte{ 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x04, 0x0a, 0x20, 0x53, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x86, 0x06, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x72, - 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, 0x1c, 0x76, - 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, 0x6c, 0x31, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x74, 0x6c, 0x31, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x71, 0x0a, 0x22, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x64, 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, + 0x48, 0x01, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x56, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x1c, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, 0x6c, 0x31, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x19, 0x76, 0x69, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x74, 0x6c, 0x31, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x22, 0x76, 0x69, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, + 0x52, 0x1e, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, + 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1e, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x71, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x5f, 0x6c, 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x4c, 0x33, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, - 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, - 0x0a, 0x20, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6f, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x1e, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x33, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x1f, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x34, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x36, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x76, + 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, 0x6c, 0x31, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x25, 0x0a, 0x23, 0x5f, + 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, + 0x33, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x23, 0x0a, 0x21, 0x53, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x56, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x45, + 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, + 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xfe, 0x02, + 0x0a, 0x11, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, + 0x74, 0x74, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x49, 0x52, 0x54, + 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x56, 0x34, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x01, + 0x12, 0x26, 0x0a, 0x22, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, + 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x56, 0x36, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x56, 0x49, 0x52, 0x54, + 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, + 0x03, 0x12, 0x34, 0x0a, 0x30, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, + 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x54, 0x4c, 0x31, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x3a, 0x0a, 0x36, 0x56, 0x49, 0x52, 0x54, 0x55, + 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, + 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x5f, 0x4f, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x05, 0x12, 0x3a, 0x0a, 0x36, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, + 0x1d, 0x0a, 0x19, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x07, 0x32, 0xb5, + 0x04, 0x0a, 0x0d, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x7e, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, 0x21, 0x47, - 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x41, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x90, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, - 0x74, 0x74, 0x72, 0x2a, 0xfe, 0x02, 0x0a, 0x11, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x49, 0x52, - 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, - 0x0a, 0x22, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x56, 0x34, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, - 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x41, 0x44, - 0x4d, 0x49, 0x4e, 0x5f, 0x56, 0x36, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x27, - 0x0a, 0x23, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x41, 0x44, - 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x34, 0x0a, 0x30, 0x56, 0x49, 0x52, 0x54, 0x55, - 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, - 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x54, 0x4c, 0x31, 0x5f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x3a, 0x0a, - 0x36, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, - 0x50, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x3a, 0x0a, 0x36, 0x56, 0x49, 0x52, - 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x33, 0x5f, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, - 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x41, 0x42, - 0x45, 0x4c, 0x10, 0x07, 0x32, 0xb5, 0x04, 0x0a, 0x0d, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x7e, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x31, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x31, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x32, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x56, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, - 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, - 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, + 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x37, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -947,15 +919,8 @@ func file_dataplane_standalone_proto_virtual_router_proto_init() { } } } - file_dataplane_standalone_proto_virtual_router_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetVirtualRouterAttributeRequest_AdminV4State)(nil), - (*SetVirtualRouterAttributeRequest_AdminV6State)(nil), - (*SetVirtualRouterAttributeRequest_SrcMacAddress)(nil), - (*SetVirtualRouterAttributeRequest_ViolationTtl1PacketAction)(nil), - (*SetVirtualRouterAttributeRequest_ViolationIpOptionsPacketAction)(nil), - (*SetVirtualRouterAttributeRequest_UnknownL3MulticastPacketAction)(nil), - (*SetVirtualRouterAttributeRequest_Label)(nil), - } + file_dataplane_standalone_proto_virtual_router_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_virtual_router_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/virtual_router.proto b/dataplane/standalone/proto/virtual_router.proto index bdb1b112..d81bcafb 100644 --- a/dataplane/standalone/proto/virtual_router.proto +++ b/dataplane/standalone/proto/virtual_router.proto @@ -7,83 +7,73 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum VirtualRouterAttr { - VIRTUAL_ROUTER_ATTR_UNSPECIFIED = 0; - VIRTUAL_ROUTER_ATTR_ADMIN_V4_STATE = 1; - VIRTUAL_ROUTER_ATTR_ADMIN_V6_STATE = 2; - VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS = 3; - VIRTUAL_ROUTER_ATTR_VIOLATION_TTL1_PACKET_ACTION = 4; - VIRTUAL_ROUTER_ATTR_VIOLATION_IP_OPTIONS_PACKET_ACTION = 5; - VIRTUAL_ROUTER_ATTR_UNKNOWN_L3_MULTICAST_PACKET_ACTION = 6; - VIRTUAL_ROUTER_ATTR_LABEL = 7; + VIRTUAL_ROUTER_ATTR_UNSPECIFIED = 0; + VIRTUAL_ROUTER_ATTR_ADMIN_V4_STATE = 1; + VIRTUAL_ROUTER_ATTR_ADMIN_V6_STATE = 2; + VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS = 3; + VIRTUAL_ROUTER_ATTR_VIOLATION_TTL1_PACKET_ACTION = 4; + VIRTUAL_ROUTER_ATTR_VIOLATION_IP_OPTIONS_PACKET_ACTION = 5; + VIRTUAL_ROUTER_ATTR_UNKNOWN_L3_MULTICAST_PACKET_ACTION = 6; + VIRTUAL_ROUTER_ATTR_LABEL = 7; } message CreateVirtualRouterRequest { - uint64 switch = 1; - - bool admin_v4_state = 2; - bool admin_v6_state = 3; - bytes src_mac_address = 4; - PacketAction violation_ttl1_packet_action = 5; - PacketAction violation_ip_options_packet_action = 6; - PacketAction unknown_l3_multicast_packet_action = 7; - bytes label = 8; - + uint64 switch = 1; + optional bool admin_v4_state = 2 [(attr_enum_value) = 1]; + optional bool admin_v6_state = 3 [(attr_enum_value) = 2]; + optional bytes src_mac_address = 4 [(attr_enum_value) = 3]; + optional PacketAction violation_ttl1_packet_action = 5 + [(attr_enum_value) = 4]; + optional PacketAction violation_ip_options_packet_action = 6 + [(attr_enum_value) = 5]; + optional PacketAction unknown_l3_multicast_packet_action = 7 + [(attr_enum_value) = 6]; + optional bytes label = 8 [(attr_enum_value) = 7]; } message CreateVirtualRouterResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveVirtualRouterRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveVirtualRouterResponse { - - -} +message RemoveVirtualRouterResponse {} message SetVirtualRouterAttributeRequest { - uint64 oid = 1; - oneof attr { - bool admin_v4_state = 2; - bool admin_v6_state = 3; - bytes src_mac_address = 4; - PacketAction violation_ttl1_packet_action = 5; - PacketAction violation_ip_options_packet_action = 6; - PacketAction unknown_l3_multicast_packet_action = 7; - bytes label = 8; - } + uint64 oid = 1; + optional bool admin_v4_state = 2 [(attr_enum_value) = 1]; + optional bool admin_v6_state = 3 [(attr_enum_value) = 2]; + optional bytes src_mac_address = 4 [(attr_enum_value) = 3]; + optional PacketAction violation_ttl1_packet_action = 5 + [(attr_enum_value) = 4]; + optional PacketAction violation_ip_options_packet_action = 6 + [(attr_enum_value) = 5]; + optional PacketAction unknown_l3_multicast_packet_action = 7 + [(attr_enum_value) = 6]; + optional bytes label = 8 [(attr_enum_value) = 7]; } -message SetVirtualRouterAttributeResponse { - - -} +message SetVirtualRouterAttributeResponse {} message GetVirtualRouterAttributeRequest { - uint64 oid = 1; - repeated VirtualRouterAttr attr_type = 2; - - + uint64 oid = 1; + repeated VirtualRouterAttr attr_type = 2; } message GetVirtualRouterAttributeResponse { - repeated VirtualRouterAttribute attr = 1; - - + VirtualRouterAttribute attr = 1; } - service VirtualRouter { - rpc CreateVirtualRouter (CreateVirtualRouterRequest) returns (CreateVirtualRouterResponse) {} - rpc RemoveVirtualRouter (RemoveVirtualRouterRequest) returns (RemoveVirtualRouterResponse) {} - rpc SetVirtualRouterAttribute (SetVirtualRouterAttributeRequest) returns (SetVirtualRouterAttributeResponse) {} - rpc GetVirtualRouterAttribute (GetVirtualRouterAttributeRequest) returns (GetVirtualRouterAttributeResponse) {} + rpc CreateVirtualRouter(CreateVirtualRouterRequest) + returns (CreateVirtualRouterResponse) {} + rpc RemoveVirtualRouter(RemoveVirtualRouterRequest) + returns (RemoveVirtualRouterResponse) {} + rpc SetVirtualRouterAttribute(SetVirtualRouterAttributeRequest) + returns (SetVirtualRouterAttributeResponse) {} + rpc GetVirtualRouterAttribute(GetVirtualRouterAttributeRequest) + returns (GetVirtualRouterAttributeResponse) {} } diff --git a/dataplane/standalone/proto/vlan.pb.go b/dataplane/standalone/proto/vlan.pb.go index c5e5f19f..2cab95c4 100755 --- a/dataplane/standalone/proto/vlan.pb.go +++ b/dataplane/standalone/proto/vlan.pb.go @@ -190,28 +190,28 @@ type CreateVlanRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - VlanId uint32 `protobuf:"varint,2,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - MaxLearnedAddresses uint32 `protobuf:"varint,3,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3" json:"max_learned_addresses,omitempty"` - StpInstance uint64 `protobuf:"varint,4,opt,name=stp_instance,json=stpInstance,proto3" json:"stp_instance,omitempty"` - LearnDisable bool `protobuf:"varint,5,opt,name=learn_disable,json=learnDisable,proto3" json:"learn_disable,omitempty"` - Ipv4McastLookupKeyType VlanMcastLookupKeyType `protobuf:"varint,6,opt,name=ipv4_mcast_lookup_key_type,json=ipv4McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType" json:"ipv4_mcast_lookup_key_type,omitempty"` - Ipv6McastLookupKeyType VlanMcastLookupKeyType `protobuf:"varint,7,opt,name=ipv6_mcast_lookup_key_type,json=ipv6McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType" json:"ipv6_mcast_lookup_key_type,omitempty"` - UnknownNonIpMcastOutputGroupId uint64 `protobuf:"varint,8,opt,name=unknown_non_ip_mcast_output_group_id,json=unknownNonIpMcastOutputGroupId,proto3" json:"unknown_non_ip_mcast_output_group_id,omitempty"` - UnknownIpv4McastOutputGroupId uint64 `protobuf:"varint,9,opt,name=unknown_ipv4_mcast_output_group_id,json=unknownIpv4McastOutputGroupId,proto3" json:"unknown_ipv4_mcast_output_group_id,omitempty"` - UnknownIpv6McastOutputGroupId uint64 `protobuf:"varint,10,opt,name=unknown_ipv6_mcast_output_group_id,json=unknownIpv6McastOutputGroupId,proto3" json:"unknown_ipv6_mcast_output_group_id,omitempty"` - UnknownLinklocalMcastOutputGroupId uint64 `protobuf:"varint,11,opt,name=unknown_linklocal_mcast_output_group_id,json=unknownLinklocalMcastOutputGroupId,proto3" json:"unknown_linklocal_mcast_output_group_id,omitempty"` - IngressAcl uint64 `protobuf:"varint,12,opt,name=ingress_acl,json=ingressAcl,proto3" json:"ingress_acl,omitempty"` - EgressAcl uint64 `protobuf:"varint,13,opt,name=egress_acl,json=egressAcl,proto3" json:"egress_acl,omitempty"` - MetaData uint32 `protobuf:"varint,14,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"` - UnknownUnicastFloodControlType VlanFloodControlType `protobuf:"varint,15,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType" json:"unknown_unicast_flood_control_type,omitempty"` - UnknownUnicastFloodGroup uint64 `protobuf:"varint,16,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3" json:"unknown_unicast_flood_group,omitempty"` - UnknownMulticastFloodControlType VlanFloodControlType `protobuf:"varint,17,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType" json:"unknown_multicast_flood_control_type,omitempty"` - UnknownMulticastFloodGroup uint64 `protobuf:"varint,18,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3" json:"unknown_multicast_flood_group,omitempty"` - BroadcastFloodControlType VlanFloodControlType `protobuf:"varint,19,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType" json:"broadcast_flood_control_type,omitempty"` - BroadcastFloodGroup uint64 `protobuf:"varint,20,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3" json:"broadcast_flood_group,omitempty"` - CustomIgmpSnoopingEnable bool `protobuf:"varint,21,opt,name=custom_igmp_snooping_enable,json=customIgmpSnoopingEnable,proto3" json:"custom_igmp_snooping_enable,omitempty"` - TamObject []uint64 `protobuf:"varint,22,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + VlanId *uint32 `protobuf:"varint,2,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,3,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + StpInstance *uint64 `protobuf:"varint,4,opt,name=stp_instance,json=stpInstance,proto3,oneof" json:"stp_instance,omitempty"` + LearnDisable *bool `protobuf:"varint,5,opt,name=learn_disable,json=learnDisable,proto3,oneof" json:"learn_disable,omitempty"` + Ipv4McastLookupKeyType *VlanMcastLookupKeyType `protobuf:"varint,6,opt,name=ipv4_mcast_lookup_key_type,json=ipv4McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType,oneof" json:"ipv4_mcast_lookup_key_type,omitempty"` + Ipv6McastLookupKeyType *VlanMcastLookupKeyType `protobuf:"varint,7,opt,name=ipv6_mcast_lookup_key_type,json=ipv6McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType,oneof" json:"ipv6_mcast_lookup_key_type,omitempty"` + UnknownNonIpMcastOutputGroupId *uint64 `protobuf:"varint,8,opt,name=unknown_non_ip_mcast_output_group_id,json=unknownNonIpMcastOutputGroupId,proto3,oneof" json:"unknown_non_ip_mcast_output_group_id,omitempty"` + UnknownIpv4McastOutputGroupId *uint64 `protobuf:"varint,9,opt,name=unknown_ipv4_mcast_output_group_id,json=unknownIpv4McastOutputGroupId,proto3,oneof" json:"unknown_ipv4_mcast_output_group_id,omitempty"` + UnknownIpv6McastOutputGroupId *uint64 `protobuf:"varint,10,opt,name=unknown_ipv6_mcast_output_group_id,json=unknownIpv6McastOutputGroupId,proto3,oneof" json:"unknown_ipv6_mcast_output_group_id,omitempty"` + UnknownLinklocalMcastOutputGroupId *uint64 `protobuf:"varint,11,opt,name=unknown_linklocal_mcast_output_group_id,json=unknownLinklocalMcastOutputGroupId,proto3,oneof" json:"unknown_linklocal_mcast_output_group_id,omitempty"` + IngressAcl *uint64 `protobuf:"varint,12,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,13,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + MetaData *uint32 `protobuf:"varint,14,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + UnknownUnicastFloodControlType *VlanFloodControlType `protobuf:"varint,15,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"unknown_unicast_flood_control_type,omitempty"` + UnknownUnicastFloodGroup *uint64 `protobuf:"varint,16,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3,oneof" json:"unknown_unicast_flood_group,omitempty"` + UnknownMulticastFloodControlType *VlanFloodControlType `protobuf:"varint,17,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"unknown_multicast_flood_control_type,omitempty"` + UnknownMulticastFloodGroup *uint64 `protobuf:"varint,18,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3,oneof" json:"unknown_multicast_flood_group,omitempty"` + BroadcastFloodControlType *VlanFloodControlType `protobuf:"varint,19,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"broadcast_flood_control_type,omitempty"` + BroadcastFloodGroup *uint64 `protobuf:"varint,20,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3,oneof" json:"broadcast_flood_group,omitempty"` + CustomIgmpSnoopingEnable *bool `protobuf:"varint,21,opt,name=custom_igmp_snooping_enable,json=customIgmpSnoopingEnable,proto3,oneof" json:"custom_igmp_snooping_enable,omitempty"` + TamObject []uint64 `protobuf:"varint,22,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` } func (x *CreateVlanRequest) Reset() { @@ -254,141 +254,141 @@ func (x *CreateVlanRequest) GetSwitch() uint64 { } func (x *CreateVlanRequest) GetVlanId() uint32 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *CreateVlanRequest) GetMaxLearnedAddresses() uint32 { - if x != nil { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *CreateVlanRequest) GetStpInstance() uint64 { - if x != nil { - return x.StpInstance + if x != nil && x.StpInstance != nil { + return *x.StpInstance } return 0 } func (x *CreateVlanRequest) GetLearnDisable() bool { - if x != nil { - return x.LearnDisable + if x != nil && x.LearnDisable != nil { + return *x.LearnDisable } return false } func (x *CreateVlanRequest) GetIpv4McastLookupKeyType() VlanMcastLookupKeyType { - if x != nil { - return x.Ipv4McastLookupKeyType + if x != nil && x.Ipv4McastLookupKeyType != nil { + return *x.Ipv4McastLookupKeyType } return VlanMcastLookupKeyType_VLAN_MCAST_LOOKUP_KEY_TYPE_UNSPECIFIED } func (x *CreateVlanRequest) GetIpv6McastLookupKeyType() VlanMcastLookupKeyType { - if x != nil { - return x.Ipv6McastLookupKeyType + if x != nil && x.Ipv6McastLookupKeyType != nil { + return *x.Ipv6McastLookupKeyType } return VlanMcastLookupKeyType_VLAN_MCAST_LOOKUP_KEY_TYPE_UNSPECIFIED } func (x *CreateVlanRequest) GetUnknownNonIpMcastOutputGroupId() uint64 { - if x != nil { - return x.UnknownNonIpMcastOutputGroupId + if x != nil && x.UnknownNonIpMcastOutputGroupId != nil { + return *x.UnknownNonIpMcastOutputGroupId } return 0 } func (x *CreateVlanRequest) GetUnknownIpv4McastOutputGroupId() uint64 { - if x != nil { - return x.UnknownIpv4McastOutputGroupId + if x != nil && x.UnknownIpv4McastOutputGroupId != nil { + return *x.UnknownIpv4McastOutputGroupId } return 0 } func (x *CreateVlanRequest) GetUnknownIpv6McastOutputGroupId() uint64 { - if x != nil { - return x.UnknownIpv6McastOutputGroupId + if x != nil && x.UnknownIpv6McastOutputGroupId != nil { + return *x.UnknownIpv6McastOutputGroupId } return 0 } func (x *CreateVlanRequest) GetUnknownLinklocalMcastOutputGroupId() uint64 { - if x != nil { - return x.UnknownLinklocalMcastOutputGroupId + if x != nil && x.UnknownLinklocalMcastOutputGroupId != nil { + return *x.UnknownLinklocalMcastOutputGroupId } return 0 } func (x *CreateVlanRequest) GetIngressAcl() uint64 { - if x != nil { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *CreateVlanRequest) GetEgressAcl() uint64 { - if x != nil { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *CreateVlanRequest) GetMetaData() uint32 { - if x != nil { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *CreateVlanRequest) GetUnknownUnicastFloodControlType() VlanFloodControlType { - if x != nil { - return x.UnknownUnicastFloodControlType + if x != nil && x.UnknownUnicastFloodControlType != nil { + return *x.UnknownUnicastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *CreateVlanRequest) GetUnknownUnicastFloodGroup() uint64 { - if x != nil { - return x.UnknownUnicastFloodGroup + if x != nil && x.UnknownUnicastFloodGroup != nil { + return *x.UnknownUnicastFloodGroup } return 0 } func (x *CreateVlanRequest) GetUnknownMulticastFloodControlType() VlanFloodControlType { - if x != nil { - return x.UnknownMulticastFloodControlType + if x != nil && x.UnknownMulticastFloodControlType != nil { + return *x.UnknownMulticastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *CreateVlanRequest) GetUnknownMulticastFloodGroup() uint64 { - if x != nil { - return x.UnknownMulticastFloodGroup + if x != nil && x.UnknownMulticastFloodGroup != nil { + return *x.UnknownMulticastFloodGroup } return 0 } func (x *CreateVlanRequest) GetBroadcastFloodControlType() VlanFloodControlType { - if x != nil { - return x.BroadcastFloodControlType + if x != nil && x.BroadcastFloodControlType != nil { + return *x.BroadcastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *CreateVlanRequest) GetBroadcastFloodGroup() uint64 { - if x != nil { - return x.BroadcastFloodGroup + if x != nil && x.BroadcastFloodGroup != nil { + return *x.BroadcastFloodGroup } return 0 } func (x *CreateVlanRequest) GetCustomIgmpSnoopingEnable() bool { - if x != nil { - return x.CustomIgmpSnoopingEnable + if x != nil && x.CustomIgmpSnoopingEnable != nil { + return *x.CustomIgmpSnoopingEnable } return false } @@ -537,30 +537,27 @@ type SetVlanAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetVlanAttributeRequest_MaxLearnedAddresses - // *SetVlanAttributeRequest_StpInstance - // *SetVlanAttributeRequest_LearnDisable - // *SetVlanAttributeRequest_Ipv4McastLookupKeyType - // *SetVlanAttributeRequest_Ipv6McastLookupKeyType - // *SetVlanAttributeRequest_UnknownNonIpMcastOutputGroupId - // *SetVlanAttributeRequest_UnknownIpv4McastOutputGroupId - // *SetVlanAttributeRequest_UnknownIpv6McastOutputGroupId - // *SetVlanAttributeRequest_UnknownLinklocalMcastOutputGroupId - // *SetVlanAttributeRequest_IngressAcl - // *SetVlanAttributeRequest_EgressAcl - // *SetVlanAttributeRequest_MetaData - // *SetVlanAttributeRequest_UnknownUnicastFloodControlType - // *SetVlanAttributeRequest_UnknownUnicastFloodGroup - // *SetVlanAttributeRequest_UnknownMulticastFloodControlType - // *SetVlanAttributeRequest_UnknownMulticastFloodGroup - // *SetVlanAttributeRequest_BroadcastFloodControlType - // *SetVlanAttributeRequest_BroadcastFloodGroup - // *SetVlanAttributeRequest_CustomIgmpSnoopingEnable - // *SetVlanAttributeRequest_TamObject - Attr isSetVlanAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + MaxLearnedAddresses *uint32 `protobuf:"varint,2,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof" json:"max_learned_addresses,omitempty"` + StpInstance *uint64 `protobuf:"varint,3,opt,name=stp_instance,json=stpInstance,proto3,oneof" json:"stp_instance,omitempty"` + LearnDisable *bool `protobuf:"varint,4,opt,name=learn_disable,json=learnDisable,proto3,oneof" json:"learn_disable,omitempty"` + Ipv4McastLookupKeyType *VlanMcastLookupKeyType `protobuf:"varint,5,opt,name=ipv4_mcast_lookup_key_type,json=ipv4McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType,oneof" json:"ipv4_mcast_lookup_key_type,omitempty"` + Ipv6McastLookupKeyType *VlanMcastLookupKeyType `protobuf:"varint,6,opt,name=ipv6_mcast_lookup_key_type,json=ipv6McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType,oneof" json:"ipv6_mcast_lookup_key_type,omitempty"` + UnknownNonIpMcastOutputGroupId *uint64 `protobuf:"varint,7,opt,name=unknown_non_ip_mcast_output_group_id,json=unknownNonIpMcastOutputGroupId,proto3,oneof" json:"unknown_non_ip_mcast_output_group_id,omitempty"` + UnknownIpv4McastOutputGroupId *uint64 `protobuf:"varint,8,opt,name=unknown_ipv4_mcast_output_group_id,json=unknownIpv4McastOutputGroupId,proto3,oneof" json:"unknown_ipv4_mcast_output_group_id,omitempty"` + UnknownIpv6McastOutputGroupId *uint64 `protobuf:"varint,9,opt,name=unknown_ipv6_mcast_output_group_id,json=unknownIpv6McastOutputGroupId,proto3,oneof" json:"unknown_ipv6_mcast_output_group_id,omitempty"` + UnknownLinklocalMcastOutputGroupId *uint64 `protobuf:"varint,10,opt,name=unknown_linklocal_mcast_output_group_id,json=unknownLinklocalMcastOutputGroupId,proto3,oneof" json:"unknown_linklocal_mcast_output_group_id,omitempty"` + IngressAcl *uint64 `protobuf:"varint,11,opt,name=ingress_acl,json=ingressAcl,proto3,oneof" json:"ingress_acl,omitempty"` + EgressAcl *uint64 `protobuf:"varint,12,opt,name=egress_acl,json=egressAcl,proto3,oneof" json:"egress_acl,omitempty"` + MetaData *uint32 `protobuf:"varint,13,opt,name=meta_data,json=metaData,proto3,oneof" json:"meta_data,omitempty"` + UnknownUnicastFloodControlType *VlanFloodControlType `protobuf:"varint,14,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"unknown_unicast_flood_control_type,omitempty"` + UnknownUnicastFloodGroup *uint64 `protobuf:"varint,15,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3,oneof" json:"unknown_unicast_flood_group,omitempty"` + UnknownMulticastFloodControlType *VlanFloodControlType `protobuf:"varint,16,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"unknown_multicast_flood_control_type,omitempty"` + UnknownMulticastFloodGroup *uint64 `protobuf:"varint,17,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3,oneof" json:"unknown_multicast_flood_group,omitempty"` + BroadcastFloodControlType *VlanFloodControlType `protobuf:"varint,18,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof" json:"broadcast_flood_control_type,omitempty"` + BroadcastFloodGroup *uint64 `protobuf:"varint,19,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3,oneof" json:"broadcast_flood_group,omitempty"` + CustomIgmpSnoopingEnable *bool `protobuf:"varint,20,opt,name=custom_igmp_snooping_enable,json=customIgmpSnoopingEnable,proto3,oneof" json:"custom_igmp_snooping_enable,omitempty"` + TamObject []uint64 `protobuf:"varint,21,rep,packed,name=tam_object,json=tamObject,proto3" json:"tam_object,omitempty"` } func (x *SetVlanAttributeRequest) Reset() { @@ -602,277 +599,146 @@ func (x *SetVlanAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetVlanAttributeRequest) GetAttr() isSetVlanAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetVlanAttributeRequest) GetMaxLearnedAddresses() uint32 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_MaxLearnedAddresses); ok { - return x.MaxLearnedAddresses + if x != nil && x.MaxLearnedAddresses != nil { + return *x.MaxLearnedAddresses } return 0 } func (x *SetVlanAttributeRequest) GetStpInstance() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_StpInstance); ok { - return x.StpInstance + if x != nil && x.StpInstance != nil { + return *x.StpInstance } return 0 } func (x *SetVlanAttributeRequest) GetLearnDisable() bool { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_LearnDisable); ok { - return x.LearnDisable + if x != nil && x.LearnDisable != nil { + return *x.LearnDisable } return false } func (x *SetVlanAttributeRequest) GetIpv4McastLookupKeyType() VlanMcastLookupKeyType { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_Ipv4McastLookupKeyType); ok { - return x.Ipv4McastLookupKeyType + if x != nil && x.Ipv4McastLookupKeyType != nil { + return *x.Ipv4McastLookupKeyType } return VlanMcastLookupKeyType_VLAN_MCAST_LOOKUP_KEY_TYPE_UNSPECIFIED } func (x *SetVlanAttributeRequest) GetIpv6McastLookupKeyType() VlanMcastLookupKeyType { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_Ipv6McastLookupKeyType); ok { - return x.Ipv6McastLookupKeyType + if x != nil && x.Ipv6McastLookupKeyType != nil { + return *x.Ipv6McastLookupKeyType } return VlanMcastLookupKeyType_VLAN_MCAST_LOOKUP_KEY_TYPE_UNSPECIFIED } func (x *SetVlanAttributeRequest) GetUnknownNonIpMcastOutputGroupId() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_UnknownNonIpMcastOutputGroupId); ok { - return x.UnknownNonIpMcastOutputGroupId + if x != nil && x.UnknownNonIpMcastOutputGroupId != nil { + return *x.UnknownNonIpMcastOutputGroupId } return 0 } func (x *SetVlanAttributeRequest) GetUnknownIpv4McastOutputGroupId() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_UnknownIpv4McastOutputGroupId); ok { - return x.UnknownIpv4McastOutputGroupId + if x != nil && x.UnknownIpv4McastOutputGroupId != nil { + return *x.UnknownIpv4McastOutputGroupId } return 0 } func (x *SetVlanAttributeRequest) GetUnknownIpv6McastOutputGroupId() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_UnknownIpv6McastOutputGroupId); ok { - return x.UnknownIpv6McastOutputGroupId + if x != nil && x.UnknownIpv6McastOutputGroupId != nil { + return *x.UnknownIpv6McastOutputGroupId } return 0 } func (x *SetVlanAttributeRequest) GetUnknownLinklocalMcastOutputGroupId() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_UnknownLinklocalMcastOutputGroupId); ok { - return x.UnknownLinklocalMcastOutputGroupId + if x != nil && x.UnknownLinklocalMcastOutputGroupId != nil { + return *x.UnknownLinklocalMcastOutputGroupId } return 0 } func (x *SetVlanAttributeRequest) GetIngressAcl() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_IngressAcl); ok { - return x.IngressAcl + if x != nil && x.IngressAcl != nil { + return *x.IngressAcl } return 0 } func (x *SetVlanAttributeRequest) GetEgressAcl() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_EgressAcl); ok { - return x.EgressAcl + if x != nil && x.EgressAcl != nil { + return *x.EgressAcl } return 0 } func (x *SetVlanAttributeRequest) GetMetaData() uint32 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_MetaData); ok { - return x.MetaData + if x != nil && x.MetaData != nil { + return *x.MetaData } return 0 } func (x *SetVlanAttributeRequest) GetUnknownUnicastFloodControlType() VlanFloodControlType { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_UnknownUnicastFloodControlType); ok { - return x.UnknownUnicastFloodControlType + if x != nil && x.UnknownUnicastFloodControlType != nil { + return *x.UnknownUnicastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *SetVlanAttributeRequest) GetUnknownUnicastFloodGroup() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_UnknownUnicastFloodGroup); ok { - return x.UnknownUnicastFloodGroup + if x != nil && x.UnknownUnicastFloodGroup != nil { + return *x.UnknownUnicastFloodGroup } return 0 } func (x *SetVlanAttributeRequest) GetUnknownMulticastFloodControlType() VlanFloodControlType { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_UnknownMulticastFloodControlType); ok { - return x.UnknownMulticastFloodControlType + if x != nil && x.UnknownMulticastFloodControlType != nil { + return *x.UnknownMulticastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *SetVlanAttributeRequest) GetUnknownMulticastFloodGroup() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_UnknownMulticastFloodGroup); ok { - return x.UnknownMulticastFloodGroup + if x != nil && x.UnknownMulticastFloodGroup != nil { + return *x.UnknownMulticastFloodGroup } return 0 } func (x *SetVlanAttributeRequest) GetBroadcastFloodControlType() VlanFloodControlType { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_BroadcastFloodControlType); ok { - return x.BroadcastFloodControlType + if x != nil && x.BroadcastFloodControlType != nil { + return *x.BroadcastFloodControlType } return VlanFloodControlType_VLAN_FLOOD_CONTROL_TYPE_UNSPECIFIED } func (x *SetVlanAttributeRequest) GetBroadcastFloodGroup() uint64 { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_BroadcastFloodGroup); ok { - return x.BroadcastFloodGroup + if x != nil && x.BroadcastFloodGroup != nil { + return *x.BroadcastFloodGroup } return 0 } func (x *SetVlanAttributeRequest) GetCustomIgmpSnoopingEnable() bool { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_CustomIgmpSnoopingEnable); ok { - return x.CustomIgmpSnoopingEnable + if x != nil && x.CustomIgmpSnoopingEnable != nil { + return *x.CustomIgmpSnoopingEnable } return false } -func (x *SetVlanAttributeRequest) GetTamObject() *Uint64List { - if x, ok := x.GetAttr().(*SetVlanAttributeRequest_TamObject); ok { +func (x *SetVlanAttributeRequest) GetTamObject() []uint64 { + if x != nil { return x.TamObject } return nil } -type isSetVlanAttributeRequest_Attr interface { - isSetVlanAttributeRequest_Attr() -} - -type SetVlanAttributeRequest_MaxLearnedAddresses struct { - MaxLearnedAddresses uint32 `protobuf:"varint,2,opt,name=max_learned_addresses,json=maxLearnedAddresses,proto3,oneof"` -} - -type SetVlanAttributeRequest_StpInstance struct { - StpInstance uint64 `protobuf:"varint,3,opt,name=stp_instance,json=stpInstance,proto3,oneof"` -} - -type SetVlanAttributeRequest_LearnDisable struct { - LearnDisable bool `protobuf:"varint,4,opt,name=learn_disable,json=learnDisable,proto3,oneof"` -} - -type SetVlanAttributeRequest_Ipv4McastLookupKeyType struct { - Ipv4McastLookupKeyType VlanMcastLookupKeyType `protobuf:"varint,5,opt,name=ipv4_mcast_lookup_key_type,json=ipv4McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType,oneof"` -} - -type SetVlanAttributeRequest_Ipv6McastLookupKeyType struct { - Ipv6McastLookupKeyType VlanMcastLookupKeyType `protobuf:"varint,6,opt,name=ipv6_mcast_lookup_key_type,json=ipv6McastLookupKeyType,proto3,enum=lemming.dataplane.sai.VlanMcastLookupKeyType,oneof"` -} - -type SetVlanAttributeRequest_UnknownNonIpMcastOutputGroupId struct { - UnknownNonIpMcastOutputGroupId uint64 `protobuf:"varint,7,opt,name=unknown_non_ip_mcast_output_group_id,json=unknownNonIpMcastOutputGroupId,proto3,oneof"` -} - -type SetVlanAttributeRequest_UnknownIpv4McastOutputGroupId struct { - UnknownIpv4McastOutputGroupId uint64 `protobuf:"varint,8,opt,name=unknown_ipv4_mcast_output_group_id,json=unknownIpv4McastOutputGroupId,proto3,oneof"` -} - -type SetVlanAttributeRequest_UnknownIpv6McastOutputGroupId struct { - UnknownIpv6McastOutputGroupId uint64 `protobuf:"varint,9,opt,name=unknown_ipv6_mcast_output_group_id,json=unknownIpv6McastOutputGroupId,proto3,oneof"` -} - -type SetVlanAttributeRequest_UnknownLinklocalMcastOutputGroupId struct { - UnknownLinklocalMcastOutputGroupId uint64 `protobuf:"varint,10,opt,name=unknown_linklocal_mcast_output_group_id,json=unknownLinklocalMcastOutputGroupId,proto3,oneof"` -} - -type SetVlanAttributeRequest_IngressAcl struct { - IngressAcl uint64 `protobuf:"varint,11,opt,name=ingress_acl,json=ingressAcl,proto3,oneof"` -} - -type SetVlanAttributeRequest_EgressAcl struct { - EgressAcl uint64 `protobuf:"varint,12,opt,name=egress_acl,json=egressAcl,proto3,oneof"` -} - -type SetVlanAttributeRequest_MetaData struct { - MetaData uint32 `protobuf:"varint,13,opt,name=meta_data,json=metaData,proto3,oneof"` -} - -type SetVlanAttributeRequest_UnknownUnicastFloodControlType struct { - UnknownUnicastFloodControlType VlanFloodControlType `protobuf:"varint,14,opt,name=unknown_unicast_flood_control_type,json=unknownUnicastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof"` -} - -type SetVlanAttributeRequest_UnknownUnicastFloodGroup struct { - UnknownUnicastFloodGroup uint64 `protobuf:"varint,15,opt,name=unknown_unicast_flood_group,json=unknownUnicastFloodGroup,proto3,oneof"` -} - -type SetVlanAttributeRequest_UnknownMulticastFloodControlType struct { - UnknownMulticastFloodControlType VlanFloodControlType `protobuf:"varint,16,opt,name=unknown_multicast_flood_control_type,json=unknownMulticastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof"` -} - -type SetVlanAttributeRequest_UnknownMulticastFloodGroup struct { - UnknownMulticastFloodGroup uint64 `protobuf:"varint,17,opt,name=unknown_multicast_flood_group,json=unknownMulticastFloodGroup,proto3,oneof"` -} - -type SetVlanAttributeRequest_BroadcastFloodControlType struct { - BroadcastFloodControlType VlanFloodControlType `protobuf:"varint,18,opt,name=broadcast_flood_control_type,json=broadcastFloodControlType,proto3,enum=lemming.dataplane.sai.VlanFloodControlType,oneof"` -} - -type SetVlanAttributeRequest_BroadcastFloodGroup struct { - BroadcastFloodGroup uint64 `protobuf:"varint,19,opt,name=broadcast_flood_group,json=broadcastFloodGroup,proto3,oneof"` -} - -type SetVlanAttributeRequest_CustomIgmpSnoopingEnable struct { - CustomIgmpSnoopingEnable bool `protobuf:"varint,20,opt,name=custom_igmp_snooping_enable,json=customIgmpSnoopingEnable,proto3,oneof"` -} - -type SetVlanAttributeRequest_TamObject struct { - TamObject *Uint64List `protobuf:"bytes,21,opt,name=tam_object,json=tamObject,proto3,oneof"` -} - -func (*SetVlanAttributeRequest_MaxLearnedAddresses) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_StpInstance) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_LearnDisable) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_Ipv4McastLookupKeyType) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_Ipv6McastLookupKeyType) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_UnknownNonIpMcastOutputGroupId) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_UnknownIpv4McastOutputGroupId) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_UnknownIpv6McastOutputGroupId) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_UnknownLinklocalMcastOutputGroupId) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_IngressAcl) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_EgressAcl) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_MetaData) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_UnknownUnicastFloodControlType) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_UnknownUnicastFloodGroup) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_UnknownMulticastFloodControlType) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_UnknownMulticastFloodGroup) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_BroadcastFloodControlType) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_BroadcastFloodGroup) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_CustomIgmpSnoopingEnable) isSetVlanAttributeRequest_Attr() {} - -func (*SetVlanAttributeRequest_TamObject) isSetVlanAttributeRequest_Attr() {} - type SetVlanAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -971,7 +837,7 @@ type GetVlanAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*VlanAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *VlanAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetVlanAttributeResponse) Reset() { @@ -1006,7 +872,7 @@ func (*GetVlanAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_vlan_proto_rawDescGZIP(), []int{7} } -func (x *GetVlanAttributeResponse) GetAttr() []*VlanAttribute { +func (x *GetVlanAttributeResponse) GetAttr() *VlanAttribute { if x != nil { return x.Attr } @@ -1018,10 +884,10 @@ type CreateVlanMemberRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - VlanId uint64 `protobuf:"varint,2,opt,name=vlan_id,json=vlanId,proto3" json:"vlan_id,omitempty"` - BridgePortId uint64 `protobuf:"varint,3,opt,name=bridge_port_id,json=bridgePortId,proto3" json:"bridge_port_id,omitempty"` - VlanTaggingMode VlanTaggingMode `protobuf:"varint,4,opt,name=vlan_tagging_mode,json=vlanTaggingMode,proto3,enum=lemming.dataplane.sai.VlanTaggingMode" json:"vlan_tagging_mode,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + VlanId *uint64 `protobuf:"varint,2,opt,name=vlan_id,json=vlanId,proto3,oneof" json:"vlan_id,omitempty"` + BridgePortId *uint64 `protobuf:"varint,3,opt,name=bridge_port_id,json=bridgePortId,proto3,oneof" json:"bridge_port_id,omitempty"` + VlanTaggingMode *VlanTaggingMode `protobuf:"varint,4,opt,name=vlan_tagging_mode,json=vlanTaggingMode,proto3,enum=lemming.dataplane.sai.VlanTaggingMode,oneof" json:"vlan_tagging_mode,omitempty"` } func (x *CreateVlanMemberRequest) Reset() { @@ -1064,22 +930,22 @@ func (x *CreateVlanMemberRequest) GetSwitch() uint64 { } func (x *CreateVlanMemberRequest) GetVlanId() uint64 { - if x != nil { - return x.VlanId + if x != nil && x.VlanId != nil { + return *x.VlanId } return 0 } func (x *CreateVlanMemberRequest) GetBridgePortId() uint64 { - if x != nil { - return x.BridgePortId + if x != nil && x.BridgePortId != nil { + return *x.BridgePortId } return 0 } func (x *CreateVlanMemberRequest) GetVlanTaggingMode() VlanTaggingMode { - if x != nil { - return x.VlanTaggingMode + if x != nil && x.VlanTaggingMode != nil { + return *x.VlanTaggingMode } return VlanTaggingMode_VLAN_TAGGING_MODE_UNSPECIFIED } @@ -1221,11 +1087,8 @@ type SetVlanMemberAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetVlanMemberAttributeRequest_VlanTaggingMode - Attr isSetVlanMemberAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + VlanTaggingMode *VlanTaggingMode `protobuf:"varint,2,opt,name=vlan_tagging_mode,json=vlanTaggingMode,proto3,enum=lemming.dataplane.sai.VlanTaggingMode,oneof" json:"vlan_tagging_mode,omitempty"` } func (x *SetVlanMemberAttributeRequest) Reset() { @@ -1267,30 +1130,13 @@ func (x *SetVlanMemberAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetVlanMemberAttributeRequest) GetAttr() isSetVlanMemberAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetVlanMemberAttributeRequest) GetVlanTaggingMode() VlanTaggingMode { - if x, ok := x.GetAttr().(*SetVlanMemberAttributeRequest_VlanTaggingMode); ok { - return x.VlanTaggingMode + if x != nil && x.VlanTaggingMode != nil { + return *x.VlanTaggingMode } return VlanTaggingMode_VLAN_TAGGING_MODE_UNSPECIFIED } -type isSetVlanMemberAttributeRequest_Attr interface { - isSetVlanMemberAttributeRequest_Attr() -} - -type SetVlanMemberAttributeRequest_VlanTaggingMode struct { - VlanTaggingMode VlanTaggingMode `protobuf:"varint,2,opt,name=vlan_tagging_mode,json=vlanTaggingMode,proto3,enum=lemming.dataplane.sai.VlanTaggingMode,oneof"` -} - -func (*SetVlanMemberAttributeRequest_VlanTaggingMode) isSetVlanMemberAttributeRequest_Attr() {} - type SetVlanMemberAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1389,7 +1235,7 @@ type GetVlanMemberAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*VlanMemberAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *VlanMemberAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetVlanMemberAttributeResponse) Reset() { @@ -1424,7 +1270,7 @@ func (*GetVlanMemberAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_vlan_proto_rawDescGZIP(), []int{15} } -func (x *GetVlanMemberAttributeResponse) GetAttr() []*VlanMemberAttribute { +func (x *GetVlanMemberAttributeResponse) GetAttr() *VlanMemberAttribute { if x != nil { return x.Attr } @@ -1440,386 +1286,488 @@ var file_dataplane_standalone_proto_vlan_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x0b, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x11, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x32, - 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, - 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x70, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x65, - 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x69, 0x0a, 0x1a, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, - 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x69, - 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x69, 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, - 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x63, - 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x4c, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, - 0x69, 0x70, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4e, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x63, 0x61, 0x73, - 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x49, - 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x22, 0x75, 0x6e, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x49, 0x70, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, + 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x6d, 0x61, 0x78, + 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x01, + 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x73, 0x74, 0x70, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x02, 0x52, 0x0b, 0x73, 0x74, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x04, 0x52, 0x16, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x1a, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, + 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, + 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x05, 0x52, 0x16, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x63, 0x61, + 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x57, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, 0x6f, + 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x06, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x4e, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x22, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x07, 0x52, + 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, + 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0a, 0x48, 0x08, 0x52, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x27, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, - 0x6c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x69, - 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x74, - 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x77, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x27, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x09, + 0x52, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0c, 0x48, 0x0a, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, + 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0b, 0x52, + 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, + 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, - 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, - 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x3d, 0x0a, 0x1b, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x7b, - 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x75, - 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x6c, - 0x0a, 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, - 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, - 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x15, - 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x62, 0x72, 0x6f, + 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0d, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0e, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x86, 0x01, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, + 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0f, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x10, 0x52, 0x1a, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, + 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x77, 0x0a, 0x1c, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, + 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x13, 0x48, 0x11, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x12, 0x52, 0x13, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x5f, - 0x73, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x67, 0x6d, - 0x70, 0x53, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x16, 0x20, - 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x26, - 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, - 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xde, 0x0b, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, - 0x64, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x70, 0x5f, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x0b, 0x73, 0x74, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0d, - 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, - 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x16, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x63, - 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x6b, 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, - 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, - 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x16, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, - 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4e, 0x0a, - 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, - 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1e, 0x75, - 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4e, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x63, 0x61, 0x73, 0x74, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x4b, 0x0a, - 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1d, 0x75, 0x6e, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x22, 0x75, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x67, + 0x6d, 0x70, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x13, + 0x52, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x67, 0x6d, 0x70, 0x53, 0x6e, 0x6f, 0x6f, + 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, + 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x16, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x70, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x65, + 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, + 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, + 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x49, 0x70, 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x27, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x42, 0x2a, 0x0a, 0x28, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, + 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, + 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x26, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x25, + 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x11, 0x0a, 0x17, + 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x15, 0x6d, 0x61, 0x78, + 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, + 0x52, 0x13, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0c, 0x73, 0x74, 0x70, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x05, 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, + 0x03, 0x52, 0x16, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x1a, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, + 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x63, 0x61, + 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x04, 0x52, 0x16, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x63, 0x61, + 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x57, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, 0x6f, + 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x05, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x4e, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x22, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x06, 0x52, + 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x63, 0x61, 0x73, + 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0a, 0x48, 0x07, 0x52, 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x49, 0x70, + 0x76, 0x36, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x27, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x22, 0x75, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x63, 0x61, 0x73, - 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x21, - 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, - 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, - 0x63, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x79, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, - 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x75, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x1b, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x7d, 0x0a, - 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x1d, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x1a, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x6e, 0x0a, 0x1c, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, - 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x08, + 0x52, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x4d, 0x63, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0c, 0x48, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, + 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0a, 0x52, + 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0b, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, + 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, + 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0c, 0x52, 0x1e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0d, 0x52, 0x18, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x86, 0x01, 0x0a, 0x24, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, + 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x0e, 0x52, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x1d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x0f, 0x52, 0x1a, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, + 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x77, 0x0a, 0x1c, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x46, 0x6c, + 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x13, 0x48, 0x10, 0x52, 0x19, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x34, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, - 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x13, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, - 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x1b, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x18, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x67, 0x6d, 0x70, 0x53, 0x6e, 0x6f, 0x6f, 0x70, 0x69, - 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x74, 0x61, 0x6d, 0x5f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x06, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x69, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3c, 0x0a, - 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, - 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, - 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0xc4, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x24, - 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x8f, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x11, 0x52, 0x13, 0x62, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x67, + 0x6d, 0x70, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x12, + 0x52, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x67, 0x6d, 0x70, 0x53, 0x6e, 0x6f, 0x6f, + 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, + 0x0a, 0x74, 0x61, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x15, 0x20, 0x03, 0x28, + 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x52, 0x09, 0x74, 0x61, 0x6d, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, + 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x73, 0x74, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x1d, 0x0a, 0x1b, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, + 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, + 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x27, 0x0a, + 0x25, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x69, 0x70, + 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x25, 0x0a, + 0x23, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x42, 0x2a, 0x0a, 0x28, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x63, 0x6c, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x25, 0x0a, + 0x23, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, + 0x1e, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, + 0x1f, 0x0a, 0x1d, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x5f, 0x73, 0x6e, 0x6f, 0x6f, 0x70, + 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, + 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, + 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x12, 0x54, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x61, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, - 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, - 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x47, 0x65, - 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xfa, 0x06, 0x0a, - 0x08, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4c, 0x41, - 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x56, - 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, - 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45, 0x44, 0x5f, - 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x45, 0x53, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x56, - 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x50, 0x5f, 0x49, 0x4e, 0x53, - 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, - 0x4c, 0x45, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, - 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x06, 0x12, 0x28, - 0x0a, 0x24, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x56, 0x36, - 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, - 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x07, 0x12, 0x32, 0x0a, 0x2e, 0x56, 0x4c, 0x41, 0x4e, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4e, 0x4f, - 0x4e, 0x5f, 0x49, 0x50, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, - 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x08, 0x12, 0x30, 0x0a, 0x2c, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4f, 0x55, 0x54, - 0x50, 0x55, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x09, 0x12, 0x30, - 0x0a, 0x2c, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4f, - 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x0a, - 0x12, 0x35, 0x0a, 0x31, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, - 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, - 0x10, 0x0c, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x0d, 0x12, 0x17, 0x0a, 0x13, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x10, 0x0e, 0x12, 0x30, 0x0a, 0x2c, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, - 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0f, 0x12, 0x29, 0x0a, 0x25, 0x56, 0x4c, 0x41, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x55, 0x4e, 0x49, - 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x10, 0x10, 0x12, 0x32, 0x0a, 0x2e, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, - 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x10, 0x11, 0x12, 0x2b, 0x0a, 0x27, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, - 0x50, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, - 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x13, 0x12, - 0x23, 0x0a, 0x1f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x4f, - 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x4f, - 0x55, 0x50, 0x10, 0x14, 0x12, 0x29, 0x0a, 0x25, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x53, 0x4e, - 0x4f, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x15, 0x12, - 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x54, 0x41, 0x4d, - 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x16, 0x2a, 0x9d, 0x01, 0x0a, 0x0e, 0x56, 0x6c, - 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x1c, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, - 0x0a, 0x18, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, - 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x44, 0x10, - 0x02, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, - 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, - 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x32, 0xc0, 0x07, 0x0a, 0x04, 0x56, 0x6c, - 0x61, 0x6e, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, - 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, + 0x6f, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, + 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x54, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, + 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x22, 0x9a, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, + 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x5d, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x0f, 0x76, 0x6c, 0x61, + 0x6e, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x2c, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, + 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, + 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x1d, + 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, + 0x5d, 0x0a, 0x11, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, - 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, - 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, - 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, - 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, - 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, - 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, + 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, + 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, + 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, + 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, + 0x1e, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3e, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, + 0xfa, 0x06, 0x0a, 0x08, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, + 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x19, + 0x0a, 0x15, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x4d, 0x42, + 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, + 0x45, 0x44, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x45, 0x53, 0x10, 0x03, 0x12, 0x1a, + 0x0a, 0x16, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x53, 0x54, 0x50, 0x5f, + 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x5f, 0x44, 0x49, + 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, + 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, + 0x06, 0x12, 0x28, 0x0a, 0x24, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, + 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, + 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x07, 0x12, 0x32, 0x0a, 0x2e, 0x56, + 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x49, 0x50, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4f, 0x55, + 0x54, 0x50, 0x55, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x08, 0x12, + 0x30, 0x0a, 0x2c, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, + 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, + 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, + 0x09, 0x12, 0x30, 0x0a, 0x2c, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x43, 0x41, 0x53, + 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, + 0x44, 0x10, 0x0a, 0x12, 0x35, 0x0a, 0x31, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x4c, 0x4f, 0x43, + 0x41, 0x4c, 0x5f, 0x4d, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, + 0x41, 0x43, 0x4c, 0x10, 0x0c, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x4c, 0x10, 0x0d, 0x12, + 0x17, 0x0a, 0x13, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x4d, 0x45, 0x54, + 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0e, 0x12, 0x30, 0x0a, 0x2c, 0x56, 0x4c, 0x41, 0x4e, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x55, 0x4e, + 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0f, 0x12, 0x29, 0x0a, 0x25, 0x56, 0x4c, + 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, + 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x10, 0x10, 0x12, 0x32, 0x0a, 0x2e, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, + 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, + 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x11, 0x12, 0x2b, 0x0a, 0x27, 0x56, 0x4c, 0x41, + 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, + 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, + 0x4f, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x10, 0x13, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x14, 0x12, 0x29, 0x0a, 0x25, 0x56, 0x4c, 0x41, 0x4e, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x49, 0x47, 0x4d, 0x50, + 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x15, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, + 0x54, 0x41, 0x4d, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x16, 0x2a, 0x9d, 0x01, 0x0a, + 0x0e, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x12, + 0x20, 0x0a, 0x1c, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, + 0x23, 0x0a, 0x1f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x49, 0x44, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, + 0x42, 0x45, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x41, + 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x32, 0xc0, 0x07, 0x0a, + 0x04, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, + 0x6c, 0x61, 0x6e, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, - 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x75, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, + 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, + 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, + 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, + 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, + 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, + 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, + 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, + 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, + 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, + 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, + 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x34, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x56, 0x6c, 0x61, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, + 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1857,10 +1805,9 @@ var file_dataplane_standalone_proto_vlan_proto_goTypes = []interface{}{ (*GetVlanMemberAttributeResponse)(nil), // 17: lemming.dataplane.sai.GetVlanMemberAttributeResponse (VlanMcastLookupKeyType)(0), // 18: lemming.dataplane.sai.VlanMcastLookupKeyType (VlanFloodControlType)(0), // 19: lemming.dataplane.sai.VlanFloodControlType - (*Uint64List)(nil), // 20: lemming.dataplane.sai.Uint64List - (*VlanAttribute)(nil), // 21: lemming.dataplane.sai.VlanAttribute - (VlanTaggingMode)(0), // 22: lemming.dataplane.sai.VlanTaggingMode - (*VlanMemberAttribute)(nil), // 23: lemming.dataplane.sai.VlanMemberAttribute + (*VlanAttribute)(nil), // 20: lemming.dataplane.sai.VlanAttribute + (VlanTaggingMode)(0), // 21: lemming.dataplane.sai.VlanTaggingMode + (*VlanMemberAttribute)(nil), // 22: lemming.dataplane.sai.VlanMemberAttribute } var file_dataplane_standalone_proto_vlan_proto_depIdxs = []int32{ 18, // 0: lemming.dataplane.sai.CreateVlanRequest.ipv4_mcast_lookup_key_type:type_name -> lemming.dataplane.sai.VlanMcastLookupKeyType @@ -1873,34 +1820,33 @@ var file_dataplane_standalone_proto_vlan_proto_depIdxs = []int32{ 19, // 7: lemming.dataplane.sai.SetVlanAttributeRequest.unknown_unicast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType 19, // 8: lemming.dataplane.sai.SetVlanAttributeRequest.unknown_multicast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType 19, // 9: lemming.dataplane.sai.SetVlanAttributeRequest.broadcast_flood_control_type:type_name -> lemming.dataplane.sai.VlanFloodControlType - 20, // 10: lemming.dataplane.sai.SetVlanAttributeRequest.tam_object:type_name -> lemming.dataplane.sai.Uint64List - 0, // 11: lemming.dataplane.sai.GetVlanAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.VlanAttr - 21, // 12: lemming.dataplane.sai.GetVlanAttributeResponse.attr:type_name -> lemming.dataplane.sai.VlanAttribute - 22, // 13: lemming.dataplane.sai.CreateVlanMemberRequest.vlan_tagging_mode:type_name -> lemming.dataplane.sai.VlanTaggingMode - 22, // 14: lemming.dataplane.sai.SetVlanMemberAttributeRequest.vlan_tagging_mode:type_name -> lemming.dataplane.sai.VlanTaggingMode - 1, // 15: lemming.dataplane.sai.GetVlanMemberAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.VlanMemberAttr - 23, // 16: lemming.dataplane.sai.GetVlanMemberAttributeResponse.attr:type_name -> lemming.dataplane.sai.VlanMemberAttribute - 2, // 17: lemming.dataplane.sai.Vlan.CreateVlan:input_type -> lemming.dataplane.sai.CreateVlanRequest - 4, // 18: lemming.dataplane.sai.Vlan.RemoveVlan:input_type -> lemming.dataplane.sai.RemoveVlanRequest - 6, // 19: lemming.dataplane.sai.Vlan.SetVlanAttribute:input_type -> lemming.dataplane.sai.SetVlanAttributeRequest - 8, // 20: lemming.dataplane.sai.Vlan.GetVlanAttribute:input_type -> lemming.dataplane.sai.GetVlanAttributeRequest - 10, // 21: lemming.dataplane.sai.Vlan.CreateVlanMember:input_type -> lemming.dataplane.sai.CreateVlanMemberRequest - 12, // 22: lemming.dataplane.sai.Vlan.RemoveVlanMember:input_type -> lemming.dataplane.sai.RemoveVlanMemberRequest - 14, // 23: lemming.dataplane.sai.Vlan.SetVlanMemberAttribute:input_type -> lemming.dataplane.sai.SetVlanMemberAttributeRequest - 16, // 24: lemming.dataplane.sai.Vlan.GetVlanMemberAttribute:input_type -> lemming.dataplane.sai.GetVlanMemberAttributeRequest - 3, // 25: lemming.dataplane.sai.Vlan.CreateVlan:output_type -> lemming.dataplane.sai.CreateVlanResponse - 5, // 26: lemming.dataplane.sai.Vlan.RemoveVlan:output_type -> lemming.dataplane.sai.RemoveVlanResponse - 7, // 27: lemming.dataplane.sai.Vlan.SetVlanAttribute:output_type -> lemming.dataplane.sai.SetVlanAttributeResponse - 9, // 28: lemming.dataplane.sai.Vlan.GetVlanAttribute:output_type -> lemming.dataplane.sai.GetVlanAttributeResponse - 11, // 29: lemming.dataplane.sai.Vlan.CreateVlanMember:output_type -> lemming.dataplane.sai.CreateVlanMemberResponse - 13, // 30: lemming.dataplane.sai.Vlan.RemoveVlanMember:output_type -> lemming.dataplane.sai.RemoveVlanMemberResponse - 15, // 31: lemming.dataplane.sai.Vlan.SetVlanMemberAttribute:output_type -> lemming.dataplane.sai.SetVlanMemberAttributeResponse - 17, // 32: lemming.dataplane.sai.Vlan.GetVlanMemberAttribute:output_type -> lemming.dataplane.sai.GetVlanMemberAttributeResponse - 25, // [25:33] is the sub-list for method output_type - 17, // [17:25] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 0, // 10: lemming.dataplane.sai.GetVlanAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.VlanAttr + 20, // 11: lemming.dataplane.sai.GetVlanAttributeResponse.attr:type_name -> lemming.dataplane.sai.VlanAttribute + 21, // 12: lemming.dataplane.sai.CreateVlanMemberRequest.vlan_tagging_mode:type_name -> lemming.dataplane.sai.VlanTaggingMode + 21, // 13: lemming.dataplane.sai.SetVlanMemberAttributeRequest.vlan_tagging_mode:type_name -> lemming.dataplane.sai.VlanTaggingMode + 1, // 14: lemming.dataplane.sai.GetVlanMemberAttributeRequest.attr_type:type_name -> lemming.dataplane.sai.VlanMemberAttr + 22, // 15: lemming.dataplane.sai.GetVlanMemberAttributeResponse.attr:type_name -> lemming.dataplane.sai.VlanMemberAttribute + 2, // 16: lemming.dataplane.sai.Vlan.CreateVlan:input_type -> lemming.dataplane.sai.CreateVlanRequest + 4, // 17: lemming.dataplane.sai.Vlan.RemoveVlan:input_type -> lemming.dataplane.sai.RemoveVlanRequest + 6, // 18: lemming.dataplane.sai.Vlan.SetVlanAttribute:input_type -> lemming.dataplane.sai.SetVlanAttributeRequest + 8, // 19: lemming.dataplane.sai.Vlan.GetVlanAttribute:input_type -> lemming.dataplane.sai.GetVlanAttributeRequest + 10, // 20: lemming.dataplane.sai.Vlan.CreateVlanMember:input_type -> lemming.dataplane.sai.CreateVlanMemberRequest + 12, // 21: lemming.dataplane.sai.Vlan.RemoveVlanMember:input_type -> lemming.dataplane.sai.RemoveVlanMemberRequest + 14, // 22: lemming.dataplane.sai.Vlan.SetVlanMemberAttribute:input_type -> lemming.dataplane.sai.SetVlanMemberAttributeRequest + 16, // 23: lemming.dataplane.sai.Vlan.GetVlanMemberAttribute:input_type -> lemming.dataplane.sai.GetVlanMemberAttributeRequest + 3, // 24: lemming.dataplane.sai.Vlan.CreateVlan:output_type -> lemming.dataplane.sai.CreateVlanResponse + 5, // 25: lemming.dataplane.sai.Vlan.RemoveVlan:output_type -> lemming.dataplane.sai.RemoveVlanResponse + 7, // 26: lemming.dataplane.sai.Vlan.SetVlanAttribute:output_type -> lemming.dataplane.sai.SetVlanAttributeResponse + 9, // 27: lemming.dataplane.sai.Vlan.GetVlanAttribute:output_type -> lemming.dataplane.sai.GetVlanAttributeResponse + 11, // 28: lemming.dataplane.sai.Vlan.CreateVlanMember:output_type -> lemming.dataplane.sai.CreateVlanMemberResponse + 13, // 29: lemming.dataplane.sai.Vlan.RemoveVlanMember:output_type -> lemming.dataplane.sai.RemoveVlanMemberResponse + 15, // 30: lemming.dataplane.sai.Vlan.SetVlanMemberAttribute:output_type -> lemming.dataplane.sai.SetVlanMemberAttributeResponse + 17, // 31: lemming.dataplane.sai.Vlan.GetVlanMemberAttribute:output_type -> lemming.dataplane.sai.GetVlanMemberAttributeResponse + 24, // [24:32] is the sub-list for method output_type + 16, // [16:24] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_dataplane_standalone_proto_vlan_proto_init() } @@ -2103,31 +2049,10 @@ func file_dataplane_standalone_proto_vlan_proto_init() { } } } - file_dataplane_standalone_proto_vlan_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetVlanAttributeRequest_MaxLearnedAddresses)(nil), - (*SetVlanAttributeRequest_StpInstance)(nil), - (*SetVlanAttributeRequest_LearnDisable)(nil), - (*SetVlanAttributeRequest_Ipv4McastLookupKeyType)(nil), - (*SetVlanAttributeRequest_Ipv6McastLookupKeyType)(nil), - (*SetVlanAttributeRequest_UnknownNonIpMcastOutputGroupId)(nil), - (*SetVlanAttributeRequest_UnknownIpv4McastOutputGroupId)(nil), - (*SetVlanAttributeRequest_UnknownIpv6McastOutputGroupId)(nil), - (*SetVlanAttributeRequest_UnknownLinklocalMcastOutputGroupId)(nil), - (*SetVlanAttributeRequest_IngressAcl)(nil), - (*SetVlanAttributeRequest_EgressAcl)(nil), - (*SetVlanAttributeRequest_MetaData)(nil), - (*SetVlanAttributeRequest_UnknownUnicastFloodControlType)(nil), - (*SetVlanAttributeRequest_UnknownUnicastFloodGroup)(nil), - (*SetVlanAttributeRequest_UnknownMulticastFloodControlType)(nil), - (*SetVlanAttributeRequest_UnknownMulticastFloodGroup)(nil), - (*SetVlanAttributeRequest_BroadcastFloodControlType)(nil), - (*SetVlanAttributeRequest_BroadcastFloodGroup)(nil), - (*SetVlanAttributeRequest_CustomIgmpSnoopingEnable)(nil), - (*SetVlanAttributeRequest_TamObject)(nil), - } - file_dataplane_standalone_proto_vlan_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*SetVlanMemberAttributeRequest_VlanTaggingMode)(nil), - } + file_dataplane_standalone_proto_vlan_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_vlan_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_vlan_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_vlan_proto_msgTypes[12].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/vlan.proto b/dataplane/standalone/proto/vlan.proto index ae0425c8..dd60515e 100644 --- a/dataplane/standalone/proto/vlan.proto +++ b/dataplane/standalone/proto/vlan.proto @@ -7,187 +7,173 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum VlanAttr { - VLAN_ATTR_UNSPECIFIED = 0; - VLAN_ATTR_VLAN_ID = 1; - VLAN_ATTR_MEMBER_LIST = 2; - VLAN_ATTR_MAX_LEARNED_ADDRESSES = 3; - VLAN_ATTR_STP_INSTANCE = 4; - VLAN_ATTR_LEARN_DISABLE = 5; - VLAN_ATTR_IPV4_MCAST_LOOKUP_KEY_TYPE = 6; - VLAN_ATTR_IPV6_MCAST_LOOKUP_KEY_TYPE = 7; - VLAN_ATTR_UNKNOWN_NON_IP_MCAST_OUTPUT_GROUP_ID = 8; - VLAN_ATTR_UNKNOWN_IPV4_MCAST_OUTPUT_GROUP_ID = 9; - VLAN_ATTR_UNKNOWN_IPV6_MCAST_OUTPUT_GROUP_ID = 10; - VLAN_ATTR_UNKNOWN_LINKLOCAL_MCAST_OUTPUT_GROUP_ID = 11; - VLAN_ATTR_INGRESS_ACL = 12; - VLAN_ATTR_EGRESS_ACL = 13; - VLAN_ATTR_META_DATA = 14; - VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE = 15; - VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP = 16; - VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE = 17; - VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP = 18; - VLAN_ATTR_BROADCAST_FLOOD_CONTROL_TYPE = 19; - VLAN_ATTR_BROADCAST_FLOOD_GROUP = 20; - VLAN_ATTR_CUSTOM_IGMP_SNOOPING_ENABLE = 21; - VLAN_ATTR_TAM_OBJECT = 22; + VLAN_ATTR_UNSPECIFIED = 0; + VLAN_ATTR_VLAN_ID = 1; + VLAN_ATTR_MEMBER_LIST = 2; + VLAN_ATTR_MAX_LEARNED_ADDRESSES = 3; + VLAN_ATTR_STP_INSTANCE = 4; + VLAN_ATTR_LEARN_DISABLE = 5; + VLAN_ATTR_IPV4_MCAST_LOOKUP_KEY_TYPE = 6; + VLAN_ATTR_IPV6_MCAST_LOOKUP_KEY_TYPE = 7; + VLAN_ATTR_UNKNOWN_NON_IP_MCAST_OUTPUT_GROUP_ID = 8; + VLAN_ATTR_UNKNOWN_IPV4_MCAST_OUTPUT_GROUP_ID = 9; + VLAN_ATTR_UNKNOWN_IPV6_MCAST_OUTPUT_GROUP_ID = 10; + VLAN_ATTR_UNKNOWN_LINKLOCAL_MCAST_OUTPUT_GROUP_ID = 11; + VLAN_ATTR_INGRESS_ACL = 12; + VLAN_ATTR_EGRESS_ACL = 13; + VLAN_ATTR_META_DATA = 14; + VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE = 15; + VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP = 16; + VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE = 17; + VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP = 18; + VLAN_ATTR_BROADCAST_FLOOD_CONTROL_TYPE = 19; + VLAN_ATTR_BROADCAST_FLOOD_GROUP = 20; + VLAN_ATTR_CUSTOM_IGMP_SNOOPING_ENABLE = 21; + VLAN_ATTR_TAM_OBJECT = 22; } enum VlanMemberAttr { - VLAN_MEMBER_ATTR_UNSPECIFIED = 0; - VLAN_MEMBER_ATTR_VLAN_ID = 1; - VLAN_MEMBER_ATTR_BRIDGE_PORT_ID = 2; - VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE = 3; + VLAN_MEMBER_ATTR_UNSPECIFIED = 0; + VLAN_MEMBER_ATTR_VLAN_ID = 1; + VLAN_MEMBER_ATTR_BRIDGE_PORT_ID = 2; + VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE = 3; } message CreateVlanRequest { - uint64 switch = 1; - - uint32 vlan_id = 2; - uint32 max_learned_addresses = 3; - uint64 stp_instance = 4; - bool learn_disable = 5; - VlanMcastLookupKeyType ipv4_mcast_lookup_key_type = 6; - VlanMcastLookupKeyType ipv6_mcast_lookup_key_type = 7; - uint64 unknown_non_ip_mcast_output_group_id = 8; - uint64 unknown_ipv4_mcast_output_group_id = 9; - uint64 unknown_ipv6_mcast_output_group_id = 10; - uint64 unknown_linklocal_mcast_output_group_id = 11; - uint64 ingress_acl = 12; - uint64 egress_acl = 13; - uint32 meta_data = 14; - VlanFloodControlType unknown_unicast_flood_control_type = 15; - uint64 unknown_unicast_flood_group = 16; - VlanFloodControlType unknown_multicast_flood_control_type = 17; - uint64 unknown_multicast_flood_group = 18; - VlanFloodControlType broadcast_flood_control_type = 19; - uint64 broadcast_flood_group = 20; - bool custom_igmp_snooping_enable = 21; - repeated uint64 tam_object = 22; - + uint64 switch = 1; + optional uint32 vlan_id = 2 [(attr_enum_value) = 1]; + optional uint32 max_learned_addresses = 3 [(attr_enum_value) = 3]; + optional uint64 stp_instance = 4 [(attr_enum_value) = 4]; + optional bool learn_disable = 5 [(attr_enum_value) = 5]; + optional VlanMcastLookupKeyType ipv4_mcast_lookup_key_type = 6 + [(attr_enum_value) = 6]; + optional VlanMcastLookupKeyType ipv6_mcast_lookup_key_type = 7 + [(attr_enum_value) = 7]; + optional uint64 unknown_non_ip_mcast_output_group_id = 8 + [(attr_enum_value) = 8]; + optional uint64 unknown_ipv4_mcast_output_group_id = 9 + [(attr_enum_value) = 9]; + optional uint64 unknown_ipv6_mcast_output_group_id = 10 + [(attr_enum_value) = 10]; + optional uint64 unknown_linklocal_mcast_output_group_id = 11 + [(attr_enum_value) = 11]; + optional uint64 ingress_acl = 12 [(attr_enum_value) = 12]; + optional uint64 egress_acl = 13 [(attr_enum_value) = 13]; + optional uint32 meta_data = 14 [(attr_enum_value) = 14]; + optional VlanFloodControlType unknown_unicast_flood_control_type = 15 + [(attr_enum_value) = 15]; + optional uint64 unknown_unicast_flood_group = 16 [(attr_enum_value) = 16]; + optional VlanFloodControlType unknown_multicast_flood_control_type = 17 + [(attr_enum_value) = 17]; + optional uint64 unknown_multicast_flood_group = 18 [(attr_enum_value) = 18]; + optional VlanFloodControlType broadcast_flood_control_type = 19 + [(attr_enum_value) = 19]; + optional uint64 broadcast_flood_group = 20 [(attr_enum_value) = 20]; + optional bool custom_igmp_snooping_enable = 21 [(attr_enum_value) = 21]; + repeated uint64 tam_object = 22 [(attr_enum_value) = 22]; } message CreateVlanResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveVlanRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveVlanResponse { - - -} +message RemoveVlanResponse {} message SetVlanAttributeRequest { - uint64 oid = 1; - oneof attr { - uint32 max_learned_addresses = 2; - uint64 stp_instance = 3; - bool learn_disable = 4; - VlanMcastLookupKeyType ipv4_mcast_lookup_key_type = 5; - VlanMcastLookupKeyType ipv6_mcast_lookup_key_type = 6; - uint64 unknown_non_ip_mcast_output_group_id = 7; - uint64 unknown_ipv4_mcast_output_group_id = 8; - uint64 unknown_ipv6_mcast_output_group_id = 9; - uint64 unknown_linklocal_mcast_output_group_id = 10; - uint64 ingress_acl = 11; - uint64 egress_acl = 12; - uint32 meta_data = 13; - VlanFloodControlType unknown_unicast_flood_control_type = 14; - uint64 unknown_unicast_flood_group = 15; - VlanFloodControlType unknown_multicast_flood_control_type = 16; - uint64 unknown_multicast_flood_group = 17; - VlanFloodControlType broadcast_flood_control_type = 18; - uint64 broadcast_flood_group = 19; - bool custom_igmp_snooping_enable = 20; - Uint64List tam_object = 21; - } -} - -message SetVlanAttributeResponse { - - -} + uint64 oid = 1; + optional uint32 max_learned_addresses = 2 [(attr_enum_value) = 3]; + optional uint64 stp_instance = 3 [(attr_enum_value) = 4]; + optional bool learn_disable = 4 [(attr_enum_value) = 5]; + optional VlanMcastLookupKeyType ipv4_mcast_lookup_key_type = 5 + [(attr_enum_value) = 6]; + optional VlanMcastLookupKeyType ipv6_mcast_lookup_key_type = 6 + [(attr_enum_value) = 7]; + optional uint64 unknown_non_ip_mcast_output_group_id = 7 + [(attr_enum_value) = 8]; + optional uint64 unknown_ipv4_mcast_output_group_id = 8 + [(attr_enum_value) = 9]; + optional uint64 unknown_ipv6_mcast_output_group_id = 9 + [(attr_enum_value) = 10]; + optional uint64 unknown_linklocal_mcast_output_group_id = 10 + [(attr_enum_value) = 11]; + optional uint64 ingress_acl = 11 [(attr_enum_value) = 12]; + optional uint64 egress_acl = 12 [(attr_enum_value) = 13]; + optional uint32 meta_data = 13 [(attr_enum_value) = 14]; + optional VlanFloodControlType unknown_unicast_flood_control_type = 14 + [(attr_enum_value) = 15]; + optional uint64 unknown_unicast_flood_group = 15 [(attr_enum_value) = 16]; + optional VlanFloodControlType unknown_multicast_flood_control_type = 16 + [(attr_enum_value) = 17]; + optional uint64 unknown_multicast_flood_group = 17 [(attr_enum_value) = 18]; + optional VlanFloodControlType broadcast_flood_control_type = 18 + [(attr_enum_value) = 19]; + optional uint64 broadcast_flood_group = 19 [(attr_enum_value) = 20]; + optional bool custom_igmp_snooping_enable = 20 [(attr_enum_value) = 21]; + repeated uint64 tam_object = 21 [(attr_enum_value) = 22]; +} + +message SetVlanAttributeResponse {} message GetVlanAttributeRequest { - uint64 oid = 1; - repeated VlanAttr attr_type = 2; - - + uint64 oid = 1; + repeated VlanAttr attr_type = 2; } message GetVlanAttributeResponse { - repeated VlanAttribute attr = 1; - - + VlanAttribute attr = 1; } message CreateVlanMemberRequest { - uint64 switch = 1; - - uint64 vlan_id = 2; - uint64 bridge_port_id = 3; - VlanTaggingMode vlan_tagging_mode = 4; - + uint64 switch = 1; + optional uint64 vlan_id = 2 [(attr_enum_value) = 1]; + optional uint64 bridge_port_id = 3 [(attr_enum_value) = 2]; + optional VlanTaggingMode vlan_tagging_mode = 4 [(attr_enum_value) = 3]; } message CreateVlanMemberResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveVlanMemberRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveVlanMemberResponse { - - -} +message RemoveVlanMemberResponse {} message SetVlanMemberAttributeRequest { - uint64 oid = 1; - oneof attr { - VlanTaggingMode vlan_tagging_mode = 2; - } + uint64 oid = 1; + optional VlanTaggingMode vlan_tagging_mode = 2 [(attr_enum_value) = 3]; } -message SetVlanMemberAttributeResponse { - - -} +message SetVlanMemberAttributeResponse {} message GetVlanMemberAttributeRequest { - uint64 oid = 1; - repeated VlanMemberAttr attr_type = 2; - - + uint64 oid = 1; + repeated VlanMemberAttr attr_type = 2; } message GetVlanMemberAttributeResponse { - repeated VlanMemberAttribute attr = 1; - - + VlanMemberAttribute attr = 1; } - service Vlan { - rpc CreateVlan (CreateVlanRequest) returns (CreateVlanResponse) {} - rpc RemoveVlan (RemoveVlanRequest) returns (RemoveVlanResponse) {} - rpc SetVlanAttribute (SetVlanAttributeRequest) returns (SetVlanAttributeResponse) {} - rpc GetVlanAttribute (GetVlanAttributeRequest) returns (GetVlanAttributeResponse) {} - rpc CreateVlanMember (CreateVlanMemberRequest) returns (CreateVlanMemberResponse) {} - rpc RemoveVlanMember (RemoveVlanMemberRequest) returns (RemoveVlanMemberResponse) {} - rpc SetVlanMemberAttribute (SetVlanMemberAttributeRequest) returns (SetVlanMemberAttributeResponse) {} - rpc GetVlanMemberAttribute (GetVlanMemberAttributeRequest) returns (GetVlanMemberAttributeResponse) {} + rpc CreateVlan(CreateVlanRequest) returns (CreateVlanResponse) {} + rpc RemoveVlan(RemoveVlanRequest) returns (RemoveVlanResponse) {} + rpc SetVlanAttribute(SetVlanAttributeRequest) + returns (SetVlanAttributeResponse) {} + rpc GetVlanAttribute(GetVlanAttributeRequest) + returns (GetVlanAttributeResponse) {} + rpc CreateVlanMember(CreateVlanMemberRequest) + returns (CreateVlanMemberResponse) {} + rpc RemoveVlanMember(RemoveVlanMemberRequest) + returns (RemoveVlanMemberResponse) {} + rpc SetVlanMemberAttribute(SetVlanMemberAttributeRequest) + returns (SetVlanMemberAttributeResponse) {} + rpc GetVlanMemberAttribute(GetVlanMemberAttributeRequest) + returns (GetVlanMemberAttributeResponse) {} } diff --git a/dataplane/standalone/proto/wred.pb.go b/dataplane/standalone/proto/wred.pb.go index ef007377..e30fa4a9 100755 --- a/dataplane/standalone/proto/wred.pb.go +++ b/dataplane/standalone/proto/wred.pb.go @@ -150,33 +150,33 @@ type CreateWredRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` - GreenEnable bool `protobuf:"varint,2,opt,name=green_enable,json=greenEnable,proto3" json:"green_enable,omitempty"` - GreenMinThreshold uint32 `protobuf:"varint,3,opt,name=green_min_threshold,json=greenMinThreshold,proto3" json:"green_min_threshold,omitempty"` - GreenMaxThreshold uint32 `protobuf:"varint,4,opt,name=green_max_threshold,json=greenMaxThreshold,proto3" json:"green_max_threshold,omitempty"` - GreenDropProbability uint32 `protobuf:"varint,5,opt,name=green_drop_probability,json=greenDropProbability,proto3" json:"green_drop_probability,omitempty"` - YellowEnable bool `protobuf:"varint,6,opt,name=yellow_enable,json=yellowEnable,proto3" json:"yellow_enable,omitempty"` - YellowMinThreshold uint32 `protobuf:"varint,7,opt,name=yellow_min_threshold,json=yellowMinThreshold,proto3" json:"yellow_min_threshold,omitempty"` - YellowMaxThreshold uint32 `protobuf:"varint,8,opt,name=yellow_max_threshold,json=yellowMaxThreshold,proto3" json:"yellow_max_threshold,omitempty"` - YellowDropProbability uint32 `protobuf:"varint,9,opt,name=yellow_drop_probability,json=yellowDropProbability,proto3" json:"yellow_drop_probability,omitempty"` - RedEnable bool `protobuf:"varint,10,opt,name=red_enable,json=redEnable,proto3" json:"red_enable,omitempty"` - RedMinThreshold uint32 `protobuf:"varint,11,opt,name=red_min_threshold,json=redMinThreshold,proto3" json:"red_min_threshold,omitempty"` - RedMaxThreshold uint32 `protobuf:"varint,12,opt,name=red_max_threshold,json=redMaxThreshold,proto3" json:"red_max_threshold,omitempty"` - RedDropProbability uint32 `protobuf:"varint,13,opt,name=red_drop_probability,json=redDropProbability,proto3" json:"red_drop_probability,omitempty"` - Weight uint32 `protobuf:"varint,14,opt,name=weight,proto3" json:"weight,omitempty"` - EcnMarkMode EcnMarkMode `protobuf:"varint,15,opt,name=ecn_mark_mode,json=ecnMarkMode,proto3,enum=lemming.dataplane.sai.EcnMarkMode" json:"ecn_mark_mode,omitempty"` - EcnGreenMinThreshold uint32 `protobuf:"varint,16,opt,name=ecn_green_min_threshold,json=ecnGreenMinThreshold,proto3" json:"ecn_green_min_threshold,omitempty"` - EcnGreenMaxThreshold uint32 `protobuf:"varint,17,opt,name=ecn_green_max_threshold,json=ecnGreenMaxThreshold,proto3" json:"ecn_green_max_threshold,omitempty"` - EcnGreenMarkProbability uint32 `protobuf:"varint,18,opt,name=ecn_green_mark_probability,json=ecnGreenMarkProbability,proto3" json:"ecn_green_mark_probability,omitempty"` - EcnYellowMinThreshold uint32 `protobuf:"varint,19,opt,name=ecn_yellow_min_threshold,json=ecnYellowMinThreshold,proto3" json:"ecn_yellow_min_threshold,omitempty"` - EcnYellowMaxThreshold uint32 `protobuf:"varint,20,opt,name=ecn_yellow_max_threshold,json=ecnYellowMaxThreshold,proto3" json:"ecn_yellow_max_threshold,omitempty"` - EcnYellowMarkProbability uint32 `protobuf:"varint,21,opt,name=ecn_yellow_mark_probability,json=ecnYellowMarkProbability,proto3" json:"ecn_yellow_mark_probability,omitempty"` - EcnRedMinThreshold uint32 `protobuf:"varint,22,opt,name=ecn_red_min_threshold,json=ecnRedMinThreshold,proto3" json:"ecn_red_min_threshold,omitempty"` - EcnRedMaxThreshold uint32 `protobuf:"varint,23,opt,name=ecn_red_max_threshold,json=ecnRedMaxThreshold,proto3" json:"ecn_red_max_threshold,omitempty"` - EcnRedMarkProbability uint32 `protobuf:"varint,24,opt,name=ecn_red_mark_probability,json=ecnRedMarkProbability,proto3" json:"ecn_red_mark_probability,omitempty"` - EcnColorUnawareMinThreshold uint32 `protobuf:"varint,25,opt,name=ecn_color_unaware_min_threshold,json=ecnColorUnawareMinThreshold,proto3" json:"ecn_color_unaware_min_threshold,omitempty"` - EcnColorUnawareMaxThreshold uint32 `protobuf:"varint,26,opt,name=ecn_color_unaware_max_threshold,json=ecnColorUnawareMaxThreshold,proto3" json:"ecn_color_unaware_max_threshold,omitempty"` - EcnColorUnawareMarkProbability uint32 `protobuf:"varint,27,opt,name=ecn_color_unaware_mark_probability,json=ecnColorUnawareMarkProbability,proto3" json:"ecn_color_unaware_mark_probability,omitempty"` + Switch uint64 `protobuf:"varint,1,opt,name=switch,proto3" json:"switch,omitempty"` + GreenEnable *bool `protobuf:"varint,2,opt,name=green_enable,json=greenEnable,proto3,oneof" json:"green_enable,omitempty"` + GreenMinThreshold *uint32 `protobuf:"varint,3,opt,name=green_min_threshold,json=greenMinThreshold,proto3,oneof" json:"green_min_threshold,omitempty"` + GreenMaxThreshold *uint32 `protobuf:"varint,4,opt,name=green_max_threshold,json=greenMaxThreshold,proto3,oneof" json:"green_max_threshold,omitempty"` + GreenDropProbability *uint32 `protobuf:"varint,5,opt,name=green_drop_probability,json=greenDropProbability,proto3,oneof" json:"green_drop_probability,omitempty"` + YellowEnable *bool `protobuf:"varint,6,opt,name=yellow_enable,json=yellowEnable,proto3,oneof" json:"yellow_enable,omitempty"` + YellowMinThreshold *uint32 `protobuf:"varint,7,opt,name=yellow_min_threshold,json=yellowMinThreshold,proto3,oneof" json:"yellow_min_threshold,omitempty"` + YellowMaxThreshold *uint32 `protobuf:"varint,8,opt,name=yellow_max_threshold,json=yellowMaxThreshold,proto3,oneof" json:"yellow_max_threshold,omitempty"` + YellowDropProbability *uint32 `protobuf:"varint,9,opt,name=yellow_drop_probability,json=yellowDropProbability,proto3,oneof" json:"yellow_drop_probability,omitempty"` + RedEnable *bool `protobuf:"varint,10,opt,name=red_enable,json=redEnable,proto3,oneof" json:"red_enable,omitempty"` + RedMinThreshold *uint32 `protobuf:"varint,11,opt,name=red_min_threshold,json=redMinThreshold,proto3,oneof" json:"red_min_threshold,omitempty"` + RedMaxThreshold *uint32 `protobuf:"varint,12,opt,name=red_max_threshold,json=redMaxThreshold,proto3,oneof" json:"red_max_threshold,omitempty"` + RedDropProbability *uint32 `protobuf:"varint,13,opt,name=red_drop_probability,json=redDropProbability,proto3,oneof" json:"red_drop_probability,omitempty"` + Weight *uint32 `protobuf:"varint,14,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + EcnMarkMode *EcnMarkMode `protobuf:"varint,15,opt,name=ecn_mark_mode,json=ecnMarkMode,proto3,enum=lemming.dataplane.sai.EcnMarkMode,oneof" json:"ecn_mark_mode,omitempty"` + EcnGreenMinThreshold *uint32 `protobuf:"varint,16,opt,name=ecn_green_min_threshold,json=ecnGreenMinThreshold,proto3,oneof" json:"ecn_green_min_threshold,omitempty"` + EcnGreenMaxThreshold *uint32 `protobuf:"varint,17,opt,name=ecn_green_max_threshold,json=ecnGreenMaxThreshold,proto3,oneof" json:"ecn_green_max_threshold,omitempty"` + EcnGreenMarkProbability *uint32 `protobuf:"varint,18,opt,name=ecn_green_mark_probability,json=ecnGreenMarkProbability,proto3,oneof" json:"ecn_green_mark_probability,omitempty"` + EcnYellowMinThreshold *uint32 `protobuf:"varint,19,opt,name=ecn_yellow_min_threshold,json=ecnYellowMinThreshold,proto3,oneof" json:"ecn_yellow_min_threshold,omitempty"` + EcnYellowMaxThreshold *uint32 `protobuf:"varint,20,opt,name=ecn_yellow_max_threshold,json=ecnYellowMaxThreshold,proto3,oneof" json:"ecn_yellow_max_threshold,omitempty"` + EcnYellowMarkProbability *uint32 `protobuf:"varint,21,opt,name=ecn_yellow_mark_probability,json=ecnYellowMarkProbability,proto3,oneof" json:"ecn_yellow_mark_probability,omitempty"` + EcnRedMinThreshold *uint32 `protobuf:"varint,22,opt,name=ecn_red_min_threshold,json=ecnRedMinThreshold,proto3,oneof" json:"ecn_red_min_threshold,omitempty"` + EcnRedMaxThreshold *uint32 `protobuf:"varint,23,opt,name=ecn_red_max_threshold,json=ecnRedMaxThreshold,proto3,oneof" json:"ecn_red_max_threshold,omitempty"` + EcnRedMarkProbability *uint32 `protobuf:"varint,24,opt,name=ecn_red_mark_probability,json=ecnRedMarkProbability,proto3,oneof" json:"ecn_red_mark_probability,omitempty"` + EcnColorUnawareMinThreshold *uint32 `protobuf:"varint,25,opt,name=ecn_color_unaware_min_threshold,json=ecnColorUnawareMinThreshold,proto3,oneof" json:"ecn_color_unaware_min_threshold,omitempty"` + EcnColorUnawareMaxThreshold *uint32 `protobuf:"varint,26,opt,name=ecn_color_unaware_max_threshold,json=ecnColorUnawareMaxThreshold,proto3,oneof" json:"ecn_color_unaware_max_threshold,omitempty"` + EcnColorUnawareMarkProbability *uint32 `protobuf:"varint,27,opt,name=ecn_color_unaware_mark_probability,json=ecnColorUnawareMarkProbability,proto3,oneof" json:"ecn_color_unaware_mark_probability,omitempty"` } func (x *CreateWredRequest) Reset() { @@ -219,183 +219,183 @@ func (x *CreateWredRequest) GetSwitch() uint64 { } func (x *CreateWredRequest) GetGreenEnable() bool { - if x != nil { - return x.GreenEnable + if x != nil && x.GreenEnable != nil { + return *x.GreenEnable } return false } func (x *CreateWredRequest) GetGreenMinThreshold() uint32 { - if x != nil { - return x.GreenMinThreshold + if x != nil && x.GreenMinThreshold != nil { + return *x.GreenMinThreshold } return 0 } func (x *CreateWredRequest) GetGreenMaxThreshold() uint32 { - if x != nil { - return x.GreenMaxThreshold + if x != nil && x.GreenMaxThreshold != nil { + return *x.GreenMaxThreshold } return 0 } func (x *CreateWredRequest) GetGreenDropProbability() uint32 { - if x != nil { - return x.GreenDropProbability + if x != nil && x.GreenDropProbability != nil { + return *x.GreenDropProbability } return 0 } func (x *CreateWredRequest) GetYellowEnable() bool { - if x != nil { - return x.YellowEnable + if x != nil && x.YellowEnable != nil { + return *x.YellowEnable } return false } func (x *CreateWredRequest) GetYellowMinThreshold() uint32 { - if x != nil { - return x.YellowMinThreshold + if x != nil && x.YellowMinThreshold != nil { + return *x.YellowMinThreshold } return 0 } func (x *CreateWredRequest) GetYellowMaxThreshold() uint32 { - if x != nil { - return x.YellowMaxThreshold + if x != nil && x.YellowMaxThreshold != nil { + return *x.YellowMaxThreshold } return 0 } func (x *CreateWredRequest) GetYellowDropProbability() uint32 { - if x != nil { - return x.YellowDropProbability + if x != nil && x.YellowDropProbability != nil { + return *x.YellowDropProbability } return 0 } func (x *CreateWredRequest) GetRedEnable() bool { - if x != nil { - return x.RedEnable + if x != nil && x.RedEnable != nil { + return *x.RedEnable } return false } func (x *CreateWredRequest) GetRedMinThreshold() uint32 { - if x != nil { - return x.RedMinThreshold + if x != nil && x.RedMinThreshold != nil { + return *x.RedMinThreshold } return 0 } func (x *CreateWredRequest) GetRedMaxThreshold() uint32 { - if x != nil { - return x.RedMaxThreshold + if x != nil && x.RedMaxThreshold != nil { + return *x.RedMaxThreshold } return 0 } func (x *CreateWredRequest) GetRedDropProbability() uint32 { - if x != nil { - return x.RedDropProbability + if x != nil && x.RedDropProbability != nil { + return *x.RedDropProbability } return 0 } func (x *CreateWredRequest) GetWeight() uint32 { - if x != nil { - return x.Weight + if x != nil && x.Weight != nil { + return *x.Weight } return 0 } func (x *CreateWredRequest) GetEcnMarkMode() EcnMarkMode { - if x != nil { - return x.EcnMarkMode + if x != nil && x.EcnMarkMode != nil { + return *x.EcnMarkMode } return EcnMarkMode_ECN_MARK_MODE_UNSPECIFIED } func (x *CreateWredRequest) GetEcnGreenMinThreshold() uint32 { - if x != nil { - return x.EcnGreenMinThreshold + if x != nil && x.EcnGreenMinThreshold != nil { + return *x.EcnGreenMinThreshold } return 0 } func (x *CreateWredRequest) GetEcnGreenMaxThreshold() uint32 { - if x != nil { - return x.EcnGreenMaxThreshold + if x != nil && x.EcnGreenMaxThreshold != nil { + return *x.EcnGreenMaxThreshold } return 0 } func (x *CreateWredRequest) GetEcnGreenMarkProbability() uint32 { - if x != nil { - return x.EcnGreenMarkProbability + if x != nil && x.EcnGreenMarkProbability != nil { + return *x.EcnGreenMarkProbability } return 0 } func (x *CreateWredRequest) GetEcnYellowMinThreshold() uint32 { - if x != nil { - return x.EcnYellowMinThreshold + if x != nil && x.EcnYellowMinThreshold != nil { + return *x.EcnYellowMinThreshold } return 0 } func (x *CreateWredRequest) GetEcnYellowMaxThreshold() uint32 { - if x != nil { - return x.EcnYellowMaxThreshold + if x != nil && x.EcnYellowMaxThreshold != nil { + return *x.EcnYellowMaxThreshold } return 0 } func (x *CreateWredRequest) GetEcnYellowMarkProbability() uint32 { - if x != nil { - return x.EcnYellowMarkProbability + if x != nil && x.EcnYellowMarkProbability != nil { + return *x.EcnYellowMarkProbability } return 0 } func (x *CreateWredRequest) GetEcnRedMinThreshold() uint32 { - if x != nil { - return x.EcnRedMinThreshold + if x != nil && x.EcnRedMinThreshold != nil { + return *x.EcnRedMinThreshold } return 0 } func (x *CreateWredRequest) GetEcnRedMaxThreshold() uint32 { - if x != nil { - return x.EcnRedMaxThreshold + if x != nil && x.EcnRedMaxThreshold != nil { + return *x.EcnRedMaxThreshold } return 0 } func (x *CreateWredRequest) GetEcnRedMarkProbability() uint32 { - if x != nil { - return x.EcnRedMarkProbability + if x != nil && x.EcnRedMarkProbability != nil { + return *x.EcnRedMarkProbability } return 0 } func (x *CreateWredRequest) GetEcnColorUnawareMinThreshold() uint32 { - if x != nil { - return x.EcnColorUnawareMinThreshold + if x != nil && x.EcnColorUnawareMinThreshold != nil { + return *x.EcnColorUnawareMinThreshold } return 0 } func (x *CreateWredRequest) GetEcnColorUnawareMaxThreshold() uint32 { - if x != nil { - return x.EcnColorUnawareMaxThreshold + if x != nil && x.EcnColorUnawareMaxThreshold != nil { + return *x.EcnColorUnawareMaxThreshold } return 0 } func (x *CreateWredRequest) GetEcnColorUnawareMarkProbability() uint32 { - if x != nil { - return x.EcnColorUnawareMarkProbability + if x != nil && x.EcnColorUnawareMarkProbability != nil { + return *x.EcnColorUnawareMarkProbability } return 0 } @@ -537,36 +537,33 @@ type SetWredAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` - // Types that are assignable to Attr: - // - // *SetWredAttributeRequest_GreenEnable - // *SetWredAttributeRequest_GreenMinThreshold - // *SetWredAttributeRequest_GreenMaxThreshold - // *SetWredAttributeRequest_GreenDropProbability - // *SetWredAttributeRequest_YellowEnable - // *SetWredAttributeRequest_YellowMinThreshold - // *SetWredAttributeRequest_YellowMaxThreshold - // *SetWredAttributeRequest_YellowDropProbability - // *SetWredAttributeRequest_RedEnable - // *SetWredAttributeRequest_RedMinThreshold - // *SetWredAttributeRequest_RedMaxThreshold - // *SetWredAttributeRequest_RedDropProbability - // *SetWredAttributeRequest_Weight - // *SetWredAttributeRequest_EcnMarkMode - // *SetWredAttributeRequest_EcnGreenMinThreshold - // *SetWredAttributeRequest_EcnGreenMaxThreshold - // *SetWredAttributeRequest_EcnGreenMarkProbability - // *SetWredAttributeRequest_EcnYellowMinThreshold - // *SetWredAttributeRequest_EcnYellowMaxThreshold - // *SetWredAttributeRequest_EcnYellowMarkProbability - // *SetWredAttributeRequest_EcnRedMinThreshold - // *SetWredAttributeRequest_EcnRedMaxThreshold - // *SetWredAttributeRequest_EcnRedMarkProbability - // *SetWredAttributeRequest_EcnColorUnawareMinThreshold - // *SetWredAttributeRequest_EcnColorUnawareMaxThreshold - // *SetWredAttributeRequest_EcnColorUnawareMarkProbability - Attr isSetWredAttributeRequest_Attr `protobuf_oneof:"attr"` + Oid uint64 `protobuf:"varint,1,opt,name=oid,proto3" json:"oid,omitempty"` + GreenEnable *bool `protobuf:"varint,2,opt,name=green_enable,json=greenEnable,proto3,oneof" json:"green_enable,omitempty"` + GreenMinThreshold *uint32 `protobuf:"varint,3,opt,name=green_min_threshold,json=greenMinThreshold,proto3,oneof" json:"green_min_threshold,omitempty"` + GreenMaxThreshold *uint32 `protobuf:"varint,4,opt,name=green_max_threshold,json=greenMaxThreshold,proto3,oneof" json:"green_max_threshold,omitempty"` + GreenDropProbability *uint32 `protobuf:"varint,5,opt,name=green_drop_probability,json=greenDropProbability,proto3,oneof" json:"green_drop_probability,omitempty"` + YellowEnable *bool `protobuf:"varint,6,opt,name=yellow_enable,json=yellowEnable,proto3,oneof" json:"yellow_enable,omitempty"` + YellowMinThreshold *uint32 `protobuf:"varint,7,opt,name=yellow_min_threshold,json=yellowMinThreshold,proto3,oneof" json:"yellow_min_threshold,omitempty"` + YellowMaxThreshold *uint32 `protobuf:"varint,8,opt,name=yellow_max_threshold,json=yellowMaxThreshold,proto3,oneof" json:"yellow_max_threshold,omitempty"` + YellowDropProbability *uint32 `protobuf:"varint,9,opt,name=yellow_drop_probability,json=yellowDropProbability,proto3,oneof" json:"yellow_drop_probability,omitempty"` + RedEnable *bool `protobuf:"varint,10,opt,name=red_enable,json=redEnable,proto3,oneof" json:"red_enable,omitempty"` + RedMinThreshold *uint32 `protobuf:"varint,11,opt,name=red_min_threshold,json=redMinThreshold,proto3,oneof" json:"red_min_threshold,omitempty"` + RedMaxThreshold *uint32 `protobuf:"varint,12,opt,name=red_max_threshold,json=redMaxThreshold,proto3,oneof" json:"red_max_threshold,omitempty"` + RedDropProbability *uint32 `protobuf:"varint,13,opt,name=red_drop_probability,json=redDropProbability,proto3,oneof" json:"red_drop_probability,omitempty"` + Weight *uint32 `protobuf:"varint,14,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + EcnMarkMode *EcnMarkMode `protobuf:"varint,15,opt,name=ecn_mark_mode,json=ecnMarkMode,proto3,enum=lemming.dataplane.sai.EcnMarkMode,oneof" json:"ecn_mark_mode,omitempty"` + EcnGreenMinThreshold *uint32 `protobuf:"varint,16,opt,name=ecn_green_min_threshold,json=ecnGreenMinThreshold,proto3,oneof" json:"ecn_green_min_threshold,omitempty"` + EcnGreenMaxThreshold *uint32 `protobuf:"varint,17,opt,name=ecn_green_max_threshold,json=ecnGreenMaxThreshold,proto3,oneof" json:"ecn_green_max_threshold,omitempty"` + EcnGreenMarkProbability *uint32 `protobuf:"varint,18,opt,name=ecn_green_mark_probability,json=ecnGreenMarkProbability,proto3,oneof" json:"ecn_green_mark_probability,omitempty"` + EcnYellowMinThreshold *uint32 `protobuf:"varint,19,opt,name=ecn_yellow_min_threshold,json=ecnYellowMinThreshold,proto3,oneof" json:"ecn_yellow_min_threshold,omitempty"` + EcnYellowMaxThreshold *uint32 `protobuf:"varint,20,opt,name=ecn_yellow_max_threshold,json=ecnYellowMaxThreshold,proto3,oneof" json:"ecn_yellow_max_threshold,omitempty"` + EcnYellowMarkProbability *uint32 `protobuf:"varint,21,opt,name=ecn_yellow_mark_probability,json=ecnYellowMarkProbability,proto3,oneof" json:"ecn_yellow_mark_probability,omitempty"` + EcnRedMinThreshold *uint32 `protobuf:"varint,22,opt,name=ecn_red_min_threshold,json=ecnRedMinThreshold,proto3,oneof" json:"ecn_red_min_threshold,omitempty"` + EcnRedMaxThreshold *uint32 `protobuf:"varint,23,opt,name=ecn_red_max_threshold,json=ecnRedMaxThreshold,proto3,oneof" json:"ecn_red_max_threshold,omitempty"` + EcnRedMarkProbability *uint32 `protobuf:"varint,24,opt,name=ecn_red_mark_probability,json=ecnRedMarkProbability,proto3,oneof" json:"ecn_red_mark_probability,omitempty"` + EcnColorUnawareMinThreshold *uint32 `protobuf:"varint,25,opt,name=ecn_color_unaware_min_threshold,json=ecnColorUnawareMinThreshold,proto3,oneof" json:"ecn_color_unaware_min_threshold,omitempty"` + EcnColorUnawareMaxThreshold *uint32 `protobuf:"varint,26,opt,name=ecn_color_unaware_max_threshold,json=ecnColorUnawareMaxThreshold,proto3,oneof" json:"ecn_color_unaware_max_threshold,omitempty"` + EcnColorUnawareMarkProbability *uint32 `protobuf:"varint,27,opt,name=ecn_color_unaware_mark_probability,json=ecnColorUnawareMarkProbability,proto3,oneof" json:"ecn_color_unaware_mark_probability,omitempty"` } func (x *SetWredAttributeRequest) Reset() { @@ -608,355 +605,188 @@ func (x *SetWredAttributeRequest) GetOid() uint64 { return 0 } -func (m *SetWredAttributeRequest) GetAttr() isSetWredAttributeRequest_Attr { - if m != nil { - return m.Attr - } - return nil -} - func (x *SetWredAttributeRequest) GetGreenEnable() bool { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_GreenEnable); ok { - return x.GreenEnable + if x != nil && x.GreenEnable != nil { + return *x.GreenEnable } return false } func (x *SetWredAttributeRequest) GetGreenMinThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_GreenMinThreshold); ok { - return x.GreenMinThreshold + if x != nil && x.GreenMinThreshold != nil { + return *x.GreenMinThreshold } return 0 } func (x *SetWredAttributeRequest) GetGreenMaxThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_GreenMaxThreshold); ok { - return x.GreenMaxThreshold + if x != nil && x.GreenMaxThreshold != nil { + return *x.GreenMaxThreshold } return 0 } func (x *SetWredAttributeRequest) GetGreenDropProbability() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_GreenDropProbability); ok { - return x.GreenDropProbability + if x != nil && x.GreenDropProbability != nil { + return *x.GreenDropProbability } return 0 } func (x *SetWredAttributeRequest) GetYellowEnable() bool { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_YellowEnable); ok { - return x.YellowEnable + if x != nil && x.YellowEnable != nil { + return *x.YellowEnable } return false } func (x *SetWredAttributeRequest) GetYellowMinThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_YellowMinThreshold); ok { - return x.YellowMinThreshold + if x != nil && x.YellowMinThreshold != nil { + return *x.YellowMinThreshold } return 0 } func (x *SetWredAttributeRequest) GetYellowMaxThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_YellowMaxThreshold); ok { - return x.YellowMaxThreshold + if x != nil && x.YellowMaxThreshold != nil { + return *x.YellowMaxThreshold } return 0 } func (x *SetWredAttributeRequest) GetYellowDropProbability() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_YellowDropProbability); ok { - return x.YellowDropProbability + if x != nil && x.YellowDropProbability != nil { + return *x.YellowDropProbability } return 0 } func (x *SetWredAttributeRequest) GetRedEnable() bool { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_RedEnable); ok { - return x.RedEnable + if x != nil && x.RedEnable != nil { + return *x.RedEnable } return false } func (x *SetWredAttributeRequest) GetRedMinThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_RedMinThreshold); ok { - return x.RedMinThreshold + if x != nil && x.RedMinThreshold != nil { + return *x.RedMinThreshold } return 0 } func (x *SetWredAttributeRequest) GetRedMaxThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_RedMaxThreshold); ok { - return x.RedMaxThreshold + if x != nil && x.RedMaxThreshold != nil { + return *x.RedMaxThreshold } return 0 } func (x *SetWredAttributeRequest) GetRedDropProbability() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_RedDropProbability); ok { - return x.RedDropProbability + if x != nil && x.RedDropProbability != nil { + return *x.RedDropProbability } return 0 } func (x *SetWredAttributeRequest) GetWeight() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_Weight); ok { - return x.Weight + if x != nil && x.Weight != nil { + return *x.Weight } return 0 } func (x *SetWredAttributeRequest) GetEcnMarkMode() EcnMarkMode { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnMarkMode); ok { - return x.EcnMarkMode + if x != nil && x.EcnMarkMode != nil { + return *x.EcnMarkMode } return EcnMarkMode_ECN_MARK_MODE_UNSPECIFIED } func (x *SetWredAttributeRequest) GetEcnGreenMinThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnGreenMinThreshold); ok { - return x.EcnGreenMinThreshold + if x != nil && x.EcnGreenMinThreshold != nil { + return *x.EcnGreenMinThreshold } return 0 } func (x *SetWredAttributeRequest) GetEcnGreenMaxThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnGreenMaxThreshold); ok { - return x.EcnGreenMaxThreshold + if x != nil && x.EcnGreenMaxThreshold != nil { + return *x.EcnGreenMaxThreshold } return 0 } func (x *SetWredAttributeRequest) GetEcnGreenMarkProbability() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnGreenMarkProbability); ok { - return x.EcnGreenMarkProbability + if x != nil && x.EcnGreenMarkProbability != nil { + return *x.EcnGreenMarkProbability } return 0 } func (x *SetWredAttributeRequest) GetEcnYellowMinThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnYellowMinThreshold); ok { - return x.EcnYellowMinThreshold + if x != nil && x.EcnYellowMinThreshold != nil { + return *x.EcnYellowMinThreshold } return 0 } func (x *SetWredAttributeRequest) GetEcnYellowMaxThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnYellowMaxThreshold); ok { - return x.EcnYellowMaxThreshold + if x != nil && x.EcnYellowMaxThreshold != nil { + return *x.EcnYellowMaxThreshold } return 0 } func (x *SetWredAttributeRequest) GetEcnYellowMarkProbability() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnYellowMarkProbability); ok { - return x.EcnYellowMarkProbability + if x != nil && x.EcnYellowMarkProbability != nil { + return *x.EcnYellowMarkProbability } return 0 } func (x *SetWredAttributeRequest) GetEcnRedMinThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnRedMinThreshold); ok { - return x.EcnRedMinThreshold + if x != nil && x.EcnRedMinThreshold != nil { + return *x.EcnRedMinThreshold } return 0 } func (x *SetWredAttributeRequest) GetEcnRedMaxThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnRedMaxThreshold); ok { - return x.EcnRedMaxThreshold + if x != nil && x.EcnRedMaxThreshold != nil { + return *x.EcnRedMaxThreshold } return 0 } func (x *SetWredAttributeRequest) GetEcnRedMarkProbability() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnRedMarkProbability); ok { - return x.EcnRedMarkProbability + if x != nil && x.EcnRedMarkProbability != nil { + return *x.EcnRedMarkProbability } return 0 } func (x *SetWredAttributeRequest) GetEcnColorUnawareMinThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnColorUnawareMinThreshold); ok { - return x.EcnColorUnawareMinThreshold + if x != nil && x.EcnColorUnawareMinThreshold != nil { + return *x.EcnColorUnawareMinThreshold } return 0 } func (x *SetWredAttributeRequest) GetEcnColorUnawareMaxThreshold() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnColorUnawareMaxThreshold); ok { - return x.EcnColorUnawareMaxThreshold + if x != nil && x.EcnColorUnawareMaxThreshold != nil { + return *x.EcnColorUnawareMaxThreshold } return 0 } func (x *SetWredAttributeRequest) GetEcnColorUnawareMarkProbability() uint32 { - if x, ok := x.GetAttr().(*SetWredAttributeRequest_EcnColorUnawareMarkProbability); ok { - return x.EcnColorUnawareMarkProbability + if x != nil && x.EcnColorUnawareMarkProbability != nil { + return *x.EcnColorUnawareMarkProbability } return 0 } -type isSetWredAttributeRequest_Attr interface { - isSetWredAttributeRequest_Attr() -} - -type SetWredAttributeRequest_GreenEnable struct { - GreenEnable bool `protobuf:"varint,2,opt,name=green_enable,json=greenEnable,proto3,oneof"` -} - -type SetWredAttributeRequest_GreenMinThreshold struct { - GreenMinThreshold uint32 `protobuf:"varint,3,opt,name=green_min_threshold,json=greenMinThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_GreenMaxThreshold struct { - GreenMaxThreshold uint32 `protobuf:"varint,4,opt,name=green_max_threshold,json=greenMaxThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_GreenDropProbability struct { - GreenDropProbability uint32 `protobuf:"varint,5,opt,name=green_drop_probability,json=greenDropProbability,proto3,oneof"` -} - -type SetWredAttributeRequest_YellowEnable struct { - YellowEnable bool `protobuf:"varint,6,opt,name=yellow_enable,json=yellowEnable,proto3,oneof"` -} - -type SetWredAttributeRequest_YellowMinThreshold struct { - YellowMinThreshold uint32 `protobuf:"varint,7,opt,name=yellow_min_threshold,json=yellowMinThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_YellowMaxThreshold struct { - YellowMaxThreshold uint32 `protobuf:"varint,8,opt,name=yellow_max_threshold,json=yellowMaxThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_YellowDropProbability struct { - YellowDropProbability uint32 `protobuf:"varint,9,opt,name=yellow_drop_probability,json=yellowDropProbability,proto3,oneof"` -} - -type SetWredAttributeRequest_RedEnable struct { - RedEnable bool `protobuf:"varint,10,opt,name=red_enable,json=redEnable,proto3,oneof"` -} - -type SetWredAttributeRequest_RedMinThreshold struct { - RedMinThreshold uint32 `protobuf:"varint,11,opt,name=red_min_threshold,json=redMinThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_RedMaxThreshold struct { - RedMaxThreshold uint32 `protobuf:"varint,12,opt,name=red_max_threshold,json=redMaxThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_RedDropProbability struct { - RedDropProbability uint32 `protobuf:"varint,13,opt,name=red_drop_probability,json=redDropProbability,proto3,oneof"` -} - -type SetWredAttributeRequest_Weight struct { - Weight uint32 `protobuf:"varint,14,opt,name=weight,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnMarkMode struct { - EcnMarkMode EcnMarkMode `protobuf:"varint,15,opt,name=ecn_mark_mode,json=ecnMarkMode,proto3,enum=lemming.dataplane.sai.EcnMarkMode,oneof"` -} - -type SetWredAttributeRequest_EcnGreenMinThreshold struct { - EcnGreenMinThreshold uint32 `protobuf:"varint,16,opt,name=ecn_green_min_threshold,json=ecnGreenMinThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnGreenMaxThreshold struct { - EcnGreenMaxThreshold uint32 `protobuf:"varint,17,opt,name=ecn_green_max_threshold,json=ecnGreenMaxThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnGreenMarkProbability struct { - EcnGreenMarkProbability uint32 `protobuf:"varint,18,opt,name=ecn_green_mark_probability,json=ecnGreenMarkProbability,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnYellowMinThreshold struct { - EcnYellowMinThreshold uint32 `protobuf:"varint,19,opt,name=ecn_yellow_min_threshold,json=ecnYellowMinThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnYellowMaxThreshold struct { - EcnYellowMaxThreshold uint32 `protobuf:"varint,20,opt,name=ecn_yellow_max_threshold,json=ecnYellowMaxThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnYellowMarkProbability struct { - EcnYellowMarkProbability uint32 `protobuf:"varint,21,opt,name=ecn_yellow_mark_probability,json=ecnYellowMarkProbability,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnRedMinThreshold struct { - EcnRedMinThreshold uint32 `protobuf:"varint,22,opt,name=ecn_red_min_threshold,json=ecnRedMinThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnRedMaxThreshold struct { - EcnRedMaxThreshold uint32 `protobuf:"varint,23,opt,name=ecn_red_max_threshold,json=ecnRedMaxThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnRedMarkProbability struct { - EcnRedMarkProbability uint32 `protobuf:"varint,24,opt,name=ecn_red_mark_probability,json=ecnRedMarkProbability,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnColorUnawareMinThreshold struct { - EcnColorUnawareMinThreshold uint32 `protobuf:"varint,25,opt,name=ecn_color_unaware_min_threshold,json=ecnColorUnawareMinThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnColorUnawareMaxThreshold struct { - EcnColorUnawareMaxThreshold uint32 `protobuf:"varint,26,opt,name=ecn_color_unaware_max_threshold,json=ecnColorUnawareMaxThreshold,proto3,oneof"` -} - -type SetWredAttributeRequest_EcnColorUnawareMarkProbability struct { - EcnColorUnawareMarkProbability uint32 `protobuf:"varint,27,opt,name=ecn_color_unaware_mark_probability,json=ecnColorUnawareMarkProbability,proto3,oneof"` -} - -func (*SetWredAttributeRequest_GreenEnable) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_GreenMinThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_GreenMaxThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_GreenDropProbability) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_YellowEnable) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_YellowMinThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_YellowMaxThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_YellowDropProbability) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_RedEnable) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_RedMinThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_RedMaxThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_RedDropProbability) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_Weight) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnMarkMode) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnGreenMinThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnGreenMaxThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnGreenMarkProbability) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnYellowMinThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnYellowMaxThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnYellowMarkProbability) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnRedMinThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnRedMaxThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnRedMarkProbability) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnColorUnawareMinThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnColorUnawareMaxThreshold) isSetWredAttributeRequest_Attr() {} - -func (*SetWredAttributeRequest_EcnColorUnawareMarkProbability) isSetWredAttributeRequest_Attr() {} - type SetWredAttributeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1055,7 +885,7 @@ type GetWredAttributeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Attr []*WredAttribute `protobuf:"bytes,1,rep,name=attr,proto3" json:"attr,omitempty"` + Attr *WredAttribute `protobuf:"bytes,1,opt,name=attr,proto3" json:"attr,omitempty"` } func (x *GetWredAttributeResponse) Reset() { @@ -1090,7 +920,7 @@ func (*GetWredAttributeResponse) Descriptor() ([]byte, []int) { return file_dataplane_standalone_proto_wred_proto_rawDescGZIP(), []int{7} } -func (x *GetWredAttributeResponse) GetAttr() []*WredAttribute { +func (x *GetWredAttributeResponse) GetAttr() *WredAttribute { if x != nil { return x.Attr } @@ -1106,302 +936,418 @@ var file_dataplane_standalone_proto_wred_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, 0x0b, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbd, 0x12, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x67, 0x72, 0x65, - 0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, - 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, + 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x03, 0x48, 0x02, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x16, 0x67, 0x72, 0x65, + 0x65, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x04, 0x48, + 0x03, 0x52, 0x14, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0d, 0x79, 0x65, + 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x79, 0x65, 0x6c, 0x6c, 0x6f, + 0x77, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x79, 0x65, + 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x06, 0x48, 0x05, + 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, 0x48, 0x06, 0x52, 0x12, 0x79, + 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x17, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, + 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, 0x48, 0x07, 0x52, 0x15, 0x79, + 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x09, 0x48, 0x08, 0x52, 0x09, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, 0x52, 0x0f, 0x72, 0x65, 0x64, + 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x14, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x12, 0x72, 0x65, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, + 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x06, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, + 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x51, 0x0a, 0x0d, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x45, + 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0e, + 0x48, 0x0d, 0x52, 0x0b, 0x65, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, + 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x14, 0x65, 0x63, 0x6e, + 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x67, 0x72, 0x65, 0x65, - 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x44, - 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x23, - 0x0a, 0x0d, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, - 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, - 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x79, 0x65, 0x6c, 0x6c, 0x6f, - 0x77, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, - 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x69, - 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, - 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, - 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x65, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, - 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x46, 0x0a, 0x0d, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x45, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x65, 0x63, 0x6e, - 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x63, 0x6e, 0x5f, - 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x65, 0x63, 0x6e, 0x47, 0x72, - 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, - 0x35, 0x0a, 0x17, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, - 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x14, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, + 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, 0x48, 0x0f, 0x52, 0x14, 0x65, + 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x65, 0x63, 0x6e, 0x47, - 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, - 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, - 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x18, - 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, - 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, - 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x65, 0x63, 0x6e, 0x59, - 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, - 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x11, + 0x48, 0x10, 0x52, 0x17, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x72, 0x6b, + 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, + 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, 0x12, 0x52, 0x15, 0x65, 0x63, + 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, + 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, + 0x14, 0x48, 0x13, 0x52, 0x18, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, + 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x3c, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, + 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, + 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x16, 0x48, 0x15, 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x61, 0x78, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, + 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, + 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x17, 0x48, 0x16, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x61, + 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x4f, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, + 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x18, 0x48, + 0x17, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x4f, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, + 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x19, + 0x48, 0x18, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, + 0x61, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, + 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x19, 0x52, 0x1e, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, + 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x79, 0x65, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x79, 0x65, + 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x61, - 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x63, - 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x63, - 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x65, 0x63, - 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x44, 0x0a, 0x1f, 0x65, 0x63, 0x6e, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, + 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, + 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x65, 0x63, 0x6e, 0x5f, + 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x63, 0x6e, 0x5f, + 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, + 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x1a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, - 0x61, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, - 0x4a, 0x0a, 0x22, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x65, 0x63, 0x6e, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, - 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x26, 0x0a, 0x12, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6f, 0x69, 0x64, 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x72, 0x65, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xbd, 0x0b, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x23, - 0x0a, 0x0c, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, - 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x67, 0x72, 0x65, 0x65, 0x6e, - 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x14, 0x67, 0x72, 0x65, 0x65, 0x6e, - 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x25, 0x0a, 0x0d, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, - 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x79, 0x65, - 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, - 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x38, - 0x0a, 0x17, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, - 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x15, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, - 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, - 0x72, 0x65, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x64, - 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, 0x6f, - 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x12, 0x72, 0x65, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, - 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x06, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x48, 0x0a, 0x0d, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, 0x6d, - 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, - 0x61, 0x69, 0x2e, 0x45, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, - 0x52, 0x0b, 0x65, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, - 0x17, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x22, 0x0a, 0x20, + 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, + 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, + 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x26, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, + 0x25, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbd, 0x12, 0x0a, + 0x17, 0x53, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x0c, 0x67, 0x72, + 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x02, 0x48, 0x01, 0x52, 0x11, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x03, 0x48, 0x02, 0x52, 0x11, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x4d, + 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, + 0x0a, 0x16, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, + 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x04, 0x48, 0x03, 0x52, 0x14, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x72, 0x6f, + 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x0d, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x05, 0x48, 0x04, 0x52, 0x0c, + 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x14, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, + 0xb5, 0x18, 0x06, 0x48, 0x05, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, + 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x07, + 0x48, 0x06, 0x52, 0x12, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x17, 0x79, 0x65, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x08, + 0x48, 0x07, 0x52, 0x15, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, + 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0a, + 0x72, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x09, 0x48, 0x08, 0x52, 0x09, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, + 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0a, 0x48, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x69, + 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x11, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0b, 0x48, 0x0a, + 0x52, 0x0f, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x14, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, 0x6f, 0x70, + 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0c, 0x48, 0x0b, 0x52, 0x12, 0x72, 0x65, 0x64, 0x44, + 0x72, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0d, 0x48, 0x0c, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0d, 0x65, 0x63, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x45, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x0e, 0x48, 0x0d, 0x52, 0x0b, 0x65, 0x63, 0x6e, 0x4d, 0x61, 0x72, 0x6b, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x65, 0x63, 0x6e, 0x5f, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x0f, 0x48, 0x0e, 0x52, 0x14, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x17, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, - 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x14, 0x65, 0x63, 0x6e, 0x47, 0x72, - 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, - 0x3d, 0x0a, 0x1a, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x72, - 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x17, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, - 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x39, - 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, - 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x18, 0x65, 0x63, 0x6e, - 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x15, 0x65, - 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3f, 0x0a, 0x1b, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, - 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x18, 0x65, 0x63, 0x6e, - 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x65, 0x63, 0x6e, + 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x10, + 0x48, 0x0f, 0x52, 0x14, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x61, 0x78, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1a, 0x65, + 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, + 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x11, 0x48, 0x10, 0x52, 0x17, 0x65, 0x63, 0x6e, 0x47, 0x72, 0x65, 0x65, + 0x6e, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x12, 0x48, 0x11, 0x52, 0x15, 0x65, + 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x79, + 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x13, 0x48, + 0x12, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1b, 0x65, + 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, + 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x04, 0x80, 0xb5, 0x18, 0x14, 0x48, 0x13, 0x52, 0x18, 0x65, 0x63, 0x6e, 0x59, 0x65, 0x6c, + 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x69, - 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x33, 0x0a, 0x15, 0x65, 0x63, - 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x12, 0x65, 0x63, 0x6e, - 0x52, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, - 0x39, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, - 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x15, 0x65, 0x63, 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x50, - 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x1f, 0x65, 0x63, - 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, - 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, - 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x12, 0x46, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x15, 0x48, 0x14, 0x52, 0x12, 0x65, 0x63, + 0x6e, 0x52, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x15, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x16, 0x48, 0x15, 0x52, 0x12, 0x65, 0x63, 0x6e, 0x52, + 0x65, 0x64, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x42, 0x0a, 0x18, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x17, 0x48, 0x16, 0x52, 0x15, 0x65, 0x63, 0x6e, + 0x52, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, + 0x80, 0xb5, 0x18, 0x18, 0x48, 0x17, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x1f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0xb5, 0x18, 0x19, 0x48, 0x18, 0x52, 0x1b, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x22, 0x65, 0x63, 0x6e, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0xb5, 0x18, 0x1a, 0x48, 0x19, 0x52, 0x1e, 0x65, 0x63, 0x6e, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, + 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, + 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x79, + 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x70, + 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, + 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, + 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x63, + 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x65, 0x63, 0x6e, 0x5f, + 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1e, 0x0a, 0x1c, + 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x72, 0x6b, + 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x72, + 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x22, 0x0a, + 0x20, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, + 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x1b, 0x65, - 0x63, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, - 0x78, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4c, 0x0a, 0x22, 0x65, 0x63, - 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, - 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x1e, 0x65, 0x63, 0x6e, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x55, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x6f, - 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, - 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, - 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, - 0x74, 0x74, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x72, - 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe1, 0x07, - 0x0a, 0x08, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x57, 0x52, - 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, - 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, - 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, - 0x4c, 0x44, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, - 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x57, 0x52, 0x45, 0x44, 0x5f, - 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, - 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x04, 0x12, 0x1b, 0x0a, - 0x17, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, - 0x57, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x52, - 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, - 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x06, 0x12, 0x22, - 0x0a, 0x1e, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, - 0x4f, 0x57, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, - 0x10, 0x07, 0x12, 0x25, 0x0a, 0x21, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, - 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x42, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x57, 0x52, 0x45, - 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, - 0x45, 0x10, 0x09, 0x12, 0x1f, 0x0a, 0x1b, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, - 0x4c, 0x44, 0x10, 0x0a, 0x12, 0x1f, 0x0a, 0x1b, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, - 0x4f, 0x4c, 0x44, 0x10, 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, - 0x54, 0x52, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x42, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x57, 0x52, 0x45, - 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x57, 0x45, 0x49, 0x47, 0x48, 0x54, 0x10, 0x0d, 0x12, - 0x1b, 0x0a, 0x17, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, - 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x0e, 0x12, 0x25, 0x0a, 0x21, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x47, 0x52, - 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, - 0x44, 0x10, 0x0f, 0x12, 0x25, 0x0a, 0x21, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, - 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, - 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x10, 0x12, 0x28, 0x0a, 0x24, 0x57, 0x52, - 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x47, 0x52, 0x45, 0x45, - 0x4e, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, - 0x54, 0x59, 0x10, 0x11, 0x12, 0x26, 0x0a, 0x22, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, 0x49, 0x4e, - 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x12, 0x12, 0x26, 0x0a, 0x22, - 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x59, 0x45, - 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, - 0x4c, 0x44, 0x10, 0x13, 0x12, 0x29, 0x0a, 0x25, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, 0x41, 0x52, - 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x14, 0x12, - 0x23, 0x0a, 0x1f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, - 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, - 0x4c, 0x44, 0x10, 0x15, 0x12, 0x23, 0x0a, 0x1f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, - 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, - 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x16, 0x12, 0x26, 0x0a, 0x22, 0x57, 0x52, 0x45, - 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x4d, - 0x41, 0x52, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, - 0x17, 0x12, 0x2d, 0x0a, 0x29, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, - 0x43, 0x4e, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x41, 0x57, 0x41, 0x52, 0x45, - 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x18, - 0x12, 0x2d, 0x0a, 0x29, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, - 0x4e, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x41, 0x57, 0x41, 0x52, 0x45, 0x5f, - 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x19, 0x12, - 0x30, 0x0a, 0x2c, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, - 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x41, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4d, - 0x41, 0x52, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, - 0x1a, 0x32, 0xbe, 0x03, 0x0a, 0x04, 0x57, 0x72, 0x65, 0x64, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x57, 0x72, 0x65, 0x64, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, + 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x1a, 0x0a, 0x18, + 0x53, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, + 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x63, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x72, 0x65, 0x64, 0x12, 0x28, 0x2e, + 0x2e, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x38, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x72, 0x65, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, - 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, - 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, - 0x2e, 0x53, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, - 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, - 0x69, 0x6e, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x2a, 0xe1, 0x07, 0x0a, 0x08, 0x57, 0x72, + 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, + 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, + 0x1d, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, + 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x02, + 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x47, 0x52, + 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, + 0x44, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, + 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x42, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x57, 0x52, 0x45, + 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, + 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x52, + 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, + 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x07, 0x12, 0x25, + 0x0a, 0x21, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, + 0x4f, 0x57, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x09, 0x12, + 0x1f, 0x0a, 0x1b, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, 0x44, + 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x0a, + 0x12, 0x1f, 0x0a, 0x1b, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, 0x45, + 0x44, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, + 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x52, + 0x45, 0x44, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x57, 0x45, 0x49, 0x47, 0x48, 0x54, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x57, + 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x4d, 0x41, 0x52, + 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x0e, 0x12, 0x25, 0x0a, 0x21, 0x57, 0x52, 0x45, 0x44, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, + 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x0f, 0x12, + 0x25, 0x0a, 0x21, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, + 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, + 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x10, 0x12, 0x28, 0x0a, 0x24, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x41, + 0x52, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x11, + 0x12, 0x26, 0x0a, 0x22, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, + 0x4e, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, + 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x12, 0x12, 0x26, 0x0a, 0x22, 0x57, 0x52, 0x45, 0x44, + 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, + 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x13, + 0x12, 0x29, 0x0a, 0x25, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, + 0x4e, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, 0x50, 0x52, + 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x14, 0x12, 0x23, 0x0a, 0x1f, 0x57, + 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x52, 0x45, 0x44, + 0x5f, 0x4d, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x15, + 0x12, 0x23, 0x0a, 0x1f, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, + 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, + 0x4f, 0x4c, 0x44, 0x10, 0x16, 0x12, 0x26, 0x0a, 0x22, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, + 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, + 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x17, 0x12, 0x2d, 0x0a, + 0x29, 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x43, + 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x41, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4d, 0x49, 0x4e, + 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x18, 0x12, 0x2d, 0x0a, 0x29, + 0x57, 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x43, 0x4f, + 0x4c, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x41, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x5f, + 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x19, 0x12, 0x30, 0x0a, 0x2c, 0x57, + 0x52, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x45, 0x43, 0x4e, 0x5f, 0x43, 0x4f, 0x4c, + 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x41, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x5f, + 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x1a, 0x32, 0xbe, 0x03, + 0x0a, 0x04, 0x57, 0x72, 0x65, 0x64, 0x12, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x57, 0x72, 0x65, 0x64, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x72, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x72, 0x65, 0x64, 0x12, 0x28, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, + 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x57, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x75, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x73, 0x61, 0x69, 0x2e, 0x53, 0x65, 0x74, + 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x72, + 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x65, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x73, 0x61, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, + 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, + 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x65, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x6c, 0x6f, 0x6e, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1555,34 +1501,8 @@ func file_dataplane_standalone_proto_wred_proto_init() { } } } - file_dataplane_standalone_proto_wred_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*SetWredAttributeRequest_GreenEnable)(nil), - (*SetWredAttributeRequest_GreenMinThreshold)(nil), - (*SetWredAttributeRequest_GreenMaxThreshold)(nil), - (*SetWredAttributeRequest_GreenDropProbability)(nil), - (*SetWredAttributeRequest_YellowEnable)(nil), - (*SetWredAttributeRequest_YellowMinThreshold)(nil), - (*SetWredAttributeRequest_YellowMaxThreshold)(nil), - (*SetWredAttributeRequest_YellowDropProbability)(nil), - (*SetWredAttributeRequest_RedEnable)(nil), - (*SetWredAttributeRequest_RedMinThreshold)(nil), - (*SetWredAttributeRequest_RedMaxThreshold)(nil), - (*SetWredAttributeRequest_RedDropProbability)(nil), - (*SetWredAttributeRequest_Weight)(nil), - (*SetWredAttributeRequest_EcnMarkMode)(nil), - (*SetWredAttributeRequest_EcnGreenMinThreshold)(nil), - (*SetWredAttributeRequest_EcnGreenMaxThreshold)(nil), - (*SetWredAttributeRequest_EcnGreenMarkProbability)(nil), - (*SetWredAttributeRequest_EcnYellowMinThreshold)(nil), - (*SetWredAttributeRequest_EcnYellowMaxThreshold)(nil), - (*SetWredAttributeRequest_EcnYellowMarkProbability)(nil), - (*SetWredAttributeRequest_EcnRedMinThreshold)(nil), - (*SetWredAttributeRequest_EcnRedMaxThreshold)(nil), - (*SetWredAttributeRequest_EcnRedMarkProbability)(nil), - (*SetWredAttributeRequest_EcnColorUnawareMinThreshold)(nil), - (*SetWredAttributeRequest_EcnColorUnawareMaxThreshold)(nil), - (*SetWredAttributeRequest_EcnColorUnawareMarkProbability)(nil), - } + file_dataplane_standalone_proto_wred_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_dataplane_standalone_proto_wred_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/dataplane/standalone/proto/wred.proto b/dataplane/standalone/proto/wred.proto index 23fb4652..e0224058 100644 --- a/dataplane/standalone/proto/wred.proto +++ b/dataplane/standalone/proto/wred.proto @@ -7,140 +7,124 @@ import "dataplane/standalone/proto/common.proto"; option go_package = "github.com/openconfig/lemming/dataplane/standalone/proto"; - enum WredAttr { - WRED_ATTR_UNSPECIFIED = 0; - WRED_ATTR_GREEN_ENABLE = 1; - WRED_ATTR_GREEN_MIN_THRESHOLD = 2; - WRED_ATTR_GREEN_MAX_THRESHOLD = 3; - WRED_ATTR_GREEN_DROP_PROBABILITY = 4; - WRED_ATTR_YELLOW_ENABLE = 5; - WRED_ATTR_YELLOW_MIN_THRESHOLD = 6; - WRED_ATTR_YELLOW_MAX_THRESHOLD = 7; - WRED_ATTR_YELLOW_DROP_PROBABILITY = 8; - WRED_ATTR_RED_ENABLE = 9; - WRED_ATTR_RED_MIN_THRESHOLD = 10; - WRED_ATTR_RED_MAX_THRESHOLD = 11; - WRED_ATTR_RED_DROP_PROBABILITY = 12; - WRED_ATTR_WEIGHT = 13; - WRED_ATTR_ECN_MARK_MODE = 14; - WRED_ATTR_ECN_GREEN_MIN_THRESHOLD = 15; - WRED_ATTR_ECN_GREEN_MAX_THRESHOLD = 16; - WRED_ATTR_ECN_GREEN_MARK_PROBABILITY = 17; - WRED_ATTR_ECN_YELLOW_MIN_THRESHOLD = 18; - WRED_ATTR_ECN_YELLOW_MAX_THRESHOLD = 19; - WRED_ATTR_ECN_YELLOW_MARK_PROBABILITY = 20; - WRED_ATTR_ECN_RED_MIN_THRESHOLD = 21; - WRED_ATTR_ECN_RED_MAX_THRESHOLD = 22; - WRED_ATTR_ECN_RED_MARK_PROBABILITY = 23; - WRED_ATTR_ECN_COLOR_UNAWARE_MIN_THRESHOLD = 24; - WRED_ATTR_ECN_COLOR_UNAWARE_MAX_THRESHOLD = 25; - WRED_ATTR_ECN_COLOR_UNAWARE_MARK_PROBABILITY = 26; + WRED_ATTR_UNSPECIFIED = 0; + WRED_ATTR_GREEN_ENABLE = 1; + WRED_ATTR_GREEN_MIN_THRESHOLD = 2; + WRED_ATTR_GREEN_MAX_THRESHOLD = 3; + WRED_ATTR_GREEN_DROP_PROBABILITY = 4; + WRED_ATTR_YELLOW_ENABLE = 5; + WRED_ATTR_YELLOW_MIN_THRESHOLD = 6; + WRED_ATTR_YELLOW_MAX_THRESHOLD = 7; + WRED_ATTR_YELLOW_DROP_PROBABILITY = 8; + WRED_ATTR_RED_ENABLE = 9; + WRED_ATTR_RED_MIN_THRESHOLD = 10; + WRED_ATTR_RED_MAX_THRESHOLD = 11; + WRED_ATTR_RED_DROP_PROBABILITY = 12; + WRED_ATTR_WEIGHT = 13; + WRED_ATTR_ECN_MARK_MODE = 14; + WRED_ATTR_ECN_GREEN_MIN_THRESHOLD = 15; + WRED_ATTR_ECN_GREEN_MAX_THRESHOLD = 16; + WRED_ATTR_ECN_GREEN_MARK_PROBABILITY = 17; + WRED_ATTR_ECN_YELLOW_MIN_THRESHOLD = 18; + WRED_ATTR_ECN_YELLOW_MAX_THRESHOLD = 19; + WRED_ATTR_ECN_YELLOW_MARK_PROBABILITY = 20; + WRED_ATTR_ECN_RED_MIN_THRESHOLD = 21; + WRED_ATTR_ECN_RED_MAX_THRESHOLD = 22; + WRED_ATTR_ECN_RED_MARK_PROBABILITY = 23; + WRED_ATTR_ECN_COLOR_UNAWARE_MIN_THRESHOLD = 24; + WRED_ATTR_ECN_COLOR_UNAWARE_MAX_THRESHOLD = 25; + WRED_ATTR_ECN_COLOR_UNAWARE_MARK_PROBABILITY = 26; } message CreateWredRequest { - uint64 switch = 1; - - bool green_enable = 2; - uint32 green_min_threshold = 3; - uint32 green_max_threshold = 4; - uint32 green_drop_probability = 5; - bool yellow_enable = 6; - uint32 yellow_min_threshold = 7; - uint32 yellow_max_threshold = 8; - uint32 yellow_drop_probability = 9; - bool red_enable = 10; - uint32 red_min_threshold = 11; - uint32 red_max_threshold = 12; - uint32 red_drop_probability = 13; - uint32 weight = 14; - EcnMarkMode ecn_mark_mode = 15; - uint32 ecn_green_min_threshold = 16; - uint32 ecn_green_max_threshold = 17; - uint32 ecn_green_mark_probability = 18; - uint32 ecn_yellow_min_threshold = 19; - uint32 ecn_yellow_max_threshold = 20; - uint32 ecn_yellow_mark_probability = 21; - uint32 ecn_red_min_threshold = 22; - uint32 ecn_red_max_threshold = 23; - uint32 ecn_red_mark_probability = 24; - uint32 ecn_color_unaware_min_threshold = 25; - uint32 ecn_color_unaware_max_threshold = 26; - uint32 ecn_color_unaware_mark_probability = 27; - + uint64 switch = 1; + optional bool green_enable = 2 [(attr_enum_value) = 1]; + optional uint32 green_min_threshold = 3 [(attr_enum_value) = 2]; + optional uint32 green_max_threshold = 4 [(attr_enum_value) = 3]; + optional uint32 green_drop_probability = 5 [(attr_enum_value) = 4]; + optional bool yellow_enable = 6 [(attr_enum_value) = 5]; + optional uint32 yellow_min_threshold = 7 [(attr_enum_value) = 6]; + optional uint32 yellow_max_threshold = 8 [(attr_enum_value) = 7]; + optional uint32 yellow_drop_probability = 9 [(attr_enum_value) = 8]; + optional bool red_enable = 10 [(attr_enum_value) = 9]; + optional uint32 red_min_threshold = 11 [(attr_enum_value) = 10]; + optional uint32 red_max_threshold = 12 [(attr_enum_value) = 11]; + optional uint32 red_drop_probability = 13 [(attr_enum_value) = 12]; + optional uint32 weight = 14 [(attr_enum_value) = 13]; + optional EcnMarkMode ecn_mark_mode = 15 [(attr_enum_value) = 14]; + optional uint32 ecn_green_min_threshold = 16 [(attr_enum_value) = 15]; + optional uint32 ecn_green_max_threshold = 17 [(attr_enum_value) = 16]; + optional uint32 ecn_green_mark_probability = 18 [(attr_enum_value) = 17]; + optional uint32 ecn_yellow_min_threshold = 19 [(attr_enum_value) = 18]; + optional uint32 ecn_yellow_max_threshold = 20 [(attr_enum_value) = 19]; + optional uint32 ecn_yellow_mark_probability = 21 [(attr_enum_value) = 20]; + optional uint32 ecn_red_min_threshold = 22 [(attr_enum_value) = 21]; + optional uint32 ecn_red_max_threshold = 23 [(attr_enum_value) = 22]; + optional uint32 ecn_red_mark_probability = 24 [(attr_enum_value) = 23]; + optional uint32 ecn_color_unaware_min_threshold = 25 [(attr_enum_value) = 24]; + optional uint32 ecn_color_unaware_max_threshold = 26 [(attr_enum_value) = 25]; + optional uint32 ecn_color_unaware_mark_probability = 27 + [(attr_enum_value) = 26]; } message CreateWredResponse { - uint64 oid = 1; - - + uint64 oid = 1; } message RemoveWredRequest { - uint64 oid = 1; - - + uint64 oid = 1; } -message RemoveWredResponse { - - -} +message RemoveWredResponse {} message SetWredAttributeRequest { - uint64 oid = 1; - oneof attr { - bool green_enable = 2; - uint32 green_min_threshold = 3; - uint32 green_max_threshold = 4; - uint32 green_drop_probability = 5; - bool yellow_enable = 6; - uint32 yellow_min_threshold = 7; - uint32 yellow_max_threshold = 8; - uint32 yellow_drop_probability = 9; - bool red_enable = 10; - uint32 red_min_threshold = 11; - uint32 red_max_threshold = 12; - uint32 red_drop_probability = 13; - uint32 weight = 14; - EcnMarkMode ecn_mark_mode = 15; - uint32 ecn_green_min_threshold = 16; - uint32 ecn_green_max_threshold = 17; - uint32 ecn_green_mark_probability = 18; - uint32 ecn_yellow_min_threshold = 19; - uint32 ecn_yellow_max_threshold = 20; - uint32 ecn_yellow_mark_probability = 21; - uint32 ecn_red_min_threshold = 22; - uint32 ecn_red_max_threshold = 23; - uint32 ecn_red_mark_probability = 24; - uint32 ecn_color_unaware_min_threshold = 25; - uint32 ecn_color_unaware_max_threshold = 26; - uint32 ecn_color_unaware_mark_probability = 27; - } + uint64 oid = 1; + optional bool green_enable = 2 [(attr_enum_value) = 1]; + optional uint32 green_min_threshold = 3 [(attr_enum_value) = 2]; + optional uint32 green_max_threshold = 4 [(attr_enum_value) = 3]; + optional uint32 green_drop_probability = 5 [(attr_enum_value) = 4]; + optional bool yellow_enable = 6 [(attr_enum_value) = 5]; + optional uint32 yellow_min_threshold = 7 [(attr_enum_value) = 6]; + optional uint32 yellow_max_threshold = 8 [(attr_enum_value) = 7]; + optional uint32 yellow_drop_probability = 9 [(attr_enum_value) = 8]; + optional bool red_enable = 10 [(attr_enum_value) = 9]; + optional uint32 red_min_threshold = 11 [(attr_enum_value) = 10]; + optional uint32 red_max_threshold = 12 [(attr_enum_value) = 11]; + optional uint32 red_drop_probability = 13 [(attr_enum_value) = 12]; + optional uint32 weight = 14 [(attr_enum_value) = 13]; + optional EcnMarkMode ecn_mark_mode = 15 [(attr_enum_value) = 14]; + optional uint32 ecn_green_min_threshold = 16 [(attr_enum_value) = 15]; + optional uint32 ecn_green_max_threshold = 17 [(attr_enum_value) = 16]; + optional uint32 ecn_green_mark_probability = 18 [(attr_enum_value) = 17]; + optional uint32 ecn_yellow_min_threshold = 19 [(attr_enum_value) = 18]; + optional uint32 ecn_yellow_max_threshold = 20 [(attr_enum_value) = 19]; + optional uint32 ecn_yellow_mark_probability = 21 [(attr_enum_value) = 20]; + optional uint32 ecn_red_min_threshold = 22 [(attr_enum_value) = 21]; + optional uint32 ecn_red_max_threshold = 23 [(attr_enum_value) = 22]; + optional uint32 ecn_red_mark_probability = 24 [(attr_enum_value) = 23]; + optional uint32 ecn_color_unaware_min_threshold = 25 [(attr_enum_value) = 24]; + optional uint32 ecn_color_unaware_max_threshold = 26 [(attr_enum_value) = 25]; + optional uint32 ecn_color_unaware_mark_probability = 27 + [(attr_enum_value) = 26]; } -message SetWredAttributeResponse { - - -} +message SetWredAttributeResponse {} message GetWredAttributeRequest { - uint64 oid = 1; - repeated WredAttr attr_type = 2; - - + uint64 oid = 1; + repeated WredAttr attr_type = 2; } message GetWredAttributeResponse { - repeated WredAttribute attr = 1; - - + WredAttribute attr = 1; } - service Wred { - rpc CreateWred (CreateWredRequest) returns (CreateWredResponse) {} - rpc RemoveWred (RemoveWredRequest) returns (RemoveWredResponse) {} - rpc SetWredAttribute (SetWredAttributeRequest) returns (SetWredAttributeResponse) {} - rpc GetWredAttribute (GetWredAttributeRequest) returns (GetWredAttributeResponse) {} + rpc CreateWred(CreateWredRequest) returns (CreateWredResponse) {} + rpc RemoveWred(RemoveWredRequest) returns (RemoveWredResponse) {} + rpc SetWredAttribute(SetWredAttributeRequest) + returns (SetWredAttributeResponse) {} + rpc GetWredAttribute(GetWredAttributeRequest) + returns (GetWredAttributeResponse) {} } diff --git a/dataplane/standalone/sai/acl.cc b/dataplane/standalone/sai/acl.cc index 441a01b4..6aa65158 100644 --- a/dataplane/standalone/sai/acl.cc +++ b/dataplane/standalone/sai/acl.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/acl.pb.h" +#include "dataplane/standalone/proto/common.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -52,56 +56,768 @@ sai_status_t l_create_acl_table(sai_object_id_t *acl_table_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ACL_TABLE, acl_table_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateAclTableRequest req; + lemming::dataplane::sai::CreateAclTableResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_TABLE_ATTR_ACL_STAGE: + req.set_acl_stage(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_ACL_TABLE_ATTR_SIZE: + req.set_size(attr_list[i].value.u32); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6: + req.set_field_src_ipv6(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD3: + req.set_field_src_ipv6_word3(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD2: + req.set_field_src_ipv6_word2(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD1: + req.set_field_src_ipv6_word1(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD0: + req.set_field_src_ipv6_word0(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6: + req.set_field_dst_ipv6(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD3: + req.set_field_dst_ipv6_word3(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD2: + req.set_field_dst_ipv6_word2(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD1: + req.set_field_dst_ipv6_word1(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD0: + req.set_field_dst_ipv6_word0(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_SRC_IPV6: + req.set_field_inner_src_ipv6(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_DST_IPV6: + req.set_field_inner_dst_ipv6(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_MAC: + req.set_field_src_mac(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_MAC: + req.set_field_dst_mac(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IP: + req.set_field_src_ip(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IP: + req.set_field_dst_ip(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_SRC_IP: + req.set_field_inner_src_ip(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_DST_IP: + req.set_field_inner_dst_ip(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IN_PORTS: + req.set_field_in_ports(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUT_PORTS: + req.set_field_out_ports(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IN_PORT: + req.set_field_in_port(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUT_PORT: + req.set_field_out_port(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_PORT: + req.set_field_src_port(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUTER_VLAN_ID: + req.set_field_outer_vlan_id(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUTER_VLAN_PRI: + req.set_field_outer_vlan_pri(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUTER_VLAN_CFI: + req.set_field_outer_vlan_cfi(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_VLAN_ID: + req.set_field_inner_vlan_id(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_VLAN_PRI: + req.set_field_inner_vlan_pri(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_VLAN_CFI: + req.set_field_inner_vlan_cfi(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_L4_SRC_PORT: + req.set_field_l4_src_port(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_L4_DST_PORT: + req.set_field_l4_dst_port(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_L4_SRC_PORT: + req.set_field_inner_l4_src_port(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_L4_DST_PORT: + req.set_field_inner_l4_dst_port(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ETHER_TYPE: + req.set_field_ether_type(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_ETHER_TYPE: + req.set_field_inner_ether_type(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IP_PROTOCOL: + req.set_field_ip_protocol(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_IP_PROTOCOL: + req.set_field_inner_ip_protocol(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IP_IDENTIFICATION: + req.set_field_ip_identification(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DSCP: + req.set_field_dscp(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ECN: + req.set_field_ecn(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TTL: + req.set_field_ttl(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TOS: + req.set_field_tos(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IP_FLAGS: + req.set_field_ip_flags(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TCP_FLAGS: + req.set_field_tcp_flags(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ACL_IP_TYPE: + req.set_field_acl_ip_type(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ACL_IP_FRAG: + req.set_field_acl_ip_frag(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IPV6_FLOW_LABEL: + req.set_field_ipv6_flow_label(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TC: + req.set_field_tc(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ICMP_TYPE: + req.set_field_icmp_type(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ICMP_CODE: + req.set_field_icmp_code(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ICMPV6_TYPE: + req.set_field_icmpv6_type(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ICMPV6_CODE: + req.set_field_icmpv6_code(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_PACKET_VLAN: + req.set_field_packet_vlan(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TUNNEL_VNI: + req.set_field_tunnel_vni(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_HAS_VLAN_TAG: + req.set_field_has_vlan_tag(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MACSEC_SCI: + req.set_field_macsec_sci(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_LABEL: + req.set_field_mpls_label0_label(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_TTL: + req.set_field_mpls_label0_ttl(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_EXP: + req.set_field_mpls_label0_exp(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_BOS: + req.set_field_mpls_label0_bos(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_LABEL: + req.set_field_mpls_label1_label(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_TTL: + req.set_field_mpls_label1_ttl(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_EXP: + req.set_field_mpls_label1_exp(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_BOS: + req.set_field_mpls_label1_bos(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_LABEL: + req.set_field_mpls_label2_label(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_TTL: + req.set_field_mpls_label2_ttl(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_EXP: + req.set_field_mpls_label2_exp(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_BOS: + req.set_field_mpls_label2_bos(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_LABEL: + req.set_field_mpls_label3_label(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_TTL: + req.set_field_mpls_label3_ttl(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_EXP: + req.set_field_mpls_label3_exp(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_BOS: + req.set_field_mpls_label3_bos(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_LABEL: + req.set_field_mpls_label4_label(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_TTL: + req.set_field_mpls_label4_ttl(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_EXP: + req.set_field_mpls_label4_exp(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_BOS: + req.set_field_mpls_label4_bos(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_FDB_DST_USER_META: + req.set_field_fdb_dst_user_meta(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ROUTE_DST_USER_META: + req.set_field_route_dst_user_meta(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_NEIGHBOR_DST_USER_META: + req.set_field_neighbor_dst_user_meta(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_PORT_USER_META: + req.set_field_port_user_meta(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_VLAN_USER_META: + req.set_field_vlan_user_meta(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ACL_USER_META: + req.set_field_acl_user_meta(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_FDB_NPU_META_DST_HIT: + req.set_field_fdb_npu_meta_dst_hit(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_NEIGHBOR_NPU_META_DST_HIT: + req.set_field_neighbor_npu_meta_dst_hit(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ROUTE_NPU_META_DST_HIT: + req.set_field_route_npu_meta_dst_hit(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_BTH_OPCODE: + req.set_field_bth_opcode(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_AETH_SYNDROME: + req.set_field_aeth_syndrome(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_USER_DEFINED_FIELD_GROUP_MIN: + req.set_user_defined_field_group_min(attr_list[i].value.oid); + break; + case SAI_ACL_TABLE_ATTR_USER_DEFINED_FIELD_GROUP_MAX: + req.set_user_defined_field_group_max(attr_list[i].value.oid); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IPV6_NEXT_HEADER: + req.set_field_ipv6_next_header(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_GRE_KEY: + req.set_field_gre_key(attr_list[i].value.booldata); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TAM_INT_TYPE: + req.set_field_tam_int_type(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = acl->CreateAclTable(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *acl_table_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_acl_table(sai_object_id_t acl_table_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ACL_TABLE, acl_table_id); + + lemming::dataplane::sai::RemoveAclTableRequest req; + lemming::dataplane::sai::RemoveAclTableResponse resp; + grpc::ClientContext context; + req.set_oid(acl_table_id); + + grpc::Status status = acl->RemoveAclTable(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_acl_table_attribute(sai_object_id_t acl_table_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ACL_TABLE, acl_table_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_acl_table_attribute(sai_object_id_t acl_table_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ACL_TABLE, acl_table_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetAclTableAttributeRequest req; + lemming::dataplane::sai::GetAclTableAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(acl_table_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = acl->GetAclTableAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_TABLE_ATTR_ACL_STAGE: + attr_list[i].value.s32 = static_cast(resp.attr().acl_stage() - 1); + break; + case SAI_ACL_TABLE_ATTR_SIZE: + attr_list[i].value.u32 = resp.attr().size(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6: + attr_list[i].value.booldata = resp.attr().field_src_ipv6(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD3: + attr_list[i].value.booldata = resp.attr().field_src_ipv6_word3(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD2: + attr_list[i].value.booldata = resp.attr().field_src_ipv6_word2(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD1: + attr_list[i].value.booldata = resp.attr().field_src_ipv6_word1(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPV6_WORD0: + attr_list[i].value.booldata = resp.attr().field_src_ipv6_word0(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6: + attr_list[i].value.booldata = resp.attr().field_dst_ipv6(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD3: + attr_list[i].value.booldata = resp.attr().field_dst_ipv6_word3(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD2: + attr_list[i].value.booldata = resp.attr().field_dst_ipv6_word2(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD1: + attr_list[i].value.booldata = resp.attr().field_dst_ipv6_word1(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IPV6_WORD0: + attr_list[i].value.booldata = resp.attr().field_dst_ipv6_word0(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_SRC_IPV6: + attr_list[i].value.booldata = resp.attr().field_inner_src_ipv6(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_DST_IPV6: + attr_list[i].value.booldata = resp.attr().field_inner_dst_ipv6(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_MAC: + attr_list[i].value.booldata = resp.attr().field_src_mac(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_MAC: + attr_list[i].value.booldata = resp.attr().field_dst_mac(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_IP: + attr_list[i].value.booldata = resp.attr().field_src_ip(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DST_IP: + attr_list[i].value.booldata = resp.attr().field_dst_ip(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_SRC_IP: + attr_list[i].value.booldata = resp.attr().field_inner_src_ip(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_DST_IP: + attr_list[i].value.booldata = resp.attr().field_inner_dst_ip(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IN_PORTS: + attr_list[i].value.booldata = resp.attr().field_in_ports(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUT_PORTS: + attr_list[i].value.booldata = resp.attr().field_out_ports(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IN_PORT: + attr_list[i].value.booldata = resp.attr().field_in_port(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUT_PORT: + attr_list[i].value.booldata = resp.attr().field_out_port(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_SRC_PORT: + attr_list[i].value.booldata = resp.attr().field_src_port(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUTER_VLAN_ID: + attr_list[i].value.booldata = resp.attr().field_outer_vlan_id(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUTER_VLAN_PRI: + attr_list[i].value.booldata = resp.attr().field_outer_vlan_pri(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_OUTER_VLAN_CFI: + attr_list[i].value.booldata = resp.attr().field_outer_vlan_cfi(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_VLAN_ID: + attr_list[i].value.booldata = resp.attr().field_inner_vlan_id(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_VLAN_PRI: + attr_list[i].value.booldata = resp.attr().field_inner_vlan_pri(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_VLAN_CFI: + attr_list[i].value.booldata = resp.attr().field_inner_vlan_cfi(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_L4_SRC_PORT: + attr_list[i].value.booldata = resp.attr().field_l4_src_port(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_L4_DST_PORT: + attr_list[i].value.booldata = resp.attr().field_l4_dst_port(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_L4_SRC_PORT: + attr_list[i].value.booldata = resp.attr().field_inner_l4_src_port(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_L4_DST_PORT: + attr_list[i].value.booldata = resp.attr().field_inner_l4_dst_port(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ETHER_TYPE: + attr_list[i].value.booldata = resp.attr().field_ether_type(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_ETHER_TYPE: + attr_list[i].value.booldata = resp.attr().field_inner_ether_type(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IP_PROTOCOL: + attr_list[i].value.booldata = resp.attr().field_ip_protocol(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_INNER_IP_PROTOCOL: + attr_list[i].value.booldata = resp.attr().field_inner_ip_protocol(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IP_IDENTIFICATION: + attr_list[i].value.booldata = resp.attr().field_ip_identification(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_DSCP: + attr_list[i].value.booldata = resp.attr().field_dscp(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ECN: + attr_list[i].value.booldata = resp.attr().field_ecn(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TTL: + attr_list[i].value.booldata = resp.attr().field_ttl(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TOS: + attr_list[i].value.booldata = resp.attr().field_tos(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IP_FLAGS: + attr_list[i].value.booldata = resp.attr().field_ip_flags(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TCP_FLAGS: + attr_list[i].value.booldata = resp.attr().field_tcp_flags(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ACL_IP_TYPE: + attr_list[i].value.booldata = resp.attr().field_acl_ip_type(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ACL_IP_FRAG: + attr_list[i].value.booldata = resp.attr().field_acl_ip_frag(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IPV6_FLOW_LABEL: + attr_list[i].value.booldata = resp.attr().field_ipv6_flow_label(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TC: + attr_list[i].value.booldata = resp.attr().field_tc(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ICMP_TYPE: + attr_list[i].value.booldata = resp.attr().field_icmp_type(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ICMP_CODE: + attr_list[i].value.booldata = resp.attr().field_icmp_code(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ICMPV6_TYPE: + attr_list[i].value.booldata = resp.attr().field_icmpv6_type(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ICMPV6_CODE: + attr_list[i].value.booldata = resp.attr().field_icmpv6_code(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_PACKET_VLAN: + attr_list[i].value.booldata = resp.attr().field_packet_vlan(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TUNNEL_VNI: + attr_list[i].value.booldata = resp.attr().field_tunnel_vni(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_HAS_VLAN_TAG: + attr_list[i].value.booldata = resp.attr().field_has_vlan_tag(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MACSEC_SCI: + attr_list[i].value.booldata = resp.attr().field_macsec_sci(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_LABEL: + attr_list[i].value.booldata = resp.attr().field_mpls_label0_label(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_TTL: + attr_list[i].value.booldata = resp.attr().field_mpls_label0_ttl(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_EXP: + attr_list[i].value.booldata = resp.attr().field_mpls_label0_exp(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL0_BOS: + attr_list[i].value.booldata = resp.attr().field_mpls_label0_bos(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_LABEL: + attr_list[i].value.booldata = resp.attr().field_mpls_label1_label(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_TTL: + attr_list[i].value.booldata = resp.attr().field_mpls_label1_ttl(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_EXP: + attr_list[i].value.booldata = resp.attr().field_mpls_label1_exp(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL1_BOS: + attr_list[i].value.booldata = resp.attr().field_mpls_label1_bos(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_LABEL: + attr_list[i].value.booldata = resp.attr().field_mpls_label2_label(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_TTL: + attr_list[i].value.booldata = resp.attr().field_mpls_label2_ttl(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_EXP: + attr_list[i].value.booldata = resp.attr().field_mpls_label2_exp(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL2_BOS: + attr_list[i].value.booldata = resp.attr().field_mpls_label2_bos(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_LABEL: + attr_list[i].value.booldata = resp.attr().field_mpls_label3_label(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_TTL: + attr_list[i].value.booldata = resp.attr().field_mpls_label3_ttl(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_EXP: + attr_list[i].value.booldata = resp.attr().field_mpls_label3_exp(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL3_BOS: + attr_list[i].value.booldata = resp.attr().field_mpls_label3_bos(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_LABEL: + attr_list[i].value.booldata = resp.attr().field_mpls_label4_label(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_TTL: + attr_list[i].value.booldata = resp.attr().field_mpls_label4_ttl(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_EXP: + attr_list[i].value.booldata = resp.attr().field_mpls_label4_exp(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_MPLS_LABEL4_BOS: + attr_list[i].value.booldata = resp.attr().field_mpls_label4_bos(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_FDB_DST_USER_META: + attr_list[i].value.booldata = resp.attr().field_fdb_dst_user_meta(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ROUTE_DST_USER_META: + attr_list[i].value.booldata = resp.attr().field_route_dst_user_meta(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_NEIGHBOR_DST_USER_META: + attr_list[i].value.booldata = + resp.attr().field_neighbor_dst_user_meta(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_PORT_USER_META: + attr_list[i].value.booldata = resp.attr().field_port_user_meta(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_VLAN_USER_META: + attr_list[i].value.booldata = resp.attr().field_vlan_user_meta(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ACL_USER_META: + attr_list[i].value.booldata = resp.attr().field_acl_user_meta(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_FDB_NPU_META_DST_HIT: + attr_list[i].value.booldata = resp.attr().field_fdb_npu_meta_dst_hit(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_NEIGHBOR_NPU_META_DST_HIT: + attr_list[i].value.booldata = + resp.attr().field_neighbor_npu_meta_dst_hit(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_ROUTE_NPU_META_DST_HIT: + attr_list[i].value.booldata = + resp.attr().field_route_npu_meta_dst_hit(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_BTH_OPCODE: + attr_list[i].value.booldata = resp.attr().field_bth_opcode(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_AETH_SYNDROME: + attr_list[i].value.booldata = resp.attr().field_aeth_syndrome(); + break; + case SAI_ACL_TABLE_ATTR_USER_DEFINED_FIELD_GROUP_MIN: + attr_list[i].value.oid = resp.attr().user_defined_field_group_min(); + break; + case SAI_ACL_TABLE_ATTR_USER_DEFINED_FIELD_GROUP_MAX: + attr_list[i].value.oid = resp.attr().user_defined_field_group_max(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_IPV6_NEXT_HEADER: + attr_list[i].value.booldata = resp.attr().field_ipv6_next_header(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_GRE_KEY: + attr_list[i].value.booldata = resp.attr().field_gre_key(); + break; + case SAI_ACL_TABLE_ATTR_FIELD_TAM_INT_TYPE: + attr_list[i].value.booldata = resp.attr().field_tam_int_type(); + break; + case SAI_ACL_TABLE_ATTR_ENTRY_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().entry_list(), + attr_list[i].value.objlist.count); + break; + case SAI_ACL_TABLE_ATTR_AVAILABLE_ACL_ENTRY: + attr_list[i].value.u32 = resp.attr().available_acl_entry(); + break; + case SAI_ACL_TABLE_ATTR_AVAILABLE_ACL_COUNTER: + attr_list[i].value.u32 = resp.attr().available_acl_counter(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_acl_entry(sai_object_id_t *acl_entry_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ACL_ENTRY, acl_entry_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateAclEntryRequest req; + lemming::dataplane::sai::CreateAclEntryResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_ENTRY_ATTR_TABLE_ID: + req.set_table_id(attr_list[i].value.oid); + break; + case SAI_ACL_ENTRY_ATTR_PRIORITY: + req.set_priority(attr_list[i].value.u32); + break; + case SAI_ACL_ENTRY_ATTR_ADMIN_STATE: + req.set_admin_state(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = acl->CreateAclEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *acl_entry_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_acl_entry(sai_object_id_t acl_entry_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ACL_ENTRY, acl_entry_id); + + lemming::dataplane::sai::RemoveAclEntryRequest req; + lemming::dataplane::sai::RemoveAclEntryResponse resp; + grpc::ClientContext context; + req.set_oid(acl_entry_id); + + grpc::Status status = acl->RemoveAclEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_acl_entry_attribute(sai_object_id_t acl_entry_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ACL_ENTRY, acl_entry_id, - attr); + + lemming::dataplane::sai::SetAclEntryAttributeRequest req; + lemming::dataplane::sai::SetAclEntryAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(acl_entry_id); + + switch (attr->id) { + case SAI_ACL_ENTRY_ATTR_PRIORITY: + req.set_priority(attr->value.u32); + break; + case SAI_ACL_ENTRY_ATTR_ADMIN_STATE: + req.set_admin_state(attr->value.booldata); + break; + } + + grpc::Status status = acl->SetAclEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_acl_entry_attribute(sai_object_id_t acl_entry_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ACL_ENTRY, acl_entry_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetAclEntryAttributeRequest req; + lemming::dataplane::sai::GetAclEntryAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(acl_entry_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = acl->GetAclEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_ENTRY_ATTR_TABLE_ID: + attr_list[i].value.oid = resp.attr().table_id(); + break; + case SAI_ACL_ENTRY_ATTR_PRIORITY: + attr_list[i].value.u32 = resp.attr().priority(); + break; + case SAI_ACL_ENTRY_ATTR_ADMIN_STATE: + attr_list[i].value.booldata = resp.attr().admin_state(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_acl_counter(sai_object_id_t *acl_counter_id, @@ -109,56 +825,209 @@ sai_status_t l_create_acl_counter(sai_object_id_t *acl_counter_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ACL_COUNTER, acl_counter_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateAclCounterRequest req; + lemming::dataplane::sai::CreateAclCounterResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_COUNTER_ATTR_TABLE_ID: + req.set_table_id(attr_list[i].value.oid); + break; + case SAI_ACL_COUNTER_ATTR_ENABLE_PACKET_COUNT: + req.set_enable_packet_count(attr_list[i].value.booldata); + break; + case SAI_ACL_COUNTER_ATTR_ENABLE_BYTE_COUNT: + req.set_enable_byte_count(attr_list[i].value.booldata); + break; + case SAI_ACL_COUNTER_ATTR_PACKETS: + req.set_packets(attr_list[i].value.u64); + break; + case SAI_ACL_COUNTER_ATTR_BYTES: + req.set_bytes(attr_list[i].value.u64); + break; + } + } + grpc::Status status = acl->CreateAclCounter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *acl_counter_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_acl_counter(sai_object_id_t acl_counter_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ACL_COUNTER, acl_counter_id); + + lemming::dataplane::sai::RemoveAclCounterRequest req; + lemming::dataplane::sai::RemoveAclCounterResponse resp; + grpc::ClientContext context; + req.set_oid(acl_counter_id); + + grpc::Status status = acl->RemoveAclCounter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_acl_counter_attribute(sai_object_id_t acl_counter_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ACL_COUNTER, acl_counter_id, - attr); + + lemming::dataplane::sai::SetAclCounterAttributeRequest req; + lemming::dataplane::sai::SetAclCounterAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(acl_counter_id); + + switch (attr->id) { + case SAI_ACL_COUNTER_ATTR_PACKETS: + req.set_packets(attr->value.u64); + break; + case SAI_ACL_COUNTER_ATTR_BYTES: + req.set_bytes(attr->value.u64); + break; + } + + grpc::Status status = acl->SetAclCounterAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_acl_counter_attribute(sai_object_id_t acl_counter_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ACL_COUNTER, acl_counter_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetAclCounterAttributeRequest req; + lemming::dataplane::sai::GetAclCounterAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(acl_counter_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = acl->GetAclCounterAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_COUNTER_ATTR_TABLE_ID: + attr_list[i].value.oid = resp.attr().table_id(); + break; + case SAI_ACL_COUNTER_ATTR_ENABLE_PACKET_COUNT: + attr_list[i].value.booldata = resp.attr().enable_packet_count(); + break; + case SAI_ACL_COUNTER_ATTR_ENABLE_BYTE_COUNT: + attr_list[i].value.booldata = resp.attr().enable_byte_count(); + break; + case SAI_ACL_COUNTER_ATTR_PACKETS: + attr_list[i].value.u64 = resp.attr().packets(); + break; + case SAI_ACL_COUNTER_ATTR_BYTES: + attr_list[i].value.u64 = resp.attr().bytes(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_acl_range(sai_object_id_t *acl_range_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ACL_RANGE, acl_range_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateAclRangeRequest req; + lemming::dataplane::sai::CreateAclRangeResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_RANGE_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = acl->CreateAclRange(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *acl_range_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_acl_range(sai_object_id_t acl_range_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ACL_RANGE, acl_range_id); + + lemming::dataplane::sai::RemoveAclRangeRequest req; + lemming::dataplane::sai::RemoveAclRangeResponse resp; + grpc::ClientContext context; + req.set_oid(acl_range_id); + + grpc::Status status = acl->RemoveAclRange(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_acl_range_attribute(sai_object_id_t acl_range_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ACL_RANGE, acl_range_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_acl_range_attribute(sai_object_id_t acl_range_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ACL_RANGE, acl_range_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetAclRangeAttributeRequest req; + lemming::dataplane::sai::GetAclRangeAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(acl_range_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = acl->GetAclRangeAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_RANGE_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_acl_table_group(sai_object_id_t *acl_table_group_id, @@ -166,59 +1035,189 @@ sai_status_t l_create_acl_table_group(sai_object_id_t *acl_table_group_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ACL_TABLE_GROUP, acl_table_group_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateAclTableGroupRequest req; + lemming::dataplane::sai::CreateAclTableGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_TABLE_GROUP_ATTR_ACL_STAGE: + req.set_acl_stage(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_ACL_TABLE_GROUP_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = acl->CreateAclTableGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *acl_table_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_acl_table_group(sai_object_id_t acl_table_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ACL_TABLE_GROUP, - acl_table_group_id); + + lemming::dataplane::sai::RemoveAclTableGroupRequest req; + lemming::dataplane::sai::RemoveAclTableGroupResponse resp; + grpc::ClientContext context; + req.set_oid(acl_table_group_id); + + grpc::Status status = acl->RemoveAclTableGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_acl_table_group_attribute(sai_object_id_t acl_table_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ACL_TABLE_GROUP, - acl_table_group_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_acl_table_group_attribute(sai_object_id_t acl_table_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ACL_TABLE_GROUP, - acl_table_group_id, attr_count, attr_list); + + lemming::dataplane::sai::GetAclTableGroupAttributeRequest req; + lemming::dataplane::sai::GetAclTableGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(acl_table_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = acl->GetAclTableGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_TABLE_GROUP_ATTR_ACL_STAGE: + attr_list[i].value.s32 = static_cast(resp.attr().acl_stage() - 1); + break; + case SAI_ACL_TABLE_GROUP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_ACL_TABLE_GROUP_ATTR_MEMBER_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().member_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_acl_table_group_member( sai_object_id_t *acl_table_group_member_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ACL_TABLE_GROUP_MEMBER, - acl_table_group_member_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateAclTableGroupMemberRequest req; + lemming::dataplane::sai::CreateAclTableGroupMemberResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_TABLE_GROUP_MEMBER_ATTR_ACL_TABLE_GROUP_ID: + req.set_acl_table_group_id(attr_list[i].value.oid); + break; + case SAI_ACL_TABLE_GROUP_MEMBER_ATTR_ACL_TABLE_ID: + req.set_acl_table_id(attr_list[i].value.oid); + break; + case SAI_ACL_TABLE_GROUP_MEMBER_ATTR_PRIORITY: + req.set_priority(attr_list[i].value.u32); + break; + } + } + grpc::Status status = acl->CreateAclTableGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *acl_table_group_member_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_acl_table_group_member( sai_object_id_t acl_table_group_member_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ACL_TABLE_GROUP_MEMBER, - acl_table_group_member_id); + + lemming::dataplane::sai::RemoveAclTableGroupMemberRequest req; + lemming::dataplane::sai::RemoveAclTableGroupMemberResponse resp; + grpc::ClientContext context; + req.set_oid(acl_table_group_member_id); + + grpc::Status status = acl->RemoveAclTableGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_acl_table_group_member_attribute( sai_object_id_t acl_table_group_member_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ACL_TABLE_GROUP_MEMBER, - acl_table_group_member_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_acl_table_group_member_attribute( sai_object_id_t acl_table_group_member_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ACL_TABLE_GROUP_MEMBER, - acl_table_group_member_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetAclTableGroupMemberAttributeRequest req; + lemming::dataplane::sai::GetAclTableGroupMemberAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(acl_table_group_member_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + acl->GetAclTableGroupMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ACL_TABLE_GROUP_MEMBER_ATTR_ACL_TABLE_GROUP_ID: + attr_list[i].value.oid = resp.attr().acl_table_group_id(); + break; + case SAI_ACL_TABLE_GROUP_MEMBER_ATTR_ACL_TABLE_ID: + attr_list[i].value.oid = resp.attr().acl_table_id(); + break; + case SAI_ACL_TABLE_GROUP_MEMBER_ATTR_PRIORITY: + attr_list[i].value.u32 = resp.attr().priority(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/bfd.cc b/dataplane/standalone/sai/bfd.cc index 5c2d5d80..ab4b0fe2 100644 --- a/dataplane/standalone/sai/bfd.cc +++ b/dataplane/standalone/sai/bfd.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/bfd.pb.h" +#include "dataplane/standalone/proto/common.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -34,28 +38,376 @@ sai_status_t l_create_bfd_session(sai_object_id_t *bfd_session_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_BFD_SESSION, bfd_session_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateBfdSessionRequest req; + lemming::dataplane::sai::CreateBfdSessionResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BFD_SESSION_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BFD_SESSION_ATTR_HW_LOOKUP_VALID: + req.set_hw_lookup_valid(attr_list[i].value.booldata); + break; + case SAI_BFD_SESSION_ATTR_VIRTUAL_ROUTER: + req.set_virtual_router(attr_list[i].value.oid); + break; + case SAI_BFD_SESSION_ATTR_PORT: + req.set_port(attr_list[i].value.oid); + break; + case SAI_BFD_SESSION_ATTR_LOCAL_DISCRIMINATOR: + req.set_local_discriminator(attr_list[i].value.u32); + break; + case SAI_BFD_SESSION_ATTR_REMOTE_DISCRIMINATOR: + req.set_remote_discriminator(attr_list[i].value.u32); + break; + case SAI_BFD_SESSION_ATTR_UDP_SRC_PORT: + req.set_udp_src_port(attr_list[i].value.u32); + break; + case SAI_BFD_SESSION_ATTR_TC: + req.set_tc(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_VLAN_TPID: + req.set_vlan_tpid(attr_list[i].value.u16); + break; + case SAI_BFD_SESSION_ATTR_VLAN_ID: + req.set_vlan_id(attr_list[i].value.u16); + break; + case SAI_BFD_SESSION_ATTR_VLAN_PRI: + req.set_vlan_pri(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_VLAN_CFI: + req.set_vlan_cfi(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_VLAN_HEADER_VALID: + req.set_vlan_header_valid(attr_list[i].value.booldata); + break; + case SAI_BFD_SESSION_ATTR_BFD_ENCAPSULATION_TYPE: + req.set_bfd_encapsulation_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BFD_SESSION_ATTR_IPHDR_VERSION: + req.set_iphdr_version(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_TOS: + req.set_tos(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_TTL: + req.set_ttl(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_SRC_IP_ADDRESS: + req.set_src_ip_address( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_BFD_SESSION_ATTR_DST_IP_ADDRESS: + req.set_dst_ip_address( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_TOS: + req.set_tunnel_tos(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_TTL: + req.set_tunnel_ttl(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_SRC_IP_ADDRESS: + req.set_tunnel_src_ip_address( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_DST_IP_ADDRESS: + req.set_tunnel_dst_ip_address( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_BFD_SESSION_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_BFD_SESSION_ATTR_DST_MAC_ADDRESS: + req.set_dst_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_BFD_SESSION_ATTR_ECHO_ENABLE: + req.set_echo_enable(attr_list[i].value.booldata); + break; + case SAI_BFD_SESSION_ATTR_MULTIHOP: + req.set_multihop(attr_list[i].value.booldata); + break; + case SAI_BFD_SESSION_ATTR_CBIT: + req.set_cbit(attr_list[i].value.booldata); + break; + case SAI_BFD_SESSION_ATTR_MIN_TX: + req.set_min_tx(attr_list[i].value.u32); + break; + case SAI_BFD_SESSION_ATTR_MIN_RX: + req.set_min_rx(attr_list[i].value.u32); + break; + case SAI_BFD_SESSION_ATTR_MULTIPLIER: + req.set_multiplier(attr_list[i].value.u8); + break; + case SAI_BFD_SESSION_ATTR_OFFLOAD_TYPE: + req.set_offload_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = bfd->CreateBfdSession(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *bfd_session_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_bfd_session(sai_object_id_t bfd_session_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_BFD_SESSION, bfd_session_id); + + lemming::dataplane::sai::RemoveBfdSessionRequest req; + lemming::dataplane::sai::RemoveBfdSessionResponse resp; + grpc::ClientContext context; + req.set_oid(bfd_session_id); + + grpc::Status status = bfd->RemoveBfdSession(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_bfd_session_attribute(sai_object_id_t bfd_session_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_BFD_SESSION, bfd_session_id, - attr); + + lemming::dataplane::sai::SetBfdSessionAttributeRequest req; + lemming::dataplane::sai::SetBfdSessionAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(bfd_session_id); + + switch (attr->id) { + case SAI_BFD_SESSION_ATTR_VIRTUAL_ROUTER: + req.set_virtual_router(attr->value.oid); + break; + case SAI_BFD_SESSION_ATTR_PORT: + req.set_port(attr->value.oid); + break; + case SAI_BFD_SESSION_ATTR_TC: + req.set_tc(attr->value.u8); + break; + case SAI_BFD_SESSION_ATTR_VLAN_TPID: + req.set_vlan_tpid(attr->value.u16); + break; + case SAI_BFD_SESSION_ATTR_VLAN_PRI: + req.set_vlan_pri(attr->value.u8); + break; + case SAI_BFD_SESSION_ATTR_VLAN_CFI: + req.set_vlan_cfi(attr->value.u8); + break; + case SAI_BFD_SESSION_ATTR_IPHDR_VERSION: + req.set_iphdr_version(attr->value.u8); + break; + case SAI_BFD_SESSION_ATTR_TOS: + req.set_tos(attr->value.u8); + break; + case SAI_BFD_SESSION_ATTR_TTL: + req.set_ttl(attr->value.u8); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_TOS: + req.set_tunnel_tos(attr->value.u8); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_TTL: + req.set_tunnel_ttl(attr->value.u8); + break; + case SAI_BFD_SESSION_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_BFD_SESSION_ATTR_DST_MAC_ADDRESS: + req.set_dst_mac_address(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_BFD_SESSION_ATTR_ECHO_ENABLE: + req.set_echo_enable(attr->value.booldata); + break; + case SAI_BFD_SESSION_ATTR_MIN_TX: + req.set_min_tx(attr->value.u32); + break; + case SAI_BFD_SESSION_ATTR_MIN_RX: + req.set_min_rx(attr->value.u32); + break; + case SAI_BFD_SESSION_ATTR_MULTIPLIER: + req.set_multiplier(attr->value.u8); + break; + } + + grpc::Status status = bfd->SetBfdSessionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bfd_session_attribute(sai_object_id_t bfd_session_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_BFD_SESSION, bfd_session_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetBfdSessionAttributeRequest req; + lemming::dataplane::sai::GetBfdSessionAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(bfd_session_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = bfd->GetBfdSessionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BFD_SESSION_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_BFD_SESSION_ATTR_HW_LOOKUP_VALID: + attr_list[i].value.booldata = resp.attr().hw_lookup_valid(); + break; + case SAI_BFD_SESSION_ATTR_VIRTUAL_ROUTER: + attr_list[i].value.oid = resp.attr().virtual_router(); + break; + case SAI_BFD_SESSION_ATTR_PORT: + attr_list[i].value.oid = resp.attr().port(); + break; + case SAI_BFD_SESSION_ATTR_LOCAL_DISCRIMINATOR: + attr_list[i].value.u32 = resp.attr().local_discriminator(); + break; + case SAI_BFD_SESSION_ATTR_REMOTE_DISCRIMINATOR: + attr_list[i].value.u32 = resp.attr().remote_discriminator(); + break; + case SAI_BFD_SESSION_ATTR_UDP_SRC_PORT: + attr_list[i].value.u32 = resp.attr().udp_src_port(); + break; + case SAI_BFD_SESSION_ATTR_TC: + attr_list[i].value.u8 = resp.attr().tc(); + break; + case SAI_BFD_SESSION_ATTR_VLAN_TPID: + attr_list[i].value.u16 = resp.attr().vlan_tpid(); + break; + case SAI_BFD_SESSION_ATTR_VLAN_ID: + attr_list[i].value.u16 = resp.attr().vlan_id(); + break; + case SAI_BFD_SESSION_ATTR_VLAN_PRI: + attr_list[i].value.u8 = resp.attr().vlan_pri(); + break; + case SAI_BFD_SESSION_ATTR_VLAN_CFI: + attr_list[i].value.u8 = resp.attr().vlan_cfi(); + break; + case SAI_BFD_SESSION_ATTR_VLAN_HEADER_VALID: + attr_list[i].value.booldata = resp.attr().vlan_header_valid(); + break; + case SAI_BFD_SESSION_ATTR_BFD_ENCAPSULATION_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().bfd_encapsulation_type() - 1); + break; + case SAI_BFD_SESSION_ATTR_IPHDR_VERSION: + attr_list[i].value.u8 = resp.attr().iphdr_version(); + break; + case SAI_BFD_SESSION_ATTR_TOS: + attr_list[i].value.u8 = resp.attr().tos(); + break; + case SAI_BFD_SESSION_ATTR_TTL: + attr_list[i].value.u8 = resp.attr().ttl(); + break; + case SAI_BFD_SESSION_ATTR_SRC_IP_ADDRESS: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().src_ip_address()); + break; + case SAI_BFD_SESSION_ATTR_DST_IP_ADDRESS: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().dst_ip_address()); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_TOS: + attr_list[i].value.u8 = resp.attr().tunnel_tos(); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_TTL: + attr_list[i].value.u8 = resp.attr().tunnel_ttl(); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_SRC_IP_ADDRESS: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().tunnel_src_ip_address()); + break; + case SAI_BFD_SESSION_ATTR_TUNNEL_DST_IP_ADDRESS: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().tunnel_dst_ip_address()); + break; + case SAI_BFD_SESSION_ATTR_SRC_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().src_mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_BFD_SESSION_ATTR_DST_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().dst_mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_BFD_SESSION_ATTR_ECHO_ENABLE: + attr_list[i].value.booldata = resp.attr().echo_enable(); + break; + case SAI_BFD_SESSION_ATTR_MULTIHOP: + attr_list[i].value.booldata = resp.attr().multihop(); + break; + case SAI_BFD_SESSION_ATTR_CBIT: + attr_list[i].value.booldata = resp.attr().cbit(); + break; + case SAI_BFD_SESSION_ATTR_MIN_TX: + attr_list[i].value.u32 = resp.attr().min_tx(); + break; + case SAI_BFD_SESSION_ATTR_MIN_RX: + attr_list[i].value.u32 = resp.attr().min_rx(); + break; + case SAI_BFD_SESSION_ATTR_MULTIPLIER: + attr_list[i].value.u8 = resp.attr().multiplier(); + break; + case SAI_BFD_SESSION_ATTR_REMOTE_MIN_TX: + attr_list[i].value.u32 = resp.attr().remote_min_tx(); + break; + case SAI_BFD_SESSION_ATTR_REMOTE_MIN_RX: + attr_list[i].value.u32 = resp.attr().remote_min_rx(); + break; + case SAI_BFD_SESSION_ATTR_STATE: + attr_list[i].value.s32 = static_cast(resp.attr().state() - 1); + break; + case SAI_BFD_SESSION_ATTR_OFFLOAD_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().offload_type() - 1); + break; + case SAI_BFD_SESSION_ATTR_NEGOTIATED_TX: + attr_list[i].value.u32 = resp.attr().negotiated_tx(); + break; + case SAI_BFD_SESSION_ATTR_NEGOTIATED_RX: + attr_list[i].value.u32 = resp.attr().negotiated_rx(); + break; + case SAI_BFD_SESSION_ATTR_LOCAL_DIAG: + attr_list[i].value.u8 = resp.attr().local_diag(); + break; + case SAI_BFD_SESSION_ATTR_REMOTE_DIAG: + attr_list[i].value.u8 = resp.attr().remote_diag(); + break; + case SAI_BFD_SESSION_ATTR_REMOTE_MULTIPLIER: + attr_list[i].value.u8 = resp.attr().remote_multiplier(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bfd_session_stats(sai_object_id_t bfd_session_id, @@ -63,8 +415,8 @@ sai_status_t l_get_bfd_session_stats(sai_object_id_t bfd_session_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_BFD_SESSION, bfd_session_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bfd_session_stats_ext(sai_object_id_t bfd_session_id, @@ -73,15 +425,14 @@ sai_status_t l_get_bfd_session_stats_ext(sai_object_id_t bfd_session_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_BFD_SESSION, bfd_session_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_bfd_session_stats(sai_object_id_t bfd_session_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_BFD_SESSION, bfd_session_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/bridge.cc b/dataplane/standalone/sai/bridge.cc index 9916e88c..ab2bafa0 100644 --- a/dataplane/standalone/sai/bridge.cc +++ b/dataplane/standalone/sai/bridge.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/bridge.pb.h" +#include "dataplane/standalone/proto/common.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -40,27 +44,188 @@ sai_status_t l_create_bridge(sai_object_id_t *bridge_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_BRIDGE, bridge_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateBridgeRequest req; + lemming::dataplane::sai::CreateBridgeResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BRIDGE_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BRIDGE_ATTR_MAX_LEARNED_ADDRESSES: + req.set_max_learned_addresses(attr_list[i].value.u32); + break; + case SAI_BRIDGE_ATTR_LEARN_DISABLE: + req.set_learn_disable(attr_list[i].value.booldata); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE: + req.set_unknown_unicast_flood_control_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP: + req.set_unknown_unicast_flood_group(attr_list[i].value.oid); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE: + req.set_unknown_multicast_flood_control_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP: + req.set_unknown_multicast_flood_group(attr_list[i].value.oid); + break; + case SAI_BRIDGE_ATTR_BROADCAST_FLOOD_CONTROL_TYPE: + req.set_broadcast_flood_control_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BRIDGE_ATTR_BROADCAST_FLOOD_GROUP: + req.set_broadcast_flood_group(attr_list[i].value.oid); + break; + } + } + grpc::Status status = bridge->CreateBridge(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *bridge_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_bridge(sai_object_id_t bridge_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_BRIDGE, bridge_id); + + lemming::dataplane::sai::RemoveBridgeRequest req; + lemming::dataplane::sai::RemoveBridgeResponse resp; + grpc::ClientContext context; + req.set_oid(bridge_id); + + grpc::Status status = bridge->RemoveBridge(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_bridge_attribute(sai_object_id_t bridge_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_BRIDGE, bridge_id, attr); + + lemming::dataplane::sai::SetBridgeAttributeRequest req; + lemming::dataplane::sai::SetBridgeAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(bridge_id); + + switch (attr->id) { + case SAI_BRIDGE_ATTR_MAX_LEARNED_ADDRESSES: + req.set_max_learned_addresses(attr->value.u32); + break; + case SAI_BRIDGE_ATTR_LEARN_DISABLE: + req.set_learn_disable(attr->value.booldata); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE: + req.set_unknown_unicast_flood_control_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP: + req.set_unknown_unicast_flood_group(attr->value.oid); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE: + req.set_unknown_multicast_flood_control_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP: + req.set_unknown_multicast_flood_group(attr->value.oid); + break; + case SAI_BRIDGE_ATTR_BROADCAST_FLOOD_CONTROL_TYPE: + req.set_broadcast_flood_control_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_BRIDGE_ATTR_BROADCAST_FLOOD_GROUP: + req.set_broadcast_flood_group(attr->value.oid); + break; + } + + grpc::Status status = bridge->SetBridgeAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bridge_attribute(sai_object_id_t bridge_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_BRIDGE, bridge_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetBridgeAttributeRequest req; + lemming::dataplane::sai::GetBridgeAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(bridge_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = bridge->GetBridgeAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BRIDGE_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_BRIDGE_ATTR_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_BRIDGE_ATTR_MAX_LEARNED_ADDRESSES: + attr_list[i].value.u32 = resp.attr().max_learned_addresses(); + break; + case SAI_BRIDGE_ATTR_LEARN_DISABLE: + attr_list[i].value.booldata = resp.attr().learn_disable(); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE: + attr_list[i].value.s32 = static_cast( + resp.attr().unknown_unicast_flood_control_type() - 1); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP: + attr_list[i].value.oid = resp.attr().unknown_unicast_flood_group(); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE: + attr_list[i].value.s32 = static_cast( + resp.attr().unknown_multicast_flood_control_type() - 1); + break; + case SAI_BRIDGE_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP: + attr_list[i].value.oid = resp.attr().unknown_multicast_flood_group(); + break; + case SAI_BRIDGE_ATTR_BROADCAST_FLOOD_CONTROL_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().broadcast_flood_control_type() - 1); + break; + case SAI_BRIDGE_ATTR_BROADCAST_FLOOD_GROUP: + attr_list[i].value.oid = resp.attr().broadcast_flood_group(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bridge_stats(sai_object_id_t bridge_id, @@ -68,8 +233,8 @@ sai_status_t l_get_bridge_stats(sai_object_id_t bridge_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_BRIDGE, bridge_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bridge_stats_ext(sai_object_id_t bridge_id, @@ -77,17 +242,16 @@ sai_status_t l_get_bridge_stats_ext(sai_object_id_t bridge_id, const sai_stat_id_t *counter_ids, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_BRIDGE, bridge_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_bridge_stats(sai_object_id_t bridge_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_BRIDGE, bridge_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_bridge_port(sai_object_id_t *bridge_port_id, @@ -95,28 +259,217 @@ sai_status_t l_create_bridge_port(sai_object_id_t *bridge_port_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_BRIDGE_PORT, bridge_port_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateBridgePortRequest req; + lemming::dataplane::sai::CreateBridgePortResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BRIDGE_PORT_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BRIDGE_PORT_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_BRIDGE_PORT_ATTR_TAGGING_MODE: + req.set_tagging_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BRIDGE_PORT_ATTR_VLAN_ID: + req.set_vlan_id(attr_list[i].value.u16); + break; + case SAI_BRIDGE_PORT_ATTR_RIF_ID: + req.set_rif_id(attr_list[i].value.oid); + break; + case SAI_BRIDGE_PORT_ATTR_TUNNEL_ID: + req.set_tunnel_id(attr_list[i].value.oid); + break; + case SAI_BRIDGE_PORT_ATTR_BRIDGE_ID: + req.set_bridge_id(attr_list[i].value.oid); + break; + case SAI_BRIDGE_PORT_ATTR_FDB_LEARNING_MODE: + req.set_fdb_learning_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BRIDGE_PORT_ATTR_MAX_LEARNED_ADDRESSES: + req.set_max_learned_addresses(attr_list[i].value.u32); + break; + case SAI_BRIDGE_PORT_ATTR_FDB_LEARNING_LIMIT_VIOLATION_PACKET_ACTION: + req.set_fdb_learning_limit_violation_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BRIDGE_PORT_ATTR_ADMIN_STATE: + req.set_admin_state(attr_list[i].value.booldata); + break; + case SAI_BRIDGE_PORT_ATTR_INGRESS_FILTERING: + req.set_ingress_filtering(attr_list[i].value.booldata); + break; + case SAI_BRIDGE_PORT_ATTR_EGRESS_FILTERING: + req.set_egress_filtering(attr_list[i].value.booldata); + break; + case SAI_BRIDGE_PORT_ATTR_ISOLATION_GROUP: + req.set_isolation_group(attr_list[i].value.oid); + break; + } + } + grpc::Status status = bridge->CreateBridgePort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *bridge_port_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_bridge_port(sai_object_id_t bridge_port_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_BRIDGE_PORT, bridge_port_id); + + lemming::dataplane::sai::RemoveBridgePortRequest req; + lemming::dataplane::sai::RemoveBridgePortResponse resp; + grpc::ClientContext context; + req.set_oid(bridge_port_id); + + grpc::Status status = bridge->RemoveBridgePort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_bridge_port_attribute(sai_object_id_t bridge_port_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_BRIDGE_PORT, bridge_port_id, - attr); + + lemming::dataplane::sai::SetBridgePortAttributeRequest req; + lemming::dataplane::sai::SetBridgePortAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(bridge_port_id); + + switch (attr->id) { + case SAI_BRIDGE_PORT_ATTR_TAGGING_MODE: + req.set_tagging_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_BRIDGE_PORT_ATTR_BRIDGE_ID: + req.set_bridge_id(attr->value.oid); + break; + case SAI_BRIDGE_PORT_ATTR_FDB_LEARNING_MODE: + req.set_fdb_learning_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_BRIDGE_PORT_ATTR_MAX_LEARNED_ADDRESSES: + req.set_max_learned_addresses(attr->value.u32); + break; + case SAI_BRIDGE_PORT_ATTR_FDB_LEARNING_LIMIT_VIOLATION_PACKET_ACTION: + req.set_fdb_learning_limit_violation_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_BRIDGE_PORT_ATTR_ADMIN_STATE: + req.set_admin_state(attr->value.booldata); + break; + case SAI_BRIDGE_PORT_ATTR_INGRESS_FILTERING: + req.set_ingress_filtering(attr->value.booldata); + break; + case SAI_BRIDGE_PORT_ATTR_EGRESS_FILTERING: + req.set_egress_filtering(attr->value.booldata); + break; + case SAI_BRIDGE_PORT_ATTR_ISOLATION_GROUP: + req.set_isolation_group(attr->value.oid); + break; + } + + grpc::Status status = bridge->SetBridgePortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bridge_port_attribute(sai_object_id_t bridge_port_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_BRIDGE_PORT, bridge_port_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetBridgePortAttributeRequest req; + lemming::dataplane::sai::GetBridgePortAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(bridge_port_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = bridge->GetBridgePortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BRIDGE_PORT_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_BRIDGE_PORT_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_BRIDGE_PORT_ATTR_TAGGING_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().tagging_mode() - 1); + break; + case SAI_BRIDGE_PORT_ATTR_VLAN_ID: + attr_list[i].value.u16 = resp.attr().vlan_id(); + break; + case SAI_BRIDGE_PORT_ATTR_RIF_ID: + attr_list[i].value.oid = resp.attr().rif_id(); + break; + case SAI_BRIDGE_PORT_ATTR_TUNNEL_ID: + attr_list[i].value.oid = resp.attr().tunnel_id(); + break; + case SAI_BRIDGE_PORT_ATTR_BRIDGE_ID: + attr_list[i].value.oid = resp.attr().bridge_id(); + break; + case SAI_BRIDGE_PORT_ATTR_FDB_LEARNING_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().fdb_learning_mode() - 1); + break; + case SAI_BRIDGE_PORT_ATTR_MAX_LEARNED_ADDRESSES: + attr_list[i].value.u32 = resp.attr().max_learned_addresses(); + break; + case SAI_BRIDGE_PORT_ATTR_FDB_LEARNING_LIMIT_VIOLATION_PACKET_ACTION: + attr_list[i].value.s32 = static_cast( + resp.attr().fdb_learning_limit_violation_packet_action() - 1); + break; + case SAI_BRIDGE_PORT_ATTR_ADMIN_STATE: + attr_list[i].value.booldata = resp.attr().admin_state(); + break; + case SAI_BRIDGE_PORT_ATTR_INGRESS_FILTERING: + attr_list[i].value.booldata = resp.attr().ingress_filtering(); + break; + case SAI_BRIDGE_PORT_ATTR_EGRESS_FILTERING: + attr_list[i].value.booldata = resp.attr().egress_filtering(); + break; + case SAI_BRIDGE_PORT_ATTR_ISOLATION_GROUP: + attr_list[i].value.oid = resp.attr().isolation_group(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bridge_port_stats(sai_object_id_t bridge_port_id, @@ -124,8 +477,8 @@ sai_status_t l_get_bridge_port_stats(sai_object_id_t bridge_port_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_BRIDGE_PORT, bridge_port_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_bridge_port_stats_ext(sai_object_id_t bridge_port_id, @@ -134,15 +487,14 @@ sai_status_t l_get_bridge_port_stats_ext(sai_object_id_t bridge_port_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_BRIDGE_PORT, bridge_port_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_bridge_port_stats(sai_object_id_t bridge_port_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_BRIDGE_PORT, bridge_port_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/buffer.cc b/dataplane/standalone/sai/buffer.cc index 779080e7..ef895362 100644 --- a/dataplane/standalone/sai/buffer.cc +++ b/dataplane/standalone/sai/buffer.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/buffer.pb.h" +#include "dataplane/standalone/proto/common.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -48,28 +52,150 @@ sai_status_t l_create_buffer_pool(sai_object_id_t *buffer_pool_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_BUFFER_POOL, buffer_pool_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateBufferPoolRequest req; + lemming::dataplane::sai::CreateBufferPoolResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BUFFER_POOL_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BUFFER_POOL_ATTR_SIZE: + req.set_size(attr_list[i].value.u64); + break; + case SAI_BUFFER_POOL_ATTR_THRESHOLD_MODE: + req.set_threshold_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BUFFER_POOL_ATTR_TAM: + req.mutable_tam()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_BUFFER_POOL_ATTR_XOFF_SIZE: + req.set_xoff_size(attr_list[i].value.u64); + break; + case SAI_BUFFER_POOL_ATTR_WRED_PROFILE_ID: + req.set_wred_profile_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = buffer->CreateBufferPool(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *buffer_pool_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_buffer_pool(sai_object_id_t buffer_pool_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_BUFFER_POOL, buffer_pool_id); + + lemming::dataplane::sai::RemoveBufferPoolRequest req; + lemming::dataplane::sai::RemoveBufferPoolResponse resp; + grpc::ClientContext context; + req.set_oid(buffer_pool_id); + + grpc::Status status = buffer->RemoveBufferPool(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_buffer_pool_attribute(sai_object_id_t buffer_pool_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_BUFFER_POOL, buffer_pool_id, - attr); + + lemming::dataplane::sai::SetBufferPoolAttributeRequest req; + lemming::dataplane::sai::SetBufferPoolAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(buffer_pool_id); + + switch (attr->id) { + case SAI_BUFFER_POOL_ATTR_SIZE: + req.set_size(attr->value.u64); + break; + case SAI_BUFFER_POOL_ATTR_TAM: + req.mutable_tam()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_BUFFER_POOL_ATTR_XOFF_SIZE: + req.set_xoff_size(attr->value.u64); + break; + case SAI_BUFFER_POOL_ATTR_WRED_PROFILE_ID: + req.set_wred_profile_id(attr->value.oid); + break; + } + + grpc::Status status = buffer->SetBufferPoolAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_buffer_pool_attribute(sai_object_id_t buffer_pool_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_BUFFER_POOL, buffer_pool_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetBufferPoolAttributeRequest req; + lemming::dataplane::sai::GetBufferPoolAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(buffer_pool_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = buffer->GetBufferPoolAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BUFFER_POOL_ATTR_SHARED_SIZE: + attr_list[i].value.u64 = resp.attr().shared_size(); + break; + case SAI_BUFFER_POOL_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_BUFFER_POOL_ATTR_SIZE: + attr_list[i].value.u64 = resp.attr().size(); + break; + case SAI_BUFFER_POOL_ATTR_THRESHOLD_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().threshold_mode() - 1); + break; + case SAI_BUFFER_POOL_ATTR_TAM: + copy_list(attr_list[i].value.objlist.list, resp.attr().tam(), + attr_list[i].value.objlist.count); + break; + case SAI_BUFFER_POOL_ATTR_XOFF_SIZE: + attr_list[i].value.u64 = resp.attr().xoff_size(); + break; + case SAI_BUFFER_POOL_ATTR_WRED_PROFILE_ID: + attr_list[i].value.oid = resp.attr().wred_profile_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_buffer_pool_stats(sai_object_id_t buffer_pool_id, @@ -77,8 +203,8 @@ sai_status_t l_get_buffer_pool_stats(sai_object_id_t buffer_pool_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_BUFFER_POOL, buffer_pool_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_buffer_pool_stats_ext(sai_object_id_t buffer_pool_id, @@ -87,58 +213,155 @@ sai_status_t l_get_buffer_pool_stats_ext(sai_object_id_t buffer_pool_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_BUFFER_POOL, buffer_pool_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_buffer_pool_stats(sai_object_id_t buffer_pool_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_BUFFER_POOL, buffer_pool_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_ingress_priority_group( sai_object_id_t *ingress_priority_group_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP, - ingress_priority_group_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateIngressPriorityGroupRequest req; + lemming::dataplane::sai::CreateIngressPriorityGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE: + req.set_buffer_profile(attr_list[i].value.oid); + break; + case SAI_INGRESS_PRIORITY_GROUP_ATTR_PORT: + req.set_port(attr_list[i].value.oid); + break; + case SAI_INGRESS_PRIORITY_GROUP_ATTR_TAM: + req.mutable_tam()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_INGRESS_PRIORITY_GROUP_ATTR_INDEX: + req.set_index(attr_list[i].value.u8); + break; + } + } + grpc::Status status = + buffer->CreateIngressPriorityGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *ingress_priority_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_ingress_priority_group( sai_object_id_t ingress_priority_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP, - ingress_priority_group_id); + + lemming::dataplane::sai::RemoveIngressPriorityGroupRequest req; + lemming::dataplane::sai::RemoveIngressPriorityGroupResponse resp; + grpc::ClientContext context; + req.set_oid(ingress_priority_group_id); + + grpc::Status status = + buffer->RemoveIngressPriorityGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_ingress_priority_group_attribute( sai_object_id_t ingress_priority_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP, - ingress_priority_group_id, attr); + + lemming::dataplane::sai::SetIngressPriorityGroupAttributeRequest req; + lemming::dataplane::sai::SetIngressPriorityGroupAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(ingress_priority_group_id); + + switch (attr->id) { + case SAI_INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE: + req.set_buffer_profile(attr->value.oid); + break; + case SAI_INGRESS_PRIORITY_GROUP_ATTR_TAM: + req.mutable_tam()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + } + + grpc::Status status = + buffer->SetIngressPriorityGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ingress_priority_group_attribute( sai_object_id_t ingress_priority_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP, - ingress_priority_group_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetIngressPriorityGroupAttributeRequest req; + lemming::dataplane::sai::GetIngressPriorityGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(ingress_priority_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + buffer->GetIngressPriorityGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_INGRESS_PRIORITY_GROUP_ATTR_BUFFER_PROFILE: + attr_list[i].value.oid = resp.attr().buffer_profile(); + break; + case SAI_INGRESS_PRIORITY_GROUP_ATTR_PORT: + attr_list[i].value.oid = resp.attr().port(); + break; + case SAI_INGRESS_PRIORITY_GROUP_ATTR_TAM: + copy_list(attr_list[i].value.objlist.list, resp.attr().tam(), + attr_list[i].value.objlist.count); + break; + case SAI_INGRESS_PRIORITY_GROUP_ATTR_INDEX: + attr_list[i].value.u8 = resp.attr().index(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ingress_priority_group_stats( sai_object_id_t ingress_priority_group_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP, - ingress_priority_group_id, number_of_counters, - counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ingress_priority_group_stats_ext( @@ -146,18 +369,16 @@ sai_status_t l_get_ingress_priority_group_stats_ext( const sai_stat_id_t *counter_ids, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext( - SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP, ingress_priority_group_id, - number_of_counters, counter_ids, mode, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_ingress_priority_group_stats( sai_object_id_t ingress_priority_group_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP, - ingress_priority_group_id, number_of_counters, - counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_buffer_profile(sai_object_id_t *buffer_profile_id, @@ -165,26 +386,157 @@ sai_status_t l_create_buffer_profile(sai_object_id_t *buffer_profile_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_BUFFER_PROFILE, buffer_profile_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateBufferProfileRequest req; + lemming::dataplane::sai::CreateBufferProfileResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BUFFER_PROFILE_ATTR_POOL_ID: + req.set_pool_id(attr_list[i].value.oid); + break; + case SAI_BUFFER_PROFILE_ATTR_RESERVED_BUFFER_SIZE: + req.set_reserved_buffer_size(attr_list[i].value.u64); + break; + case SAI_BUFFER_PROFILE_ATTR_THRESHOLD_MODE: + req.set_threshold_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH: + req.set_shared_dynamic_th(attr_list[i].value.s8); + break; + case SAI_BUFFER_PROFILE_ATTR_SHARED_STATIC_TH: + req.set_shared_static_th(attr_list[i].value.u64); + break; + case SAI_BUFFER_PROFILE_ATTR_XOFF_TH: + req.set_xoff_th(attr_list[i].value.u64); + break; + case SAI_BUFFER_PROFILE_ATTR_XON_TH: + req.set_xon_th(attr_list[i].value.u64); + break; + case SAI_BUFFER_PROFILE_ATTR_XON_OFFSET_TH: + req.set_xon_offset_th(attr_list[i].value.u64); + break; + } + } + grpc::Status status = buffer->CreateBufferProfile(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *buffer_profile_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_buffer_profile(sai_object_id_t buffer_profile_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_BUFFER_PROFILE, buffer_profile_id); + + lemming::dataplane::sai::RemoveBufferProfileRequest req; + lemming::dataplane::sai::RemoveBufferProfileResponse resp; + grpc::ClientContext context; + req.set_oid(buffer_profile_id); + + grpc::Status status = buffer->RemoveBufferProfile(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_buffer_profile_attribute(sai_object_id_t buffer_profile_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_BUFFER_PROFILE, - buffer_profile_id, attr); + + lemming::dataplane::sai::SetBufferProfileAttributeRequest req; + lemming::dataplane::sai::SetBufferProfileAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(buffer_profile_id); + + switch (attr->id) { + case SAI_BUFFER_PROFILE_ATTR_RESERVED_BUFFER_SIZE: + req.set_reserved_buffer_size(attr->value.u64); + break; + case SAI_BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH: + req.set_shared_dynamic_th(attr->value.s8); + break; + case SAI_BUFFER_PROFILE_ATTR_SHARED_STATIC_TH: + req.set_shared_static_th(attr->value.u64); + break; + case SAI_BUFFER_PROFILE_ATTR_XOFF_TH: + req.set_xoff_th(attr->value.u64); + break; + case SAI_BUFFER_PROFILE_ATTR_XON_TH: + req.set_xon_th(attr->value.u64); + break; + case SAI_BUFFER_PROFILE_ATTR_XON_OFFSET_TH: + req.set_xon_offset_th(attr->value.u64); + break; + } + + grpc::Status status = buffer->SetBufferProfileAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_buffer_profile_attribute(sai_object_id_t buffer_profile_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_BUFFER_PROFILE, - buffer_profile_id, attr_count, attr_list); + + lemming::dataplane::sai::GetBufferProfileAttributeRequest req; + lemming::dataplane::sai::GetBufferProfileAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(buffer_profile_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = buffer->GetBufferProfileAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_BUFFER_PROFILE_ATTR_POOL_ID: + attr_list[i].value.oid = resp.attr().pool_id(); + break; + case SAI_BUFFER_PROFILE_ATTR_RESERVED_BUFFER_SIZE: + attr_list[i].value.u64 = resp.attr().reserved_buffer_size(); + break; + case SAI_BUFFER_PROFILE_ATTR_THRESHOLD_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().threshold_mode() - 1); + break; + case SAI_BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH: + attr_list[i].value.s8 = resp.attr().shared_dynamic_th(); + break; + case SAI_BUFFER_PROFILE_ATTR_SHARED_STATIC_TH: + attr_list[i].value.u64 = resp.attr().shared_static_th(); + break; + case SAI_BUFFER_PROFILE_ATTR_XOFF_TH: + attr_list[i].value.u64 = resp.attr().xoff_th(); + break; + case SAI_BUFFER_PROFILE_ATTR_XON_TH: + attr_list[i].value.u64 = resp.attr().xon_th(); + break; + case SAI_BUFFER_PROFILE_ATTR_XON_OFFSET_TH: + attr_list[i].value.u64 = resp.attr().xon_offset_th(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/counter.cc b/dataplane/standalone/sai/counter.cc index 9eb97c14..6922b923 100644 --- a/dataplane/standalone/sai/counter.cc +++ b/dataplane/standalone/sai/counter.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/counter.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -33,27 +37,83 @@ sai_status_t l_create_counter(sai_object_id_t *counter_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_COUNTER, counter_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateCounterRequest req; + lemming::dataplane::sai::CreateCounterResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_COUNTER_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = counter->CreateCounter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *counter_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_counter(sai_object_id_t counter_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_COUNTER, counter_id); + + lemming::dataplane::sai::RemoveCounterRequest req; + lemming::dataplane::sai::RemoveCounterResponse resp; + grpc::ClientContext context; + req.set_oid(counter_id); + + grpc::Status status = counter->RemoveCounter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_counter_attribute(sai_object_id_t counter_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_COUNTER, counter_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_counter_attribute(sai_object_id_t counter_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_COUNTER, counter_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetCounterAttributeRequest req; + lemming::dataplane::sai::GetCounterAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(counter_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = counter->GetCounterAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_COUNTER_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_counter_stats(sai_object_id_t counter_id, @@ -61,8 +121,8 @@ sai_status_t l_get_counter_stats(sai_object_id_t counter_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_COUNTER, counter_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_counter_stats_ext(sai_object_id_t counter_id, @@ -71,15 +131,14 @@ sai_status_t l_get_counter_stats_ext(sai_object_id_t counter_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_COUNTER, counter_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_counter_stats(sai_object_id_t counter_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_COUNTER, counter_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/debug_counter.cc b/dataplane/standalone/sai/debug_counter.cc index b4bebefc..32c86f70 100644 --- a/dataplane/standalone/sai/debug_counter.cc +++ b/dataplane/standalone/sai/debug_counter.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/debug_counter.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -31,26 +35,94 @@ sai_status_t l_create_debug_counter(sai_object_id_t *debug_counter_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_DEBUG_COUNTER, debug_counter_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateDebugCounterRequest req; + lemming::dataplane::sai::CreateDebugCounterResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DEBUG_COUNTER_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_DEBUG_COUNTER_ATTR_BIND_METHOD: + req.set_bind_method( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = debug_counter->CreateDebugCounter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *debug_counter_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_debug_counter(sai_object_id_t debug_counter_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_DEBUG_COUNTER, debug_counter_id); + + lemming::dataplane::sai::RemoveDebugCounterRequest req; + lemming::dataplane::sai::RemoveDebugCounterResponse resp; + grpc::ClientContext context; + req.set_oid(debug_counter_id); + + grpc::Status status = debug_counter->RemoveDebugCounter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_debug_counter_attribute(sai_object_id_t debug_counter_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_DEBUG_COUNTER, - debug_counter_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_debug_counter_attribute(sai_object_id_t debug_counter_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_DEBUG_COUNTER, - debug_counter_id, attr_count, attr_list); + + lemming::dataplane::sai::GetDebugCounterAttributeRequest req; + lemming::dataplane::sai::GetDebugCounterAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(debug_counter_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + debug_counter->GetDebugCounterAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DEBUG_COUNTER_ATTR_INDEX: + attr_list[i].value.u32 = resp.attr().index(); + break; + case SAI_DEBUG_COUNTER_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_DEBUG_COUNTER_ATTR_BIND_METHOD: + attr_list[i].value.s32 = + static_cast(resp.attr().bind_method() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/dtel.cc b/dataplane/standalone/sai/dtel.cc index 3ccb9e8e..4d5401fd 100644 --- a/dataplane/standalone/sai/dtel.cc +++ b/dataplane/standalone/sai/dtel.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/dtel.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -46,26 +50,175 @@ sai_status_t l_create_dtel(sai_object_id_t *dtel_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_DTEL, dtel_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateDtelRequest req; + lemming::dataplane::sai::CreateDtelResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_ATTR_INT_ENDPOINT_ENABLE: + req.set_int_endpoint_enable(attr_list[i].value.booldata); + break; + case SAI_DTEL_ATTR_INT_TRANSIT_ENABLE: + req.set_int_transit_enable(attr_list[i].value.booldata); + break; + case SAI_DTEL_ATTR_POSTCARD_ENABLE: + req.set_postcard_enable(attr_list[i].value.booldata); + break; + case SAI_DTEL_ATTR_DROP_REPORT_ENABLE: + req.set_drop_report_enable(attr_list[i].value.booldata); + break; + case SAI_DTEL_ATTR_QUEUE_REPORT_ENABLE: + req.set_queue_report_enable(attr_list[i].value.booldata); + break; + case SAI_DTEL_ATTR_SWITCH_ID: + req.set_switch_id(attr_list[i].value.u32); + break; + case SAI_DTEL_ATTR_FLOW_STATE_CLEAR_CYCLE: + req.set_flow_state_clear_cycle(attr_list[i].value.u16); + break; + case SAI_DTEL_ATTR_LATENCY_SENSITIVITY: + req.set_latency_sensitivity(attr_list[i].value.u8); + break; + case SAI_DTEL_ATTR_SINK_PORT_LIST: + req.mutable_sink_port_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + } + } + grpc::Status status = dtel->CreateDtel(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *dtel_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_dtel(sai_object_id_t dtel_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_DTEL, dtel_id); + + lemming::dataplane::sai::RemoveDtelRequest req; + lemming::dataplane::sai::RemoveDtelResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_id); + + grpc::Status status = dtel->RemoveDtel(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_dtel_attribute(sai_object_id_t dtel_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_DTEL, dtel_id, attr); + + lemming::dataplane::sai::SetDtelAttributeRequest req; + lemming::dataplane::sai::SetDtelAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_id); + + switch (attr->id) { + case SAI_DTEL_ATTR_INT_ENDPOINT_ENABLE: + req.set_int_endpoint_enable(attr->value.booldata); + break; + case SAI_DTEL_ATTR_INT_TRANSIT_ENABLE: + req.set_int_transit_enable(attr->value.booldata); + break; + case SAI_DTEL_ATTR_POSTCARD_ENABLE: + req.set_postcard_enable(attr->value.booldata); + break; + case SAI_DTEL_ATTR_DROP_REPORT_ENABLE: + req.set_drop_report_enable(attr->value.booldata); + break; + case SAI_DTEL_ATTR_QUEUE_REPORT_ENABLE: + req.set_queue_report_enable(attr->value.booldata); + break; + case SAI_DTEL_ATTR_SWITCH_ID: + req.set_switch_id(attr->value.u32); + break; + case SAI_DTEL_ATTR_FLOW_STATE_CLEAR_CYCLE: + req.set_flow_state_clear_cycle(attr->value.u16); + break; + case SAI_DTEL_ATTR_LATENCY_SENSITIVITY: + req.set_latency_sensitivity(attr->value.u8); + break; + case SAI_DTEL_ATTR_SINK_PORT_LIST: + req.mutable_sink_port_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + } + + grpc::Status status = dtel->SetDtelAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_dtel_attribute(sai_object_id_t dtel_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_DTEL, dtel_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetDtelAttributeRequest req; + lemming::dataplane::sai::GetDtelAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(dtel_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = dtel->GetDtelAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_ATTR_INT_ENDPOINT_ENABLE: + attr_list[i].value.booldata = resp.attr().int_endpoint_enable(); + break; + case SAI_DTEL_ATTR_INT_TRANSIT_ENABLE: + attr_list[i].value.booldata = resp.attr().int_transit_enable(); + break; + case SAI_DTEL_ATTR_POSTCARD_ENABLE: + attr_list[i].value.booldata = resp.attr().postcard_enable(); + break; + case SAI_DTEL_ATTR_DROP_REPORT_ENABLE: + attr_list[i].value.booldata = resp.attr().drop_report_enable(); + break; + case SAI_DTEL_ATTR_QUEUE_REPORT_ENABLE: + attr_list[i].value.booldata = resp.attr().queue_report_enable(); + break; + case SAI_DTEL_ATTR_SWITCH_ID: + attr_list[i].value.u32 = resp.attr().switch_id(); + break; + case SAI_DTEL_ATTR_FLOW_STATE_CLEAR_CYCLE: + attr_list[i].value.u16 = resp.attr().flow_state_clear_cycle(); + break; + case SAI_DTEL_ATTR_LATENCY_SENSITIVITY: + attr_list[i].value.u8 = resp.attr().latency_sensitivity(); + break; + case SAI_DTEL_ATTR_SINK_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().sink_port_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_dtel_queue_report(sai_object_id_t *dtel_queue_report_id, @@ -73,30 +226,132 @@ sai_status_t l_create_dtel_queue_report(sai_object_id_t *dtel_queue_report_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_DTEL_QUEUE_REPORT, - dtel_queue_report_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateDtelQueueReportRequest req; + lemming::dataplane::sai::CreateDtelQueueReportResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_QUEUE_REPORT_ATTR_QUEUE_ID: + req.set_queue_id(attr_list[i].value.oid); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_DEPTH_THRESHOLD: + req.set_depth_threshold(attr_list[i].value.u32); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_LATENCY_THRESHOLD: + req.set_latency_threshold(attr_list[i].value.u32); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_BREACH_QUOTA: + req.set_breach_quota(attr_list[i].value.u32); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_TAIL_DROP: + req.set_tail_drop(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = dtel->CreateDtelQueueReport(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *dtel_queue_report_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_dtel_queue_report(sai_object_id_t dtel_queue_report_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_DTEL_QUEUE_REPORT, - dtel_queue_report_id); + + lemming::dataplane::sai::RemoveDtelQueueReportRequest req; + lemming::dataplane::sai::RemoveDtelQueueReportResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_queue_report_id); + + grpc::Status status = dtel->RemoveDtelQueueReport(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_dtel_queue_report_attribute( sai_object_id_t dtel_queue_report_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_DTEL_QUEUE_REPORT, - dtel_queue_report_id, attr); + + lemming::dataplane::sai::SetDtelQueueReportAttributeRequest req; + lemming::dataplane::sai::SetDtelQueueReportAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_queue_report_id); + + switch (attr->id) { + case SAI_DTEL_QUEUE_REPORT_ATTR_DEPTH_THRESHOLD: + req.set_depth_threshold(attr->value.u32); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_LATENCY_THRESHOLD: + req.set_latency_threshold(attr->value.u32); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_BREACH_QUOTA: + req.set_breach_quota(attr->value.u32); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_TAIL_DROP: + req.set_tail_drop(attr->value.booldata); + break; + } + + grpc::Status status = dtel->SetDtelQueueReportAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_dtel_queue_report_attribute( sai_object_id_t dtel_queue_report_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_DTEL_QUEUE_REPORT, - dtel_queue_report_id, attr_count, attr_list); + + lemming::dataplane::sai::GetDtelQueueReportAttributeRequest req; + lemming::dataplane::sai::GetDtelQueueReportAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(dtel_queue_report_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = dtel->GetDtelQueueReportAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_QUEUE_REPORT_ATTR_QUEUE_ID: + attr_list[i].value.oid = resp.attr().queue_id(); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_DEPTH_THRESHOLD: + attr_list[i].value.u32 = resp.attr().depth_threshold(); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_LATENCY_THRESHOLD: + attr_list[i].value.u32 = resp.attr().latency_threshold(); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_BREACH_QUOTA: + attr_list[i].value.u32 = resp.attr().breach_quota(); + break; + case SAI_DTEL_QUEUE_REPORT_ATTR_TAIL_DROP: + attr_list[i].value.booldata = resp.attr().tail_drop(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_dtel_int_session(sai_object_id_t *dtel_int_session_id, @@ -104,88 +359,387 @@ sai_status_t l_create_dtel_int_session(sai_object_id_t *dtel_int_session_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_DTEL_INT_SESSION, - dtel_int_session_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateDtelIntSessionRequest req; + lemming::dataplane::sai::CreateDtelIntSessionResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_INT_SESSION_ATTR_MAX_HOP_COUNT: + req.set_max_hop_count(attr_list[i].value.u8); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_ID: + req.set_collect_switch_id(attr_list[i].value.booldata); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_PORTS: + req.set_collect_switch_ports(attr_list[i].value.booldata); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_INGRESS_TIMESTAMP: + req.set_collect_ingress_timestamp(attr_list[i].value.booldata); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_EGRESS_TIMESTAMP: + req.set_collect_egress_timestamp(attr_list[i].value.booldata); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_QUEUE_INFO: + req.set_collect_queue_info(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = dtel->CreateDtelIntSession(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *dtel_int_session_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_dtel_int_session(sai_object_id_t dtel_int_session_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_DTEL_INT_SESSION, - dtel_int_session_id); + + lemming::dataplane::sai::RemoveDtelIntSessionRequest req; + lemming::dataplane::sai::RemoveDtelIntSessionResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_int_session_id); + + grpc::Status status = dtel->RemoveDtelIntSession(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_dtel_int_session_attribute( sai_object_id_t dtel_int_session_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_DTEL_INT_SESSION, - dtel_int_session_id, attr); + + lemming::dataplane::sai::SetDtelIntSessionAttributeRequest req; + lemming::dataplane::sai::SetDtelIntSessionAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_int_session_id); + + switch (attr->id) { + case SAI_DTEL_INT_SESSION_ATTR_MAX_HOP_COUNT: + req.set_max_hop_count(attr->value.u8); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_ID: + req.set_collect_switch_id(attr->value.booldata); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_PORTS: + req.set_collect_switch_ports(attr->value.booldata); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_INGRESS_TIMESTAMP: + req.set_collect_ingress_timestamp(attr->value.booldata); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_EGRESS_TIMESTAMP: + req.set_collect_egress_timestamp(attr->value.booldata); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_QUEUE_INFO: + req.set_collect_queue_info(attr->value.booldata); + break; + } + + grpc::Status status = dtel->SetDtelIntSessionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_dtel_int_session_attribute( sai_object_id_t dtel_int_session_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_DTEL_INT_SESSION, - dtel_int_session_id, attr_count, attr_list); + + lemming::dataplane::sai::GetDtelIntSessionAttributeRequest req; + lemming::dataplane::sai::GetDtelIntSessionAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(dtel_int_session_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = dtel->GetDtelIntSessionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_INT_SESSION_ATTR_MAX_HOP_COUNT: + attr_list[i].value.u8 = resp.attr().max_hop_count(); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_ID: + attr_list[i].value.booldata = resp.attr().collect_switch_id(); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_SWITCH_PORTS: + attr_list[i].value.booldata = resp.attr().collect_switch_ports(); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_INGRESS_TIMESTAMP: + attr_list[i].value.booldata = resp.attr().collect_ingress_timestamp(); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_EGRESS_TIMESTAMP: + attr_list[i].value.booldata = resp.attr().collect_egress_timestamp(); + break; + case SAI_DTEL_INT_SESSION_ATTR_COLLECT_QUEUE_INFO: + attr_list[i].value.booldata = resp.attr().collect_queue_info(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_dtel_report_session( sai_object_id_t *dtel_report_session_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_DTEL_REPORT_SESSION, - dtel_report_session_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateDtelReportSessionRequest req; + lemming::dataplane::sai::CreateDtelReportSessionResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_REPORT_SESSION_ATTR_SRC_IP: + req.set_src_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_VIRTUAL_ROUTER_ID: + req.set_virtual_router_id(attr_list[i].value.oid); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_TRUNCATE_SIZE: + req.set_truncate_size(attr_list[i].value.u16); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_UDP_DST_PORT: + req.set_udp_dst_port(attr_list[i].value.u16); + break; + } + } + grpc::Status status = dtel->CreateDtelReportSession(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *dtel_report_session_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_dtel_report_session( sai_object_id_t dtel_report_session_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_DTEL_REPORT_SESSION, - dtel_report_session_id); + + lemming::dataplane::sai::RemoveDtelReportSessionRequest req; + lemming::dataplane::sai::RemoveDtelReportSessionResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_report_session_id); + + grpc::Status status = dtel->RemoveDtelReportSession(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_dtel_report_session_attribute( sai_object_id_t dtel_report_session_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_DTEL_REPORT_SESSION, - dtel_report_session_id, attr); + + lemming::dataplane::sai::SetDtelReportSessionAttributeRequest req; + lemming::dataplane::sai::SetDtelReportSessionAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_report_session_id); + + switch (attr->id) { + case SAI_DTEL_REPORT_SESSION_ATTR_SRC_IP: + req.set_src_ip(convert_from_ip_address(attr->value.ipaddr)); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_VIRTUAL_ROUTER_ID: + req.set_virtual_router_id(attr->value.oid); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_TRUNCATE_SIZE: + req.set_truncate_size(attr->value.u16); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_UDP_DST_PORT: + req.set_udp_dst_port(attr->value.u16); + break; + } + + grpc::Status status = + dtel->SetDtelReportSessionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_dtel_report_session_attribute( sai_object_id_t dtel_report_session_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_DTEL_REPORT_SESSION, - dtel_report_session_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetDtelReportSessionAttributeRequest req; + lemming::dataplane::sai::GetDtelReportSessionAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(dtel_report_session_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + dtel->GetDtelReportSessionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_REPORT_SESSION_ATTR_SRC_IP: + attr_list[i].value.ipaddr = convert_to_ip_address(resp.attr().src_ip()); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_VIRTUAL_ROUTER_ID: + attr_list[i].value.oid = resp.attr().virtual_router_id(); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_TRUNCATE_SIZE: + attr_list[i].value.u16 = resp.attr().truncate_size(); + break; + case SAI_DTEL_REPORT_SESSION_ATTR_UDP_DST_PORT: + attr_list[i].value.u16 = resp.attr().udp_dst_port(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_dtel_event(sai_object_id_t *dtel_event_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_DTEL_EVENT, dtel_event_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateDtelEventRequest req; + lemming::dataplane::sai::CreateDtelEventResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_EVENT_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_DTEL_EVENT_ATTR_REPORT_SESSION: + req.set_report_session(attr_list[i].value.oid); + break; + case SAI_DTEL_EVENT_ATTR_DSCP_VALUE: + req.set_dscp_value(attr_list[i].value.u8); + break; + } + } + grpc::Status status = dtel->CreateDtelEvent(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *dtel_event_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_dtel_event(sai_object_id_t dtel_event_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_DTEL_EVENT, dtel_event_id); + + lemming::dataplane::sai::RemoveDtelEventRequest req; + lemming::dataplane::sai::RemoveDtelEventResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_event_id); + + grpc::Status status = dtel->RemoveDtelEvent(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_dtel_event_attribute(sai_object_id_t dtel_event_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_DTEL_EVENT, dtel_event_id, - attr); + + lemming::dataplane::sai::SetDtelEventAttributeRequest req; + lemming::dataplane::sai::SetDtelEventAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(dtel_event_id); + + switch (attr->id) { + case SAI_DTEL_EVENT_ATTR_REPORT_SESSION: + req.set_report_session(attr->value.oid); + break; + case SAI_DTEL_EVENT_ATTR_DSCP_VALUE: + req.set_dscp_value(attr->value.u8); + break; + } + + grpc::Status status = dtel->SetDtelEventAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_dtel_event_attribute(sai_object_id_t dtel_event_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_DTEL_EVENT, dtel_event_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetDtelEventAttributeRequest req; + lemming::dataplane::sai::GetDtelEventAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(dtel_event_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = dtel->GetDtelEventAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_DTEL_EVENT_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_DTEL_EVENT_ATTR_REPORT_SESSION: + attr_list[i].value.oid = resp.attr().report_session(); + break; + case SAI_DTEL_EVENT_ATTR_DSCP_VALUE: + attr_list[i].value.u8 = resp.attr().dscp_value(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/fdb.cc b/dataplane/standalone/sai/fdb.cc index d55c2838..7233ca19 100644 --- a/dataplane/standalone/sai/fdb.cc +++ b/dataplane/standalone/sai/fdb.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/fdb.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -35,31 +39,163 @@ sai_status_t l_create_fdb_entry(const sai_fdb_entry_t *fdb_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.fdb_entry = fdb_entry}; - return translator->create(SAI_OBJECT_TYPE_FDB_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateFdbEntryRequest req; + lemming::dataplane::sai::CreateFdbEntryResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_FDB_ENTRY_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_FDB_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_FDB_ENTRY_ATTR_USER_TRAP_ID: + req.set_user_trap_id(attr_list[i].value.oid); + break; + case SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID: + req.set_bridge_port_id(attr_list[i].value.oid); + break; + case SAI_FDB_ENTRY_ATTR_META_DATA: + req.set_meta_data(attr_list[i].value.u32); + break; + case SAI_FDB_ENTRY_ATTR_ENDPOINT_IP: + req.set_endpoint_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_FDB_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + case SAI_FDB_ENTRY_ATTR_ALLOW_MAC_MOVE: + req.set_allow_mac_move(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = fdb->CreateFdbEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_fdb_entry(const sai_fdb_entry_t *fdb_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.fdb_entry = fdb_entry}; - return translator->remove(SAI_OBJECT_TYPE_FDB_ENTRY, entry); + + lemming::dataplane::sai::RemoveFdbEntryRequest req; + lemming::dataplane::sai::RemoveFdbEntryResponse resp; + grpc::ClientContext context; + + grpc::Status status = fdb->RemoveFdbEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_fdb_entry_attribute(const sai_fdb_entry_t *fdb_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.fdb_entry = fdb_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_FDB_ENTRY, entry, attr); + + lemming::dataplane::sai::SetFdbEntryAttributeRequest req; + lemming::dataplane::sai::SetFdbEntryAttributeResponse resp; + grpc::ClientContext context; + + switch (attr->id) { + case SAI_FDB_ENTRY_ATTR_TYPE: + req.set_type(static_cast( + attr->value.s32 + 1)); + break; + case SAI_FDB_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_FDB_ENTRY_ATTR_USER_TRAP_ID: + req.set_user_trap_id(attr->value.oid); + break; + case SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID: + req.set_bridge_port_id(attr->value.oid); + break; + case SAI_FDB_ENTRY_ATTR_META_DATA: + req.set_meta_data(attr->value.u32); + break; + case SAI_FDB_ENTRY_ATTR_ENDPOINT_IP: + req.set_endpoint_ip(convert_from_ip_address(attr->value.ipaddr)); + break; + case SAI_FDB_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + case SAI_FDB_ENTRY_ATTR_ALLOW_MAC_MOVE: + req.set_allow_mac_move(attr->value.booldata); + break; + } + + grpc::Status status = fdb->SetFdbEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_fdb_entry_attribute(const sai_fdb_entry_t *fdb_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.fdb_entry = fdb_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_FDB_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::GetFdbEntryAttributeRequest req; + lemming::dataplane::sai::GetFdbEntryAttributeResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = fdb->GetFdbEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_FDB_ENTRY_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_FDB_ENTRY_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_FDB_ENTRY_ATTR_USER_TRAP_ID: + attr_list[i].value.oid = resp.attr().user_trap_id(); + break; + case SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID: + attr_list[i].value.oid = resp.attr().bridge_port_id(); + break; + case SAI_FDB_ENTRY_ATTR_META_DATA: + attr_list[i].value.u32 = resp.attr().meta_data(); + break; + case SAI_FDB_ENTRY_ATTR_ENDPOINT_IP: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().endpoint_ip()); + break; + case SAI_FDB_ENTRY_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + case SAI_FDB_ENTRY_ATTR_ALLOW_MAC_MOVE: + attr_list[i].value.booldata = resp.attr().allow_mac_move(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_flush_fdb_entries(sai_object_id_t switch_id, uint32_t attr_count, @@ -75,9 +211,8 @@ sai_status_t l_create_fdb_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.fdb_entry = fdb_entry}; - return translator->create_bulk(SAI_OBJECT_TYPE_FDB_ENTRY, object_count, entry, - attr_count, attr_list, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_fdb_entries(uint32_t object_count, @@ -85,9 +220,8 @@ sai_status_t l_remove_fdb_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.fdb_entry = fdb_entry}; - return translator->remove_bulk(SAI_OBJECT_TYPE_FDB_ENTRY, object_count, entry, - mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_fdb_entries_attribute(uint32_t object_count, @@ -96,10 +230,8 @@ sai_status_t l_set_fdb_entries_attribute(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.fdb_entry = fdb_entry}; - return translator->set_attribute_bulk(SAI_OBJECT_TYPE_FDB_ENTRY, object_count, - entry, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_fdb_entries_attribute(uint32_t object_count, @@ -109,8 +241,6 @@ sai_status_t l_get_fdb_entries_attribute(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.fdb_entry = fdb_entry}; - return translator->get_attribute_bulk(SAI_OBJECT_TYPE_FDB_ENTRY, object_count, - entry, attr_count, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/hash.cc b/dataplane/standalone/sai/hash.cc index 8dd726fe..bb9c7203 100644 --- a/dataplane/standalone/sai/hash.cc +++ b/dataplane/standalone/sai/hash.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/hash.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -36,56 +40,226 @@ sai_status_t l_create_hash(sai_object_id_t *hash_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_HASH, hash_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateHashRequest req; + lemming::dataplane::sai::CreateHashResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HASH_ATTR_UDF_GROUP_LIST: + req.mutable_udf_group_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_HASH_ATTR_FINE_GRAINED_HASH_FIELD_LIST: + req.mutable_fine_grained_hash_field_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + } + } + grpc::Status status = hash->CreateHash(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *hash_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_hash(sai_object_id_t hash_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_HASH, hash_id); + + lemming::dataplane::sai::RemoveHashRequest req; + lemming::dataplane::sai::RemoveHashResponse resp; + grpc::ClientContext context; + req.set_oid(hash_id); + + grpc::Status status = hash->RemoveHash(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_hash_attribute(sai_object_id_t hash_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_HASH, hash_id, attr); + + lemming::dataplane::sai::SetHashAttributeRequest req; + lemming::dataplane::sai::SetHashAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(hash_id); + + switch (attr->id) { + case SAI_HASH_ATTR_UDF_GROUP_LIST: + req.mutable_udf_group_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_HASH_ATTR_FINE_GRAINED_HASH_FIELD_LIST: + req.mutable_fine_grained_hash_field_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + } + + grpc::Status status = hash->SetHashAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_hash_attribute(sai_object_id_t hash_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_HASH, hash_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetHashAttributeRequest req; + lemming::dataplane::sai::GetHashAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(hash_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = hash->GetHashAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HASH_ATTR_UDF_GROUP_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().udf_group_list(), + attr_list[i].value.objlist.count); + break; + case SAI_HASH_ATTR_FINE_GRAINED_HASH_FIELD_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().fine_grained_hash_field_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_fine_grained_hash_field( sai_object_id_t *fine_grained_hash_field_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_FINE_GRAINED_HASH_FIELD, - fine_grained_hash_field_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateFineGrainedHashFieldRequest req; + lemming::dataplane::sai::CreateFineGrainedHashFieldResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_FINE_GRAINED_HASH_FIELD_ATTR_NATIVE_HASH_FIELD: + req.set_native_hash_field( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_FINE_GRAINED_HASH_FIELD_ATTR_IPV4_MASK: + req.set_ipv4_mask(&attr_list[i].value.ip4, + sizeof(attr_list[i].value.ip4)); + break; + case SAI_FINE_GRAINED_HASH_FIELD_ATTR_IPV6_MASK: + req.set_ipv6_mask(attr_list[i].value.ip6, + sizeof(attr_list[i].value.ip6)); + break; + case SAI_FINE_GRAINED_HASH_FIELD_ATTR_SEQUENCE_ID: + req.set_sequence_id(attr_list[i].value.u32); + break; + } + } + grpc::Status status = hash->CreateFineGrainedHashField(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *fine_grained_hash_field_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_fine_grained_hash_field( sai_object_id_t fine_grained_hash_field_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_FINE_GRAINED_HASH_FIELD, - fine_grained_hash_field_id); + + lemming::dataplane::sai::RemoveFineGrainedHashFieldRequest req; + lemming::dataplane::sai::RemoveFineGrainedHashFieldResponse resp; + grpc::ClientContext context; + req.set_oid(fine_grained_hash_field_id); + + grpc::Status status = hash->RemoveFineGrainedHashField(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_fine_grained_hash_field_attribute( sai_object_id_t fine_grained_hash_field_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_FINE_GRAINED_HASH_FIELD, - fine_grained_hash_field_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_fine_grained_hash_field_attribute( sai_object_id_t fine_grained_hash_field_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_FINE_GRAINED_HASH_FIELD, - fine_grained_hash_field_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetFineGrainedHashFieldAttributeRequest req; + lemming::dataplane::sai::GetFineGrainedHashFieldAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(fine_grained_hash_field_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + hash->GetFineGrainedHashFieldAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_FINE_GRAINED_HASH_FIELD_ATTR_NATIVE_HASH_FIELD: + attr_list[i].value.s32 = + static_cast(resp.attr().native_hash_field() - 1); + break; + case SAI_FINE_GRAINED_HASH_FIELD_ATTR_IPV4_MASK: + memcpy(&attr_list[i].value.ip4, resp.attr().ipv4_mask().data(), + sizeof(sai_ip4_t)); + break; + case SAI_FINE_GRAINED_HASH_FIELD_ATTR_IPV6_MASK: + memcpy(attr_list[i].value.ip6, resp.attr().ipv6_mask().data(), + sizeof(sai_ip6_t)); + break; + case SAI_FINE_GRAINED_HASH_FIELD_ATTR_SEQUENCE_ID: + attr_list[i].value.u32 = resp.attr().sequence_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/hostif.cc b/dataplane/standalone/sai/hostif.cc index 7653d899..c319fcd1 100644 --- a/dataplane/standalone/sai/hostif.cc +++ b/dataplane/standalone/sai/hostif.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/hostif.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -52,27 +56,145 @@ sai_status_t l_create_hostif(sai_object_id_t *hostif_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_HOSTIF, hostif_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateHostifRequest req; + lemming::dataplane::sai::CreateHostifResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_HOSTIF_ATTR_OBJ_ID: + req.set_obj_id(attr_list[i].value.oid); + break; + case SAI_HOSTIF_ATTR_NAME: + req.set_name(attr_list[i].value.chardata); + break; + case SAI_HOSTIF_ATTR_OPER_STATUS: + req.set_oper_status(attr_list[i].value.booldata); + break; + case SAI_HOSTIF_ATTR_QUEUE: + req.set_queue(attr_list[i].value.u32); + break; + case SAI_HOSTIF_ATTR_VLAN_TAG: + req.set_vlan_tag(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_HOSTIF_ATTR_GENETLINK_MCGRP_NAME: + req.set_genetlink_mcgrp_name(attr_list[i].value.chardata); + break; + } + } + grpc::Status status = hostif->CreateHostif(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *hostif_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_hostif(sai_object_id_t hostif_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_HOSTIF, hostif_id); + + lemming::dataplane::sai::RemoveHostifRequest req; + lemming::dataplane::sai::RemoveHostifResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_id); + + grpc::Status status = hostif->RemoveHostif(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_hostif_attribute(sai_object_id_t hostif_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_HOSTIF, hostif_id, attr); + + lemming::dataplane::sai::SetHostifAttributeRequest req; + lemming::dataplane::sai::SetHostifAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_id); + + switch (attr->id) { + case SAI_HOSTIF_ATTR_OPER_STATUS: + req.set_oper_status(attr->value.booldata); + break; + case SAI_HOSTIF_ATTR_QUEUE: + req.set_queue(attr->value.u32); + break; + case SAI_HOSTIF_ATTR_VLAN_TAG: + req.set_vlan_tag(static_cast( + attr->value.s32 + 1)); + break; + } + + grpc::Status status = hostif->SetHostifAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_hostif_attribute(sai_object_id_t hostif_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_HOSTIF, hostif_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetHostifAttributeRequest req; + lemming::dataplane::sai::GetHostifAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(hostif_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = hostif->GetHostifAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_HOSTIF_ATTR_OBJ_ID: + attr_list[i].value.oid = resp.attr().obj_id(); + break; + case SAI_HOSTIF_ATTR_NAME: + strncpy(attr_list[i].value.chardata, resp.attr().name().data(), 32); + break; + case SAI_HOSTIF_ATTR_OPER_STATUS: + attr_list[i].value.booldata = resp.attr().oper_status(); + break; + case SAI_HOSTIF_ATTR_QUEUE: + attr_list[i].value.u32 = resp.attr().queue(); + break; + case SAI_HOSTIF_ATTR_VLAN_TAG: + attr_list[i].value.s32 = static_cast(resp.attr().vlan_tag() - 1); + break; + case SAI_HOSTIF_ATTR_GENETLINK_MCGRP_NAME: + strncpy(attr_list[i].value.chardata, + resp.attr().genetlink_mcgrp_name().data(), 32); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_hostif_table_entry(sai_object_id_t *hostif_table_entry_id, @@ -80,32 +202,113 @@ sai_status_t l_create_hostif_table_entry(sai_object_id_t *hostif_table_entry_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_HOSTIF_TABLE_ENTRY, - hostif_table_entry_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateHostifTableEntryRequest req; + lemming::dataplane::sai::CreateHostifTableEntryResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_TABLE_ENTRY_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_HOSTIF_TABLE_ENTRY_ATTR_OBJ_ID: + req.set_obj_id(attr_list[i].value.oid); + break; + case SAI_HOSTIF_TABLE_ENTRY_ATTR_TRAP_ID: + req.set_trap_id(attr_list[i].value.oid); + break; + case SAI_HOSTIF_TABLE_ENTRY_ATTR_CHANNEL_TYPE: + req.set_channel_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_HOSTIF_TABLE_ENTRY_ATTR_HOST_IF: + req.set_host_if(attr_list[i].value.oid); + break; + } + } + grpc::Status status = hostif->CreateHostifTableEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *hostif_table_entry_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_hostif_table_entry( sai_object_id_t hostif_table_entry_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_HOSTIF_TABLE_ENTRY, - hostif_table_entry_id); + + lemming::dataplane::sai::RemoveHostifTableEntryRequest req; + lemming::dataplane::sai::RemoveHostifTableEntryResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_table_entry_id); + + grpc::Status status = hostif->RemoveHostifTableEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_hostif_table_entry_attribute( sai_object_id_t hostif_table_entry_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_HOSTIF_TABLE_ENTRY, - hostif_table_entry_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_hostif_table_entry_attribute( sai_object_id_t hostif_table_entry_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_HOSTIF_TABLE_ENTRY, - hostif_table_entry_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetHostifTableEntryAttributeRequest req; + lemming::dataplane::sai::GetHostifTableEntryAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(hostif_table_entry_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + hostif->GetHostifTableEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_TABLE_ENTRY_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_HOSTIF_TABLE_ENTRY_ATTR_OBJ_ID: + attr_list[i].value.oid = resp.attr().obj_id(); + break; + case SAI_HOSTIF_TABLE_ENTRY_ATTR_TRAP_ID: + attr_list[i].value.oid = resp.attr().trap_id(); + break; + case SAI_HOSTIF_TABLE_ENTRY_ATTR_CHANNEL_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().channel_type() - 1); + break; + case SAI_HOSTIF_TABLE_ENTRY_ATTR_HOST_IF: + attr_list[i].value.oid = resp.attr().host_if(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_hostif_trap_group(sai_object_id_t *hostif_trap_group_id, @@ -113,30 +316,119 @@ sai_status_t l_create_hostif_trap_group(sai_object_id_t *hostif_trap_group_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_HOSTIF_TRAP_GROUP, - hostif_trap_group_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateHostifTrapGroupRequest req; + lemming::dataplane::sai::CreateHostifTrapGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_TRAP_GROUP_ATTR_ADMIN_STATE: + req.set_admin_state(attr_list[i].value.booldata); + break; + case SAI_HOSTIF_TRAP_GROUP_ATTR_QUEUE: + req.set_queue(attr_list[i].value.u32); + break; + case SAI_HOSTIF_TRAP_GROUP_ATTR_POLICER: + req.set_policer(attr_list[i].value.oid); + break; + } + } + grpc::Status status = hostif->CreateHostifTrapGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *hostif_trap_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_hostif_trap_group(sai_object_id_t hostif_trap_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_HOSTIF_TRAP_GROUP, - hostif_trap_group_id); + + lemming::dataplane::sai::RemoveHostifTrapGroupRequest req; + lemming::dataplane::sai::RemoveHostifTrapGroupResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_trap_group_id); + + grpc::Status status = hostif->RemoveHostifTrapGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_hostif_trap_group_attribute( sai_object_id_t hostif_trap_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_HOSTIF_TRAP_GROUP, - hostif_trap_group_id, attr); + + lemming::dataplane::sai::SetHostifTrapGroupAttributeRequest req; + lemming::dataplane::sai::SetHostifTrapGroupAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_trap_group_id); + + switch (attr->id) { + case SAI_HOSTIF_TRAP_GROUP_ATTR_ADMIN_STATE: + req.set_admin_state(attr->value.booldata); + break; + case SAI_HOSTIF_TRAP_GROUP_ATTR_QUEUE: + req.set_queue(attr->value.u32); + break; + case SAI_HOSTIF_TRAP_GROUP_ATTR_POLICER: + req.set_policer(attr->value.oid); + break; + } + + grpc::Status status = + hostif->SetHostifTrapGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_hostif_trap_group_attribute( sai_object_id_t hostif_trap_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_HOSTIF_TRAP_GROUP, - hostif_trap_group_id, attr_count, attr_list); + + lemming::dataplane::sai::GetHostifTrapGroupAttributeRequest req; + lemming::dataplane::sai::GetHostifTrapGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(hostif_trap_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + hostif->GetHostifTrapGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_TRAP_GROUP_ATTR_ADMIN_STATE: + attr_list[i].value.booldata = resp.attr().admin_state(); + break; + case SAI_HOSTIF_TRAP_GROUP_ATTR_QUEUE: + attr_list[i].value.u32 = resp.attr().queue(); + break; + case SAI_HOSTIF_TRAP_GROUP_ATTR_POLICER: + attr_list[i].value.oid = resp.attr().policer(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_hostif_trap(sai_object_id_t *hostif_trap_id, @@ -144,60 +436,288 @@ sai_status_t l_create_hostif_trap(sai_object_id_t *hostif_trap_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_HOSTIF_TRAP, hostif_trap_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateHostifTrapRequest req; + lemming::dataplane::sai::CreateHostifTrapResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_TRAP_ATTR_TRAP_TYPE: + req.set_trap_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_HOSTIF_TRAP_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_HOSTIF_TRAP_ATTR_TRAP_PRIORITY: + req.set_trap_priority(attr_list[i].value.u32); + break; + case SAI_HOSTIF_TRAP_ATTR_EXCLUDE_PORT_LIST: + req.mutable_exclude_port_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_HOSTIF_TRAP_ATTR_TRAP_GROUP: + req.set_trap_group(attr_list[i].value.oid); + break; + case SAI_HOSTIF_TRAP_ATTR_MIRROR_SESSION: + req.mutable_mirror_session()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_HOSTIF_TRAP_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = hostif->CreateHostifTrap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *hostif_trap_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_hostif_trap(sai_object_id_t hostif_trap_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_HOSTIF_TRAP, hostif_trap_id); + + lemming::dataplane::sai::RemoveHostifTrapRequest req; + lemming::dataplane::sai::RemoveHostifTrapResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_trap_id); + + grpc::Status status = hostif->RemoveHostifTrap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_hostif_trap_attribute(sai_object_id_t hostif_trap_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_HOSTIF_TRAP, hostif_trap_id, - attr); + + lemming::dataplane::sai::SetHostifTrapAttributeRequest req; + lemming::dataplane::sai::SetHostifTrapAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_trap_id); + + switch (attr->id) { + case SAI_HOSTIF_TRAP_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_HOSTIF_TRAP_ATTR_TRAP_PRIORITY: + req.set_trap_priority(attr->value.u32); + break; + case SAI_HOSTIF_TRAP_ATTR_EXCLUDE_PORT_LIST: + req.mutable_exclude_port_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_HOSTIF_TRAP_ATTR_TRAP_GROUP: + req.set_trap_group(attr->value.oid); + break; + case SAI_HOSTIF_TRAP_ATTR_MIRROR_SESSION: + req.mutable_mirror_session()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_HOSTIF_TRAP_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + } + + grpc::Status status = hostif->SetHostifTrapAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_hostif_trap_attribute(sai_object_id_t hostif_trap_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_HOSTIF_TRAP, hostif_trap_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetHostifTrapAttributeRequest req; + lemming::dataplane::sai::GetHostifTrapAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(hostif_trap_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = hostif->GetHostifTrapAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_TRAP_ATTR_TRAP_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().trap_type() - 1); + break; + case SAI_HOSTIF_TRAP_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_HOSTIF_TRAP_ATTR_TRAP_PRIORITY: + attr_list[i].value.u32 = resp.attr().trap_priority(); + break; + case SAI_HOSTIF_TRAP_ATTR_EXCLUDE_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().exclude_port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_HOSTIF_TRAP_ATTR_TRAP_GROUP: + attr_list[i].value.oid = resp.attr().trap_group(); + break; + case SAI_HOSTIF_TRAP_ATTR_MIRROR_SESSION: + copy_list(attr_list[i].value.objlist.list, resp.attr().mirror_session(), + attr_list[i].value.objlist.count); + break; + case SAI_HOSTIF_TRAP_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_hostif_user_defined_trap( sai_object_id_t *hostif_user_defined_trap_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_HOSTIF_USER_DEFINED_TRAP, - hostif_user_defined_trap_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateHostifUserDefinedTrapRequest req; + lemming::dataplane::sai::CreateHostifUserDefinedTrapResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_USER_DEFINED_TRAP_ATTR_TYPE: + req.set_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_PRIORITY: + req.set_trap_priority(attr_list[i].value.u32); + break; + case SAI_HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_GROUP: + req.set_trap_group(attr_list[i].value.oid); + break; + } + } + grpc::Status status = + hostif->CreateHostifUserDefinedTrap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *hostif_user_defined_trap_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_hostif_user_defined_trap( sai_object_id_t hostif_user_defined_trap_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_HOSTIF_USER_DEFINED_TRAP, - hostif_user_defined_trap_id); + + lemming::dataplane::sai::RemoveHostifUserDefinedTrapRequest req; + lemming::dataplane::sai::RemoveHostifUserDefinedTrapResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_user_defined_trap_id); + + grpc::Status status = + hostif->RemoveHostifUserDefinedTrap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_hostif_user_defined_trap_attribute( sai_object_id_t hostif_user_defined_trap_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_HOSTIF_USER_DEFINED_TRAP, - hostif_user_defined_trap_id, attr); + + lemming::dataplane::sai::SetHostifUserDefinedTrapAttributeRequest req; + lemming::dataplane::sai::SetHostifUserDefinedTrapAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(hostif_user_defined_trap_id); + + switch (attr->id) { + case SAI_HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_PRIORITY: + req.set_trap_priority(attr->value.u32); + break; + case SAI_HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_GROUP: + req.set_trap_group(attr->value.oid); + break; + } + + grpc::Status status = + hostif->SetHostifUserDefinedTrapAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_hostif_user_defined_trap_attribute( sai_object_id_t hostif_user_defined_trap_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_HOSTIF_USER_DEFINED_TRAP, - hostif_user_defined_trap_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetHostifUserDefinedTrapAttributeRequest req; + lemming::dataplane::sai::GetHostifUserDefinedTrapAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(hostif_user_defined_trap_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + hostif->GetHostifUserDefinedTrapAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_HOSTIF_USER_DEFINED_TRAP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_PRIORITY: + attr_list[i].value.u32 = resp.attr().trap_priority(); + break; + case SAI_HOSTIF_USER_DEFINED_TRAP_ATTR_TRAP_GROUP: + attr_list[i].value.oid = resp.attr().trap_group(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_recv_hostif_packet(sai_object_id_t hostif_id, diff --git a/dataplane/standalone/sai/ipmc.cc b/dataplane/standalone/sai/ipmc.cc index a3541471..2f882e82 100644 --- a/dataplane/standalone/sai/ipmc.cc +++ b/dataplane/standalone/sai/ipmc.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/ipmc.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -30,29 +34,113 @@ sai_status_t l_create_ipmc_entry(const sai_ipmc_entry_t *ipmc_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.ipmc_entry = ipmc_entry}; - return translator->create(SAI_OBJECT_TYPE_IPMC_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateIpmcEntryRequest req; + lemming::dataplane::sai::CreateIpmcEntryResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPMC_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_IPMC_ENTRY_ATTR_OUTPUT_GROUP_ID: + req.set_output_group_id(attr_list[i].value.oid); + break; + case SAI_IPMC_ENTRY_ATTR_RPF_GROUP_ID: + req.set_rpf_group_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = ipmc->CreateIpmcEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_ipmc_entry(const sai_ipmc_entry_t *ipmc_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.ipmc_entry = ipmc_entry}; - return translator->remove(SAI_OBJECT_TYPE_IPMC_ENTRY, entry); + + lemming::dataplane::sai::RemoveIpmcEntryRequest req; + lemming::dataplane::sai::RemoveIpmcEntryResponse resp; + grpc::ClientContext context; + + grpc::Status status = ipmc->RemoveIpmcEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_ipmc_entry_attribute(const sai_ipmc_entry_t *ipmc_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.ipmc_entry = ipmc_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_IPMC_ENTRY, entry, attr); + + lemming::dataplane::sai::SetIpmcEntryAttributeRequest req; + lemming::dataplane::sai::SetIpmcEntryAttributeResponse resp; + grpc::ClientContext context; + + switch (attr->id) { + case SAI_IPMC_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_IPMC_ENTRY_ATTR_OUTPUT_GROUP_ID: + req.set_output_group_id(attr->value.oid); + break; + case SAI_IPMC_ENTRY_ATTR_RPF_GROUP_ID: + req.set_rpf_group_id(attr->value.oid); + break; + } + + grpc::Status status = ipmc->SetIpmcEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipmc_entry_attribute(const sai_ipmc_entry_t *ipmc_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.ipmc_entry = ipmc_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_IPMC_ENTRY, entry, - attr_count, attr_list); + + lemming::dataplane::sai::GetIpmcEntryAttributeRequest req; + lemming::dataplane::sai::GetIpmcEntryAttributeResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = ipmc->GetIpmcEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPMC_ENTRY_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_IPMC_ENTRY_ATTR_OUTPUT_GROUP_ID: + attr_list[i].value.oid = resp.attr().output_group_id(); + break; + case SAI_IPMC_ENTRY_ATTR_RPF_GROUP_ID: + attr_list[i].value.oid = resp.attr().rpf_group_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/ipmc_group.cc b/dataplane/standalone/sai/ipmc_group.cc index 428c70df..e5ac2540 100644 --- a/dataplane/standalone/sai/ipmc_group.cc +++ b/dataplane/standalone/sai/ipmc_group.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/ipmc_group.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -34,28 +38,83 @@ sai_status_t l_create_ipmc_group(sai_object_id_t *ipmc_group_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_IPMC_GROUP, ipmc_group_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateIpmcGroupRequest req; + lemming::dataplane::sai::CreateIpmcGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) {} + } + grpc::Status status = ipmc_group->CreateIpmcGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *ipmc_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_ipmc_group(sai_object_id_t ipmc_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_IPMC_GROUP, ipmc_group_id); + + lemming::dataplane::sai::RemoveIpmcGroupRequest req; + lemming::dataplane::sai::RemoveIpmcGroupResponse resp; + grpc::ClientContext context; + req.set_oid(ipmc_group_id); + + grpc::Status status = ipmc_group->RemoveIpmcGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_ipmc_group_attribute(sai_object_id_t ipmc_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_IPMC_GROUP, ipmc_group_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipmc_group_attribute(sai_object_id_t ipmc_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_IPMC_GROUP, ipmc_group_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetIpmcGroupAttributeRequest req; + lemming::dataplane::sai::GetIpmcGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(ipmc_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = ipmc_group->GetIpmcGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPMC_GROUP_ATTR_IPMC_OUTPUT_COUNT: + attr_list[i].value.u32 = resp.attr().ipmc_output_count(); + break; + case SAI_IPMC_GROUP_ATTR_IPMC_MEMBER_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().ipmc_member_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_ipmc_group_member(sai_object_id_t *ipmc_group_member_id, @@ -63,28 +122,87 @@ sai_status_t l_create_ipmc_group_member(sai_object_id_t *ipmc_group_member_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_IPMC_GROUP_MEMBER, - ipmc_group_member_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateIpmcGroupMemberRequest req; + lemming::dataplane::sai::CreateIpmcGroupMemberResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPMC_GROUP_MEMBER_ATTR_IPMC_GROUP_ID: + req.set_ipmc_group_id(attr_list[i].value.oid); + break; + case SAI_IPMC_GROUP_MEMBER_ATTR_IPMC_OUTPUT_ID: + req.set_ipmc_output_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = ipmc_group->CreateIpmcGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *ipmc_group_member_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_ipmc_group_member(sai_object_id_t ipmc_group_member_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_IPMC_GROUP_MEMBER, - ipmc_group_member_id); + + lemming::dataplane::sai::RemoveIpmcGroupMemberRequest req; + lemming::dataplane::sai::RemoveIpmcGroupMemberResponse resp; + grpc::ClientContext context; + req.set_oid(ipmc_group_member_id); + + grpc::Status status = ipmc_group->RemoveIpmcGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_ipmc_group_member_attribute( sai_object_id_t ipmc_group_member_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_IPMC_GROUP_MEMBER, - ipmc_group_member_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipmc_group_member_attribute( sai_object_id_t ipmc_group_member_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_IPMC_GROUP_MEMBER, - ipmc_group_member_id, attr_count, attr_list); + + lemming::dataplane::sai::GetIpmcGroupMemberAttributeRequest req; + lemming::dataplane::sai::GetIpmcGroupMemberAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(ipmc_group_member_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + ipmc_group->GetIpmcGroupMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPMC_GROUP_MEMBER_ATTR_IPMC_GROUP_ID: + attr_list[i].value.oid = resp.attr().ipmc_group_id(); + break; + case SAI_IPMC_GROUP_MEMBER_ATTR_IPMC_OUTPUT_ID: + attr_list[i].value.oid = resp.attr().ipmc_output_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/ipsec.cc b/dataplane/standalone/sai/ipsec.cc index bafbc870..cfa96369 100644 --- a/dataplane/standalone/sai/ipsec.cc +++ b/dataplane/standalone/sai/ipsec.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/ipsec.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -44,55 +48,342 @@ sai_status_t l_create_ipsec(sai_object_id_t *ipsec_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_IPSEC, ipsec_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateIpsecRequest req; + lemming::dataplane::sai::CreateIpsecResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPSEC_ATTR_WARM_BOOT_ENABLE: + req.set_warm_boot_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_ATTR_EXTERNAL_SA_INDEX_ENABLE: + req.set_external_sa_index_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_ATTR_CTAG_TPID: + req.set_ctag_tpid(attr_list[i].value.u16); + break; + case SAI_IPSEC_ATTR_STAG_TPID: + req.set_stag_tpid(attr_list[i].value.u16); + break; + case SAI_IPSEC_ATTR_MAX_VLAN_TAGS_PARSED: + req.set_max_vlan_tags_parsed(attr_list[i].value.u8); + break; + case SAI_IPSEC_ATTR_OCTET_COUNT_HIGH_WATERMARK: + req.set_octet_count_high_watermark(attr_list[i].value.u64); + break; + case SAI_IPSEC_ATTR_OCTET_COUNT_LOW_WATERMARK: + req.set_octet_count_low_watermark(attr_list[i].value.u64); + break; + case SAI_IPSEC_ATTR_STATS_MODE: + req.set_stats_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = ipsec->CreateIpsec(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *ipsec_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_ipsec(sai_object_id_t ipsec_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_IPSEC, ipsec_id); + + lemming::dataplane::sai::RemoveIpsecRequest req; + lemming::dataplane::sai::RemoveIpsecResponse resp; + grpc::ClientContext context; + req.set_oid(ipsec_id); + + grpc::Status status = ipsec->RemoveIpsec(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_ipsec_attribute(sai_object_id_t ipsec_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_IPSEC, ipsec_id, attr); + + lemming::dataplane::sai::SetIpsecAttributeRequest req; + lemming::dataplane::sai::SetIpsecAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(ipsec_id); + + switch (attr->id) { + case SAI_IPSEC_ATTR_WARM_BOOT_ENABLE: + req.set_warm_boot_enable(attr->value.booldata); + break; + case SAI_IPSEC_ATTR_CTAG_TPID: + req.set_ctag_tpid(attr->value.u16); + break; + case SAI_IPSEC_ATTR_STAG_TPID: + req.set_stag_tpid(attr->value.u16); + break; + case SAI_IPSEC_ATTR_MAX_VLAN_TAGS_PARSED: + req.set_max_vlan_tags_parsed(attr->value.u8); + break; + case SAI_IPSEC_ATTR_OCTET_COUNT_HIGH_WATERMARK: + req.set_octet_count_high_watermark(attr->value.u64); + break; + case SAI_IPSEC_ATTR_OCTET_COUNT_LOW_WATERMARK: + req.set_octet_count_low_watermark(attr->value.u64); + break; + case SAI_IPSEC_ATTR_STATS_MODE: + req.set_stats_mode( + static_cast(attr->value.s32 + 1)); + break; + } + + grpc::Status status = ipsec->SetIpsecAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipsec_attribute(sai_object_id_t ipsec_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_IPSEC, ipsec_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetIpsecAttributeRequest req; + lemming::dataplane::sai::GetIpsecAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(ipsec_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = ipsec->GetIpsecAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPSEC_ATTR_TERM_REMOTE_IP_MATCH_SUPPORTED: + attr_list[i].value.booldata = + resp.attr().term_remote_ip_match_supported(); + break; + case SAI_IPSEC_ATTR_SWITCHING_MODE_CUT_THROUGH_SUPPORTED: + attr_list[i].value.booldata = + resp.attr().switching_mode_cut_through_supported(); + break; + case SAI_IPSEC_ATTR_SWITCHING_MODE_STORE_AND_FORWARD_SUPPORTED: + attr_list[i].value.booldata = + resp.attr().switching_mode_store_and_forward_supported(); + break; + case SAI_IPSEC_ATTR_STATS_MODE_READ_SUPPORTED: + attr_list[i].value.booldata = resp.attr().stats_mode_read_supported(); + break; + case SAI_IPSEC_ATTR_STATS_MODE_READ_CLEAR_SUPPORTED: + attr_list[i].value.booldata = + resp.attr().stats_mode_read_clear_supported(); + break; + case SAI_IPSEC_ATTR_SN_32BIT_SUPPORTED: + attr_list[i].value.booldata = resp.attr().sn_32bit_supported(); + break; + case SAI_IPSEC_ATTR_ESN_64BIT_SUPPORTED: + attr_list[i].value.booldata = resp.attr().esn_64bit_supported(); + break; + case SAI_IPSEC_ATTR_SYSTEM_SIDE_MTU: + attr_list[i].value.u16 = resp.attr().system_side_mtu(); + break; + case SAI_IPSEC_ATTR_WARM_BOOT_SUPPORTED: + attr_list[i].value.booldata = resp.attr().warm_boot_supported(); + break; + case SAI_IPSEC_ATTR_WARM_BOOT_ENABLE: + attr_list[i].value.booldata = resp.attr().warm_boot_enable(); + break; + case SAI_IPSEC_ATTR_EXTERNAL_SA_INDEX_ENABLE: + attr_list[i].value.booldata = resp.attr().external_sa_index_enable(); + break; + case SAI_IPSEC_ATTR_CTAG_TPID: + attr_list[i].value.u16 = resp.attr().ctag_tpid(); + break; + case SAI_IPSEC_ATTR_STAG_TPID: + attr_list[i].value.u16 = resp.attr().stag_tpid(); + break; + case SAI_IPSEC_ATTR_MAX_VLAN_TAGS_PARSED: + attr_list[i].value.u8 = resp.attr().max_vlan_tags_parsed(); + break; + case SAI_IPSEC_ATTR_OCTET_COUNT_HIGH_WATERMARK: + attr_list[i].value.u64 = resp.attr().octet_count_high_watermark(); + break; + case SAI_IPSEC_ATTR_OCTET_COUNT_LOW_WATERMARK: + attr_list[i].value.u64 = resp.attr().octet_count_low_watermark(); + break; + case SAI_IPSEC_ATTR_STATS_MODE: + attr_list[i].value.s32 = static_cast(resp.attr().stats_mode() - 1); + break; + case SAI_IPSEC_ATTR_AVAILABLE_IPSEC_SA: + attr_list[i].value.u32 = resp.attr().available_ipsec_sa(); + break; + case SAI_IPSEC_ATTR_SA_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().sa_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_ipsec_port(sai_object_id_t *ipsec_port_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_IPSEC_PORT, ipsec_port_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateIpsecPortRequest req; + lemming::dataplane::sai::CreateIpsecPortResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPSEC_PORT_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_IPSEC_PORT_ATTR_CTAG_ENABLE: + req.set_ctag_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_PORT_ATTR_STAG_ENABLE: + req.set_stag_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_PORT_ATTR_NATIVE_VLAN_ID: + req.set_native_vlan_id(attr_list[i].value.u16); + break; + case SAI_IPSEC_PORT_ATTR_VRF_FROM_PACKET_VLAN_ENABLE: + req.set_vrf_from_packet_vlan_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_PORT_ATTR_SWITCH_SWITCHING_MODE: + req.set_switch_switching_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = ipsec->CreateIpsecPort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *ipsec_port_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_ipsec_port(sai_object_id_t ipsec_port_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_IPSEC_PORT, ipsec_port_id); + + lemming::dataplane::sai::RemoveIpsecPortRequest req; + lemming::dataplane::sai::RemoveIpsecPortResponse resp; + grpc::ClientContext context; + req.set_oid(ipsec_port_id); + + grpc::Status status = ipsec->RemoveIpsecPort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_ipsec_port_attribute(sai_object_id_t ipsec_port_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_IPSEC_PORT, ipsec_port_id, - attr); + + lemming::dataplane::sai::SetIpsecPortAttributeRequest req; + lemming::dataplane::sai::SetIpsecPortAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(ipsec_port_id); + + switch (attr->id) { + case SAI_IPSEC_PORT_ATTR_CTAG_ENABLE: + req.set_ctag_enable(attr->value.booldata); + break; + case SAI_IPSEC_PORT_ATTR_STAG_ENABLE: + req.set_stag_enable(attr->value.booldata); + break; + case SAI_IPSEC_PORT_ATTR_VRF_FROM_PACKET_VLAN_ENABLE: + req.set_vrf_from_packet_vlan_enable(attr->value.booldata); + break; + case SAI_IPSEC_PORT_ATTR_SWITCH_SWITCHING_MODE: + req.set_switch_switching_mode( + static_cast( + attr->value.s32 + 1)); + break; + } + + grpc::Status status = ipsec->SetIpsecPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipsec_port_attribute(sai_object_id_t ipsec_port_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_IPSEC_PORT, ipsec_port_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetIpsecPortAttributeRequest req; + lemming::dataplane::sai::GetIpsecPortAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(ipsec_port_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = ipsec->GetIpsecPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPSEC_PORT_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_IPSEC_PORT_ATTR_CTAG_ENABLE: + attr_list[i].value.booldata = resp.attr().ctag_enable(); + break; + case SAI_IPSEC_PORT_ATTR_STAG_ENABLE: + attr_list[i].value.booldata = resp.attr().stag_enable(); + break; + case SAI_IPSEC_PORT_ATTR_NATIVE_VLAN_ID: + attr_list[i].value.u16 = resp.attr().native_vlan_id(); + break; + case SAI_IPSEC_PORT_ATTR_VRF_FROM_PACKET_VLAN_ENABLE: + attr_list[i].value.booldata = resp.attr().vrf_from_packet_vlan_enable(); + break; + case SAI_IPSEC_PORT_ATTR_SWITCH_SWITCHING_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().switch_switching_mode() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipsec_port_stats(sai_object_id_t ipsec_port_id, @@ -100,8 +391,8 @@ sai_status_t l_get_ipsec_port_stats(sai_object_id_t ipsec_port_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_IPSEC_PORT, ipsec_port_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipsec_port_stats_ext(sai_object_id_t ipsec_port_id, @@ -110,44 +401,247 @@ sai_status_t l_get_ipsec_port_stats_ext(sai_object_id_t ipsec_port_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_IPSEC_PORT, ipsec_port_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_ipsec_port_stats(sai_object_id_t ipsec_port_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_IPSEC_PORT, ipsec_port_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_ipsec_sa(sai_object_id_t *ipsec_sa_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_IPSEC_SA, ipsec_sa_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateIpsecSaRequest req; + lemming::dataplane::sai::CreateIpsecSaResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPSEC_SA_ATTR_IPSEC_DIRECTION: + req.set_ipsec_direction( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_ID: + req.set_ipsec_id(attr_list[i].value.oid); + break; + case SAI_IPSEC_SA_ATTR_EXTERNAL_SA_INDEX: + req.set_external_sa_index(attr_list[i].value.u32); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_PORT_LIST: + req.mutable_ipsec_port_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_SPI: + req.set_ipsec_spi(attr_list[i].value.u32); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_ESN_ENABLE: + req.set_ipsec_esn_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_CIPHER: + req.set_ipsec_cipher(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_IPSEC_SA_ATTR_SALT: + req.set_salt(attr_list[i].value.u32); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_ENABLE: + req.set_ipsec_replay_protection_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_WINDOW: + req.set_ipsec_replay_protection_window(attr_list[i].value.u32); + break; + case SAI_IPSEC_SA_ATTR_TERM_DST_IP: + req.set_term_dst_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_IPSEC_SA_ATTR_TERM_VLAN_ID_ENABLE: + req.set_term_vlan_id_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_SA_ATTR_TERM_VLAN_ID: + req.set_term_vlan_id(attr_list[i].value.u16); + break; + case SAI_IPSEC_SA_ATTR_TERM_SRC_IP_ENABLE: + req.set_term_src_ip_enable(attr_list[i].value.booldata); + break; + case SAI_IPSEC_SA_ATTR_TERM_SRC_IP: + req.set_term_src_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_IPSEC_SA_ATTR_EGRESS_ESN: + req.set_egress_esn(attr_list[i].value.u64); + break; + case SAI_IPSEC_SA_ATTR_MINIMUM_INGRESS_ESN: + req.set_minimum_ingress_esn(attr_list[i].value.u64); + break; + } + } + grpc::Status status = ipsec->CreateIpsecSa(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *ipsec_sa_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_ipsec_sa(sai_object_id_t ipsec_sa_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_IPSEC_SA, ipsec_sa_id); + + lemming::dataplane::sai::RemoveIpsecSaRequest req; + lemming::dataplane::sai::RemoveIpsecSaResponse resp; + grpc::ClientContext context; + req.set_oid(ipsec_sa_id); + + grpc::Status status = ipsec->RemoveIpsecSa(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_ipsec_sa_attribute(sai_object_id_t ipsec_sa_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_IPSEC_SA, ipsec_sa_id, attr); + + lemming::dataplane::sai::SetIpsecSaAttributeRequest req; + lemming::dataplane::sai::SetIpsecSaAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(ipsec_sa_id); + + switch (attr->id) { + case SAI_IPSEC_SA_ATTR_EXTERNAL_SA_INDEX: + req.set_external_sa_index(attr->value.u32); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_PORT_LIST: + req.mutable_ipsec_port_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_ENABLE: + req.set_ipsec_replay_protection_enable(attr->value.booldata); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_WINDOW: + req.set_ipsec_replay_protection_window(attr->value.u32); + break; + case SAI_IPSEC_SA_ATTR_EGRESS_ESN: + req.set_egress_esn(attr->value.u64); + break; + case SAI_IPSEC_SA_ATTR_MINIMUM_INGRESS_ESN: + req.set_minimum_ingress_esn(attr->value.u64); + break; + } + + grpc::Status status = ipsec->SetIpsecSaAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipsec_sa_attribute(sai_object_id_t ipsec_sa_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_IPSEC_SA, ipsec_sa_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetIpsecSaAttributeRequest req; + lemming::dataplane::sai::GetIpsecSaAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(ipsec_sa_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = ipsec->GetIpsecSaAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_IPSEC_SA_ATTR_IPSEC_DIRECTION: + attr_list[i].value.s32 = + static_cast(resp.attr().ipsec_direction() - 1); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_ID: + attr_list[i].value.oid = resp.attr().ipsec_id(); + break; + case SAI_IPSEC_SA_ATTR_OCTET_COUNT_STATUS: + attr_list[i].value.s32 = + static_cast(resp.attr().octet_count_status() - 1); + break; + case SAI_IPSEC_SA_ATTR_EXTERNAL_SA_INDEX: + attr_list[i].value.u32 = resp.attr().external_sa_index(); + break; + case SAI_IPSEC_SA_ATTR_SA_INDEX: + attr_list[i].value.u32 = resp.attr().sa_index(); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().ipsec_port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_SPI: + attr_list[i].value.u32 = resp.attr().ipsec_spi(); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_ESN_ENABLE: + attr_list[i].value.booldata = resp.attr().ipsec_esn_enable(); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_CIPHER: + attr_list[i].value.s32 = + static_cast(resp.attr().ipsec_cipher() - 1); + break; + case SAI_IPSEC_SA_ATTR_SALT: + attr_list[i].value.u32 = resp.attr().salt(); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_ENABLE: + attr_list[i].value.booldata = + resp.attr().ipsec_replay_protection_enable(); + break; + case SAI_IPSEC_SA_ATTR_IPSEC_REPLAY_PROTECTION_WINDOW: + attr_list[i].value.u32 = resp.attr().ipsec_replay_protection_window(); + break; + case SAI_IPSEC_SA_ATTR_TERM_DST_IP: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().term_dst_ip()); + break; + case SAI_IPSEC_SA_ATTR_TERM_VLAN_ID_ENABLE: + attr_list[i].value.booldata = resp.attr().term_vlan_id_enable(); + break; + case SAI_IPSEC_SA_ATTR_TERM_VLAN_ID: + attr_list[i].value.u16 = resp.attr().term_vlan_id(); + break; + case SAI_IPSEC_SA_ATTR_TERM_SRC_IP_ENABLE: + attr_list[i].value.booldata = resp.attr().term_src_ip_enable(); + break; + case SAI_IPSEC_SA_ATTR_TERM_SRC_IP: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().term_src_ip()); + break; + case SAI_IPSEC_SA_ATTR_EGRESS_ESN: + attr_list[i].value.u64 = resp.attr().egress_esn(); + break; + case SAI_IPSEC_SA_ATTR_MINIMUM_INGRESS_ESN: + attr_list[i].value.u64 = resp.attr().minimum_ingress_esn(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipsec_sa_stats(sai_object_id_t ipsec_sa_id, @@ -155,8 +649,8 @@ sai_status_t l_get_ipsec_sa_stats(sai_object_id_t ipsec_sa_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_IPSEC_SA, ipsec_sa_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_ipsec_sa_stats_ext(sai_object_id_t ipsec_sa_id, @@ -165,15 +659,14 @@ sai_status_t l_get_ipsec_sa_stats_ext(sai_object_id_t ipsec_sa_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_IPSEC_SA, ipsec_sa_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_ipsec_sa_stats(sai_object_id_t ipsec_sa_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_IPSEC_SA, ipsec_sa_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/isolation_group.cc b/dataplane/standalone/sai/isolation_group.cc index bac5574f..81556989 100644 --- a/dataplane/standalone/sai/isolation_group.cc +++ b/dataplane/standalone/sai/isolation_group.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/isolation_group.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -37,59 +41,182 @@ sai_status_t l_create_isolation_group(sai_object_id_t *isolation_group_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ISOLATION_GROUP, isolation_group_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateIsolationGroupRequest req; + lemming::dataplane::sai::CreateIsolationGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ISOLATION_GROUP_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = + isolation_group->CreateIsolationGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *isolation_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_isolation_group(sai_object_id_t isolation_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ISOLATION_GROUP, - isolation_group_id); + + lemming::dataplane::sai::RemoveIsolationGroupRequest req; + lemming::dataplane::sai::RemoveIsolationGroupResponse resp; + grpc::ClientContext context; + req.set_oid(isolation_group_id); + + grpc::Status status = + isolation_group->RemoveIsolationGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_isolation_group_attribute(sai_object_id_t isolation_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ISOLATION_GROUP, - isolation_group_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_isolation_group_attribute(sai_object_id_t isolation_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ISOLATION_GROUP, - isolation_group_id, attr_count, attr_list); + + lemming::dataplane::sai::GetIsolationGroupAttributeRequest req; + lemming::dataplane::sai::GetIsolationGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(isolation_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + isolation_group->GetIsolationGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ISOLATION_GROUP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_ISOLATION_GROUP_ATTR_ISOLATION_MEMBER_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().isolation_member_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_isolation_group_member( sai_object_id_t *isolation_group_member_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ISOLATION_GROUP_MEMBER, - isolation_group_member_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateIsolationGroupMemberRequest req; + lemming::dataplane::sai::CreateIsolationGroupMemberResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ISOLATION_GROUP_MEMBER_ATTR_ISOLATION_GROUP_ID: + req.set_isolation_group_id(attr_list[i].value.oid); + break; + case SAI_ISOLATION_GROUP_MEMBER_ATTR_ISOLATION_OBJECT: + req.set_isolation_object(attr_list[i].value.oid); + break; + } + } + grpc::Status status = + isolation_group->CreateIsolationGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *isolation_group_member_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_isolation_group_member( sai_object_id_t isolation_group_member_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ISOLATION_GROUP_MEMBER, - isolation_group_member_id); + + lemming::dataplane::sai::RemoveIsolationGroupMemberRequest req; + lemming::dataplane::sai::RemoveIsolationGroupMemberResponse resp; + grpc::ClientContext context; + req.set_oid(isolation_group_member_id); + + grpc::Status status = + isolation_group->RemoveIsolationGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_isolation_group_member_attribute( sai_object_id_t isolation_group_member_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ISOLATION_GROUP_MEMBER, - isolation_group_member_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_isolation_group_member_attribute( sai_object_id_t isolation_group_member_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ISOLATION_GROUP_MEMBER, - isolation_group_member_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetIsolationGroupMemberAttributeRequest req; + lemming::dataplane::sai::GetIsolationGroupMemberAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(isolation_group_member_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + isolation_group->GetIsolationGroupMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ISOLATION_GROUP_MEMBER_ATTR_ISOLATION_GROUP_ID: + attr_list[i].value.oid = resp.attr().isolation_group_id(); + break; + case SAI_ISOLATION_GROUP_MEMBER_ATTR_ISOLATION_OBJECT: + attr_list[i].value.oid = resp.attr().isolation_object(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/l2mc.cc b/dataplane/standalone/sai/l2mc.cc index 14b556ba..a0bad23d 100644 --- a/dataplane/standalone/sai/l2mc.cc +++ b/dataplane/standalone/sai/l2mc.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/l2mc.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -30,29 +34,104 @@ sai_status_t l_create_l2mc_entry(const sai_l2mc_entry_t *l2mc_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.l2mc_entry = l2mc_entry}; - return translator->create(SAI_OBJECT_TYPE_L2MC_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateL2mcEntryRequest req; + lemming::dataplane::sai::CreateL2mcEntryResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_L2MC_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_L2MC_ENTRY_ATTR_OUTPUT_GROUP_ID: + req.set_output_group_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = l2mc->CreateL2mcEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_l2mc_entry(const sai_l2mc_entry_t *l2mc_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.l2mc_entry = l2mc_entry}; - return translator->remove(SAI_OBJECT_TYPE_L2MC_ENTRY, entry); + + lemming::dataplane::sai::RemoveL2mcEntryRequest req; + lemming::dataplane::sai::RemoveL2mcEntryResponse resp; + grpc::ClientContext context; + + grpc::Status status = l2mc->RemoveL2mcEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_l2mc_entry_attribute(const sai_l2mc_entry_t *l2mc_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.l2mc_entry = l2mc_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_L2MC_ENTRY, entry, attr); + + lemming::dataplane::sai::SetL2mcEntryAttributeRequest req; + lemming::dataplane::sai::SetL2mcEntryAttributeResponse resp; + grpc::ClientContext context; + + switch (attr->id) { + case SAI_L2MC_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_L2MC_ENTRY_ATTR_OUTPUT_GROUP_ID: + req.set_output_group_id(attr->value.oid); + break; + } + + grpc::Status status = l2mc->SetL2mcEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_l2mc_entry_attribute(const sai_l2mc_entry_t *l2mc_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.l2mc_entry = l2mc_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_L2MC_ENTRY, entry, - attr_count, attr_list); + + lemming::dataplane::sai::GetL2mcEntryAttributeRequest req; + lemming::dataplane::sai::GetL2mcEntryAttributeResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = l2mc->GetL2mcEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_L2MC_ENTRY_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_L2MC_ENTRY_ATTR_OUTPUT_GROUP_ID: + attr_list[i].value.oid = resp.attr().output_group_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/l2mc_group.cc b/dataplane/standalone/sai/l2mc_group.cc index 6b8f1957..264db37d 100644 --- a/dataplane/standalone/sai/l2mc_group.cc +++ b/dataplane/standalone/sai/l2mc_group.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/l2mc_group.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -34,28 +38,83 @@ sai_status_t l_create_l2mc_group(sai_object_id_t *l2mc_group_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_L2MC_GROUP, l2mc_group_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateL2mcGroupRequest req; + lemming::dataplane::sai::CreateL2mcGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) {} + } + grpc::Status status = l2mc_group->CreateL2mcGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *l2mc_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_l2mc_group(sai_object_id_t l2mc_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_L2MC_GROUP, l2mc_group_id); + + lemming::dataplane::sai::RemoveL2mcGroupRequest req; + lemming::dataplane::sai::RemoveL2mcGroupResponse resp; + grpc::ClientContext context; + req.set_oid(l2mc_group_id); + + grpc::Status status = l2mc_group->RemoveL2mcGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_l2mc_group_attribute(sai_object_id_t l2mc_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_L2MC_GROUP, l2mc_group_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_l2mc_group_attribute(sai_object_id_t l2mc_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_L2MC_GROUP, l2mc_group_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetL2mcGroupAttributeRequest req; + lemming::dataplane::sai::GetL2mcGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(l2mc_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = l2mc_group->GetL2mcGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_L2MC_GROUP_ATTR_L2MC_OUTPUT_COUNT: + attr_list[i].value.u32 = resp.attr().l2mc_output_count(); + break; + case SAI_L2MC_GROUP_ATTR_L2MC_MEMBER_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().l2mc_member_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_l2mc_group_member(sai_object_id_t *l2mc_group_member_id, @@ -63,28 +122,95 @@ sai_status_t l_create_l2mc_group_member(sai_object_id_t *l2mc_group_member_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_L2MC_GROUP_MEMBER, - l2mc_group_member_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateL2mcGroupMemberRequest req; + lemming::dataplane::sai::CreateL2mcGroupMemberResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_L2MC_GROUP_MEMBER_ATTR_L2MC_GROUP_ID: + req.set_l2mc_group_id(attr_list[i].value.oid); + break; + case SAI_L2MC_GROUP_MEMBER_ATTR_L2MC_OUTPUT_ID: + req.set_l2mc_output_id(attr_list[i].value.oid); + break; + case SAI_L2MC_GROUP_MEMBER_ATTR_L2MC_ENDPOINT_IP: + req.set_l2mc_endpoint_ip( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + } + } + grpc::Status status = l2mc_group->CreateL2mcGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *l2mc_group_member_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_l2mc_group_member(sai_object_id_t l2mc_group_member_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_L2MC_GROUP_MEMBER, - l2mc_group_member_id); + + lemming::dataplane::sai::RemoveL2mcGroupMemberRequest req; + lemming::dataplane::sai::RemoveL2mcGroupMemberResponse resp; + grpc::ClientContext context; + req.set_oid(l2mc_group_member_id); + + grpc::Status status = l2mc_group->RemoveL2mcGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_l2mc_group_member_attribute( sai_object_id_t l2mc_group_member_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_L2MC_GROUP_MEMBER, - l2mc_group_member_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_l2mc_group_member_attribute( sai_object_id_t l2mc_group_member_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_L2MC_GROUP_MEMBER, - l2mc_group_member_id, attr_count, attr_list); + + lemming::dataplane::sai::GetL2mcGroupMemberAttributeRequest req; + lemming::dataplane::sai::GetL2mcGroupMemberAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(l2mc_group_member_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + l2mc_group->GetL2mcGroupMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_L2MC_GROUP_MEMBER_ATTR_L2MC_GROUP_ID: + attr_list[i].value.oid = resp.attr().l2mc_group_id(); + break; + case SAI_L2MC_GROUP_MEMBER_ATTR_L2MC_OUTPUT_ID: + attr_list[i].value.oid = resp.attr().l2mc_output_id(); + break; + case SAI_L2MC_GROUP_MEMBER_ATTR_L2MC_ENDPOINT_IP: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().l2mc_endpoint_ip()); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/lag.cc b/dataplane/standalone/sai/lag.cc index e5df48ec..31bc2b78 100644 --- a/dataplane/standalone/sai/lag.cc +++ b/dataplane/standalone/sai/lag.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/lag.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -36,54 +40,291 @@ sai_status_t l_create_lag(sai_object_id_t *lag_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_LAG, lag_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateLagRequest req; + lemming::dataplane::sai::CreateLagResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_LAG_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr_list[i].value.oid); + break; + case SAI_LAG_ATTR_EGRESS_ACL: + req.set_egress_acl(attr_list[i].value.oid); + break; + case SAI_LAG_ATTR_PORT_VLAN_ID: + req.set_port_vlan_id(attr_list[i].value.u16); + break; + case SAI_LAG_ATTR_DEFAULT_VLAN_PRIORITY: + req.set_default_vlan_priority(attr_list[i].value.u8); + break; + case SAI_LAG_ATTR_DROP_UNTAGGED: + req.set_drop_untagged(attr_list[i].value.booldata); + break; + case SAI_LAG_ATTR_DROP_TAGGED: + req.set_drop_tagged(attr_list[i].value.booldata); + break; + case SAI_LAG_ATTR_TPID: + req.set_tpid(attr_list[i].value.u16); + break; + case SAI_LAG_ATTR_SYSTEM_PORT_AGGREGATE_ID: + req.set_system_port_aggregate_id(attr_list[i].value.u32); + break; + case SAI_LAG_ATTR_LABEL: + req.set_label(attr_list[i].value.chardata); + break; + } + } + grpc::Status status = lag->CreateLag(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *lag_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_lag(sai_object_id_t lag_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_LAG, lag_id); + + lemming::dataplane::sai::RemoveLagRequest req; + lemming::dataplane::sai::RemoveLagResponse resp; + grpc::ClientContext context; + req.set_oid(lag_id); + + grpc::Status status = lag->RemoveLag(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_lag_attribute(sai_object_id_t lag_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_LAG, lag_id, attr); + + lemming::dataplane::sai::SetLagAttributeRequest req; + lemming::dataplane::sai::SetLagAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(lag_id); + + switch (attr->id) { + case SAI_LAG_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr->value.oid); + break; + case SAI_LAG_ATTR_EGRESS_ACL: + req.set_egress_acl(attr->value.oid); + break; + case SAI_LAG_ATTR_PORT_VLAN_ID: + req.set_port_vlan_id(attr->value.u16); + break; + case SAI_LAG_ATTR_DEFAULT_VLAN_PRIORITY: + req.set_default_vlan_priority(attr->value.u8); + break; + case SAI_LAG_ATTR_DROP_UNTAGGED: + req.set_drop_untagged(attr->value.booldata); + break; + case SAI_LAG_ATTR_DROP_TAGGED: + req.set_drop_tagged(attr->value.booldata); + break; + case SAI_LAG_ATTR_TPID: + req.set_tpid(attr->value.u16); + break; + case SAI_LAG_ATTR_LABEL: + req.set_label(attr->value.chardata); + break; + } + + grpc::Status status = lag->SetLagAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_lag_attribute(sai_object_id_t lag_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_LAG, lag_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetLagAttributeRequest req; + lemming::dataplane::sai::GetLagAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(lag_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = lag->GetLagAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_LAG_ATTR_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_LAG_ATTR_INGRESS_ACL: + attr_list[i].value.oid = resp.attr().ingress_acl(); + break; + case SAI_LAG_ATTR_EGRESS_ACL: + attr_list[i].value.oid = resp.attr().egress_acl(); + break; + case SAI_LAG_ATTR_PORT_VLAN_ID: + attr_list[i].value.u16 = resp.attr().port_vlan_id(); + break; + case SAI_LAG_ATTR_DEFAULT_VLAN_PRIORITY: + attr_list[i].value.u8 = resp.attr().default_vlan_priority(); + break; + case SAI_LAG_ATTR_DROP_UNTAGGED: + attr_list[i].value.booldata = resp.attr().drop_untagged(); + break; + case SAI_LAG_ATTR_DROP_TAGGED: + attr_list[i].value.booldata = resp.attr().drop_tagged(); + break; + case SAI_LAG_ATTR_TPID: + attr_list[i].value.u16 = resp.attr().tpid(); + break; + case SAI_LAG_ATTR_SYSTEM_PORT_AGGREGATE_ID: + attr_list[i].value.u32 = resp.attr().system_port_aggregate_id(); + break; + case SAI_LAG_ATTR_LABEL: + strncpy(attr_list[i].value.chardata, resp.attr().label().data(), 32); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_lag_member(sai_object_id_t *lag_member_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_LAG_MEMBER, lag_member_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateLagMemberRequest req; + lemming::dataplane::sai::CreateLagMemberResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_LAG_MEMBER_ATTR_LAG_ID: + req.set_lag_id(attr_list[i].value.oid); + break; + case SAI_LAG_MEMBER_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_LAG_MEMBER_ATTR_EGRESS_DISABLE: + req.set_egress_disable(attr_list[i].value.booldata); + break; + case SAI_LAG_MEMBER_ATTR_INGRESS_DISABLE: + req.set_ingress_disable(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = lag->CreateLagMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *lag_member_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_lag_member(sai_object_id_t lag_member_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_LAG_MEMBER, lag_member_id); + + lemming::dataplane::sai::RemoveLagMemberRequest req; + lemming::dataplane::sai::RemoveLagMemberResponse resp; + grpc::ClientContext context; + req.set_oid(lag_member_id); + + grpc::Status status = lag->RemoveLagMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_lag_member_attribute(sai_object_id_t lag_member_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_LAG_MEMBER, lag_member_id, - attr); + + lemming::dataplane::sai::SetLagMemberAttributeRequest req; + lemming::dataplane::sai::SetLagMemberAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(lag_member_id); + + switch (attr->id) { + case SAI_LAG_MEMBER_ATTR_EGRESS_DISABLE: + req.set_egress_disable(attr->value.booldata); + break; + case SAI_LAG_MEMBER_ATTR_INGRESS_DISABLE: + req.set_ingress_disable(attr->value.booldata); + break; + } + + grpc::Status status = lag->SetLagMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_lag_member_attribute(sai_object_id_t lag_member_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_LAG_MEMBER, lag_member_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetLagMemberAttributeRequest req; + lemming::dataplane::sai::GetLagMemberAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(lag_member_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = lag->GetLagMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_LAG_MEMBER_ATTR_LAG_ID: + attr_list[i].value.oid = resp.attr().lag_id(); + break; + case SAI_LAG_MEMBER_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_LAG_MEMBER_ATTR_EGRESS_DISABLE: + attr_list[i].value.booldata = resp.attr().egress_disable(); + break; + case SAI_LAG_MEMBER_ATTR_INGRESS_DISABLE: + attr_list[i].value.booldata = resp.attr().ingress_disable(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_lag_members(sai_object_id_t switch_id, @@ -94,9 +335,8 @@ sai_status_t l_create_lag_members(sai_object_id_t switch_id, sai_object_id_t *object_id, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create_bulk(SAI_OBJECT_TYPE_LAG_MEMBER, switch_id, - object_count, attr_count, attr_list, mode, - object_id, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_lag_members(uint32_t object_count, @@ -104,6 +344,6 @@ sai_status_t l_remove_lag_members(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove_bulk(SAI_OBJECT_TYPE_LAG_MEMBER, object_count, - object_id, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/macsec.cc b/dataplane/standalone/sai/macsec.cc index 64eecf4c..e22bfcc2 100644 --- a/dataplane/standalone/sai/macsec.cc +++ b/dataplane/standalone/sai/macsec.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/macsec.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -58,27 +62,212 @@ sai_status_t l_create_macsec(sai_object_id_t *macsec_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_MACSEC, macsec_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateMacsecRequest req; + lemming::dataplane::sai::CreateMacsecResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_ATTR_DIRECTION: + req.set_direction(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MACSEC_ATTR_WARM_BOOT_ENABLE: + req.set_warm_boot_enable(attr_list[i].value.booldata); + break; + case SAI_MACSEC_ATTR_CTAG_TPID: + req.set_ctag_tpid(attr_list[i].value.u16); + break; + case SAI_MACSEC_ATTR_STAG_TPID: + req.set_stag_tpid(attr_list[i].value.u16); + break; + case SAI_MACSEC_ATTR_MAX_VLAN_TAGS_PARSED: + req.set_max_vlan_tags_parsed(attr_list[i].value.u8); + break; + case SAI_MACSEC_ATTR_STATS_MODE: + req.set_stats_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MACSEC_ATTR_PHYSICAL_BYPASS_ENABLE: + req.set_physical_bypass_enable(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = macsec->CreateMacsec(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *macsec_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_macsec(sai_object_id_t macsec_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_MACSEC, macsec_id); + + lemming::dataplane::sai::RemoveMacsecRequest req; + lemming::dataplane::sai::RemoveMacsecResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_id); + + grpc::Status status = macsec->RemoveMacsec(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_macsec_attribute(sai_object_id_t macsec_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_MACSEC, macsec_id, attr); + + lemming::dataplane::sai::SetMacsecAttributeRequest req; + lemming::dataplane::sai::SetMacsecAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_id); + + switch (attr->id) { + case SAI_MACSEC_ATTR_WARM_BOOT_ENABLE: + req.set_warm_boot_enable(attr->value.booldata); + break; + case SAI_MACSEC_ATTR_CTAG_TPID: + req.set_ctag_tpid(attr->value.u16); + break; + case SAI_MACSEC_ATTR_STAG_TPID: + req.set_stag_tpid(attr->value.u16); + break; + case SAI_MACSEC_ATTR_MAX_VLAN_TAGS_PARSED: + req.set_max_vlan_tags_parsed(attr->value.u8); + break; + case SAI_MACSEC_ATTR_STATS_MODE: + req.set_stats_mode( + static_cast(attr->value.s32 + 1)); + break; + case SAI_MACSEC_ATTR_PHYSICAL_BYPASS_ENABLE: + req.set_physical_bypass_enable(attr->value.booldata); + break; + } + + grpc::Status status = macsec->SetMacsecAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_attribute(sai_object_id_t macsec_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_MACSEC, macsec_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetMacsecAttributeRequest req; + lemming::dataplane::sai::GetMacsecAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(macsec_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = macsec->GetMacsecAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_ATTR_DIRECTION: + attr_list[i].value.s32 = static_cast(resp.attr().direction() - 1); + break; + case SAI_MACSEC_ATTR_SWITCHING_MODE_CUT_THROUGH_SUPPORTED: + attr_list[i].value.booldata = + resp.attr().switching_mode_cut_through_supported(); + break; + case SAI_MACSEC_ATTR_SWITCHING_MODE_STORE_AND_FORWARD_SUPPORTED: + attr_list[i].value.booldata = + resp.attr().switching_mode_store_and_forward_supported(); + break; + case SAI_MACSEC_ATTR_STATS_MODE_READ_SUPPORTED: + attr_list[i].value.booldata = resp.attr().stats_mode_read_supported(); + break; + case SAI_MACSEC_ATTR_STATS_MODE_READ_CLEAR_SUPPORTED: + attr_list[i].value.booldata = + resp.attr().stats_mode_read_clear_supported(); + break; + case SAI_MACSEC_ATTR_SCI_IN_INGRESS_MACSEC_ACL: + attr_list[i].value.booldata = resp.attr().sci_in_ingress_macsec_acl(); + break; + case SAI_MACSEC_ATTR_PN_32BIT_SUPPORTED: + attr_list[i].value.booldata = resp.attr().pn_32bit_supported(); + break; + case SAI_MACSEC_ATTR_XPN_64BIT_SUPPORTED: + attr_list[i].value.booldata = resp.attr().xpn_64bit_supported(); + break; + case SAI_MACSEC_ATTR_GCM_AES128_SUPPORTED: + attr_list[i].value.booldata = resp.attr().gcm_aes128_supported(); + break; + case SAI_MACSEC_ATTR_GCM_AES256_SUPPORTED: + attr_list[i].value.booldata = resp.attr().gcm_aes256_supported(); + break; + case SAI_MACSEC_ATTR_SECTAG_OFFSETS_SUPPORTED: + copy_list(attr_list[i].value.u8list.list, + resp.attr().sectag_offsets_supported(), + attr_list[i].value.u8list.count); + break; + case SAI_MACSEC_ATTR_SYSTEM_SIDE_MTU: + attr_list[i].value.u16 = resp.attr().system_side_mtu(); + break; + case SAI_MACSEC_ATTR_WARM_BOOT_SUPPORTED: + attr_list[i].value.booldata = resp.attr().warm_boot_supported(); + break; + case SAI_MACSEC_ATTR_WARM_BOOT_ENABLE: + attr_list[i].value.booldata = resp.attr().warm_boot_enable(); + break; + case SAI_MACSEC_ATTR_CTAG_TPID: + attr_list[i].value.u16 = resp.attr().ctag_tpid(); + break; + case SAI_MACSEC_ATTR_STAG_TPID: + attr_list[i].value.u16 = resp.attr().stag_tpid(); + break; + case SAI_MACSEC_ATTR_MAX_VLAN_TAGS_PARSED: + attr_list[i].value.u8 = resp.attr().max_vlan_tags_parsed(); + break; + case SAI_MACSEC_ATTR_STATS_MODE: + attr_list[i].value.s32 = static_cast(resp.attr().stats_mode() - 1); + break; + case SAI_MACSEC_ATTR_PHYSICAL_BYPASS_ENABLE: + attr_list[i].value.booldata = resp.attr().physical_bypass_enable(); + break; + case SAI_MACSEC_ATTR_SUPPORTED_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().supported_port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_MACSEC_ATTR_AVAILABLE_MACSEC_FLOW: + attr_list[i].value.u32 = resp.attr().available_macsec_flow(); + break; + case SAI_MACSEC_ATTR_FLOW_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().flow_list(), + attr_list[i].value.objlist.count); + break; + case SAI_MACSEC_ATTR_AVAILABLE_MACSEC_SC: + attr_list[i].value.u32 = resp.attr().available_macsec_sc(); + break; + case SAI_MACSEC_ATTR_AVAILABLE_MACSEC_SA: + attr_list[i].value.u32 = resp.attr().available_macsec_sa(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_macsec_port(sai_object_id_t *macsec_port_id, @@ -86,28 +275,137 @@ sai_status_t l_create_macsec_port(sai_object_id_t *macsec_port_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_MACSEC_PORT, macsec_port_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateMacsecPortRequest req; + lemming::dataplane::sai::CreateMacsecPortResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_PORT_ATTR_MACSEC_DIRECTION: + req.set_macsec_direction( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MACSEC_PORT_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_MACSEC_PORT_ATTR_CTAG_ENABLE: + req.set_ctag_enable(attr_list[i].value.booldata); + break; + case SAI_MACSEC_PORT_ATTR_STAG_ENABLE: + req.set_stag_enable(attr_list[i].value.booldata); + break; + case SAI_MACSEC_PORT_ATTR_SWITCH_SWITCHING_MODE: + req.set_switch_switching_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = macsec->CreateMacsecPort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *macsec_port_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_macsec_port(sai_object_id_t macsec_port_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_MACSEC_PORT, macsec_port_id); + + lemming::dataplane::sai::RemoveMacsecPortRequest req; + lemming::dataplane::sai::RemoveMacsecPortResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_port_id); + + grpc::Status status = macsec->RemoveMacsecPort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_macsec_port_attribute(sai_object_id_t macsec_port_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_MACSEC_PORT, macsec_port_id, - attr); + + lemming::dataplane::sai::SetMacsecPortAttributeRequest req; + lemming::dataplane::sai::SetMacsecPortAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_port_id); + + switch (attr->id) { + case SAI_MACSEC_PORT_ATTR_CTAG_ENABLE: + req.set_ctag_enable(attr->value.booldata); + break; + case SAI_MACSEC_PORT_ATTR_STAG_ENABLE: + req.set_stag_enable(attr->value.booldata); + break; + case SAI_MACSEC_PORT_ATTR_SWITCH_SWITCHING_MODE: + req.set_switch_switching_mode( + static_cast( + attr->value.s32 + 1)); + break; + } + + grpc::Status status = macsec->SetMacsecPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_port_attribute(sai_object_id_t macsec_port_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_MACSEC_PORT, macsec_port_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetMacsecPortAttributeRequest req; + lemming::dataplane::sai::GetMacsecPortAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(macsec_port_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = macsec->GetMacsecPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_PORT_ATTR_MACSEC_DIRECTION: + attr_list[i].value.s32 = + static_cast(resp.attr().macsec_direction() - 1); + break; + case SAI_MACSEC_PORT_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_MACSEC_PORT_ATTR_CTAG_ENABLE: + attr_list[i].value.booldata = resp.attr().ctag_enable(); + break; + case SAI_MACSEC_PORT_ATTR_STAG_ENABLE: + attr_list[i].value.booldata = resp.attr().stag_enable(); + break; + case SAI_MACSEC_PORT_ATTR_SWITCH_SWITCHING_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().switch_switching_mode() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_port_stats(sai_object_id_t macsec_port_id, @@ -115,8 +413,8 @@ sai_status_t l_get_macsec_port_stats(sai_object_id_t macsec_port_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_MACSEC_PORT, macsec_port_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_port_stats_ext(sai_object_id_t macsec_port_id, @@ -125,17 +423,16 @@ sai_status_t l_get_macsec_port_stats_ext(sai_object_id_t macsec_port_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_MACSEC_PORT, macsec_port_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_macsec_port_stats(sai_object_id_t macsec_port_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_MACSEC_PORT, macsec_port_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_macsec_flow(sai_object_id_t *macsec_flow_id, @@ -143,28 +440,93 @@ sai_status_t l_create_macsec_flow(sai_object_id_t *macsec_flow_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_MACSEC_FLOW, macsec_flow_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateMacsecFlowRequest req; + lemming::dataplane::sai::CreateMacsecFlowResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_FLOW_ATTR_MACSEC_DIRECTION: + req.set_macsec_direction( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = macsec->CreateMacsecFlow(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *macsec_flow_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_macsec_flow(sai_object_id_t macsec_flow_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_MACSEC_FLOW, macsec_flow_id); + + lemming::dataplane::sai::RemoveMacsecFlowRequest req; + lemming::dataplane::sai::RemoveMacsecFlowResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_flow_id); + + grpc::Status status = macsec->RemoveMacsecFlow(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_macsec_flow_attribute(sai_object_id_t macsec_flow_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_MACSEC_FLOW, macsec_flow_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_flow_attribute(sai_object_id_t macsec_flow_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_MACSEC_FLOW, macsec_flow_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetMacsecFlowAttributeRequest req; + lemming::dataplane::sai::GetMacsecFlowAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(macsec_flow_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = macsec->GetMacsecFlowAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_FLOW_ATTR_MACSEC_DIRECTION: + attr_list[i].value.s32 = + static_cast(resp.attr().macsec_direction() - 1); + break; + case SAI_MACSEC_FLOW_ATTR_ACL_ENTRY_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().acl_entry_list(), + attr_list[i].value.objlist.count); + break; + case SAI_MACSEC_FLOW_ATTR_SC_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().sc_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_flow_stats(sai_object_id_t macsec_flow_id, @@ -172,8 +534,8 @@ sai_status_t l_get_macsec_flow_stats(sai_object_id_t macsec_flow_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_MACSEC_FLOW, macsec_flow_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_flow_stats_ext(sai_object_id_t macsec_flow_id, @@ -182,45 +544,194 @@ sai_status_t l_get_macsec_flow_stats_ext(sai_object_id_t macsec_flow_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_MACSEC_FLOW, macsec_flow_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_macsec_flow_stats(sai_object_id_t macsec_flow_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_MACSEC_FLOW, macsec_flow_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_macsec_sc(sai_object_id_t *macsec_sc_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_MACSEC_SC, macsec_sc_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateMacsecScRequest req; + lemming::dataplane::sai::CreateMacsecScResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_SC_ATTR_MACSEC_DIRECTION: + req.set_macsec_direction( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MACSEC_SC_ATTR_FLOW_ID: + req.set_flow_id(attr_list[i].value.oid); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_SCI: + req.set_macsec_sci(attr_list[i].value.u64); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_EXPLICIT_SCI_ENABLE: + req.set_macsec_explicit_sci_enable(attr_list[i].value.booldata); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_SECTAG_OFFSET: + req.set_macsec_sectag_offset(attr_list[i].value.u8); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_ENABLE: + req.set_macsec_replay_protection_enable(attr_list[i].value.booldata); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_WINDOW: + req.set_macsec_replay_protection_window(attr_list[i].value.u32); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE: + req.set_macsec_cipher_suite( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MACSEC_SC_ATTR_ENCRYPTION_ENABLE: + req.set_encryption_enable(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = macsec->CreateMacsecSc(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *macsec_sc_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_macsec_sc(sai_object_id_t macsec_sc_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_MACSEC_SC, macsec_sc_id); + + lemming::dataplane::sai::RemoveMacsecScRequest req; + lemming::dataplane::sai::RemoveMacsecScResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_sc_id); + + grpc::Status status = macsec->RemoveMacsecSc(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_macsec_sc_attribute(sai_object_id_t macsec_sc_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_MACSEC_SC, macsec_sc_id, - attr); + + lemming::dataplane::sai::SetMacsecScAttributeRequest req; + lemming::dataplane::sai::SetMacsecScAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_sc_id); + + switch (attr->id) { + case SAI_MACSEC_SC_ATTR_MACSEC_EXPLICIT_SCI_ENABLE: + req.set_macsec_explicit_sci_enable(attr->value.booldata); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_SECTAG_OFFSET: + req.set_macsec_sectag_offset(attr->value.u8); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_ENABLE: + req.set_macsec_replay_protection_enable(attr->value.booldata); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_WINDOW: + req.set_macsec_replay_protection_window(attr->value.u32); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE: + req.set_macsec_cipher_suite( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_MACSEC_SC_ATTR_ENCRYPTION_ENABLE: + req.set_encryption_enable(attr->value.booldata); + break; + } + + grpc::Status status = macsec->SetMacsecScAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_sc_attribute(sai_object_id_t macsec_sc_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_MACSEC_SC, macsec_sc_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetMacsecScAttributeRequest req; + lemming::dataplane::sai::GetMacsecScAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(macsec_sc_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = macsec->GetMacsecScAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_SC_ATTR_MACSEC_DIRECTION: + attr_list[i].value.s32 = + static_cast(resp.attr().macsec_direction() - 1); + break; + case SAI_MACSEC_SC_ATTR_FLOW_ID: + attr_list[i].value.oid = resp.attr().flow_id(); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_SCI: + attr_list[i].value.u64 = resp.attr().macsec_sci(); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_EXPLICIT_SCI_ENABLE: + attr_list[i].value.booldata = resp.attr().macsec_explicit_sci_enable(); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_SECTAG_OFFSET: + attr_list[i].value.u8 = resp.attr().macsec_sectag_offset(); + break; + case SAI_MACSEC_SC_ATTR_ACTIVE_EGRESS_SA_ID: + attr_list[i].value.oid = resp.attr().active_egress_sa_id(); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_ENABLE: + attr_list[i].value.booldata = + resp.attr().macsec_replay_protection_enable(); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_WINDOW: + attr_list[i].value.u32 = resp.attr().macsec_replay_protection_window(); + break; + case SAI_MACSEC_SC_ATTR_SA_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().sa_list(), + attr_list[i].value.objlist.count); + break; + case SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE: + attr_list[i].value.s32 = + static_cast(resp.attr().macsec_cipher_suite() - 1); + break; + case SAI_MACSEC_SC_ATTR_ENCRYPTION_ENABLE: + attr_list[i].value.booldata = resp.attr().encryption_enable(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_sc_stats(sai_object_id_t macsec_sc_id, @@ -228,8 +739,8 @@ sai_status_t l_get_macsec_sc_stats(sai_object_id_t macsec_sc_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_MACSEC_SC, macsec_sc_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_sc_stats_ext(sai_object_id_t macsec_sc_id, @@ -238,45 +749,154 @@ sai_status_t l_get_macsec_sc_stats_ext(sai_object_id_t macsec_sc_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_MACSEC_SC, macsec_sc_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_macsec_sc_stats(sai_object_id_t macsec_sc_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_MACSEC_SC, macsec_sc_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_macsec_sa(sai_object_id_t *macsec_sa_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_MACSEC_SA, macsec_sa_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateMacsecSaRequest req; + lemming::dataplane::sai::CreateMacsecSaResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_SA_ATTR_MACSEC_DIRECTION: + req.set_macsec_direction( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MACSEC_SA_ATTR_SC_ID: + req.set_sc_id(attr_list[i].value.oid); + break; + case SAI_MACSEC_SA_ATTR_AN: + req.set_an(attr_list[i].value.u8); + break; + case SAI_MACSEC_SA_ATTR_CONFIGURED_EGRESS_XPN: + req.set_configured_egress_xpn(attr_list[i].value.u64); + break; + case SAI_MACSEC_SA_ATTR_MINIMUM_INGRESS_XPN: + req.set_minimum_ingress_xpn(attr_list[i].value.u64); + break; + case SAI_MACSEC_SA_ATTR_MACSEC_SSCI: + req.set_macsec_ssci(attr_list[i].value.u32); + break; + } + } + grpc::Status status = macsec->CreateMacsecSa(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *macsec_sa_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_macsec_sa(sai_object_id_t macsec_sa_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_MACSEC_SA, macsec_sa_id); + + lemming::dataplane::sai::RemoveMacsecSaRequest req; + lemming::dataplane::sai::RemoveMacsecSaResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_sa_id); + + grpc::Status status = macsec->RemoveMacsecSa(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_macsec_sa_attribute(sai_object_id_t macsec_sa_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_MACSEC_SA, macsec_sa_id, - attr); + + lemming::dataplane::sai::SetMacsecSaAttributeRequest req; + lemming::dataplane::sai::SetMacsecSaAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(macsec_sa_id); + + switch (attr->id) { + case SAI_MACSEC_SA_ATTR_CONFIGURED_EGRESS_XPN: + req.set_configured_egress_xpn(attr->value.u64); + break; + case SAI_MACSEC_SA_ATTR_MINIMUM_INGRESS_XPN: + req.set_minimum_ingress_xpn(attr->value.u64); + break; + } + + grpc::Status status = macsec->SetMacsecSaAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_sa_attribute(sai_object_id_t macsec_sa_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_MACSEC_SA, macsec_sa_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetMacsecSaAttributeRequest req; + lemming::dataplane::sai::GetMacsecSaAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(macsec_sa_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = macsec->GetMacsecSaAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MACSEC_SA_ATTR_MACSEC_DIRECTION: + attr_list[i].value.s32 = + static_cast(resp.attr().macsec_direction() - 1); + break; + case SAI_MACSEC_SA_ATTR_SC_ID: + attr_list[i].value.oid = resp.attr().sc_id(); + break; + case SAI_MACSEC_SA_ATTR_AN: + attr_list[i].value.u8 = resp.attr().an(); + break; + case SAI_MACSEC_SA_ATTR_CONFIGURED_EGRESS_XPN: + attr_list[i].value.u64 = resp.attr().configured_egress_xpn(); + break; + case SAI_MACSEC_SA_ATTR_CURRENT_XPN: + attr_list[i].value.u64 = resp.attr().current_xpn(); + break; + case SAI_MACSEC_SA_ATTR_MINIMUM_INGRESS_XPN: + attr_list[i].value.u64 = resp.attr().minimum_ingress_xpn(); + break; + case SAI_MACSEC_SA_ATTR_MACSEC_SSCI: + attr_list[i].value.u32 = resp.attr().macsec_ssci(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_sa_stats(sai_object_id_t macsec_sa_id, @@ -284,8 +904,8 @@ sai_status_t l_get_macsec_sa_stats(sai_object_id_t macsec_sa_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_MACSEC_SA, macsec_sa_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_macsec_sa_stats_ext(sai_object_id_t macsec_sa_id, @@ -294,15 +914,14 @@ sai_status_t l_get_macsec_sa_stats_ext(sai_object_id_t macsec_sa_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_MACSEC_SA, macsec_sa_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_macsec_sa_stats(sai_object_id_t macsec_sa_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_MACSEC_SA, macsec_sa_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/mcast_fdb.cc b/dataplane/standalone/sai/mcast_fdb.cc index cfdeb66f..3c4cdc31 100644 --- a/dataplane/standalone/sai/mcast_fdb.cc +++ b/dataplane/standalone/sai/mcast_fdb.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/mcast_fdb.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -30,31 +34,116 @@ sai_status_t l_create_mcast_fdb_entry( const sai_mcast_fdb_entry_t *mcast_fdb_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.mcast_fdb_entry = mcast_fdb_entry}; - return translator->create(SAI_OBJECT_TYPE_MCAST_FDB_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateMcastFdbEntryRequest req; + lemming::dataplane::sai::CreateMcastFdbEntryResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MCAST_FDB_ENTRY_ATTR_GROUP_ID: + req.set_group_id(attr_list[i].value.oid); + break; + case SAI_MCAST_FDB_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MCAST_FDB_ENTRY_ATTR_META_DATA: + req.set_meta_data(attr_list[i].value.u32); + break; + } + } + grpc::Status status = mcast_fdb->CreateMcastFdbEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_mcast_fdb_entry( const sai_mcast_fdb_entry_t *mcast_fdb_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.mcast_fdb_entry = mcast_fdb_entry}; - return translator->remove(SAI_OBJECT_TYPE_MCAST_FDB_ENTRY, entry); + + lemming::dataplane::sai::RemoveMcastFdbEntryRequest req; + lemming::dataplane::sai::RemoveMcastFdbEntryResponse resp; + grpc::ClientContext context; + + grpc::Status status = mcast_fdb->RemoveMcastFdbEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_mcast_fdb_entry_attribute( const sai_mcast_fdb_entry_t *mcast_fdb_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.mcast_fdb_entry = mcast_fdb_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_MCAST_FDB_ENTRY, entry, - attr); + + lemming::dataplane::sai::SetMcastFdbEntryAttributeRequest req; + lemming::dataplane::sai::SetMcastFdbEntryAttributeResponse resp; + grpc::ClientContext context; + + switch (attr->id) { + case SAI_MCAST_FDB_ENTRY_ATTR_GROUP_ID: + req.set_group_id(attr->value.oid); + break; + case SAI_MCAST_FDB_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_MCAST_FDB_ENTRY_ATTR_META_DATA: + req.set_meta_data(attr->value.u32); + break; + } + + grpc::Status status = + mcast_fdb->SetMcastFdbEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_mcast_fdb_entry_attribute( const sai_mcast_fdb_entry_t *mcast_fdb_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.mcast_fdb_entry = mcast_fdb_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_MCAST_FDB_ENTRY, entry, - attr_count, attr_list); + + lemming::dataplane::sai::GetMcastFdbEntryAttributeRequest req; + lemming::dataplane::sai::GetMcastFdbEntryAttributeResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + mcast_fdb->GetMcastFdbEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MCAST_FDB_ENTRY_ATTR_GROUP_ID: + attr_list[i].value.oid = resp.attr().group_id(); + break; + case SAI_MCAST_FDB_ENTRY_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_MCAST_FDB_ENTRY_ATTR_META_DATA: + attr_list[i].value.u32 = resp.attr().meta_data(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/mirror.cc b/dataplane/standalone/sai/mirror.cc index 07ed90da..30b01f17 100644 --- a/dataplane/standalone/sai/mirror.cc +++ b/dataplane/standalone/sai/mirror.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/mirror.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -31,26 +35,327 @@ sai_status_t l_create_mirror_session(sai_object_id_t *mirror_session_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_MIRROR_SESSION, mirror_session_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateMirrorSessionRequest req; + lemming::dataplane::sai::CreateMirrorSessionResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MIRROR_SESSION_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MIRROR_SESSION_ATTR_MONITOR_PORT: + req.set_monitor_port(attr_list[i].value.oid); + break; + case SAI_MIRROR_SESSION_ATTR_TRUNCATE_SIZE: + req.set_truncate_size(attr_list[i].value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_SAMPLE_RATE: + req.set_sample_rate(attr_list[i].value.u32); + break; + case SAI_MIRROR_SESSION_ATTR_CONGESTION_MODE: + req.set_congestion_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MIRROR_SESSION_ATTR_TC: + req.set_tc(attr_list[i].value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_TPID: + req.set_vlan_tpid(attr_list[i].value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_ID: + req.set_vlan_id(attr_list[i].value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_PRI: + req.set_vlan_pri(attr_list[i].value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_CFI: + req.set_vlan_cfi(attr_list[i].value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_HEADER_VALID: + req.set_vlan_header_valid(attr_list[i].value.booldata); + break; + case SAI_MIRROR_SESSION_ATTR_ERSPAN_ENCAPSULATION_TYPE: + req.set_erspan_encapsulation_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MIRROR_SESSION_ATTR_IPHDR_VERSION: + req.set_iphdr_version(attr_list[i].value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_TOS: + req.set_tos(attr_list[i].value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_TTL: + req.set_ttl(attr_list[i].value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_SRC_IP_ADDRESS: + req.set_src_ip_address( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_MIRROR_SESSION_ATTR_DST_IP_ADDRESS: + req.set_dst_ip_address( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_MIRROR_SESSION_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_MIRROR_SESSION_ATTR_DST_MAC_ADDRESS: + req.set_dst_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_MIRROR_SESSION_ATTR_GRE_PROTOCOL_TYPE: + req.set_gre_protocol_type(attr_list[i].value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_MONITOR_PORTLIST_VALID: + req.set_monitor_portlist_valid(attr_list[i].value.booldata); + break; + case SAI_MIRROR_SESSION_ATTR_MONITOR_PORTLIST: + req.mutable_monitor_portlist()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_MIRROR_SESSION_ATTR_POLICER: + req.set_policer(attr_list[i].value.oid); + break; + case SAI_MIRROR_SESSION_ATTR_UDP_SRC_PORT: + req.set_udp_src_port(attr_list[i].value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_UDP_DST_PORT: + req.set_udp_dst_port(attr_list[i].value.u16); + break; + } + } + grpc::Status status = mirror->CreateMirrorSession(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *mirror_session_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_mirror_session(sai_object_id_t mirror_session_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_MIRROR_SESSION, mirror_session_id); + + lemming::dataplane::sai::RemoveMirrorSessionRequest req; + lemming::dataplane::sai::RemoveMirrorSessionResponse resp; + grpc::ClientContext context; + req.set_oid(mirror_session_id); + + grpc::Status status = mirror->RemoveMirrorSession(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_mirror_session_attribute(sai_object_id_t mirror_session_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_MIRROR_SESSION, - mirror_session_id, attr); + + lemming::dataplane::sai::SetMirrorSessionAttributeRequest req; + lemming::dataplane::sai::SetMirrorSessionAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(mirror_session_id); + + switch (attr->id) { + case SAI_MIRROR_SESSION_ATTR_MONITOR_PORT: + req.set_monitor_port(attr->value.oid); + break; + case SAI_MIRROR_SESSION_ATTR_TRUNCATE_SIZE: + req.set_truncate_size(attr->value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_SAMPLE_RATE: + req.set_sample_rate(attr->value.u32); + break; + case SAI_MIRROR_SESSION_ATTR_CONGESTION_MODE: + req.set_congestion_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_MIRROR_SESSION_ATTR_TC: + req.set_tc(attr->value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_TPID: + req.set_vlan_tpid(attr->value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_ID: + req.set_vlan_id(attr->value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_PRI: + req.set_vlan_pri(attr->value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_CFI: + req.set_vlan_cfi(attr->value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_HEADER_VALID: + req.set_vlan_header_valid(attr->value.booldata); + break; + case SAI_MIRROR_SESSION_ATTR_IPHDR_VERSION: + req.set_iphdr_version(attr->value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_TOS: + req.set_tos(attr->value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_TTL: + req.set_ttl(attr->value.u8); + break; + case SAI_MIRROR_SESSION_ATTR_SRC_IP_ADDRESS: + req.set_src_ip_address(convert_from_ip_address(attr->value.ipaddr)); + break; + case SAI_MIRROR_SESSION_ATTR_DST_IP_ADDRESS: + req.set_dst_ip_address(convert_from_ip_address(attr->value.ipaddr)); + break; + case SAI_MIRROR_SESSION_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_MIRROR_SESSION_ATTR_DST_MAC_ADDRESS: + req.set_dst_mac_address(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_MIRROR_SESSION_ATTR_GRE_PROTOCOL_TYPE: + req.set_gre_protocol_type(attr->value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_MONITOR_PORTLIST: + req.mutable_monitor_portlist()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_MIRROR_SESSION_ATTR_POLICER: + req.set_policer(attr->value.oid); + break; + case SAI_MIRROR_SESSION_ATTR_UDP_SRC_PORT: + req.set_udp_src_port(attr->value.u16); + break; + case SAI_MIRROR_SESSION_ATTR_UDP_DST_PORT: + req.set_udp_dst_port(attr->value.u16); + break; + } + + grpc::Status status = mirror->SetMirrorSessionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_mirror_session_attribute(sai_object_id_t mirror_session_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_MIRROR_SESSION, - mirror_session_id, attr_count, attr_list); + + lemming::dataplane::sai::GetMirrorSessionAttributeRequest req; + lemming::dataplane::sai::GetMirrorSessionAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(mirror_session_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = mirror->GetMirrorSessionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MIRROR_SESSION_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_MIRROR_SESSION_ATTR_MONITOR_PORT: + attr_list[i].value.oid = resp.attr().monitor_port(); + break; + case SAI_MIRROR_SESSION_ATTR_TRUNCATE_SIZE: + attr_list[i].value.u16 = resp.attr().truncate_size(); + break; + case SAI_MIRROR_SESSION_ATTR_SAMPLE_RATE: + attr_list[i].value.u32 = resp.attr().sample_rate(); + break; + case SAI_MIRROR_SESSION_ATTR_CONGESTION_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().congestion_mode() - 1); + break; + case SAI_MIRROR_SESSION_ATTR_TC: + attr_list[i].value.u8 = resp.attr().tc(); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_TPID: + attr_list[i].value.u16 = resp.attr().vlan_tpid(); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_ID: + attr_list[i].value.u16 = resp.attr().vlan_id(); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_PRI: + attr_list[i].value.u8 = resp.attr().vlan_pri(); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_CFI: + attr_list[i].value.u8 = resp.attr().vlan_cfi(); + break; + case SAI_MIRROR_SESSION_ATTR_VLAN_HEADER_VALID: + attr_list[i].value.booldata = resp.attr().vlan_header_valid(); + break; + case SAI_MIRROR_SESSION_ATTR_ERSPAN_ENCAPSULATION_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().erspan_encapsulation_type() - 1); + break; + case SAI_MIRROR_SESSION_ATTR_IPHDR_VERSION: + attr_list[i].value.u8 = resp.attr().iphdr_version(); + break; + case SAI_MIRROR_SESSION_ATTR_TOS: + attr_list[i].value.u8 = resp.attr().tos(); + break; + case SAI_MIRROR_SESSION_ATTR_TTL: + attr_list[i].value.u8 = resp.attr().ttl(); + break; + case SAI_MIRROR_SESSION_ATTR_SRC_IP_ADDRESS: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().src_ip_address()); + break; + case SAI_MIRROR_SESSION_ATTR_DST_IP_ADDRESS: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().dst_ip_address()); + break; + case SAI_MIRROR_SESSION_ATTR_SRC_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().src_mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_MIRROR_SESSION_ATTR_DST_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().dst_mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_MIRROR_SESSION_ATTR_GRE_PROTOCOL_TYPE: + attr_list[i].value.u16 = resp.attr().gre_protocol_type(); + break; + case SAI_MIRROR_SESSION_ATTR_MONITOR_PORTLIST_VALID: + attr_list[i].value.booldata = resp.attr().monitor_portlist_valid(); + break; + case SAI_MIRROR_SESSION_ATTR_MONITOR_PORTLIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().monitor_portlist(), + attr_list[i].value.objlist.count); + break; + case SAI_MIRROR_SESSION_ATTR_POLICER: + attr_list[i].value.oid = resp.attr().policer(); + break; + case SAI_MIRROR_SESSION_ATTR_UDP_SRC_PORT: + attr_list[i].value.u16 = resp.attr().udp_src_port(); + break; + case SAI_MIRROR_SESSION_ATTR_UDP_DST_PORT: + attr_list[i].value.u16 = resp.attr().udp_dst_port(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/mpls.cc b/dataplane/standalone/sai/mpls.cc index dd3e4822..17a25548 100644 --- a/dataplane/standalone/sai/mpls.cc +++ b/dataplane/standalone/sai/mpls.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/mpls.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -34,31 +38,200 @@ sai_status_t l_create_inseg_entry(const sai_inseg_entry_t *inseg_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.inseg_entry = inseg_entry}; - return translator->create(SAI_OBJECT_TYPE_INSEG_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateInsegEntryRequest req; + lemming::dataplane::sai::CreateInsegEntryResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_INSEG_ENTRY_ATTR_NUM_OF_POP: + req.set_num_of_pop(attr_list[i].value.u8); + break; + case SAI_INSEG_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_INSEG_ENTRY_ATTR_TRAP_PRIORITY: + req.set_trap_priority(attr_list[i].value.u8); + break; + case SAI_INSEG_ENTRY_ATTR_NEXT_HOP_ID: + req.set_next_hop_id(attr_list[i].value.oid); + break; + case SAI_INSEG_ENTRY_ATTR_PSC_TYPE: + req.set_psc_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_INSEG_ENTRY_ATTR_QOS_TC: + req.set_qos_tc(attr_list[i].value.u8); + break; + case SAI_INSEG_ENTRY_ATTR_MPLS_EXP_TO_TC_MAP: + req.set_mpls_exp_to_tc_map(attr_list[i].value.oid); + break; + case SAI_INSEG_ENTRY_ATTR_MPLS_EXP_TO_COLOR_MAP: + req.set_mpls_exp_to_color_map(attr_list[i].value.oid); + break; + case SAI_INSEG_ENTRY_ATTR_POP_TTL_MODE: + req.set_pop_ttl_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_INSEG_ENTRY_ATTR_POP_QOS_MODE: + req.set_pop_qos_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_INSEG_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = mpls->CreateInsegEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_inseg_entry(const sai_inseg_entry_t *inseg_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.inseg_entry = inseg_entry}; - return translator->remove(SAI_OBJECT_TYPE_INSEG_ENTRY, entry); + + lemming::dataplane::sai::RemoveInsegEntryRequest req; + lemming::dataplane::sai::RemoveInsegEntryResponse resp; + grpc::ClientContext context; + + grpc::Status status = mpls->RemoveInsegEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_inseg_entry_attribute(const sai_inseg_entry_t *inseg_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.inseg_entry = inseg_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_INSEG_ENTRY, entry, attr); + + lemming::dataplane::sai::SetInsegEntryAttributeRequest req; + lemming::dataplane::sai::SetInsegEntryAttributeResponse resp; + grpc::ClientContext context; + + switch (attr->id) { + case SAI_INSEG_ENTRY_ATTR_NUM_OF_POP: + req.set_num_of_pop(attr->value.u8); + break; + case SAI_INSEG_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_INSEG_ENTRY_ATTR_TRAP_PRIORITY: + req.set_trap_priority(attr->value.u8); + break; + case SAI_INSEG_ENTRY_ATTR_NEXT_HOP_ID: + req.set_next_hop_id(attr->value.oid); + break; + case SAI_INSEG_ENTRY_ATTR_PSC_TYPE: + req.set_psc_type(static_cast( + attr->value.s32 + 1)); + break; + case SAI_INSEG_ENTRY_ATTR_QOS_TC: + req.set_qos_tc(attr->value.u8); + break; + case SAI_INSEG_ENTRY_ATTR_MPLS_EXP_TO_TC_MAP: + req.set_mpls_exp_to_tc_map(attr->value.oid); + break; + case SAI_INSEG_ENTRY_ATTR_MPLS_EXP_TO_COLOR_MAP: + req.set_mpls_exp_to_color_map(attr->value.oid); + break; + case SAI_INSEG_ENTRY_ATTR_POP_TTL_MODE: + req.set_pop_ttl_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_INSEG_ENTRY_ATTR_POP_QOS_MODE: + req.set_pop_qos_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_INSEG_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + } + + grpc::Status status = mpls->SetInsegEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_inseg_entry_attribute(const sai_inseg_entry_t *inseg_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.inseg_entry = inseg_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_INSEG_ENTRY, entry, - attr_count, attr_list); + + lemming::dataplane::sai::GetInsegEntryAttributeRequest req; + lemming::dataplane::sai::GetInsegEntryAttributeResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = mpls->GetInsegEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_INSEG_ENTRY_ATTR_NUM_OF_POP: + attr_list[i].value.u8 = resp.attr().num_of_pop(); + break; + case SAI_INSEG_ENTRY_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_INSEG_ENTRY_ATTR_TRAP_PRIORITY: + attr_list[i].value.u8 = resp.attr().trap_priority(); + break; + case SAI_INSEG_ENTRY_ATTR_NEXT_HOP_ID: + attr_list[i].value.oid = resp.attr().next_hop_id(); + break; + case SAI_INSEG_ENTRY_ATTR_PSC_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().psc_type() - 1); + break; + case SAI_INSEG_ENTRY_ATTR_QOS_TC: + attr_list[i].value.u8 = resp.attr().qos_tc(); + break; + case SAI_INSEG_ENTRY_ATTR_MPLS_EXP_TO_TC_MAP: + attr_list[i].value.oid = resp.attr().mpls_exp_to_tc_map(); + break; + case SAI_INSEG_ENTRY_ATTR_MPLS_EXP_TO_COLOR_MAP: + attr_list[i].value.oid = resp.attr().mpls_exp_to_color_map(); + break; + case SAI_INSEG_ENTRY_ATTR_POP_TTL_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().pop_ttl_mode() - 1); + break; + case SAI_INSEG_ENTRY_ATTR_POP_QOS_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().pop_qos_mode() - 1); + break; + case SAI_INSEG_ENTRY_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_inseg_entries(uint32_t object_count, @@ -68,10 +241,8 @@ sai_status_t l_create_inseg_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.inseg_entry = inseg_entry}; - return translator->create_bulk(SAI_OBJECT_TYPE_INSEG_ENTRY, object_count, - entry, attr_count, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_inseg_entries(uint32_t object_count, @@ -79,9 +250,8 @@ sai_status_t l_remove_inseg_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.inseg_entry = inseg_entry}; - return translator->remove_bulk(SAI_OBJECT_TYPE_INSEG_ENTRY, object_count, - entry, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_inseg_entries_attribute(uint32_t object_count, @@ -90,10 +260,8 @@ sai_status_t l_set_inseg_entries_attribute(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.inseg_entry = inseg_entry}; - return translator->set_attribute_bulk(SAI_OBJECT_TYPE_INSEG_ENTRY, - object_count, entry, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_inseg_entries_attribute(uint32_t object_count, @@ -103,8 +271,6 @@ sai_status_t l_get_inseg_entries_attribute(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.inseg_entry = inseg_entry}; - return translator->get_attribute_bulk(SAI_OBJECT_TYPE_INSEG_ENTRY, - object_count, entry, attr_count, - attr_list, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/my_mac.cc b/dataplane/standalone/sai/my_mac.cc index 3ee88fd1..bc9b10c2 100644 --- a/dataplane/standalone/sai/my_mac.cc +++ b/dataplane/standalone/sai/my_mac.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/my_mac.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -30,25 +34,125 @@ sai_status_t l_create_my_mac(sai_object_id_t *my_mac_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_MY_MAC, my_mac_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateMyMacRequest req; + lemming::dataplane::sai::CreateMyMacResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MY_MAC_ATTR_PRIORITY: + req.set_priority(attr_list[i].value.u32); + break; + case SAI_MY_MAC_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_MY_MAC_ATTR_VLAN_ID: + req.set_vlan_id(attr_list[i].value.u16); + break; + case SAI_MY_MAC_ATTR_MAC_ADDRESS: + req.set_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_MY_MAC_ATTR_MAC_ADDRESS_MASK: + req.set_mac_address_mask(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + } + } + grpc::Status status = my_mac->CreateMyMac(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *my_mac_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_my_mac(sai_object_id_t my_mac_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_MY_MAC, my_mac_id); + + lemming::dataplane::sai::RemoveMyMacRequest req; + lemming::dataplane::sai::RemoveMyMacResponse resp; + grpc::ClientContext context; + req.set_oid(my_mac_id); + + grpc::Status status = my_mac->RemoveMyMac(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_my_mac_attribute(sai_object_id_t my_mac_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_MY_MAC, my_mac_id, attr); + + lemming::dataplane::sai::SetMyMacAttributeRequest req; + lemming::dataplane::sai::SetMyMacAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(my_mac_id); + + switch (attr->id) { + case SAI_MY_MAC_ATTR_PRIORITY: + req.set_priority(attr->value.u32); + break; + } + + grpc::Status status = my_mac->SetMyMacAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_my_mac_attribute(sai_object_id_t my_mac_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_MY_MAC, my_mac_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetMyMacAttributeRequest req; + lemming::dataplane::sai::GetMyMacAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(my_mac_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = my_mac->GetMyMacAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MY_MAC_ATTR_PRIORITY: + attr_list[i].value.u32 = resp.attr().priority(); + break; + case SAI_MY_MAC_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_MY_MAC_ATTR_VLAN_ID: + attr_list[i].value.u16 = resp.attr().vlan_id(); + break; + case SAI_MY_MAC_ATTR_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_MY_MAC_ATTR_MAC_ADDRESS_MASK: + memcpy(attr_list[i].value.mac, resp.attr().mac_address_mask().data(), + sizeof(sai_mac_t)); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/nat.cc b/dataplane/standalone/sai/nat.cc index 190aba14..ec1aa056 100644 --- a/dataplane/standalone/sai/nat.cc +++ b/dataplane/standalone/sai/nat.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/nat.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -38,31 +42,218 @@ sai_status_t l_create_nat_entry(const sai_nat_entry_t *nat_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.nat_entry = nat_entry}; - return translator->create(SAI_OBJECT_TYPE_NAT_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateNatEntryRequest req; + lemming::dataplane::sai::CreateNatEntryResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NAT_ENTRY_ATTR_NAT_TYPE: + req.set_nat_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_NAT_ENTRY_ATTR_SRC_IP: + req.set_src_ip(&attr_list[i].value.ip4, sizeof(attr_list[i].value.ip4)); + break; + case SAI_NAT_ENTRY_ATTR_SRC_IP_MASK: + req.set_src_ip_mask(&attr_list[i].value.ip4, + sizeof(attr_list[i].value.ip4)); + break; + case SAI_NAT_ENTRY_ATTR_VR_ID: + req.set_vr_id(attr_list[i].value.oid); + break; + case SAI_NAT_ENTRY_ATTR_DST_IP: + req.set_dst_ip(&attr_list[i].value.ip4, sizeof(attr_list[i].value.ip4)); + break; + case SAI_NAT_ENTRY_ATTR_DST_IP_MASK: + req.set_dst_ip_mask(&attr_list[i].value.ip4, + sizeof(attr_list[i].value.ip4)); + break; + case SAI_NAT_ENTRY_ATTR_L4_SRC_PORT: + req.set_l4_src_port(attr_list[i].value.u16); + break; + case SAI_NAT_ENTRY_ATTR_L4_DST_PORT: + req.set_l4_dst_port(attr_list[i].value.u16); + break; + case SAI_NAT_ENTRY_ATTR_ENABLE_PACKET_COUNT: + req.set_enable_packet_count(attr_list[i].value.booldata); + break; + case SAI_NAT_ENTRY_ATTR_PACKET_COUNT: + req.set_packet_count(attr_list[i].value.u64); + break; + case SAI_NAT_ENTRY_ATTR_ENABLE_BYTE_COUNT: + req.set_enable_byte_count(attr_list[i].value.booldata); + break; + case SAI_NAT_ENTRY_ATTR_BYTE_COUNT: + req.set_byte_count(attr_list[i].value.u64); + break; + case SAI_NAT_ENTRY_ATTR_HIT_BIT_COR: + req.set_hit_bit_cor(attr_list[i].value.booldata); + break; + case SAI_NAT_ENTRY_ATTR_HIT_BIT: + req.set_hit_bit(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = nat->CreateNatEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_nat_entry(const sai_nat_entry_t *nat_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.nat_entry = nat_entry}; - return translator->remove(SAI_OBJECT_TYPE_NAT_ENTRY, entry); + + lemming::dataplane::sai::RemoveNatEntryRequest req; + lemming::dataplane::sai::RemoveNatEntryResponse resp; + grpc::ClientContext context; + + grpc::Status status = nat->RemoveNatEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_nat_entry_attribute(const sai_nat_entry_t *nat_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.nat_entry = nat_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_NAT_ENTRY, entry, attr); + + lemming::dataplane::sai::SetNatEntryAttributeRequest req; + lemming::dataplane::sai::SetNatEntryAttributeResponse resp; + grpc::ClientContext context; + + switch (attr->id) { + case SAI_NAT_ENTRY_ATTR_NAT_TYPE: + req.set_nat_type( + static_cast(attr->value.s32 + 1)); + break; + case SAI_NAT_ENTRY_ATTR_SRC_IP: + req.set_src_ip(&attr->value.ip4, sizeof(attr->value.ip4)); + break; + case SAI_NAT_ENTRY_ATTR_SRC_IP_MASK: + req.set_src_ip_mask(&attr->value.ip4, sizeof(attr->value.ip4)); + break; + case SAI_NAT_ENTRY_ATTR_VR_ID: + req.set_vr_id(attr->value.oid); + break; + case SAI_NAT_ENTRY_ATTR_DST_IP: + req.set_dst_ip(&attr->value.ip4, sizeof(attr->value.ip4)); + break; + case SAI_NAT_ENTRY_ATTR_DST_IP_MASK: + req.set_dst_ip_mask(&attr->value.ip4, sizeof(attr->value.ip4)); + break; + case SAI_NAT_ENTRY_ATTR_L4_SRC_PORT: + req.set_l4_src_port(attr->value.u16); + break; + case SAI_NAT_ENTRY_ATTR_L4_DST_PORT: + req.set_l4_dst_port(attr->value.u16); + break; + case SAI_NAT_ENTRY_ATTR_ENABLE_PACKET_COUNT: + req.set_enable_packet_count(attr->value.booldata); + break; + case SAI_NAT_ENTRY_ATTR_PACKET_COUNT: + req.set_packet_count(attr->value.u64); + break; + case SAI_NAT_ENTRY_ATTR_ENABLE_BYTE_COUNT: + req.set_enable_byte_count(attr->value.booldata); + break; + case SAI_NAT_ENTRY_ATTR_BYTE_COUNT: + req.set_byte_count(attr->value.u64); + break; + case SAI_NAT_ENTRY_ATTR_HIT_BIT_COR: + req.set_hit_bit_cor(attr->value.booldata); + break; + case SAI_NAT_ENTRY_ATTR_HIT_BIT: + req.set_hit_bit(attr->value.booldata); + break; + } + + grpc::Status status = nat->SetNatEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_nat_entry_attribute(const sai_nat_entry_t *nat_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.nat_entry = nat_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_NAT_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::GetNatEntryAttributeRequest req; + lemming::dataplane::sai::GetNatEntryAttributeResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = nat->GetNatEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NAT_ENTRY_ATTR_NAT_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().nat_type() - 1); + break; + case SAI_NAT_ENTRY_ATTR_SRC_IP: + memcpy(&attr_list[i].value.ip4, resp.attr().src_ip().data(), + sizeof(sai_ip4_t)); + break; + case SAI_NAT_ENTRY_ATTR_SRC_IP_MASK: + memcpy(&attr_list[i].value.ip4, resp.attr().src_ip_mask().data(), + sizeof(sai_ip4_t)); + break; + case SAI_NAT_ENTRY_ATTR_VR_ID: + attr_list[i].value.oid = resp.attr().vr_id(); + break; + case SAI_NAT_ENTRY_ATTR_DST_IP: + memcpy(&attr_list[i].value.ip4, resp.attr().dst_ip().data(), + sizeof(sai_ip4_t)); + break; + case SAI_NAT_ENTRY_ATTR_DST_IP_MASK: + memcpy(&attr_list[i].value.ip4, resp.attr().dst_ip_mask().data(), + sizeof(sai_ip4_t)); + break; + case SAI_NAT_ENTRY_ATTR_L4_SRC_PORT: + attr_list[i].value.u16 = resp.attr().l4_src_port(); + break; + case SAI_NAT_ENTRY_ATTR_L4_DST_PORT: + attr_list[i].value.u16 = resp.attr().l4_dst_port(); + break; + case SAI_NAT_ENTRY_ATTR_ENABLE_PACKET_COUNT: + attr_list[i].value.booldata = resp.attr().enable_packet_count(); + break; + case SAI_NAT_ENTRY_ATTR_PACKET_COUNT: + attr_list[i].value.u64 = resp.attr().packet_count(); + break; + case SAI_NAT_ENTRY_ATTR_ENABLE_BYTE_COUNT: + attr_list[i].value.booldata = resp.attr().enable_byte_count(); + break; + case SAI_NAT_ENTRY_ATTR_BYTE_COUNT: + attr_list[i].value.u64 = resp.attr().byte_count(); + break; + case SAI_NAT_ENTRY_ATTR_HIT_BIT_COR: + attr_list[i].value.booldata = resp.attr().hit_bit_cor(); + break; + case SAI_NAT_ENTRY_ATTR_HIT_BIT: + attr_list[i].value.booldata = resp.attr().hit_bit(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_nat_entries(uint32_t object_count, @@ -72,9 +263,8 @@ sai_status_t l_create_nat_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.nat_entry = nat_entry}; - return translator->create_bulk(SAI_OBJECT_TYPE_NAT_ENTRY, object_count, entry, - attr_count, attr_list, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_nat_entries(uint32_t object_count, @@ -82,9 +272,8 @@ sai_status_t l_remove_nat_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.nat_entry = nat_entry}; - return translator->remove_bulk(SAI_OBJECT_TYPE_NAT_ENTRY, object_count, entry, - mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_nat_entries_attribute(uint32_t object_count, @@ -93,10 +282,8 @@ sai_status_t l_set_nat_entries_attribute(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.nat_entry = nat_entry}; - return translator->set_attribute_bulk(SAI_OBJECT_TYPE_NAT_ENTRY, object_count, - entry, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_nat_entries_attribute(uint32_t object_count, @@ -106,10 +293,8 @@ sai_status_t l_get_nat_entries_attribute(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.nat_entry = nat_entry}; - return translator->get_attribute_bulk(SAI_OBJECT_TYPE_NAT_ENTRY, object_count, - entry, attr_count, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_nat_zone_counter(sai_object_id_t *nat_zone_counter_id, @@ -117,28 +302,153 @@ sai_status_t l_create_nat_zone_counter(sai_object_id_t *nat_zone_counter_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_NAT_ZONE_COUNTER, - nat_zone_counter_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateNatZoneCounterRequest req; + lemming::dataplane::sai::CreateNatZoneCounterResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NAT_ZONE_COUNTER_ATTR_NAT_TYPE: + req.set_nat_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ZONE_ID: + req.set_zone_id(attr_list[i].value.u8); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_DISCARD: + req.set_enable_discard(attr_list[i].value.booldata); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_DISCARD_PACKET_COUNT: + req.set_discard_packet_count(attr_list[i].value.u64); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATION_NEEDED: + req.set_enable_translation_needed(attr_list[i].value.booldata); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_TRANSLATION_NEEDED_PACKET_COUNT: + req.set_translation_needed_packet_count(attr_list[i].value.u64); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATIONS: + req.set_enable_translations(attr_list[i].value.booldata); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_TRANSLATIONS_PACKET_COUNT: + req.set_translations_packet_count(attr_list[i].value.u64); + break; + } + } + grpc::Status status = nat->CreateNatZoneCounter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *nat_zone_counter_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_nat_zone_counter(sai_object_id_t nat_zone_counter_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_NAT_ZONE_COUNTER, - nat_zone_counter_id); + + lemming::dataplane::sai::RemoveNatZoneCounterRequest req; + lemming::dataplane::sai::RemoveNatZoneCounterResponse resp; + grpc::ClientContext context; + req.set_oid(nat_zone_counter_id); + + grpc::Status status = nat->RemoveNatZoneCounter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_nat_zone_counter_attribute( sai_object_id_t nat_zone_counter_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_NAT_ZONE_COUNTER, - nat_zone_counter_id, attr); + + lemming::dataplane::sai::SetNatZoneCounterAttributeRequest req; + lemming::dataplane::sai::SetNatZoneCounterAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(nat_zone_counter_id); + + switch (attr->id) { + case SAI_NAT_ZONE_COUNTER_ATTR_NAT_TYPE: + req.set_nat_type( + static_cast(attr->value.s32 + 1)); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ZONE_ID: + req.set_zone_id(attr->value.u8); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_DISCARD_PACKET_COUNT: + req.set_discard_packet_count(attr->value.u64); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_TRANSLATION_NEEDED_PACKET_COUNT: + req.set_translation_needed_packet_count(attr->value.u64); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_TRANSLATIONS_PACKET_COUNT: + req.set_translations_packet_count(attr->value.u64); + break; + } + + grpc::Status status = nat->SetNatZoneCounterAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_nat_zone_counter_attribute( sai_object_id_t nat_zone_counter_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_NAT_ZONE_COUNTER, - nat_zone_counter_id, attr_count, attr_list); + + lemming::dataplane::sai::GetNatZoneCounterAttributeRequest req; + lemming::dataplane::sai::GetNatZoneCounterAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(nat_zone_counter_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = nat->GetNatZoneCounterAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NAT_ZONE_COUNTER_ATTR_NAT_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().nat_type() - 1); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ZONE_ID: + attr_list[i].value.u8 = resp.attr().zone_id(); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_DISCARD: + attr_list[i].value.booldata = resp.attr().enable_discard(); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_DISCARD_PACKET_COUNT: + attr_list[i].value.u64 = resp.attr().discard_packet_count(); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATION_NEEDED: + attr_list[i].value.booldata = resp.attr().enable_translation_needed(); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_TRANSLATION_NEEDED_PACKET_COUNT: + attr_list[i].value.u64 = resp.attr().translation_needed_packet_count(); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATIONS: + attr_list[i].value.booldata = resp.attr().enable_translations(); + break; + case SAI_NAT_ZONE_COUNTER_ATTR_TRANSLATIONS_PACKET_COUNT: + attr_list[i].value.u64 = resp.attr().translations_packet_count(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/neighbor.cc b/dataplane/standalone/sai/neighbor.cc index 2b4cb6e6..0cd86a68 100644 --- a/dataplane/standalone/sai/neighbor.cc +++ b/dataplane/standalone/sai/neighbor.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/neighbor.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -31,32 +35,178 @@ sai_status_t l_create_neighbor_entry(const sai_neighbor_entry_t *neighbor_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.neighbor_entry = neighbor_entry}; - return translator->create(SAI_OBJECT_TYPE_NEIGHBOR_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateNeighborEntryRequest req; + lemming::dataplane::sai::CreateNeighborEntryResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS: + req.set_dst_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_USER_TRAP_ID: + req.set_user_trap_id(attr_list[i].value.oid); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_NO_HOST_ROUTE: + req.set_no_host_route(attr_list[i].value.booldata); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_META_DATA: + req.set_meta_data(attr_list[i].value.u32); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_INDEX: + req.set_encap_index(attr_list[i].value.u32); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_IMPOSE_INDEX: + req.set_encap_impose_index(attr_list[i].value.booldata); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_IS_LOCAL: + req.set_is_local(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = neighbor->CreateNeighborEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_neighbor_entry( const sai_neighbor_entry_t *neighbor_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.neighbor_entry = neighbor_entry}; - return translator->remove(SAI_OBJECT_TYPE_NEIGHBOR_ENTRY, entry); + + lemming::dataplane::sai::RemoveNeighborEntryRequest req; + lemming::dataplane::sai::RemoveNeighborEntryResponse resp; + grpc::ClientContext context; + + grpc::Status status = neighbor->RemoveNeighborEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_neighbor_entry_attribute( const sai_neighbor_entry_t *neighbor_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.neighbor_entry = neighbor_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_NEIGHBOR_ENTRY, entry, attr); + + lemming::dataplane::sai::SetNeighborEntryAttributeRequest req; + lemming::dataplane::sai::SetNeighborEntryAttributeResponse resp; + grpc::ClientContext context; + + switch (attr->id) { + case SAI_NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS: + req.set_dst_mac_address(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_USER_TRAP_ID: + req.set_user_trap_id(attr->value.oid); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_NO_HOST_ROUTE: + req.set_no_host_route(attr->value.booldata); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_META_DATA: + req.set_meta_data(attr->value.u32); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_INDEX: + req.set_encap_index(attr->value.u32); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_IMPOSE_INDEX: + req.set_encap_impose_index(attr->value.booldata); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_IS_LOCAL: + req.set_is_local(attr->value.booldata); + break; + } + + grpc::Status status = + neighbor->SetNeighborEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_neighbor_entry_attribute( const sai_neighbor_entry_t *neighbor_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.neighbor_entry = neighbor_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_NEIGHBOR_ENTRY, entry, - attr_count, attr_list); + + lemming::dataplane::sai::GetNeighborEntryAttributeRequest req; + lemming::dataplane::sai::GetNeighborEntryAttributeResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + neighbor->GetNeighborEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().dst_mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_USER_TRAP_ID: + attr_list[i].value.oid = resp.attr().user_trap_id(); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_NO_HOST_ROUTE: + attr_list[i].value.booldata = resp.attr().no_host_route(); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_META_DATA: + attr_list[i].value.u32 = resp.attr().meta_data(); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_INDEX: + attr_list[i].value.u32 = resp.attr().encap_index(); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_IMPOSE_INDEX: + attr_list[i].value.booldata = resp.attr().encap_impose_index(); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_IS_LOCAL: + attr_list[i].value.booldata = resp.attr().is_local(); + break; + case SAI_NEIGHBOR_ENTRY_ATTR_IP_ADDR_FAMILY: + attr_list[i].value.s32 = + static_cast(resp.attr().ip_addr_family() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_all_neighbor_entries(sai_object_id_t switch_id) { diff --git a/dataplane/standalone/sai/next_hop.cc b/dataplane/standalone/sai/next_hop.cc index 75fbe4a5..5c32c8fd 100644 --- a/dataplane/standalone/sai/next_hop.cc +++ b/dataplane/standalone/sai/next_hop.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/next_hop.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -30,25 +34,233 @@ sai_status_t l_create_next_hop(sai_object_id_t *next_hop_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_NEXT_HOP, next_hop_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateNextHopRequest req; + lemming::dataplane::sai::CreateNextHopResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEXT_HOP_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_NEXT_HOP_ATTR_IP: + req.set_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_NEXT_HOP_ATTR_ROUTER_INTERFACE_ID: + req.set_router_interface_id(attr_list[i].value.oid); + break; + case SAI_NEXT_HOP_ATTR_TUNNEL_ID: + req.set_tunnel_id(attr_list[i].value.oid); + break; + case SAI_NEXT_HOP_ATTR_TUNNEL_VNI: + req.set_tunnel_vni(attr_list[i].value.u32); + break; + case SAI_NEXT_HOP_ATTR_TUNNEL_MAC: + req.set_tunnel_mac(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_NEXT_HOP_ATTR_SRV6_SIDLIST_ID: + req.set_srv6_sidlist_id(attr_list[i].value.oid); + break; + case SAI_NEXT_HOP_ATTR_LABELSTACK: + req.mutable_labelstack()->Add( + attr_list[i].value.u32list.list, + attr_list[i].value.u32list.list + attr_list[i].value.u32list.count); + break; + case SAI_NEXT_HOP_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + case SAI_NEXT_HOP_ATTR_DISABLE_DECREMENT_TTL: + req.set_disable_decrement_ttl(attr_list[i].value.booldata); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TYPE: + req.set_outseg_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TTL_MODE: + req.set_outseg_ttl_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TTL_VALUE: + req.set_outseg_ttl_value(attr_list[i].value.u8); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_EXP_MODE: + req.set_outseg_exp_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_EXP_VALUE: + req.set_outseg_exp_value(attr_list[i].value.u8); + break; + case SAI_NEXT_HOP_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + req.set_qos_tc_and_color_to_mpls_exp_map(attr_list[i].value.oid); + break; + } + } + grpc::Status status = next_hop->CreateNextHop(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *next_hop_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_next_hop(sai_object_id_t next_hop_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_NEXT_HOP, next_hop_id); + + lemming::dataplane::sai::RemoveNextHopRequest req; + lemming::dataplane::sai::RemoveNextHopResponse resp; + grpc::ClientContext context; + req.set_oid(next_hop_id); + + grpc::Status status = next_hop->RemoveNextHop(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_next_hop_attribute(sai_object_id_t next_hop_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_NEXT_HOP, next_hop_id, attr); + + lemming::dataplane::sai::SetNextHopAttributeRequest req; + lemming::dataplane::sai::SetNextHopAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(next_hop_id); + + switch (attr->id) { + case SAI_NEXT_HOP_ATTR_TUNNEL_VNI: + req.set_tunnel_vni(attr->value.u32); + break; + case SAI_NEXT_HOP_ATTR_TUNNEL_MAC: + req.set_tunnel_mac(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_NEXT_HOP_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + case SAI_NEXT_HOP_ATTR_DISABLE_DECREMENT_TTL: + req.set_disable_decrement_ttl(attr->value.booldata); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TYPE: + req.set_outseg_type(static_cast( + attr->value.s32 + 1)); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TTL_MODE: + req.set_outseg_ttl_mode( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TTL_VALUE: + req.set_outseg_ttl_value(attr->value.u8); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_EXP_MODE: + req.set_outseg_exp_mode( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_EXP_VALUE: + req.set_outseg_exp_value(attr->value.u8); + break; + case SAI_NEXT_HOP_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + req.set_qos_tc_and_color_to_mpls_exp_map(attr->value.oid); + break; + } + + grpc::Status status = next_hop->SetNextHopAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_next_hop_attribute(sai_object_id_t next_hop_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_NEXT_HOP, next_hop_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetNextHopAttributeRequest req; + lemming::dataplane::sai::GetNextHopAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(next_hop_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = next_hop->GetNextHopAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEXT_HOP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_NEXT_HOP_ATTR_IP: + attr_list[i].value.ipaddr = convert_to_ip_address(resp.attr().ip()); + break; + case SAI_NEXT_HOP_ATTR_ROUTER_INTERFACE_ID: + attr_list[i].value.oid = resp.attr().router_interface_id(); + break; + case SAI_NEXT_HOP_ATTR_TUNNEL_ID: + attr_list[i].value.oid = resp.attr().tunnel_id(); + break; + case SAI_NEXT_HOP_ATTR_TUNNEL_VNI: + attr_list[i].value.u32 = resp.attr().tunnel_vni(); + break; + case SAI_NEXT_HOP_ATTR_TUNNEL_MAC: + memcpy(attr_list[i].value.mac, resp.attr().tunnel_mac().data(), + sizeof(sai_mac_t)); + break; + case SAI_NEXT_HOP_ATTR_SRV6_SIDLIST_ID: + attr_list[i].value.oid = resp.attr().srv6_sidlist_id(); + break; + case SAI_NEXT_HOP_ATTR_LABELSTACK: + copy_list(attr_list[i].value.u32list.list, resp.attr().labelstack(), + attr_list[i].value.u32list.count); + break; + case SAI_NEXT_HOP_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + case SAI_NEXT_HOP_ATTR_DISABLE_DECREMENT_TTL: + attr_list[i].value.booldata = resp.attr().disable_decrement_ttl(); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().outseg_type() - 1); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TTL_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().outseg_ttl_mode() - 1); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_TTL_VALUE: + attr_list[i].value.u8 = resp.attr().outseg_ttl_value(); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_EXP_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().outseg_exp_mode() - 1); + break; + case SAI_NEXT_HOP_ATTR_OUTSEG_EXP_VALUE: + attr_list[i].value.u8 = resp.attr().outseg_exp_value(); + break; + case SAI_NEXT_HOP_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_and_color_to_mpls_exp_map(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/next_hop_group.cc b/dataplane/standalone/sai/next_hop_group.cc index 1afff7e8..8d40b24a 100644 --- a/dataplane/standalone/sai/next_hop_group.cc +++ b/dataplane/standalone/sai/next_hop_group.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/next_hop_group.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -43,60 +47,312 @@ sai_status_t l_create_next_hop_group(sai_object_id_t *next_hop_group_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_NEXT_HOP_GROUP, next_hop_group_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateNextHopGroupRequest req; + lemming::dataplane::sai::CreateNextHopGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEXT_HOP_GROUP_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_NEXT_HOP_GROUP_ATTR_SET_SWITCHOVER: + req.set_set_switchover(attr_list[i].value.booldata); + break; + case SAI_NEXT_HOP_GROUP_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + case SAI_NEXT_HOP_GROUP_ATTR_CONFIGURED_SIZE: + req.set_configured_size(attr_list[i].value.u32); + break; + case SAI_NEXT_HOP_GROUP_ATTR_SELECTION_MAP: + req.set_selection_map(attr_list[i].value.oid); + break; + } + } + grpc::Status status = + next_hop_group->CreateNextHopGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *next_hop_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_next_hop_group(sai_object_id_t next_hop_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_NEXT_HOP_GROUP, next_hop_group_id); + + lemming::dataplane::sai::RemoveNextHopGroupRequest req; + lemming::dataplane::sai::RemoveNextHopGroupResponse resp; + grpc::ClientContext context; + req.set_oid(next_hop_group_id); + + grpc::Status status = + next_hop_group->RemoveNextHopGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_next_hop_group_attribute(sai_object_id_t next_hop_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_NEXT_HOP_GROUP, - next_hop_group_id, attr); + + lemming::dataplane::sai::SetNextHopGroupAttributeRequest req; + lemming::dataplane::sai::SetNextHopGroupAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(next_hop_group_id); + + switch (attr->id) { + case SAI_NEXT_HOP_GROUP_ATTR_SET_SWITCHOVER: + req.set_set_switchover(attr->value.booldata); + break; + case SAI_NEXT_HOP_GROUP_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + case SAI_NEXT_HOP_GROUP_ATTR_SELECTION_MAP: + req.set_selection_map(attr->value.oid); + break; + } + + grpc::Status status = + next_hop_group->SetNextHopGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_next_hop_group_attribute(sai_object_id_t next_hop_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_NEXT_HOP_GROUP, - next_hop_group_id, attr_count, attr_list); + + lemming::dataplane::sai::GetNextHopGroupAttributeRequest req; + lemming::dataplane::sai::GetNextHopGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(next_hop_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + next_hop_group->GetNextHopGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_COUNT: + attr_list[i].value.u32 = resp.attr().next_hop_count(); + break; + case SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_MEMBER_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().next_hop_member_list(), + attr_list[i].value.objlist.count); + break; + case SAI_NEXT_HOP_GROUP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_NEXT_HOP_GROUP_ATTR_SET_SWITCHOVER: + attr_list[i].value.booldata = resp.attr().set_switchover(); + break; + case SAI_NEXT_HOP_GROUP_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + case SAI_NEXT_HOP_GROUP_ATTR_CONFIGURED_SIZE: + attr_list[i].value.u32 = resp.attr().configured_size(); + break; + case SAI_NEXT_HOP_GROUP_ATTR_REAL_SIZE: + attr_list[i].value.u32 = resp.attr().real_size(); + break; + case SAI_NEXT_HOP_GROUP_ATTR_SELECTION_MAP: + attr_list[i].value.oid = resp.attr().selection_map(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_next_hop_group_member( sai_object_id_t *next_hop_group_member_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER, - next_hop_group_member_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateNextHopGroupMemberRequest req; + lemming::dataplane::sai::CreateNextHopGroupMemberResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_GROUP_ID: + req.set_next_hop_group_id(attr_list[i].value.oid); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_ID: + req.set_next_hop_id(attr_list[i].value.oid); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_WEIGHT: + req.set_weight(attr_list[i].value.u32); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_CONFIGURED_ROLE: + req.set_configured_role( + static_cast< + lemming::dataplane::sai::NextHopGroupMemberConfiguredRole>( + attr_list[i].value.s32 + 1)); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT: + req.set_monitored_object(attr_list[i].value.oid); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_INDEX: + req.set_index(attr_list[i].value.u32); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_SEQUENCE_ID: + req.set_sequence_id(attr_list[i].value.u32); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = + next_hop_group->CreateNextHopGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *next_hop_group_member_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_next_hop_group_member( sai_object_id_t next_hop_group_member_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER, - next_hop_group_member_id); + + lemming::dataplane::sai::RemoveNextHopGroupMemberRequest req; + lemming::dataplane::sai::RemoveNextHopGroupMemberResponse resp; + grpc::ClientContext context; + req.set_oid(next_hop_group_member_id); + + grpc::Status status = + next_hop_group->RemoveNextHopGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_next_hop_group_member_attribute( sai_object_id_t next_hop_group_member_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER, - next_hop_group_member_id, attr); + + lemming::dataplane::sai::SetNextHopGroupMemberAttributeRequest req; + lemming::dataplane::sai::SetNextHopGroupMemberAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(next_hop_group_member_id); + + switch (attr->id) { + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_ID: + req.set_next_hop_id(attr->value.oid); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_WEIGHT: + req.set_weight(attr->value.u32); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT: + req.set_monitored_object(attr->value.oid); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_SEQUENCE_ID: + req.set_sequence_id(attr->value.u32); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + } + + grpc::Status status = + next_hop_group->SetNextHopGroupMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_next_hop_group_member_attribute( sai_object_id_t next_hop_group_member_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER, - next_hop_group_member_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetNextHopGroupMemberAttributeRequest req; + lemming::dataplane::sai::GetNextHopGroupMemberAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(next_hop_group_member_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + next_hop_group->GetNextHopGroupMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_GROUP_ID: + attr_list[i].value.oid = resp.attr().next_hop_group_id(); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_ID: + attr_list[i].value.oid = resp.attr().next_hop_id(); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_WEIGHT: + attr_list[i].value.u32 = resp.attr().weight(); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_CONFIGURED_ROLE: + attr_list[i].value.s32 = + static_cast(resp.attr().configured_role() - 1); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_OBSERVED_ROLE: + attr_list[i].value.s32 = + static_cast(resp.attr().observed_role() - 1); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT: + attr_list[i].value.oid = resp.attr().monitored_object(); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_INDEX: + attr_list[i].value.u32 = resp.attr().index(); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_SEQUENCE_ID: + attr_list[i].value.u32 = resp.attr().sequence_id(); + break; + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_next_hop_group_members(sai_object_id_t switch_id, @@ -107,9 +363,8 @@ sai_status_t l_create_next_hop_group_members(sai_object_id_t switch_id, sai_object_id_t *object_id, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create_bulk(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER, - switch_id, object_count, attr_count, attr_list, - mode, object_id, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_next_hop_group_members(uint32_t object_count, @@ -117,9 +372,8 @@ sai_status_t l_remove_next_hop_group_members(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove_bulk(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER, - object_count, object_id, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_next_hop_group_map(sai_object_id_t *next_hop_group_map_id, @@ -127,30 +381,85 @@ sai_status_t l_create_next_hop_group_map(sai_object_id_t *next_hop_group_map_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MAP, - next_hop_group_map_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateNextHopGroupMapRequest req; + lemming::dataplane::sai::CreateNextHopGroupMapResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEXT_HOP_GROUP_MAP_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = + next_hop_group->CreateNextHopGroupMap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *next_hop_group_map_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_next_hop_group_map( sai_object_id_t next_hop_group_map_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MAP, - next_hop_group_map_id); + + lemming::dataplane::sai::RemoveNextHopGroupMapRequest req; + lemming::dataplane::sai::RemoveNextHopGroupMapResponse resp; + grpc::ClientContext context; + req.set_oid(next_hop_group_map_id); + + grpc::Status status = + next_hop_group->RemoveNextHopGroupMap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_next_hop_group_map_attribute( sai_object_id_t next_hop_group_map_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MAP, - next_hop_group_map_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_next_hop_group_map_attribute( sai_object_id_t next_hop_group_map_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MAP, - next_hop_group_map_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetNextHopGroupMapAttributeRequest req; + lemming::dataplane::sai::GetNextHopGroupMapAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(next_hop_group_map_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + next_hop_group->GetNextHopGroupMapAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_NEXT_HOP_GROUP_MAP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/policer.cc b/dataplane/standalone/sai/policer.cc index e25ed8cc..09649b12 100644 --- a/dataplane/standalone/sai/policer.cc +++ b/dataplane/standalone/sai/policer.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/policer.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -33,27 +37,191 @@ sai_status_t l_create_policer(sai_object_id_t *policer_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_POLICER, policer_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreatePolicerRequest req; + lemming::dataplane::sai::CreatePolicerResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_POLICER_ATTR_METER_TYPE: + req.set_meter_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_POLICER_ATTR_MODE: + req.set_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_POLICER_ATTR_COLOR_SOURCE: + req.set_color_source( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_POLICER_ATTR_CBS: + req.set_cbs(attr_list[i].value.u64); + break; + case SAI_POLICER_ATTR_CIR: + req.set_cir(attr_list[i].value.u64); + break; + case SAI_POLICER_ATTR_PBS: + req.set_pbs(attr_list[i].value.u64); + break; + case SAI_POLICER_ATTR_PIR: + req.set_pir(attr_list[i].value.u64); + break; + case SAI_POLICER_ATTR_GREEN_PACKET_ACTION: + req.set_green_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_POLICER_ATTR_YELLOW_PACKET_ACTION: + req.set_yellow_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_POLICER_ATTR_RED_PACKET_ACTION: + req.set_red_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = policer->CreatePolicer(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *policer_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_policer(sai_object_id_t policer_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_POLICER, policer_id); + + lemming::dataplane::sai::RemovePolicerRequest req; + lemming::dataplane::sai::RemovePolicerResponse resp; + grpc::ClientContext context; + req.set_oid(policer_id); + + grpc::Status status = policer->RemovePolicer(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_policer_attribute(sai_object_id_t policer_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_POLICER, policer_id, attr); + + lemming::dataplane::sai::SetPolicerAttributeRequest req; + lemming::dataplane::sai::SetPolicerAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(policer_id); + + switch (attr->id) { + case SAI_POLICER_ATTR_CBS: + req.set_cbs(attr->value.u64); + break; + case SAI_POLICER_ATTR_CIR: + req.set_cir(attr->value.u64); + break; + case SAI_POLICER_ATTR_PBS: + req.set_pbs(attr->value.u64); + break; + case SAI_POLICER_ATTR_PIR: + req.set_pir(attr->value.u64); + break; + case SAI_POLICER_ATTR_GREEN_PACKET_ACTION: + req.set_green_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_POLICER_ATTR_YELLOW_PACKET_ACTION: + req.set_yellow_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_POLICER_ATTR_RED_PACKET_ACTION: + req.set_red_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + } + + grpc::Status status = policer->SetPolicerAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_policer_attribute(sai_object_id_t policer_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_POLICER, policer_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetPolicerAttributeRequest req; + lemming::dataplane::sai::GetPolicerAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(policer_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = policer->GetPolicerAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_POLICER_ATTR_METER_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().meter_type() - 1); + break; + case SAI_POLICER_ATTR_MODE: + attr_list[i].value.s32 = static_cast(resp.attr().mode() - 1); + break; + case SAI_POLICER_ATTR_COLOR_SOURCE: + attr_list[i].value.s32 = + static_cast(resp.attr().color_source() - 1); + break; + case SAI_POLICER_ATTR_CBS: + attr_list[i].value.u64 = resp.attr().cbs(); + break; + case SAI_POLICER_ATTR_CIR: + attr_list[i].value.u64 = resp.attr().cir(); + break; + case SAI_POLICER_ATTR_PBS: + attr_list[i].value.u64 = resp.attr().pbs(); + break; + case SAI_POLICER_ATTR_PIR: + attr_list[i].value.u64 = resp.attr().pir(); + break; + case SAI_POLICER_ATTR_GREEN_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().green_packet_action() - 1); + break; + case SAI_POLICER_ATTR_YELLOW_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().yellow_packet_action() - 1); + break; + case SAI_POLICER_ATTR_RED_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().red_packet_action() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_policer_stats(sai_object_id_t policer_id, @@ -61,8 +229,8 @@ sai_status_t l_get_policer_stats(sai_object_id_t policer_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_POLICER, policer_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_policer_stats_ext(sai_object_id_t policer_id, @@ -71,15 +239,14 @@ sai_status_t l_get_policer_stats_ext(sai_object_id_t policer_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_POLICER, policer_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_policer_stats(sai_object_id_t policer_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_POLICER, policer_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/port.cc b/dataplane/standalone/sai/port.cc index aeb97cda..62ee4c89 100644 --- a/dataplane/standalone/sai/port.cc +++ b/dataplane/standalone/sai/port.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/port.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -49,26 +53,1206 @@ sai_status_t l_create_port(sai_object_id_t *port_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_PORT, port_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreatePortRequest req; + lemming::dataplane::sai::CreatePortResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_PORT_ATTR_HW_LANE_LIST: + req.mutable_hw_lane_list()->Add( + attr_list[i].value.u32list.list, + attr_list[i].value.u32list.list + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_SPEED: + req.set_speed(attr_list[i].value.u32); + break; + case SAI_PORT_ATTR_FULL_DUPLEX_MODE: + req.set_full_duplex_mode(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_AUTO_NEG_MODE: + req.set_auto_neg_mode(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_ADMIN_STATE: + req.set_admin_state(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_MEDIA_TYPE: + req.set_media_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_ADVERTISED_SPEED: + req.mutable_advertised_speed()->Add( + attr_list[i].value.u32list.list, + attr_list[i].value.u32list.list + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_ADVERTISED_HALF_DUPLEX_SPEED: + req.mutable_advertised_half_duplex_speed()->Add( + attr_list[i].value.u32list.list, + attr_list[i].value.u32list.list + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_ADVERTISED_AUTO_NEG_MODE: + req.set_advertised_auto_neg_mode(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_ADVERTISED_FLOW_CONTROL_MODE: + req.set_advertised_flow_control_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_ADVERTISED_ASYMMETRIC_PAUSE_MODE: + req.set_advertised_asymmetric_pause_mode(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_ADVERTISED_MEDIA_TYPE: + req.set_advertised_media_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_ADVERTISED_OUI_CODE: + req.set_advertised_oui_code(attr_list[i].value.u32); + break; + case SAI_PORT_ATTR_PORT_VLAN_ID: + req.set_port_vlan_id(attr_list[i].value.u16); + break; + case SAI_PORT_ATTR_DEFAULT_VLAN_PRIORITY: + req.set_default_vlan_priority(attr_list[i].value.u8); + break; + case SAI_PORT_ATTR_DROP_UNTAGGED: + req.set_drop_untagged(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_DROP_TAGGED: + req.set_drop_tagged(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_INTERNAL_LOOPBACK_MODE: + req.set_internal_loopback_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_USE_EXTENDED_FEC: + req.set_use_extended_fec(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_FEC_MODE: + req.set_fec_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_FEC_MODE_EXTENDED: + req.set_fec_mode_extended( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_UPDATE_DSCP: + req.set_update_dscp(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_MTU: + req.set_mtu(attr_list[i].value.u32); + break; + case SAI_PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID: + req.set_flood_storm_control_policer_id(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_BROADCAST_STORM_CONTROL_POLICER_ID: + req.set_broadcast_storm_control_policer_id(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID: + req.set_multicast_storm_control_policer_id(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_GLOBAL_FLOW_CONTROL_MODE: + req.set_global_flow_control_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_EGRESS_ACL: + req.set_egress_acl(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_INGRESS_MACSEC_ACL: + req.set_ingress_macsec_acl(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_EGRESS_MACSEC_ACL: + req.set_egress_macsec_acl(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_INGRESS_MIRROR_SESSION: + req.mutable_ingress_mirror_session()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_EGRESS_MIRROR_SESSION: + req.mutable_egress_mirror_session()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE: + req.set_ingress_samplepacket_enable(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_EGRESS_SAMPLEPACKET_ENABLE: + req.set_egress_samplepacket_enable(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_INGRESS_SAMPLE_MIRROR_SESSION: + req.mutable_ingress_sample_mirror_session()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_EGRESS_SAMPLE_MIRROR_SESSION: + req.mutable_egress_sample_mirror_session()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_POLICER_ID: + req.set_policer_id(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_DEFAULT_TC: + req.set_qos_default_tc(attr_list[i].value.u8); + break; + case SAI_PORT_ATTR_QOS_DOT1P_TO_TC_MAP: + req.set_qos_dot1p_to_tc_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_DOT1P_TO_COLOR_MAP: + req.set_qos_dot1p_to_color_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_TC_MAP: + req.set_qos_dscp_to_tc_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_COLOR_MAP: + req.set_qos_dscp_to_color_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_TO_QUEUE_MAP: + req.set_qos_tc_to_queue_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP: + req.set_qos_tc_and_color_to_dot1p_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP: + req.set_qos_tc_and_color_to_dscp_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_TO_PRIORITY_GROUP_MAP: + req.set_qos_tc_to_priority_group_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_PRIORITY_GROUP_MAP: + req.set_qos_pfc_priority_to_priority_group_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP: + req.set_qos_pfc_priority_to_queue_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_SCHEDULER_PROFILE_ID: + req.set_qos_scheduler_profile_id(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST: + req.mutable_qos_ingress_buffer_profile_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_QOS_EGRESS_BUFFER_PROFILE_LIST: + req.mutable_qos_egress_buffer_profile_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_MODE: + req.set_priority_flow_control_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL: + req.set_priority_flow_control(attr_list[i].value.u8); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_RX: + req.set_priority_flow_control_rx(attr_list[i].value.u8); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_TX: + req.set_priority_flow_control_tx(attr_list[i].value.u8); + break; + case SAI_PORT_ATTR_META_DATA: + req.set_meta_data(attr_list[i].value.u32); + break; + case SAI_PORT_ATTR_EGRESS_BLOCK_PORT_LIST: + req.mutable_egress_block_port_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_HW_PROFILE_ID: + req.set_hw_profile_id(attr_list[i].value.u64); + break; + case SAI_PORT_ATTR_EEE_ENABLE: + req.set_eee_enable(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_EEE_IDLE_TIME: + req.set_eee_idle_time(attr_list[i].value.u16); + break; + case SAI_PORT_ATTR_EEE_WAKE_TIME: + req.set_eee_wake_time(attr_list[i].value.u16); + break; + case SAI_PORT_ATTR_ISOLATION_GROUP: + req.set_isolation_group(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_PKT_TX_ENABLE: + req.set_pkt_tx_enable(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_TAM_OBJECT: + req.mutable_tam_object()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_SERDES_PREEMPHASIS: + req.mutable_serdes_preemphasis()->Add( + attr_list[i].value.u32list.list, + attr_list[i].value.u32list.list + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_SERDES_IDRIVER: + req.mutable_serdes_idriver()->Add( + attr_list[i].value.u32list.list, + attr_list[i].value.u32list.list + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_SERDES_IPREDRIVER: + req.mutable_serdes_ipredriver()->Add( + attr_list[i].value.u32list.list, + attr_list[i].value.u32list.list + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_LINK_TRAINING_ENABLE: + req.set_link_training_enable(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_PTP_MODE: + req.set_ptp_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_INTERFACE_TYPE: + req.set_interface_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_REFERENCE_CLOCK: + req.set_reference_clock(attr_list[i].value.u64); + break; + case SAI_PORT_ATTR_PRBS_POLYNOMIAL: + req.set_prbs_polynomial(attr_list[i].value.u32); + break; + case SAI_PORT_ATTR_PRBS_CONFIG: + req.set_prbs_config( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_DISABLE_DECREMENT_TTL: + req.set_disable_decrement_ttl(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_TC_MAP: + req.set_qos_mpls_exp_to_tc_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP: + req.set_qos_mpls_exp_to_color_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + req.set_qos_tc_and_color_to_mpls_exp_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_TPID: + req.set_tpid(attr_list[i].value.u16); + break; + case SAI_PORT_ATTR_AUTO_NEG_FEC_MODE_OVERRIDE: + req.set_auto_neg_fec_mode_override(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_LOOPBACK_MODE: + req.set_loopback_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_MDIX_MODE_CONFIG: + req.set_mdix_mode_config( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_AUTO_NEG_CONFIG_MODE: + req.set_auto_neg_config_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_1000X_SGMII_SLAVE_AUTODETECT: + req.set__1000x_sgmii_slave_autodetect(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_MODULE_TYPE: + req.set_module_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_DUAL_MEDIA: + req.set_dual_media(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_PORT_ATTR_IPG: + req.set_ipg(attr_list[i].value.u32); + break; + case SAI_PORT_ATTR_GLOBAL_FLOW_CONTROL_FORWARD: + req.set_global_flow_control_forward(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_FORWARD: + req.set_priority_flow_control_forward(attr_list[i].value.booldata); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP: + req.set_qos_dscp_to_forwarding_class_map(attr_list[i].value.oid); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP: + req.set_qos_mpls_exp_to_forwarding_class_map(attr_list[i].value.oid); + break; + } + } + grpc::Status status = port->CreatePort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *port_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_port(sai_object_id_t port_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_PORT, port_id); + + lemming::dataplane::sai::RemovePortRequest req; + lemming::dataplane::sai::RemovePortResponse resp; + grpc::ClientContext context; + req.set_oid(port_id); + + grpc::Status status = port->RemovePort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_port_attribute(sai_object_id_t port_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_PORT, port_id, attr); + + lemming::dataplane::sai::SetPortAttributeRequest req; + lemming::dataplane::sai::SetPortAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(port_id); + + switch (attr->id) { + case SAI_PORT_ATTR_SPEED: + req.set_speed(attr->value.u32); + break; + case SAI_PORT_ATTR_AUTO_NEG_MODE: + req.set_auto_neg_mode(attr->value.booldata); + break; + case SAI_PORT_ATTR_ADMIN_STATE: + req.set_admin_state(attr->value.booldata); + break; + case SAI_PORT_ATTR_MEDIA_TYPE: + req.set_media_type(static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_ADVERTISED_SPEED: + req.mutable_advertised_speed()->Add( + attr->value.u32list.list, + attr->value.u32list.list + attr->value.u32list.count); + break; + case SAI_PORT_ATTR_ADVERTISED_HALF_DUPLEX_SPEED: + req.mutable_advertised_half_duplex_speed()->Add( + attr->value.u32list.list, + attr->value.u32list.list + attr->value.u32list.count); + break; + case SAI_PORT_ATTR_ADVERTISED_AUTO_NEG_MODE: + req.set_advertised_auto_neg_mode(attr->value.booldata); + break; + case SAI_PORT_ATTR_ADVERTISED_FLOW_CONTROL_MODE: + req.set_advertised_flow_control_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_ADVERTISED_ASYMMETRIC_PAUSE_MODE: + req.set_advertised_asymmetric_pause_mode(attr->value.booldata); + break; + case SAI_PORT_ATTR_ADVERTISED_MEDIA_TYPE: + req.set_advertised_media_type( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_PORT_ATTR_ADVERTISED_OUI_CODE: + req.set_advertised_oui_code(attr->value.u32); + break; + case SAI_PORT_ATTR_PORT_VLAN_ID: + req.set_port_vlan_id(attr->value.u16); + break; + case SAI_PORT_ATTR_DEFAULT_VLAN_PRIORITY: + req.set_default_vlan_priority(attr->value.u8); + break; + case SAI_PORT_ATTR_DROP_UNTAGGED: + req.set_drop_untagged(attr->value.booldata); + break; + case SAI_PORT_ATTR_DROP_TAGGED: + req.set_drop_tagged(attr->value.booldata); + break; + case SAI_PORT_ATTR_INTERNAL_LOOPBACK_MODE: + req.set_internal_loopback_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_USE_EXTENDED_FEC: + req.set_use_extended_fec(attr->value.booldata); + break; + case SAI_PORT_ATTR_FEC_MODE: + req.set_fec_mode(static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_FEC_MODE_EXTENDED: + req.set_fec_mode_extended( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_UPDATE_DSCP: + req.set_update_dscp(attr->value.booldata); + break; + case SAI_PORT_ATTR_MTU: + req.set_mtu(attr->value.u32); + break; + case SAI_PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID: + req.set_flood_storm_control_policer_id(attr->value.oid); + break; + case SAI_PORT_ATTR_BROADCAST_STORM_CONTROL_POLICER_ID: + req.set_broadcast_storm_control_policer_id(attr->value.oid); + break; + case SAI_PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID: + req.set_multicast_storm_control_policer_id(attr->value.oid); + break; + case SAI_PORT_ATTR_GLOBAL_FLOW_CONTROL_MODE: + req.set_global_flow_control_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr->value.oid); + break; + case SAI_PORT_ATTR_EGRESS_ACL: + req.set_egress_acl(attr->value.oid); + break; + case SAI_PORT_ATTR_INGRESS_MACSEC_ACL: + req.set_ingress_macsec_acl(attr->value.oid); + break; + case SAI_PORT_ATTR_EGRESS_MACSEC_ACL: + req.set_egress_macsec_acl(attr->value.oid); + break; + case SAI_PORT_ATTR_INGRESS_MIRROR_SESSION: + req.mutable_ingress_mirror_session()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_PORT_ATTR_EGRESS_MIRROR_SESSION: + req.mutable_egress_mirror_session()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE: + req.set_ingress_samplepacket_enable(attr->value.oid); + break; + case SAI_PORT_ATTR_EGRESS_SAMPLEPACKET_ENABLE: + req.set_egress_samplepacket_enable(attr->value.oid); + break; + case SAI_PORT_ATTR_INGRESS_SAMPLE_MIRROR_SESSION: + req.mutable_ingress_sample_mirror_session()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_PORT_ATTR_EGRESS_SAMPLE_MIRROR_SESSION: + req.mutable_egress_sample_mirror_session()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_PORT_ATTR_POLICER_ID: + req.set_policer_id(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_DEFAULT_TC: + req.set_qos_default_tc(attr->value.u8); + break; + case SAI_PORT_ATTR_QOS_DOT1P_TO_TC_MAP: + req.set_qos_dot1p_to_tc_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_DOT1P_TO_COLOR_MAP: + req.set_qos_dot1p_to_color_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_TC_MAP: + req.set_qos_dscp_to_tc_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_COLOR_MAP: + req.set_qos_dscp_to_color_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_TO_QUEUE_MAP: + req.set_qos_tc_to_queue_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP: + req.set_qos_tc_and_color_to_dot1p_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP: + req.set_qos_tc_and_color_to_dscp_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_TO_PRIORITY_GROUP_MAP: + req.set_qos_tc_to_priority_group_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_PRIORITY_GROUP_MAP: + req.set_qos_pfc_priority_to_priority_group_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP: + req.set_qos_pfc_priority_to_queue_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_SCHEDULER_PROFILE_ID: + req.set_qos_scheduler_profile_id(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST: + req.mutable_qos_ingress_buffer_profile_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_PORT_ATTR_QOS_EGRESS_BUFFER_PROFILE_LIST: + req.mutable_qos_egress_buffer_profile_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_MODE: + req.set_priority_flow_control_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL: + req.set_priority_flow_control(attr->value.u8); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_RX: + req.set_priority_flow_control_rx(attr->value.u8); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_TX: + req.set_priority_flow_control_tx(attr->value.u8); + break; + case SAI_PORT_ATTR_META_DATA: + req.set_meta_data(attr->value.u32); + break; + case SAI_PORT_ATTR_EGRESS_BLOCK_PORT_LIST: + req.mutable_egress_block_port_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_PORT_ATTR_HW_PROFILE_ID: + req.set_hw_profile_id(attr->value.u64); + break; + case SAI_PORT_ATTR_EEE_ENABLE: + req.set_eee_enable(attr->value.booldata); + break; + case SAI_PORT_ATTR_EEE_IDLE_TIME: + req.set_eee_idle_time(attr->value.u16); + break; + case SAI_PORT_ATTR_EEE_WAKE_TIME: + req.set_eee_wake_time(attr->value.u16); + break; + case SAI_PORT_ATTR_ISOLATION_GROUP: + req.set_isolation_group(attr->value.oid); + break; + case SAI_PORT_ATTR_PKT_TX_ENABLE: + req.set_pkt_tx_enable(attr->value.booldata); + break; + case SAI_PORT_ATTR_TAM_OBJECT: + req.mutable_tam_object()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_PORT_ATTR_SERDES_PREEMPHASIS: + req.mutable_serdes_preemphasis()->Add( + attr->value.u32list.list, + attr->value.u32list.list + attr->value.u32list.count); + break; + case SAI_PORT_ATTR_SERDES_IDRIVER: + req.mutable_serdes_idriver()->Add( + attr->value.u32list.list, + attr->value.u32list.list + attr->value.u32list.count); + break; + case SAI_PORT_ATTR_SERDES_IPREDRIVER: + req.mutable_serdes_ipredriver()->Add( + attr->value.u32list.list, + attr->value.u32list.list + attr->value.u32list.count); + break; + case SAI_PORT_ATTR_LINK_TRAINING_ENABLE: + req.set_link_training_enable(attr->value.booldata); + break; + case SAI_PORT_ATTR_PTP_MODE: + req.set_ptp_mode(static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_INTERFACE_TYPE: + req.set_interface_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_PRBS_POLYNOMIAL: + req.set_prbs_polynomial(attr->value.u32); + break; + case SAI_PORT_ATTR_PRBS_CONFIG: + req.set_prbs_config(static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_DISABLE_DECREMENT_TTL: + req.set_disable_decrement_ttl(attr->value.booldata); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_TC_MAP: + req.set_qos_mpls_exp_to_tc_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP: + req.set_qos_mpls_exp_to_color_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + req.set_qos_tc_and_color_to_mpls_exp_map(attr->value.oid); + break; + case SAI_PORT_ATTR_TPID: + req.set_tpid(attr->value.u16); + break; + case SAI_PORT_ATTR_AUTO_NEG_FEC_MODE_OVERRIDE: + req.set_auto_neg_fec_mode_override(attr->value.booldata); + break; + case SAI_PORT_ATTR_LOOPBACK_MODE: + req.set_loopback_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_MDIX_MODE_CONFIG: + req.set_mdix_mode_config( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_AUTO_NEG_CONFIG_MODE: + req.set_auto_neg_config_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_1000X_SGMII_SLAVE_AUTODETECT: + req.set__1000x_sgmii_slave_autodetect(attr->value.booldata); + break; + case SAI_PORT_ATTR_MODULE_TYPE: + req.set_module_type(static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_DUAL_MEDIA: + req.set_dual_media(static_cast( + attr->value.s32 + 1)); + break; + case SAI_PORT_ATTR_IPG: + req.set_ipg(attr->value.u32); + break; + case SAI_PORT_ATTR_GLOBAL_FLOW_CONTROL_FORWARD: + req.set_global_flow_control_forward(attr->value.booldata); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_FORWARD: + req.set_priority_flow_control_forward(attr->value.booldata); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP: + req.set_qos_dscp_to_forwarding_class_map(attr->value.oid); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP: + req.set_qos_mpls_exp_to_forwarding_class_map(attr->value.oid); + break; + } + + grpc::Status status = port->SetPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_port_attribute(sai_object_id_t port_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_PORT, port_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetPortAttributeRequest req; + lemming::dataplane::sai::GetPortAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(port_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = port->GetPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_PORT_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_PORT_ATTR_OPER_STATUS: + attr_list[i].value.s32 = + static_cast(resp.attr().oper_status() - 1); + break; + case SAI_PORT_ATTR_CURRENT_BREAKOUT_MODE_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().current_breakout_mode_type() - 1); + break; + case SAI_PORT_ATTR_QOS_NUMBER_OF_QUEUES: + attr_list[i].value.u32 = resp.attr().qos_number_of_queues(); + break; + case SAI_PORT_ATTR_QOS_QUEUE_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().qos_queue_list(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_QOS_NUMBER_OF_SCHEDULER_GROUPS: + attr_list[i].value.u32 = resp.attr().qos_number_of_scheduler_groups(); + break; + case SAI_PORT_ATTR_QOS_SCHEDULER_GROUP_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().qos_scheduler_group_list(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_QOS_MAXIMUM_HEADROOM_SIZE: + attr_list[i].value.u32 = resp.attr().qos_maximum_headroom_size(); + break; + case SAI_PORT_ATTR_SUPPORTED_SPEED: + copy_list(attr_list[i].value.u32list.list, + resp.attr().supported_speed(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_SUPPORTED_HALF_DUPLEX_SPEED: + copy_list(attr_list[i].value.u32list.list, + resp.attr().supported_half_duplex_speed(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_SUPPORTED_AUTO_NEG_MODE: + attr_list[i].value.booldata = resp.attr().supported_auto_neg_mode(); + break; + case SAI_PORT_ATTR_SUPPORTED_FLOW_CONTROL_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().supported_flow_control_mode() - 1); + break; + case SAI_PORT_ATTR_SUPPORTED_ASYMMETRIC_PAUSE_MODE: + attr_list[i].value.booldata = + resp.attr().supported_asymmetric_pause_mode(); + break; + case SAI_PORT_ATTR_SUPPORTED_MEDIA_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().supported_media_type() - 1); + break; + case SAI_PORT_ATTR_REMOTE_ADVERTISED_SPEED: + copy_list(attr_list[i].value.u32list.list, + resp.attr().remote_advertised_speed(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_REMOTE_ADVERTISED_HALF_DUPLEX_SPEED: + copy_list(attr_list[i].value.u32list.list, + resp.attr().remote_advertised_half_duplex_speed(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_REMOTE_ADVERTISED_AUTO_NEG_MODE: + attr_list[i].value.booldata = + resp.attr().remote_advertised_auto_neg_mode(); + break; + case SAI_PORT_ATTR_REMOTE_ADVERTISED_FLOW_CONTROL_MODE: + attr_list[i].value.s32 = static_cast( + resp.attr().remote_advertised_flow_control_mode() - 1); + break; + case SAI_PORT_ATTR_REMOTE_ADVERTISED_ASYMMETRIC_PAUSE_MODE: + attr_list[i].value.booldata = + resp.attr().remote_advertised_asymmetric_pause_mode(); + break; + case SAI_PORT_ATTR_REMOTE_ADVERTISED_MEDIA_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().remote_advertised_media_type() - 1); + break; + case SAI_PORT_ATTR_REMOTE_ADVERTISED_OUI_CODE: + attr_list[i].value.u32 = resp.attr().remote_advertised_oui_code(); + break; + case SAI_PORT_ATTR_NUMBER_OF_INGRESS_PRIORITY_GROUPS: + attr_list[i].value.u32 = + resp.attr().number_of_ingress_priority_groups(); + break; + case SAI_PORT_ATTR_INGRESS_PRIORITY_GROUP_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().ingress_priority_group_list(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_OPER_SPEED: + attr_list[i].value.u32 = resp.attr().oper_speed(); + break; + case SAI_PORT_ATTR_HW_LANE_LIST: + copy_list(attr_list[i].value.u32list.list, resp.attr().hw_lane_list(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_SPEED: + attr_list[i].value.u32 = resp.attr().speed(); + break; + case SAI_PORT_ATTR_FULL_DUPLEX_MODE: + attr_list[i].value.booldata = resp.attr().full_duplex_mode(); + break; + case SAI_PORT_ATTR_AUTO_NEG_MODE: + attr_list[i].value.booldata = resp.attr().auto_neg_mode(); + break; + case SAI_PORT_ATTR_ADMIN_STATE: + attr_list[i].value.booldata = resp.attr().admin_state(); + break; + case SAI_PORT_ATTR_MEDIA_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().media_type() - 1); + break; + case SAI_PORT_ATTR_ADVERTISED_SPEED: + copy_list(attr_list[i].value.u32list.list, + resp.attr().advertised_speed(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_ADVERTISED_HALF_DUPLEX_SPEED: + copy_list(attr_list[i].value.u32list.list, + resp.attr().advertised_half_duplex_speed(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_ADVERTISED_AUTO_NEG_MODE: + attr_list[i].value.booldata = resp.attr().advertised_auto_neg_mode(); + break; + case SAI_PORT_ATTR_ADVERTISED_FLOW_CONTROL_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().advertised_flow_control_mode() - 1); + break; + case SAI_PORT_ATTR_ADVERTISED_ASYMMETRIC_PAUSE_MODE: + attr_list[i].value.booldata = + resp.attr().advertised_asymmetric_pause_mode(); + break; + case SAI_PORT_ATTR_ADVERTISED_MEDIA_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().advertised_media_type() - 1); + break; + case SAI_PORT_ATTR_ADVERTISED_OUI_CODE: + attr_list[i].value.u32 = resp.attr().advertised_oui_code(); + break; + case SAI_PORT_ATTR_PORT_VLAN_ID: + attr_list[i].value.u16 = resp.attr().port_vlan_id(); + break; + case SAI_PORT_ATTR_DEFAULT_VLAN_PRIORITY: + attr_list[i].value.u8 = resp.attr().default_vlan_priority(); + break; + case SAI_PORT_ATTR_DROP_UNTAGGED: + attr_list[i].value.booldata = resp.attr().drop_untagged(); + break; + case SAI_PORT_ATTR_DROP_TAGGED: + attr_list[i].value.booldata = resp.attr().drop_tagged(); + break; + case SAI_PORT_ATTR_INTERNAL_LOOPBACK_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().internal_loopback_mode() - 1); + break; + case SAI_PORT_ATTR_USE_EXTENDED_FEC: + attr_list[i].value.booldata = resp.attr().use_extended_fec(); + break; + case SAI_PORT_ATTR_FEC_MODE: + attr_list[i].value.s32 = static_cast(resp.attr().fec_mode() - 1); + break; + case SAI_PORT_ATTR_FEC_MODE_EXTENDED: + attr_list[i].value.s32 = + static_cast(resp.attr().fec_mode_extended() - 1); + break; + case SAI_PORT_ATTR_UPDATE_DSCP: + attr_list[i].value.booldata = resp.attr().update_dscp(); + break; + case SAI_PORT_ATTR_MTU: + attr_list[i].value.u32 = resp.attr().mtu(); + break; + case SAI_PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID: + attr_list[i].value.oid = resp.attr().flood_storm_control_policer_id(); + break; + case SAI_PORT_ATTR_BROADCAST_STORM_CONTROL_POLICER_ID: + attr_list[i].value.oid = + resp.attr().broadcast_storm_control_policer_id(); + break; + case SAI_PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID: + attr_list[i].value.oid = + resp.attr().multicast_storm_control_policer_id(); + break; + case SAI_PORT_ATTR_GLOBAL_FLOW_CONTROL_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().global_flow_control_mode() - 1); + break; + case SAI_PORT_ATTR_INGRESS_ACL: + attr_list[i].value.oid = resp.attr().ingress_acl(); + break; + case SAI_PORT_ATTR_EGRESS_ACL: + attr_list[i].value.oid = resp.attr().egress_acl(); + break; + case SAI_PORT_ATTR_INGRESS_MACSEC_ACL: + attr_list[i].value.oid = resp.attr().ingress_macsec_acl(); + break; + case SAI_PORT_ATTR_EGRESS_MACSEC_ACL: + attr_list[i].value.oid = resp.attr().egress_macsec_acl(); + break; + case SAI_PORT_ATTR_MACSEC_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().macsec_port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_INGRESS_MIRROR_SESSION: + copy_list(attr_list[i].value.objlist.list, + resp.attr().ingress_mirror_session(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_EGRESS_MIRROR_SESSION: + copy_list(attr_list[i].value.objlist.list, + resp.attr().egress_mirror_session(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_INGRESS_SAMPLEPACKET_ENABLE: + attr_list[i].value.oid = resp.attr().ingress_samplepacket_enable(); + break; + case SAI_PORT_ATTR_EGRESS_SAMPLEPACKET_ENABLE: + attr_list[i].value.oid = resp.attr().egress_samplepacket_enable(); + break; + case SAI_PORT_ATTR_INGRESS_SAMPLE_MIRROR_SESSION: + copy_list(attr_list[i].value.objlist.list, + resp.attr().ingress_sample_mirror_session(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_EGRESS_SAMPLE_MIRROR_SESSION: + copy_list(attr_list[i].value.objlist.list, + resp.attr().egress_sample_mirror_session(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_POLICER_ID: + attr_list[i].value.oid = resp.attr().policer_id(); + break; + case SAI_PORT_ATTR_QOS_DEFAULT_TC: + attr_list[i].value.u8 = resp.attr().qos_default_tc(); + break; + case SAI_PORT_ATTR_QOS_DOT1P_TO_TC_MAP: + attr_list[i].value.oid = resp.attr().qos_dot1p_to_tc_map(); + break; + case SAI_PORT_ATTR_QOS_DOT1P_TO_COLOR_MAP: + attr_list[i].value.oid = resp.attr().qos_dot1p_to_color_map(); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_TC_MAP: + attr_list[i].value.oid = resp.attr().qos_dscp_to_tc_map(); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_COLOR_MAP: + attr_list[i].value.oid = resp.attr().qos_dscp_to_color_map(); + break; + case SAI_PORT_ATTR_QOS_TC_TO_QUEUE_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_to_queue_map(); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_and_color_to_dot1p_map(); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_and_color_to_dscp_map(); + break; + case SAI_PORT_ATTR_QOS_TC_TO_PRIORITY_GROUP_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_to_priority_group_map(); + break; + case SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_PRIORITY_GROUP_MAP: + attr_list[i].value.oid = + resp.attr().qos_pfc_priority_to_priority_group_map(); + break; + case SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP: + attr_list[i].value.oid = resp.attr().qos_pfc_priority_to_queue_map(); + break; + case SAI_PORT_ATTR_QOS_SCHEDULER_PROFILE_ID: + attr_list[i].value.oid = resp.attr().qos_scheduler_profile_id(); + break; + case SAI_PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().qos_ingress_buffer_profile_list(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_QOS_EGRESS_BUFFER_PROFILE_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().qos_egress_buffer_profile_list(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().priority_flow_control_mode() - 1); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL: + attr_list[i].value.u8 = resp.attr().priority_flow_control(); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_RX: + attr_list[i].value.u8 = resp.attr().priority_flow_control_rx(); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_TX: + attr_list[i].value.u8 = resp.attr().priority_flow_control_tx(); + break; + case SAI_PORT_ATTR_META_DATA: + attr_list[i].value.u32 = resp.attr().meta_data(); + break; + case SAI_PORT_ATTR_EGRESS_BLOCK_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().egress_block_port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_HW_PROFILE_ID: + attr_list[i].value.u64 = resp.attr().hw_profile_id(); + break; + case SAI_PORT_ATTR_EEE_ENABLE: + attr_list[i].value.booldata = resp.attr().eee_enable(); + break; + case SAI_PORT_ATTR_EEE_IDLE_TIME: + attr_list[i].value.u16 = resp.attr().eee_idle_time(); + break; + case SAI_PORT_ATTR_EEE_WAKE_TIME: + attr_list[i].value.u16 = resp.attr().eee_wake_time(); + break; + case SAI_PORT_ATTR_PORT_POOL_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().port_pool_list(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_ISOLATION_GROUP: + attr_list[i].value.oid = resp.attr().isolation_group(); + break; + case SAI_PORT_ATTR_PKT_TX_ENABLE: + attr_list[i].value.booldata = resp.attr().pkt_tx_enable(); + break; + case SAI_PORT_ATTR_TAM_OBJECT: + copy_list(attr_list[i].value.objlist.list, resp.attr().tam_object(), + attr_list[i].value.objlist.count); + break; + case SAI_PORT_ATTR_SERDES_PREEMPHASIS: + copy_list(attr_list[i].value.u32list.list, + resp.attr().serdes_preemphasis(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_SERDES_IDRIVER: + copy_list(attr_list[i].value.u32list.list, resp.attr().serdes_idriver(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_SERDES_IPREDRIVER: + copy_list(attr_list[i].value.u32list.list, + resp.attr().serdes_ipredriver(), + attr_list[i].value.u32list.count); + break; + case SAI_PORT_ATTR_LINK_TRAINING_ENABLE: + attr_list[i].value.booldata = resp.attr().link_training_enable(); + break; + case SAI_PORT_ATTR_PTP_MODE: + attr_list[i].value.s32 = static_cast(resp.attr().ptp_mode() - 1); + break; + case SAI_PORT_ATTR_INTERFACE_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().interface_type() - 1); + break; + case SAI_PORT_ATTR_REFERENCE_CLOCK: + attr_list[i].value.u64 = resp.attr().reference_clock(); + break; + case SAI_PORT_ATTR_PRBS_POLYNOMIAL: + attr_list[i].value.u32 = resp.attr().prbs_polynomial(); + break; + case SAI_PORT_ATTR_PORT_SERDES_ID: + attr_list[i].value.oid = resp.attr().port_serdes_id(); + break; + case SAI_PORT_ATTR_LINK_TRAINING_FAILURE_STATUS: + attr_list[i].value.s32 = + static_cast(resp.attr().link_training_failure_status() - 1); + break; + case SAI_PORT_ATTR_LINK_TRAINING_RX_STATUS: + attr_list[i].value.s32 = + static_cast(resp.attr().link_training_rx_status() - 1); + break; + case SAI_PORT_ATTR_PRBS_CONFIG: + attr_list[i].value.s32 = + static_cast(resp.attr().prbs_config() - 1); + break; + case SAI_PORT_ATTR_PRBS_LOCK_STATUS: + attr_list[i].value.booldata = resp.attr().prbs_lock_status(); + break; + case SAI_PORT_ATTR_PRBS_LOCK_LOSS_STATUS: + attr_list[i].value.booldata = resp.attr().prbs_lock_loss_status(); + break; + case SAI_PORT_ATTR_PRBS_RX_STATUS: + attr_list[i].value.s32 = + static_cast(resp.attr().prbs_rx_status() - 1); + break; + case SAI_PORT_ATTR_AUTO_NEG_STATUS: + attr_list[i].value.booldata = resp.attr().auto_neg_status(); + break; + case SAI_PORT_ATTR_DISABLE_DECREMENT_TTL: + attr_list[i].value.booldata = resp.attr().disable_decrement_ttl(); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_TC_MAP: + attr_list[i].value.oid = resp.attr().qos_mpls_exp_to_tc_map(); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP: + attr_list[i].value.oid = resp.attr().qos_mpls_exp_to_color_map(); + break; + case SAI_PORT_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_and_color_to_mpls_exp_map(); + break; + case SAI_PORT_ATTR_TPID: + attr_list[i].value.u16 = resp.attr().tpid(); + break; + case SAI_PORT_ATTR_FABRIC_ATTACHED: + attr_list[i].value.booldata = resp.attr().fabric_attached(); + break; + case SAI_PORT_ATTR_FABRIC_ATTACHED_SWITCH_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().fabric_attached_switch_type() - 1); + break; + case SAI_PORT_ATTR_FABRIC_ATTACHED_SWITCH_ID: + attr_list[i].value.u32 = resp.attr().fabric_attached_switch_id(); + break; + case SAI_PORT_ATTR_FABRIC_ATTACHED_PORT_INDEX: + attr_list[i].value.u32 = resp.attr().fabric_attached_port_index(); + break; + case SAI_PORT_ATTR_SYSTEM_PORT: + attr_list[i].value.oid = resp.attr().system_port(); + break; + case SAI_PORT_ATTR_AUTO_NEG_FEC_MODE_OVERRIDE: + attr_list[i].value.booldata = resp.attr().auto_neg_fec_mode_override(); + break; + case SAI_PORT_ATTR_LOOPBACK_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().loopback_mode() - 1); + break; + case SAI_PORT_ATTR_MDIX_MODE_STATUS: + attr_list[i].value.s32 = + static_cast(resp.attr().mdix_mode_status() - 1); + break; + case SAI_PORT_ATTR_MDIX_MODE_CONFIG: + attr_list[i].value.s32 = + static_cast(resp.attr().mdix_mode_config() - 1); + break; + case SAI_PORT_ATTR_AUTO_NEG_CONFIG_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().auto_neg_config_mode() - 1); + break; + case SAI_PORT_ATTR_1000X_SGMII_SLAVE_AUTODETECT: + attr_list[i].value.booldata = + resp.attr()._1000x_sgmii_slave_autodetect(); + break; + case SAI_PORT_ATTR_MODULE_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().module_type() - 1); + break; + case SAI_PORT_ATTR_DUAL_MEDIA: + attr_list[i].value.s32 = static_cast(resp.attr().dual_media() - 1); + break; + case SAI_PORT_ATTR_AUTO_NEG_FEC_MODE_EXTENDED: + attr_list[i].value.s32 = + static_cast(resp.attr().auto_neg_fec_mode_extended() - 1); + break; + case SAI_PORT_ATTR_IPG: + attr_list[i].value.u32 = resp.attr().ipg(); + break; + case SAI_PORT_ATTR_GLOBAL_FLOW_CONTROL_FORWARD: + attr_list[i].value.booldata = resp.attr().global_flow_control_forward(); + break; + case SAI_PORT_ATTR_PRIORITY_FLOW_CONTROL_FORWARD: + attr_list[i].value.booldata = + resp.attr().priority_flow_control_forward(); + break; + case SAI_PORT_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP: + attr_list[i].value.oid = resp.attr().qos_dscp_to_forwarding_class_map(); + break; + case SAI_PORT_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP: + attr_list[i].value.oid = + resp.attr().qos_mpls_exp_to_forwarding_class_map(); + break; + case SAI_PORT_ATTR_IPSEC_PORT: + attr_list[i].value.oid = resp.attr().ipsec_port(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_port_stats(sai_object_id_t port_id, @@ -76,8 +1260,8 @@ sai_status_t l_get_port_stats(sai_object_id_t port_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_PORT, port_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_port_stats_ext(sai_object_id_t port_id, @@ -85,17 +1269,16 @@ sai_status_t l_get_port_stats_ext(sai_object_id_t port_id, const sai_stat_id_t *counter_ids, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_PORT, port_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_port_stats(sai_object_id_t port_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_PORT, port_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_port_all_stats(sai_object_id_t port_id) { @@ -107,28 +1290,111 @@ sai_status_t l_create_port_pool(sai_object_id_t *port_pool_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_PORT_POOL, port_pool_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreatePortPoolRequest req; + lemming::dataplane::sai::CreatePortPoolResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_PORT_POOL_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_PORT_POOL_ATTR_BUFFER_POOL_ID: + req.set_buffer_pool_id(attr_list[i].value.oid); + break; + case SAI_PORT_POOL_ATTR_QOS_WRED_PROFILE_ID: + req.set_qos_wred_profile_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = port->CreatePortPool(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *port_pool_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_port_pool(sai_object_id_t port_pool_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_PORT_POOL, port_pool_id); + + lemming::dataplane::sai::RemovePortPoolRequest req; + lemming::dataplane::sai::RemovePortPoolResponse resp; + grpc::ClientContext context; + req.set_oid(port_pool_id); + + grpc::Status status = port->RemovePortPool(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_port_pool_attribute(sai_object_id_t port_pool_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_PORT_POOL, port_pool_id, - attr); + + lemming::dataplane::sai::SetPortPoolAttributeRequest req; + lemming::dataplane::sai::SetPortPoolAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(port_pool_id); + + switch (attr->id) { + case SAI_PORT_POOL_ATTR_QOS_WRED_PROFILE_ID: + req.set_qos_wred_profile_id(attr->value.oid); + break; + } + + grpc::Status status = port->SetPortPoolAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_port_pool_attribute(sai_object_id_t port_pool_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_PORT_POOL, port_pool_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetPortPoolAttributeRequest req; + lemming::dataplane::sai::GetPortPoolAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(port_pool_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = port->GetPortPoolAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_PORT_POOL_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_PORT_POOL_ATTR_BUFFER_POOL_ID: + attr_list[i].value.oid = resp.attr().buffer_pool_id(); + break; + case SAI_PORT_POOL_ATTR_QOS_WRED_PROFILE_ID: + attr_list[i].value.oid = resp.attr().qos_wred_profile_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_port_pool_stats(sai_object_id_t port_pool_id, @@ -136,8 +1402,8 @@ sai_status_t l_get_port_pool_stats(sai_object_id_t port_pool_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_PORT_POOL, port_pool_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_port_pool_stats_ext(sai_object_id_t port_pool_id, @@ -146,17 +1412,16 @@ sai_status_t l_get_port_pool_stats_ext(sai_object_id_t port_pool_id, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_PORT_POOL, port_pool_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_port_pool_stats(sai_object_id_t port_pool_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_PORT_POOL, port_pool_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_port_connector(sai_object_id_t *port_connector_id, @@ -164,28 +1429,128 @@ sai_status_t l_create_port_connector(sai_object_id_t *port_connector_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_PORT_CONNECTOR, port_connector_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreatePortConnectorRequest req; + lemming::dataplane::sai::CreatePortConnectorResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_PORT_CONNECTOR_ATTR_SYSTEM_SIDE_PORT_ID: + req.set_system_side_port_id(attr_list[i].value.oid); + break; + case SAI_PORT_CONNECTOR_ATTR_LINE_SIDE_PORT_ID: + req.set_line_side_port_id(attr_list[i].value.oid); + break; + case SAI_PORT_CONNECTOR_ATTR_SYSTEM_SIDE_FAILOVER_PORT_ID: + req.set_system_side_failover_port_id(attr_list[i].value.oid); + break; + case SAI_PORT_CONNECTOR_ATTR_LINE_SIDE_FAILOVER_PORT_ID: + req.set_line_side_failover_port_id(attr_list[i].value.oid); + break; + case SAI_PORT_CONNECTOR_ATTR_FAILOVER_MODE: + req.set_failover_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = port->CreatePortConnector(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *port_connector_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_port_connector(sai_object_id_t port_connector_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_PORT_CONNECTOR, port_connector_id); + + lemming::dataplane::sai::RemovePortConnectorRequest req; + lemming::dataplane::sai::RemovePortConnectorResponse resp; + grpc::ClientContext context; + req.set_oid(port_connector_id); + + grpc::Status status = port->RemovePortConnector(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_port_connector_attribute(sai_object_id_t port_connector_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_PORT_CONNECTOR, - port_connector_id, attr); + + lemming::dataplane::sai::SetPortConnectorAttributeRequest req; + lemming::dataplane::sai::SetPortConnectorAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(port_connector_id); + + switch (attr->id) { + case SAI_PORT_CONNECTOR_ATTR_FAILOVER_MODE: + req.set_failover_mode( + static_cast( + attr->value.s32 + 1)); + break; + } + + grpc::Status status = port->SetPortConnectorAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_port_connector_attribute(sai_object_id_t port_connector_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_PORT_CONNECTOR, - port_connector_id, attr_count, attr_list); + + lemming::dataplane::sai::GetPortConnectorAttributeRequest req; + lemming::dataplane::sai::GetPortConnectorAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(port_connector_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = port->GetPortConnectorAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_PORT_CONNECTOR_ATTR_SYSTEM_SIDE_PORT_ID: + attr_list[i].value.oid = resp.attr().system_side_port_id(); + break; + case SAI_PORT_CONNECTOR_ATTR_LINE_SIDE_PORT_ID: + attr_list[i].value.oid = resp.attr().line_side_port_id(); + break; + case SAI_PORT_CONNECTOR_ATTR_SYSTEM_SIDE_FAILOVER_PORT_ID: + attr_list[i].value.oid = resp.attr().system_side_failover_port_id(); + break; + case SAI_PORT_CONNECTOR_ATTR_LINE_SIDE_FAILOVER_PORT_ID: + attr_list[i].value.oid = resp.attr().line_side_failover_port_id(); + break; + case SAI_PORT_CONNECTOR_ATTR_FAILOVER_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().failover_mode() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_port_serdes(sai_object_id_t *port_serdes_id, @@ -193,26 +1558,179 @@ sai_status_t l_create_port_serdes(sai_object_id_t *port_serdes_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_PORT_SERDES, port_serdes_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreatePortSerdesRequest req; + lemming::dataplane::sai::CreatePortSerdesResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_PORT_SERDES_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_PORT_SERDES_ATTR_PREEMPHASIS: + req.mutable_preemphasis()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_IDRIVER: + req.mutable_idriver()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_IPREDRIVER: + req.mutable_ipredriver()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_PRE1: + req.mutable_tx_fir_pre1()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_PRE2: + req.mutable_tx_fir_pre2()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_PRE3: + req.mutable_tx_fir_pre3()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_MAIN: + req.mutable_tx_fir_main()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_POST1: + req.mutable_tx_fir_post1()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_POST2: + req.mutable_tx_fir_post2()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_POST3: + req.mutable_tx_fir_post3()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_ATTN: + req.mutable_tx_fir_attn()->Add( + attr_list[i].value.s32list.list, + attr_list[i].value.s32list.list + attr_list[i].value.s32list.count); + break; + } + } + grpc::Status status = port->CreatePortSerdes(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *port_serdes_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_port_serdes(sai_object_id_t port_serdes_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_PORT_SERDES, port_serdes_id); + + lemming::dataplane::sai::RemovePortSerdesRequest req; + lemming::dataplane::sai::RemovePortSerdesResponse resp; + grpc::ClientContext context; + req.set_oid(port_serdes_id); + + grpc::Status status = port->RemovePortSerdes(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_port_serdes_attribute(sai_object_id_t port_serdes_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_PORT_SERDES, port_serdes_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_port_serdes_attribute(sai_object_id_t port_serdes_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_PORT_SERDES, port_serdes_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetPortSerdesAttributeRequest req; + lemming::dataplane::sai::GetPortSerdesAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(port_serdes_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = port->GetPortSerdesAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_PORT_SERDES_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_PORT_SERDES_ATTR_PREEMPHASIS: + copy_list(attr_list[i].value.s32list.list, resp.attr().preemphasis(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_IDRIVER: + copy_list(attr_list[i].value.s32list.list, resp.attr().idriver(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_IPREDRIVER: + copy_list(attr_list[i].value.s32list.list, resp.attr().ipredriver(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_PRE1: + copy_list(attr_list[i].value.s32list.list, resp.attr().tx_fir_pre1(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_PRE2: + copy_list(attr_list[i].value.s32list.list, resp.attr().tx_fir_pre2(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_PRE3: + copy_list(attr_list[i].value.s32list.list, resp.attr().tx_fir_pre3(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_MAIN: + copy_list(attr_list[i].value.s32list.list, resp.attr().tx_fir_main(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_POST1: + copy_list(attr_list[i].value.s32list.list, resp.attr().tx_fir_post1(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_POST2: + copy_list(attr_list[i].value.s32list.list, resp.attr().tx_fir_post2(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_POST3: + copy_list(attr_list[i].value.s32list.list, resp.attr().tx_fir_post3(), + attr_list[i].value.s32list.count); + break; + case SAI_PORT_SERDES_ATTR_TX_FIR_ATTN: + copy_list(attr_list[i].value.s32list.list, resp.attr().tx_fir_attn(), + attr_list[i].value.s32list.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/qos_map.cc b/dataplane/standalone/sai/qos_map.cc index 3e5536e3..c08e4a60 100644 --- a/dataplane/standalone/sai/qos_map.cc +++ b/dataplane/standalone/sai/qos_map.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/qos_map.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -30,25 +34,81 @@ sai_status_t l_create_qos_map(sai_object_id_t *qos_map_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_QOS_MAP, qos_map_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateQosMapRequest req; + lemming::dataplane::sai::CreateQosMapResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_QOS_MAP_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = qos_map->CreateQosMap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *qos_map_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_qos_map(sai_object_id_t qos_map_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_QOS_MAP, qos_map_id); + + lemming::dataplane::sai::RemoveQosMapRequest req; + lemming::dataplane::sai::RemoveQosMapResponse resp; + grpc::ClientContext context; + req.set_oid(qos_map_id); + + grpc::Status status = qos_map->RemoveQosMap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_qos_map_attribute(sai_object_id_t qos_map_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_QOS_MAP, qos_map_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_qos_map_attribute(sai_object_id_t qos_map_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_QOS_MAP, qos_map_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetQosMapAttributeRequest req; + lemming::dataplane::sai::GetQosMapAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(qos_map_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = qos_map->GetQosMapAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_QOS_MAP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/queue.cc b/dataplane/standalone/sai/queue.cc index 7ae82f68..d0e74154 100644 --- a/dataplane/standalone/sai/queue.cc +++ b/dataplane/standalone/sai/queue.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/queue.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -33,27 +37,180 @@ sai_status_t l_create_queue(sai_object_id_t *queue_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_QUEUE, queue_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateQueueRequest req; + lemming::dataplane::sai::CreateQueueResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_QUEUE_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_QUEUE_ATTR_PORT: + req.set_port(attr_list[i].value.oid); + break; + case SAI_QUEUE_ATTR_INDEX: + req.set_index(attr_list[i].value.u8); + break; + case SAI_QUEUE_ATTR_PARENT_SCHEDULER_NODE: + req.set_parent_scheduler_node(attr_list[i].value.oid); + break; + case SAI_QUEUE_ATTR_WRED_PROFILE_ID: + req.set_wred_profile_id(attr_list[i].value.oid); + break; + case SAI_QUEUE_ATTR_BUFFER_PROFILE_ID: + req.set_buffer_profile_id(attr_list[i].value.oid); + break; + case SAI_QUEUE_ATTR_SCHEDULER_PROFILE_ID: + req.set_scheduler_profile_id(attr_list[i].value.oid); + break; + case SAI_QUEUE_ATTR_ENABLE_PFC_DLDR: + req.set_enable_pfc_dldr(attr_list[i].value.booldata); + break; + case SAI_QUEUE_ATTR_PFC_DLR_INIT: + req.set_pfc_dlr_init(attr_list[i].value.booldata); + break; + case SAI_QUEUE_ATTR_TAM_OBJECT: + req.mutable_tam_object()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + } + } + grpc::Status status = queue->CreateQueue(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *queue_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_queue(sai_object_id_t queue_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_QUEUE, queue_id); + + lemming::dataplane::sai::RemoveQueueRequest req; + lemming::dataplane::sai::RemoveQueueResponse resp; + grpc::ClientContext context; + req.set_oid(queue_id); + + grpc::Status status = queue->RemoveQueue(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_queue_attribute(sai_object_id_t queue_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_QUEUE, queue_id, attr); + + lemming::dataplane::sai::SetQueueAttributeRequest req; + lemming::dataplane::sai::SetQueueAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(queue_id); + + switch (attr->id) { + case SAI_QUEUE_ATTR_PARENT_SCHEDULER_NODE: + req.set_parent_scheduler_node(attr->value.oid); + break; + case SAI_QUEUE_ATTR_WRED_PROFILE_ID: + req.set_wred_profile_id(attr->value.oid); + break; + case SAI_QUEUE_ATTR_BUFFER_PROFILE_ID: + req.set_buffer_profile_id(attr->value.oid); + break; + case SAI_QUEUE_ATTR_SCHEDULER_PROFILE_ID: + req.set_scheduler_profile_id(attr->value.oid); + break; + case SAI_QUEUE_ATTR_ENABLE_PFC_DLDR: + req.set_enable_pfc_dldr(attr->value.booldata); + break; + case SAI_QUEUE_ATTR_PFC_DLR_INIT: + req.set_pfc_dlr_init(attr->value.booldata); + break; + case SAI_QUEUE_ATTR_TAM_OBJECT: + req.mutable_tam_object()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + } + + grpc::Status status = queue->SetQueueAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_queue_attribute(sai_object_id_t queue_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_QUEUE, queue_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetQueueAttributeRequest req; + lemming::dataplane::sai::GetQueueAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(queue_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = queue->GetQueueAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_QUEUE_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_QUEUE_ATTR_PORT: + attr_list[i].value.oid = resp.attr().port(); + break; + case SAI_QUEUE_ATTR_INDEX: + attr_list[i].value.u8 = resp.attr().index(); + break; + case SAI_QUEUE_ATTR_PARENT_SCHEDULER_NODE: + attr_list[i].value.oid = resp.attr().parent_scheduler_node(); + break; + case SAI_QUEUE_ATTR_WRED_PROFILE_ID: + attr_list[i].value.oid = resp.attr().wred_profile_id(); + break; + case SAI_QUEUE_ATTR_BUFFER_PROFILE_ID: + attr_list[i].value.oid = resp.attr().buffer_profile_id(); + break; + case SAI_QUEUE_ATTR_SCHEDULER_PROFILE_ID: + attr_list[i].value.oid = resp.attr().scheduler_profile_id(); + break; + case SAI_QUEUE_ATTR_PAUSE_STATUS: + attr_list[i].value.booldata = resp.attr().pause_status(); + break; + case SAI_QUEUE_ATTR_ENABLE_PFC_DLDR: + attr_list[i].value.booldata = resp.attr().enable_pfc_dldr(); + break; + case SAI_QUEUE_ATTR_PFC_DLR_INIT: + attr_list[i].value.booldata = resp.attr().pfc_dlr_init(); + break; + case SAI_QUEUE_ATTR_TAM_OBJECT: + copy_list(attr_list[i].value.objlist.list, resp.attr().tam_object(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_queue_stats(sai_object_id_t queue_id, @@ -61,8 +218,8 @@ sai_status_t l_get_queue_stats(sai_object_id_t queue_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_QUEUE, queue_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_queue_stats_ext(sai_object_id_t queue_id, @@ -70,15 +227,14 @@ sai_status_t l_get_queue_stats_ext(sai_object_id_t queue_id, const sai_stat_id_t *counter_ids, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_QUEUE, queue_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_queue_stats(sai_object_id_t queue_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_QUEUE, queue_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/route.cc b/dataplane/standalone/sai/route.cc index b7f7707d..fc695b91 100644 --- a/dataplane/standalone/sai/route.cc +++ b/dataplane/standalone/sai/route.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/route.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -34,31 +38,142 @@ sai_status_t l_create_route_entry(const sai_route_entry_t *route_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.route_entry = route_entry}; - return translator->create(SAI_OBJECT_TYPE_ROUTE_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateRouteEntryRequest req; + lemming::dataplane::sai::CreateRouteEntryResponse resp; + grpc::ClientContext context; + + *req.mutable_entry() = convert_from_route_entry(*route_entry); + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ROUTE_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_ROUTE_ENTRY_ATTR_USER_TRAP_ID: + req.set_user_trap_id(attr_list[i].value.oid); + break; + case SAI_ROUTE_ENTRY_ATTR_NEXT_HOP_ID: + req.set_next_hop_id(attr_list[i].value.oid); + break; + case SAI_ROUTE_ENTRY_ATTR_META_DATA: + req.set_meta_data(attr_list[i].value.u32); + break; + case SAI_ROUTE_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = route->CreateRouteEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_route_entry(const sai_route_entry_t *route_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.route_entry = route_entry}; - return translator->remove(SAI_OBJECT_TYPE_ROUTE_ENTRY, entry); + + lemming::dataplane::sai::RemoveRouteEntryRequest req; + lemming::dataplane::sai::RemoveRouteEntryResponse resp; + grpc::ClientContext context; + + *req.mutable_entry() = convert_from_route_entry(*route_entry); + grpc::Status status = route->RemoveRouteEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_route_entry_attribute(const sai_route_entry_t *route_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.route_entry = route_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_ROUTE_ENTRY, entry, attr); + + lemming::dataplane::sai::SetRouteEntryAttributeRequest req; + lemming::dataplane::sai::SetRouteEntryAttributeResponse resp; + grpc::ClientContext context; + + *req.mutable_entry() = convert_from_route_entry(*route_entry); + + switch (attr->id) { + case SAI_ROUTE_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_ROUTE_ENTRY_ATTR_USER_TRAP_ID: + req.set_user_trap_id(attr->value.oid); + break; + case SAI_ROUTE_ENTRY_ATTR_NEXT_HOP_ID: + req.set_next_hop_id(attr->value.oid); + break; + case SAI_ROUTE_ENTRY_ATTR_META_DATA: + req.set_meta_data(attr->value.u32); + break; + case SAI_ROUTE_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + } + + grpc::Status status = route->SetRouteEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_route_entry_attribute(const sai_route_entry_t *route_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.route_entry = route_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_ROUTE_ENTRY, entry, - attr_count, attr_list); + + lemming::dataplane::sai::GetRouteEntryAttributeRequest req; + lemming::dataplane::sai::GetRouteEntryAttributeResponse resp; + grpc::ClientContext context; + *req.mutable_entry() = convert_from_route_entry(*route_entry); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = route->GetRouteEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ROUTE_ENTRY_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_ROUTE_ENTRY_ATTR_USER_TRAP_ID: + attr_list[i].value.oid = resp.attr().user_trap_id(); + break; + case SAI_ROUTE_ENTRY_ATTR_NEXT_HOP_ID: + attr_list[i].value.oid = resp.attr().next_hop_id(); + break; + case SAI_ROUTE_ENTRY_ATTR_META_DATA: + attr_list[i].value.u32 = resp.attr().meta_data(); + break; + case SAI_ROUTE_ENTRY_ATTR_IP_ADDR_FAMILY: + attr_list[i].value.s32 = + static_cast(resp.attr().ip_addr_family() - 1); + break; + case SAI_ROUTE_ENTRY_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_route_entries(uint32_t object_count, @@ -68,10 +183,8 @@ sai_status_t l_create_route_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.route_entry = route_entry}; - return translator->create_bulk(SAI_OBJECT_TYPE_ROUTE_ENTRY, object_count, - entry, attr_count, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_route_entries(uint32_t object_count, @@ -79,9 +192,8 @@ sai_status_t l_remove_route_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.route_entry = route_entry}; - return translator->remove_bulk(SAI_OBJECT_TYPE_ROUTE_ENTRY, object_count, - entry, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_route_entries_attribute(uint32_t object_count, @@ -90,10 +202,8 @@ sai_status_t l_set_route_entries_attribute(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.route_entry = route_entry}; - return translator->set_attribute_bulk(SAI_OBJECT_TYPE_ROUTE_ENTRY, - object_count, entry, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_route_entries_attribute(uint32_t object_count, @@ -103,8 +213,6 @@ sai_status_t l_get_route_entries_attribute(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.route_entry = route_entry}; - return translator->get_attribute_bulk(SAI_OBJECT_TYPE_ROUTE_ENTRY, - object_count, entry, attr_count, - attr_list, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/router_interface.cc b/dataplane/standalone/sai/router_interface.cc index 7b70d390..03511b98 100644 --- a/dataplane/standalone/sai/router_interface.cc +++ b/dataplane/standalone/sai/router_interface.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/router_interface.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -34,30 +38,272 @@ sai_status_t l_create_router_interface(sai_object_id_t *router_interface_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_ROUTER_INTERFACE, - router_interface_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateRouterInterfaceRequest req; + lemming::dataplane::sai::CreateRouterInterfaceResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID: + req.set_virtual_router_id(attr_list[i].value.oid); + break; + case SAI_ROUTER_INTERFACE_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_ROUTER_INTERFACE_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_ROUTER_INTERFACE_ATTR_VLAN_ID: + req.set_vlan_id(attr_list[i].value.oid); + break; + case SAI_ROUTER_INTERFACE_ATTR_OUTER_VLAN_ID: + req.set_outer_vlan_id(attr_list[i].value.u16); + break; + case SAI_ROUTER_INTERFACE_ATTR_INNER_VLAN_ID: + req.set_inner_vlan_id(attr_list[i].value.u16); + break; + case SAI_ROUTER_INTERFACE_ATTR_BRIDGE_ID: + req.set_bridge_id(attr_list[i].value.oid); + break; + case SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE: + req.set_admin_v4_state(attr_list[i].value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_V6_STATE: + req.set_admin_v6_state(attr_list[i].value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_MTU: + req.set_mtu(attr_list[i].value.u32); + break; + case SAI_ROUTER_INTERFACE_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr_list[i].value.oid); + break; + case SAI_ROUTER_INTERFACE_ATTR_EGRESS_ACL: + req.set_egress_acl(attr_list[i].value.oid); + break; + case SAI_ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION: + req.set_neighbor_miss_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_ROUTER_INTERFACE_ATTR_V4_MCAST_ENABLE: + req.set_v4_mcast_enable(attr_list[i].value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_V6_MCAST_ENABLE: + req.set_v6_mcast_enable(attr_list[i].value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_LOOPBACK_PACKET_ACTION: + req.set_loopback_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_ROUTER_INTERFACE_ATTR_IS_VIRTUAL: + req.set_is_virtual(attr_list[i].value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_NAT_ZONE_ID: + req.set_nat_zone_id(attr_list[i].value.u8); + break; + case SAI_ROUTER_INTERFACE_ATTR_DISABLE_DECREMENT_TTL: + req.set_disable_decrement_ttl(attr_list[i].value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_MPLS_STATE: + req.set_admin_mpls_state(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = + router_interface->CreateRouterInterface(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *router_interface_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_router_interface(sai_object_id_t router_interface_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_ROUTER_INTERFACE, - router_interface_id); + + lemming::dataplane::sai::RemoveRouterInterfaceRequest req; + lemming::dataplane::sai::RemoveRouterInterfaceResponse resp; + grpc::ClientContext context; + req.set_oid(router_interface_id); + + grpc::Status status = + router_interface->RemoveRouterInterface(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_router_interface_attribute( sai_object_id_t router_interface_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_ROUTER_INTERFACE, - router_interface_id, attr); + + lemming::dataplane::sai::SetRouterInterfaceAttributeRequest req; + lemming::dataplane::sai::SetRouterInterfaceAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(router_interface_id); + + switch (attr->id) { + case SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE: + req.set_admin_v4_state(attr->value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_V6_STATE: + req.set_admin_v6_state(attr->value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_MTU: + req.set_mtu(attr->value.u32); + break; + case SAI_ROUTER_INTERFACE_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr->value.oid); + break; + case SAI_ROUTER_INTERFACE_ATTR_EGRESS_ACL: + req.set_egress_acl(attr->value.oid); + break; + case SAI_ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION: + req.set_neighbor_miss_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_ROUTER_INTERFACE_ATTR_V4_MCAST_ENABLE: + req.set_v4_mcast_enable(attr->value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_V6_MCAST_ENABLE: + req.set_v6_mcast_enable(attr->value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_LOOPBACK_PACKET_ACTION: + req.set_loopback_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_ROUTER_INTERFACE_ATTR_NAT_ZONE_ID: + req.set_nat_zone_id(attr->value.u8); + break; + case SAI_ROUTER_INTERFACE_ATTR_DISABLE_DECREMENT_TTL: + req.set_disable_decrement_ttl(attr->value.booldata); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_MPLS_STATE: + req.set_admin_mpls_state(attr->value.booldata); + break; + } + + grpc::Status status = + router_interface->SetRouterInterfaceAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_router_interface_attribute( sai_object_id_t router_interface_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_ROUTER_INTERFACE, - router_interface_id, attr_count, attr_list); + + lemming::dataplane::sai::GetRouterInterfaceAttributeRequest req; + lemming::dataplane::sai::GetRouterInterfaceAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(router_interface_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + router_interface->GetRouterInterfaceAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID: + attr_list[i].value.oid = resp.attr().virtual_router_id(); + break; + case SAI_ROUTER_INTERFACE_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_ROUTER_INTERFACE_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_ROUTER_INTERFACE_ATTR_VLAN_ID: + attr_list[i].value.oid = resp.attr().vlan_id(); + break; + case SAI_ROUTER_INTERFACE_ATTR_OUTER_VLAN_ID: + attr_list[i].value.u16 = resp.attr().outer_vlan_id(); + break; + case SAI_ROUTER_INTERFACE_ATTR_INNER_VLAN_ID: + attr_list[i].value.u16 = resp.attr().inner_vlan_id(); + break; + case SAI_ROUTER_INTERFACE_ATTR_BRIDGE_ID: + attr_list[i].value.oid = resp.attr().bridge_id(); + break; + case SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().src_mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_V4_STATE: + attr_list[i].value.booldata = resp.attr().admin_v4_state(); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_V6_STATE: + attr_list[i].value.booldata = resp.attr().admin_v6_state(); + break; + case SAI_ROUTER_INTERFACE_ATTR_MTU: + attr_list[i].value.u32 = resp.attr().mtu(); + break; + case SAI_ROUTER_INTERFACE_ATTR_INGRESS_ACL: + attr_list[i].value.oid = resp.attr().ingress_acl(); + break; + case SAI_ROUTER_INTERFACE_ATTR_EGRESS_ACL: + attr_list[i].value.oid = resp.attr().egress_acl(); + break; + case SAI_ROUTER_INTERFACE_ATTR_NEIGHBOR_MISS_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().neighbor_miss_packet_action() - 1); + break; + case SAI_ROUTER_INTERFACE_ATTR_V4_MCAST_ENABLE: + attr_list[i].value.booldata = resp.attr().v4_mcast_enable(); + break; + case SAI_ROUTER_INTERFACE_ATTR_V6_MCAST_ENABLE: + attr_list[i].value.booldata = resp.attr().v6_mcast_enable(); + break; + case SAI_ROUTER_INTERFACE_ATTR_LOOPBACK_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().loopback_packet_action() - 1); + break; + case SAI_ROUTER_INTERFACE_ATTR_IS_VIRTUAL: + attr_list[i].value.booldata = resp.attr().is_virtual(); + break; + case SAI_ROUTER_INTERFACE_ATTR_NAT_ZONE_ID: + attr_list[i].value.u8 = resp.attr().nat_zone_id(); + break; + case SAI_ROUTER_INTERFACE_ATTR_DISABLE_DECREMENT_TTL: + attr_list[i].value.booldata = resp.attr().disable_decrement_ttl(); + break; + case SAI_ROUTER_INTERFACE_ATTR_ADMIN_MPLS_STATE: + attr_list[i].value.booldata = resp.attr().admin_mpls_state(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_router_interface_stats(sai_object_id_t router_interface_id, @@ -65,9 +311,8 @@ sai_status_t l_get_router_interface_stats(sai_object_id_t router_interface_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_ROUTER_INTERFACE, - router_interface_id, number_of_counters, - counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_router_interface_stats_ext( @@ -75,16 +320,14 @@ sai_status_t l_get_router_interface_stats_ext( const sai_stat_id_t *counter_ids, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_ROUTER_INTERFACE, - router_interface_id, number_of_counters, - counter_ids, mode, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_router_interface_stats(sai_object_id_t router_interface_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_ROUTER_INTERFACE, - router_interface_id, number_of_counters, - counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/rpf_group.cc b/dataplane/standalone/sai/rpf_group.cc index f0425f71..d1549d72 100644 --- a/dataplane/standalone/sai/rpf_group.cc +++ b/dataplane/standalone/sai/rpf_group.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/rpf_group.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -34,28 +38,83 @@ sai_status_t l_create_rpf_group(sai_object_id_t *rpf_group_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_RPF_GROUP, rpf_group_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateRpfGroupRequest req; + lemming::dataplane::sai::CreateRpfGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) {} + } + grpc::Status status = rpf_group->CreateRpfGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *rpf_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_rpf_group(sai_object_id_t rpf_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_RPF_GROUP, rpf_group_id); + + lemming::dataplane::sai::RemoveRpfGroupRequest req; + lemming::dataplane::sai::RemoveRpfGroupResponse resp; + grpc::ClientContext context; + req.set_oid(rpf_group_id); + + grpc::Status status = rpf_group->RemoveRpfGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_rpf_group_attribute(sai_object_id_t rpf_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_RPF_GROUP, rpf_group_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_rpf_group_attribute(sai_object_id_t rpf_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_RPF_GROUP, rpf_group_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetRpfGroupAttributeRequest req; + lemming::dataplane::sai::GetRpfGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(rpf_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = rpf_group->GetRpfGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_RPF_GROUP_ATTR_RPF_INTERFACE_COUNT: + attr_list[i].value.u32 = resp.attr().rpf_interface_count(); + break; + case SAI_RPF_GROUP_ATTR_RPF_MEMBER_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().rpf_member_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_rpf_group_member(sai_object_id_t *rpf_group_member_id, @@ -63,28 +122,87 @@ sai_status_t l_create_rpf_group_member(sai_object_id_t *rpf_group_member_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_RPF_GROUP_MEMBER, - rpf_group_member_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateRpfGroupMemberRequest req; + lemming::dataplane::sai::CreateRpfGroupMemberResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_RPF_GROUP_MEMBER_ATTR_RPF_GROUP_ID: + req.set_rpf_group_id(attr_list[i].value.oid); + break; + case SAI_RPF_GROUP_MEMBER_ATTR_RPF_INTERFACE_ID: + req.set_rpf_interface_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = rpf_group->CreateRpfGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *rpf_group_member_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_rpf_group_member(sai_object_id_t rpf_group_member_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_RPF_GROUP_MEMBER, - rpf_group_member_id); + + lemming::dataplane::sai::RemoveRpfGroupMemberRequest req; + lemming::dataplane::sai::RemoveRpfGroupMemberResponse resp; + grpc::ClientContext context; + req.set_oid(rpf_group_member_id); + + grpc::Status status = rpf_group->RemoveRpfGroupMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_rpf_group_member_attribute( sai_object_id_t rpf_group_member_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_RPF_GROUP_MEMBER, - rpf_group_member_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_rpf_group_member_attribute( sai_object_id_t rpf_group_member_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_RPF_GROUP_MEMBER, - rpf_group_member_id, attr_count, attr_list); + + lemming::dataplane::sai::GetRpfGroupMemberAttributeRequest req; + lemming::dataplane::sai::GetRpfGroupMemberAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(rpf_group_member_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + rpf_group->GetRpfGroupMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_RPF_GROUP_MEMBER_ATTR_RPF_GROUP_ID: + attr_list[i].value.oid = resp.attr().rpf_group_id(); + break; + case SAI_RPF_GROUP_MEMBER_ATTR_RPF_INTERFACE_ID: + attr_list[i].value.oid = resp.attr().rpf_interface_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/samplepacket.cc b/dataplane/standalone/sai/samplepacket.cc index 627d3dcb..c9fea1f1 100644 --- a/dataplane/standalone/sai/samplepacket.cc +++ b/dataplane/standalone/sai/samplepacket.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/samplepacket.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -31,26 +35,113 @@ sai_status_t l_create_samplepacket(sai_object_id_t *samplepacket_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_SAMPLEPACKET, samplepacket_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateSamplepacketRequest req; + lemming::dataplane::sai::CreateSamplepacketResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE: + req.set_sample_rate(attr_list[i].value.u32); + break; + case SAI_SAMPLEPACKET_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SAMPLEPACKET_ATTR_MODE: + req.set_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = samplepacket->CreateSamplepacket(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *samplepacket_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_samplepacket(sai_object_id_t samplepacket_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_SAMPLEPACKET, samplepacket_id); + + lemming::dataplane::sai::RemoveSamplepacketRequest req; + lemming::dataplane::sai::RemoveSamplepacketResponse resp; + grpc::ClientContext context; + req.set_oid(samplepacket_id); + + grpc::Status status = samplepacket->RemoveSamplepacket(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_samplepacket_attribute(sai_object_id_t samplepacket_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_SAMPLEPACKET, - samplepacket_id, attr); + + lemming::dataplane::sai::SetSamplepacketAttributeRequest req; + lemming::dataplane::sai::SetSamplepacketAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(samplepacket_id); + + switch (attr->id) { + case SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE: + req.set_sample_rate(attr->value.u32); + break; + } + + grpc::Status status = + samplepacket->SetSamplepacketAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_samplepacket_attribute(sai_object_id_t samplepacket_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_SAMPLEPACKET, - samplepacket_id, attr_count, attr_list); + + lemming::dataplane::sai::GetSamplepacketAttributeRequest req; + lemming::dataplane::sai::GetSamplepacketAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(samplepacket_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + samplepacket->GetSamplepacketAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SAMPLEPACKET_ATTR_SAMPLE_RATE: + attr_list[i].value.u32 = resp.attr().sample_rate(); + break; + case SAI_SAMPLEPACKET_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_SAMPLEPACKET_ATTR_MODE: + attr_list[i].value.s32 = static_cast(resp.attr().mode() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/scheduler.cc b/dataplane/standalone/sai/scheduler.cc index be75d050..ce84faa2 100644 --- a/dataplane/standalone/sai/scheduler.cc +++ b/dataplane/standalone/sai/scheduler.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/scheduler.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -30,26 +34,158 @@ sai_status_t l_create_scheduler(sai_object_id_t *scheduler_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_SCHEDULER, scheduler_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateSchedulerRequest req; + lemming::dataplane::sai::CreateSchedulerResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SCHEDULER_ATTR_SCHEDULING_TYPE: + req.set_scheduling_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SCHEDULER_ATTR_SCHEDULING_WEIGHT: + req.set_scheduling_weight(attr_list[i].value.u8); + break; + case SAI_SCHEDULER_ATTR_METER_TYPE: + req.set_meter_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE: + req.set_min_bandwidth_rate(attr_list[i].value.u64); + break; + case SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE: + req.set_min_bandwidth_burst_rate(attr_list[i].value.u64); + break; + case SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE: + req.set_max_bandwidth_rate(attr_list[i].value.u64); + break; + case SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE: + req.set_max_bandwidth_burst_rate(attr_list[i].value.u64); + break; + } + } + grpc::Status status = scheduler->CreateScheduler(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *scheduler_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_scheduler(sai_object_id_t scheduler_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_SCHEDULER, scheduler_id); + + lemming::dataplane::sai::RemoveSchedulerRequest req; + lemming::dataplane::sai::RemoveSchedulerResponse resp; + grpc::ClientContext context; + req.set_oid(scheduler_id); + + grpc::Status status = scheduler->RemoveScheduler(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_scheduler_attribute(sai_object_id_t scheduler_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_SCHEDULER, scheduler_id, - attr); + + lemming::dataplane::sai::SetSchedulerAttributeRequest req; + lemming::dataplane::sai::SetSchedulerAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(scheduler_id); + + switch (attr->id) { + case SAI_SCHEDULER_ATTR_SCHEDULING_TYPE: + req.set_scheduling_type( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_SCHEDULER_ATTR_SCHEDULING_WEIGHT: + req.set_scheduling_weight(attr->value.u8); + break; + case SAI_SCHEDULER_ATTR_METER_TYPE: + req.set_meter_type( + static_cast(attr->value.s32 + 1)); + break; + case SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE: + req.set_min_bandwidth_rate(attr->value.u64); + break; + case SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE: + req.set_min_bandwidth_burst_rate(attr->value.u64); + break; + case SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE: + req.set_max_bandwidth_rate(attr->value.u64); + break; + case SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE: + req.set_max_bandwidth_burst_rate(attr->value.u64); + break; + } + + grpc::Status status = scheduler->SetSchedulerAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_scheduler_attribute(sai_object_id_t scheduler_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_SCHEDULER, scheduler_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetSchedulerAttributeRequest req; + lemming::dataplane::sai::GetSchedulerAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(scheduler_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = scheduler->GetSchedulerAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SCHEDULER_ATTR_SCHEDULING_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().scheduling_type() - 1); + break; + case SAI_SCHEDULER_ATTR_SCHEDULING_WEIGHT: + attr_list[i].value.u8 = resp.attr().scheduling_weight(); + break; + case SAI_SCHEDULER_ATTR_METER_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().meter_type() - 1); + break; + case SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE: + attr_list[i].value.u64 = resp.attr().min_bandwidth_rate(); + break; + case SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE: + attr_list[i].value.u64 = resp.attr().min_bandwidth_burst_rate(); + break; + case SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE: + attr_list[i].value.u64 = resp.attr().max_bandwidth_rate(); + break; + case SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE: + attr_list[i].value.u64 = resp.attr().max_bandwidth_burst_rate(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/scheduler_group.cc b/dataplane/standalone/sai/scheduler_group.cc index 81a98a00..bd33561b 100644 --- a/dataplane/standalone/sai/scheduler_group.cc +++ b/dataplane/standalone/sai/scheduler_group.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/scheduler_group.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -31,27 +35,135 @@ sai_status_t l_create_scheduler_group(sai_object_id_t *scheduler_group_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_SCHEDULER_GROUP, scheduler_group_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateSchedulerGroupRequest req; + lemming::dataplane::sai::CreateSchedulerGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SCHEDULER_GROUP_ATTR_PORT_ID: + req.set_port_id(attr_list[i].value.oid); + break; + case SAI_SCHEDULER_GROUP_ATTR_LEVEL: + req.set_level(attr_list[i].value.u8); + break; + case SAI_SCHEDULER_GROUP_ATTR_MAX_CHILDS: + req.set_max_childs(attr_list[i].value.u8); + break; + case SAI_SCHEDULER_GROUP_ATTR_SCHEDULER_PROFILE_ID: + req.set_scheduler_profile_id(attr_list[i].value.oid); + break; + case SAI_SCHEDULER_GROUP_ATTR_PARENT_NODE: + req.set_parent_node(attr_list[i].value.oid); + break; + } + } + grpc::Status status = + scheduler_group->CreateSchedulerGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *scheduler_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_scheduler_group(sai_object_id_t scheduler_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_SCHEDULER_GROUP, - scheduler_group_id); + + lemming::dataplane::sai::RemoveSchedulerGroupRequest req; + lemming::dataplane::sai::RemoveSchedulerGroupResponse resp; + grpc::ClientContext context; + req.set_oid(scheduler_group_id); + + grpc::Status status = + scheduler_group->RemoveSchedulerGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_scheduler_group_attribute(sai_object_id_t scheduler_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_SCHEDULER_GROUP, - scheduler_group_id, attr); + + lemming::dataplane::sai::SetSchedulerGroupAttributeRequest req; + lemming::dataplane::sai::SetSchedulerGroupAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(scheduler_group_id); + + switch (attr->id) { + case SAI_SCHEDULER_GROUP_ATTR_SCHEDULER_PROFILE_ID: + req.set_scheduler_profile_id(attr->value.oid); + break; + case SAI_SCHEDULER_GROUP_ATTR_PARENT_NODE: + req.set_parent_node(attr->value.oid); + break; + } + + grpc::Status status = + scheduler_group->SetSchedulerGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_scheduler_group_attribute(sai_object_id_t scheduler_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_SCHEDULER_GROUP, - scheduler_group_id, attr_count, attr_list); + + lemming::dataplane::sai::GetSchedulerGroupAttributeRequest req; + lemming::dataplane::sai::GetSchedulerGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(scheduler_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + scheduler_group->GetSchedulerGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SCHEDULER_GROUP_ATTR_CHILD_COUNT: + attr_list[i].value.u32 = resp.attr().child_count(); + break; + case SAI_SCHEDULER_GROUP_ATTR_CHILD_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().child_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SCHEDULER_GROUP_ATTR_PORT_ID: + attr_list[i].value.oid = resp.attr().port_id(); + break; + case SAI_SCHEDULER_GROUP_ATTR_LEVEL: + attr_list[i].value.u8 = resp.attr().level(); + break; + case SAI_SCHEDULER_GROUP_ATTR_MAX_CHILDS: + attr_list[i].value.u8 = resp.attr().max_childs(); + break; + case SAI_SCHEDULER_GROUP_ATTR_SCHEDULER_PROFILE_ID: + attr_list[i].value.oid = resp.attr().scheduler_profile_id(); + break; + case SAI_SCHEDULER_GROUP_ATTR_PARENT_NODE: + attr_list[i].value.oid = resp.attr().parent_node(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/srv6.cc b/dataplane/standalone/sai/srv6.cc index 4dd574f0..bdfa362e 100644 --- a/dataplane/standalone/sai/srv6.cc +++ b/dataplane/standalone/sai/srv6.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/srv6.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -41,28 +45,83 @@ sai_status_t l_create_srv6_sidlist(sai_object_id_t *srv6_sidlist_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_SRV6_SIDLIST, srv6_sidlist_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateSrv6SidlistRequest req; + lemming::dataplane::sai::CreateSrv6SidlistResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SRV6_SIDLIST_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = srv6->CreateSrv6Sidlist(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *srv6_sidlist_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_srv6_sidlist(sai_object_id_t srv6_sidlist_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_SRV6_SIDLIST, srv6_sidlist_id); + + lemming::dataplane::sai::RemoveSrv6SidlistRequest req; + lemming::dataplane::sai::RemoveSrv6SidlistResponse resp; + grpc::ClientContext context; + req.set_oid(srv6_sidlist_id); + + grpc::Status status = srv6->RemoveSrv6Sidlist(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_srv6_sidlist_attribute(sai_object_id_t srv6_sidlist_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_SRV6_SIDLIST, - srv6_sidlist_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_srv6_sidlist_attribute(sai_object_id_t srv6_sidlist_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_SRV6_SIDLIST, - srv6_sidlist_id, attr_count, attr_list); + + lemming::dataplane::sai::GetSrv6SidlistAttributeRequest req; + lemming::dataplane::sai::GetSrv6SidlistAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(srv6_sidlist_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = srv6->GetSrv6SidlistAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SRV6_SIDLIST_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_srv6_sidlists(sai_object_id_t switch_id, @@ -73,9 +132,8 @@ sai_status_t l_create_srv6_sidlists(sai_object_id_t switch_id, sai_object_id_t *object_id, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create_bulk(SAI_OBJECT_TYPE_SRV6_SIDLIST, switch_id, - object_count, attr_count, attr_list, mode, - object_id, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_srv6_sidlists(uint32_t object_count, @@ -83,39 +141,180 @@ sai_status_t l_remove_srv6_sidlists(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove_bulk(SAI_OBJECT_TYPE_SRV6_SIDLIST, object_count, - object_id, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_my_sid_entry(const sai_my_sid_entry_t *my_sid_entry, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.my_sid_entry = my_sid_entry}; - return translator->create(SAI_OBJECT_TYPE_MY_SID_ENTRY, entry, attr_count, - attr_list); + + lemming::dataplane::sai::CreateMySidEntryRequest req; + lemming::dataplane::sai::CreateMySidEntryResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR: + req.set_endpoint_behavior( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR_FLAVOR: + req.set_endpoint_behavior_flavor( + static_cast< + lemming::dataplane::sai::MySidEntryEndpointBehaviorFlavor>( + attr_list[i].value.s32 + 1)); + break; + case SAI_MY_SID_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_MY_SID_ENTRY_ATTR_TRAP_PRIORITY: + req.set_trap_priority(attr_list[i].value.u8); + break; + case SAI_MY_SID_ENTRY_ATTR_NEXT_HOP_ID: + req.set_next_hop_id(attr_list[i].value.oid); + break; + case SAI_MY_SID_ENTRY_ATTR_TUNNEL_ID: + req.set_tunnel_id(attr_list[i].value.oid); + break; + case SAI_MY_SID_ENTRY_ATTR_VRF: + req.set_vrf(attr_list[i].value.oid); + break; + case SAI_MY_SID_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = srv6->CreateMySidEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_my_sid_entry(const sai_my_sid_entry_t *my_sid_entry) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.my_sid_entry = my_sid_entry}; - return translator->remove(SAI_OBJECT_TYPE_MY_SID_ENTRY, entry); + + lemming::dataplane::sai::RemoveMySidEntryRequest req; + lemming::dataplane::sai::RemoveMySidEntryResponse resp; + grpc::ClientContext context; + + grpc::Status status = srv6->RemoveMySidEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_my_sid_entry_attribute( const sai_my_sid_entry_t *my_sid_entry, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.my_sid_entry = my_sid_entry}; - return translator->set_attribute(SAI_OBJECT_TYPE_MY_SID_ENTRY, entry, attr); + + lemming::dataplane::sai::SetMySidEntryAttributeRequest req; + lemming::dataplane::sai::SetMySidEntryAttributeResponse resp; + grpc::ClientContext context; + + switch (attr->id) { + case SAI_MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR: + req.set_endpoint_behavior( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR_FLAVOR: + req.set_endpoint_behavior_flavor( + static_cast< + lemming::dataplane::sai::MySidEntryEndpointBehaviorFlavor>( + attr->value.s32 + 1)); + break; + case SAI_MY_SID_ENTRY_ATTR_PACKET_ACTION: + req.set_packet_action(static_cast( + attr->value.s32 + 1)); + break; + case SAI_MY_SID_ENTRY_ATTR_TRAP_PRIORITY: + req.set_trap_priority(attr->value.u8); + break; + case SAI_MY_SID_ENTRY_ATTR_NEXT_HOP_ID: + req.set_next_hop_id(attr->value.oid); + break; + case SAI_MY_SID_ENTRY_ATTR_TUNNEL_ID: + req.set_tunnel_id(attr->value.oid); + break; + case SAI_MY_SID_ENTRY_ATTR_VRF: + req.set_vrf(attr->value.oid); + break; + case SAI_MY_SID_ENTRY_ATTR_COUNTER_ID: + req.set_counter_id(attr->value.oid); + break; + } + + grpc::Status status = srv6->SetMySidEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_my_sid_entry_attribute( const sai_my_sid_entry_t *my_sid_entry, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.my_sid_entry = my_sid_entry}; - return translator->get_attribute(SAI_OBJECT_TYPE_MY_SID_ENTRY, entry, - attr_count, attr_list); + + lemming::dataplane::sai::GetMySidEntryAttributeRequest req; + lemming::dataplane::sai::GetMySidEntryAttributeResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = srv6->GetMySidEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR: + attr_list[i].value.s32 = + static_cast(resp.attr().endpoint_behavior() - 1); + break; + case SAI_MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR_FLAVOR: + attr_list[i].value.s32 = + static_cast(resp.attr().endpoint_behavior_flavor() - 1); + break; + case SAI_MY_SID_ENTRY_ATTR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().packet_action() - 1); + break; + case SAI_MY_SID_ENTRY_ATTR_TRAP_PRIORITY: + attr_list[i].value.u8 = resp.attr().trap_priority(); + break; + case SAI_MY_SID_ENTRY_ATTR_NEXT_HOP_ID: + attr_list[i].value.oid = resp.attr().next_hop_id(); + break; + case SAI_MY_SID_ENTRY_ATTR_TUNNEL_ID: + attr_list[i].value.oid = resp.attr().tunnel_id(); + break; + case SAI_MY_SID_ENTRY_ATTR_VRF: + attr_list[i].value.oid = resp.attr().vrf(); + break; + case SAI_MY_SID_ENTRY_ATTR_COUNTER_ID: + attr_list[i].value.oid = resp.attr().counter_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_my_sid_entries(uint32_t object_count, @@ -125,10 +324,8 @@ sai_status_t l_create_my_sid_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.my_sid_entry = my_sid_entry}; - return translator->create_bulk(SAI_OBJECT_TYPE_MY_SID_ENTRY, object_count, - entry, attr_count, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_my_sid_entries(uint32_t object_count, @@ -136,9 +333,8 @@ sai_status_t l_remove_my_sid_entries(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.my_sid_entry = my_sid_entry}; - return translator->remove_bulk(SAI_OBJECT_TYPE_MY_SID_ENTRY, object_count, - entry, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_my_sid_entries_attribute( @@ -146,10 +342,8 @@ sai_status_t l_set_my_sid_entries_attribute( const sai_attribute_t *attr_list, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.my_sid_entry = my_sid_entry}; - return translator->set_attribute_bulk(SAI_OBJECT_TYPE_MY_SID_ENTRY, - object_count, entry, attr_list, mode, - object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_my_sid_entries_attribute( @@ -157,8 +351,6 @@ sai_status_t l_get_my_sid_entries_attribute( const uint32_t *attr_count, sai_attribute_t **attr_list, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - common_entry_t entry = {.my_sid_entry = my_sid_entry}; - return translator->get_attribute_bulk(SAI_OBJECT_TYPE_MY_SID_ENTRY, - object_count, entry, attr_count, - attr_list, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/stp.cc b/dataplane/standalone/sai/stp.cc index f5c65c87..e2bbe9a2 100644 --- a/dataplane/standalone/sai/stp.cc +++ b/dataplane/standalone/sai/stp.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/stp.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -36,53 +40,194 @@ sai_status_t l_create_stp(sai_object_id_t *stp_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_STP, stp_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateStpRequest req; + lemming::dataplane::sai::CreateStpResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) {} + } + grpc::Status status = stp->CreateStp(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *stp_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_stp(sai_object_id_t stp_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_STP, stp_id); + + lemming::dataplane::sai::RemoveStpRequest req; + lemming::dataplane::sai::RemoveStpResponse resp; + grpc::ClientContext context; + req.set_oid(stp_id); + + grpc::Status status = stp->RemoveStp(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_stp_attribute(sai_object_id_t stp_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_STP, stp_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_stp_attribute(sai_object_id_t stp_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_STP, stp_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetStpAttributeRequest req; + lemming::dataplane::sai::GetStpAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(stp_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = stp->GetStpAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_STP_ATTR_BRIDGE_ID: + attr_list[i].value.oid = resp.attr().bridge_id(); + break; + case SAI_STP_ATTR_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().port_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_stp_port(sai_object_id_t *stp_port_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_STP_PORT, stp_port_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateStpPortRequest req; + lemming::dataplane::sai::CreateStpPortResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_STP_PORT_ATTR_STP: + req.set_stp(attr_list[i].value.oid); + break; + case SAI_STP_PORT_ATTR_BRIDGE_PORT: + req.set_bridge_port(attr_list[i].value.oid); + break; + case SAI_STP_PORT_ATTR_STATE: + req.set_state(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = stp->CreateStpPort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *stp_port_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_stp_port(sai_object_id_t stp_port_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_STP_PORT, stp_port_id); + + lemming::dataplane::sai::RemoveStpPortRequest req; + lemming::dataplane::sai::RemoveStpPortResponse resp; + grpc::ClientContext context; + req.set_oid(stp_port_id); + + grpc::Status status = stp->RemoveStpPort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_stp_port_attribute(sai_object_id_t stp_port_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_STP_PORT, stp_port_id, attr); + + lemming::dataplane::sai::SetStpPortAttributeRequest req; + lemming::dataplane::sai::SetStpPortAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(stp_port_id); + + switch (attr->id) { + case SAI_STP_PORT_ATTR_STATE: + req.set_state(static_cast( + attr->value.s32 + 1)); + break; + } + + grpc::Status status = stp->SetStpPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_stp_port_attribute(sai_object_id_t stp_port_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_STP_PORT, stp_port_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetStpPortAttributeRequest req; + lemming::dataplane::sai::GetStpPortAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(stp_port_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = stp->GetStpPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_STP_PORT_ATTR_STP: + attr_list[i].value.oid = resp.attr().stp(); + break; + case SAI_STP_PORT_ATTR_BRIDGE_PORT: + attr_list[i].value.oid = resp.attr().bridge_port(); + break; + case SAI_STP_PORT_ATTR_STATE: + attr_list[i].value.s32 = static_cast(resp.attr().state() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_stp_ports(sai_object_id_t switch_id, @@ -93,9 +238,8 @@ sai_status_t l_create_stp_ports(sai_object_id_t switch_id, sai_object_id_t *object_id, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create_bulk(SAI_OBJECT_TYPE_STP_PORT, switch_id, - object_count, attr_count, attr_list, mode, - object_id, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_stp_ports(uint32_t object_count, @@ -103,6 +247,6 @@ sai_status_t l_remove_stp_ports(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove_bulk(SAI_OBJECT_TYPE_STP_PORT, object_count, - object_id, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/switch.cc b/dataplane/standalone/sai/switch.cc index fae1cce0..02f59ea1 100644 --- a/dataplane/standalone/sai/switch.cc +++ b/dataplane/standalone/sai/switch.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/switch.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -38,27 +42,1149 @@ const sai_switch_api_t l_switch = { sai_status_t l_create_switch(sai_object_id_t *switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_SWITCH, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateSwitchRequest req; + lemming::dataplane::sai::CreateSwitchResponse resp; + grpc::ClientContext context; + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SWITCH_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_EGRESS_ACL: + req.set_egress_acl(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_RESTART_WARM: + req.set_restart_warm(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_WARM_RECOVER: + req.set_warm_recover(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_SWITCHING_MODE: + req.set_switching_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE: + req.set_bcast_cpu_flood_enable(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE: + req.set_mcast_cpu_flood_enable(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_SWITCH_ATTR_MAX_LEARNED_ADDRESSES: + req.set_max_learned_addresses(attr_list[i].value.u32); + break; + case SAI_SWITCH_ATTR_FDB_AGING_TIME: + req.set_fdb_aging_time(attr_list[i].value.u32); + break; + case SAI_SWITCH_ATTR_FDB_UNICAST_MISS_PACKET_ACTION: + req.set_fdb_unicast_miss_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_PACKET_ACTION: + req.set_fdb_broadcast_miss_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_PACKET_ACTION: + req.set_fdb_multicast_miss_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM: + req.set_ecmp_default_hash_algorithm( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED: + req.set_ecmp_default_hash_seed(attr_list[i].value.u32); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_OFFSET: + req.set_ecmp_default_hash_offset(attr_list[i].value.u8); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH: + req.set_ecmp_default_symmetric_hash(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV4: + req.set_ecmp_hash_ipv4(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4: + req.set_ecmp_hash_ipv4_in_ipv4(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV6: + req.set_ecmp_hash_ipv6(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM: + req.set_lag_default_hash_algorithm( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_SEED: + req.set_lag_default_hash_seed(attr_list[i].value.u32); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_OFFSET: + req.set_lag_default_hash_offset(attr_list[i].value.u8); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH: + req.set_lag_default_symmetric_hash(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV4: + req.set_lag_hash_ipv4(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4: + req.set_lag_hash_ipv4_in_ipv4(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV6: + req.set_lag_hash_ipv6(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_COUNTER_REFRESH_INTERVAL: + req.set_counter_refresh_interval(attr_list[i].value.u32); + break; + case SAI_SWITCH_ATTR_QOS_DEFAULT_TC: + req.set_qos_default_tc(attr_list[i].value.u8); + break; + case SAI_SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP: + req.set_qos_dot1p_to_tc_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP: + req.set_qos_dot1p_to_color_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_TC_MAP: + req.set_qos_dscp_to_tc_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP: + req.set_qos_dscp_to_color_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP: + req.set_qos_tc_to_queue_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP: + req.set_qos_tc_and_color_to_dot1p_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP: + req.set_qos_tc_and_color_to_dscp_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE: + req.set_switch_shell_enable(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_SWITCH_PROFILE_ID: + req.set_switch_profile_id(attr_list[i].value.u32); + break; + case SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO: + req.mutable_switch_hardware_info()->Add( + attr_list[i].value.s8list.list, + attr_list[i].value.s8list.list + attr_list[i].value.s8list.count); + break; + case SAI_SWITCH_ATTR_FIRMWARE_PATH_NAME: + req.mutable_firmware_path_name()->Add( + attr_list[i].value.s8list.list, + attr_list[i].value.s8list.list + attr_list[i].value.s8list.count); + break; + case SAI_SWITCH_ATTR_INIT_SWITCH: + req.set_init_switch(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_FAST_API_ENABLE: + req.set_fast_api_enable(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_MIRROR_TC: + req.set_mirror_tc(attr_list[i].value.u8); + break; + case SAI_SWITCH_ATTR_PFC_DLR_PACKET_ACTION: + req.set_pfc_dlr_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_TPID_OUTER_VLAN: + req.set_tpid_outer_vlan(attr_list[i].value.u16); + break; + case SAI_SWITCH_ATTR_TPID_INNER_VLAN: + req.set_tpid_inner_vlan(attr_list[i].value.u16); + break; + case SAI_SWITCH_ATTR_CRC_CHECK_ENABLE: + req.set_crc_check_enable(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_CRC_RECALCULATION_ENABLE: + req.set_crc_recalculation_enable(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_ECN_ECT_THRESHOLD_ENABLE: + req.set_ecn_ect_threshold_enable(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC: + req.set_vxlan_default_router_mac(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_SWITCH_ATTR_VXLAN_DEFAULT_PORT: + req.set_vxlan_default_port(attr_list[i].value.u16); + break; + case SAI_SWITCH_ATTR_UNINIT_DATA_PLANE_ON_REMOVAL: + req.set_uninit_data_plane_on_removal(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_TAM_OBJECT_ID: + req.mutable_tam_object_id()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_PRE_SHUTDOWN: + req.set_pre_shutdown(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_NAT_ZONE_COUNTER_OBJECT_ID: + req.set_nat_zone_counter_object_id(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_NAT_ENABLE: + req.set_nat_enable(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_HARDWARE_ACCESS_BUS: + req.set_hardware_access_bus( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_PLATFROM_CONTEXT: + req.set_platfrom_context(attr_list[i].value.u64); + break; + case SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST: + req.set_firmware_download_broadcast(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_FIRMWARE_LOAD_METHOD: + req.set_firmware_load_method( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_FIRMWARE_LOAD_TYPE: + req.set_firmware_load_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_EXECUTE: + req.set_firmware_download_execute(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_FIRMWARE_BROADCAST_STOP: + req.set_firmware_broadcast_stop(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_FIRMWARE_VERIFY_AND_INIT_SWITCH: + req.set_firmware_verify_and_init_switch(attr_list[i].value.booldata); + break; + case SAI_SWITCH_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_MACSEC_OBJECT_LIST: + req.mutable_macsec_object_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_TC_MAP: + req.set_qos_mpls_exp_to_tc_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP: + req.set_qos_mpls_exp_to_color_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + req.set_qos_tc_and_color_to_mpls_exp_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_SWITCH_ID: + req.set_switch_id(attr_list[i].value.u32); + break; + case SAI_SWITCH_ATTR_MAX_SYSTEM_CORES: + req.set_max_system_cores(attr_list[i].value.u32); + break; + case SAI_SWITCH_ATTR_FAILOVER_CONFIG_MODE: + req.set_failover_config_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_TUNNEL_OBJECTS_LIST: + req.mutable_tunnel_objects_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_PRE_INGRESS_ACL: + req.set_pre_ingress_acl(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_SLAVE_MDIO_ADDR_LIST: + req.mutable_slave_mdio_addr_list()->Add( + attr_list[i].value.u8list.list, + attr_list[i].value.u8list.list + attr_list[i].value.u8list.count); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP: + req.set_qos_dscp_to_forwarding_class_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP: + req.set_qos_mpls_exp_to_forwarding_class_map(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_IPSEC_OBJECT_ID: + req.set_ipsec_object_id(attr_list[i].value.oid); + break; + case SAI_SWITCH_ATTR_IPSEC_SA_TAG_TPID: + req.set_ipsec_sa_tag_tpid(attr_list[i].value.u16); + break; + } + } + grpc::Status status = switch_->CreateSwitch(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *switch_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_switch(sai_object_id_t switch_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_SWITCH, switch_id); + + lemming::dataplane::sai::RemoveSwitchRequest req; + lemming::dataplane::sai::RemoveSwitchResponse resp; + grpc::ClientContext context; + req.set_oid(switch_id); + + grpc::Status status = switch_->RemoveSwitch(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_switch_attribute(sai_object_id_t switch_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_SWITCH, switch_id, attr); + + lemming::dataplane::sai::SetSwitchAttributeRequest req; + lemming::dataplane::sai::SetSwitchAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(switch_id); + + switch (attr->id) { + case SAI_SWITCH_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr->value.oid); + break; + case SAI_SWITCH_ATTR_EGRESS_ACL: + req.set_egress_acl(attr->value.oid); + break; + case SAI_SWITCH_ATTR_RESTART_WARM: + req.set_restart_warm(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_WARM_RECOVER: + req.set_warm_recover(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_SWITCHING_MODE: + req.set_switching_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE: + req.set_bcast_cpu_flood_enable(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE: + req.set_mcast_cpu_flood_enable(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_SWITCH_ATTR_MAX_LEARNED_ADDRESSES: + req.set_max_learned_addresses(attr->value.u32); + break; + case SAI_SWITCH_ATTR_FDB_AGING_TIME: + req.set_fdb_aging_time(attr->value.u32); + break; + case SAI_SWITCH_ATTR_FDB_UNICAST_MISS_PACKET_ACTION: + req.set_fdb_unicast_miss_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_PACKET_ACTION: + req.set_fdb_broadcast_miss_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_PACKET_ACTION: + req.set_fdb_multicast_miss_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM: + req.set_ecmp_default_hash_algorithm( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED: + req.set_ecmp_default_hash_seed(attr->value.u32); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_OFFSET: + req.set_ecmp_default_hash_offset(attr->value.u8); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH: + req.set_ecmp_default_symmetric_hash(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV4: + req.set_ecmp_hash_ipv4(attr->value.oid); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4: + req.set_ecmp_hash_ipv4_in_ipv4(attr->value.oid); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV6: + req.set_ecmp_hash_ipv6(attr->value.oid); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM: + req.set_lag_default_hash_algorithm( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_SEED: + req.set_lag_default_hash_seed(attr->value.u32); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_OFFSET: + req.set_lag_default_hash_offset(attr->value.u8); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH: + req.set_lag_default_symmetric_hash(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV4: + req.set_lag_hash_ipv4(attr->value.oid); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4: + req.set_lag_hash_ipv4_in_ipv4(attr->value.oid); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV6: + req.set_lag_hash_ipv6(attr->value.oid); + break; + case SAI_SWITCH_ATTR_COUNTER_REFRESH_INTERVAL: + req.set_counter_refresh_interval(attr->value.u32); + break; + case SAI_SWITCH_ATTR_QOS_DEFAULT_TC: + req.set_qos_default_tc(attr->value.u8); + break; + case SAI_SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP: + req.set_qos_dot1p_to_tc_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP: + req.set_qos_dot1p_to_color_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_TC_MAP: + req.set_qos_dscp_to_tc_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP: + req.set_qos_dscp_to_color_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP: + req.set_qos_tc_to_queue_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP: + req.set_qos_tc_and_color_to_dot1p_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP: + req.set_qos_tc_and_color_to_dscp_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE: + req.set_switch_shell_enable(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_FAST_API_ENABLE: + req.set_fast_api_enable(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_MIRROR_TC: + req.set_mirror_tc(attr->value.u8); + break; + case SAI_SWITCH_ATTR_PFC_DLR_PACKET_ACTION: + req.set_pfc_dlr_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_SWITCH_ATTR_TPID_OUTER_VLAN: + req.set_tpid_outer_vlan(attr->value.u16); + break; + case SAI_SWITCH_ATTR_TPID_INNER_VLAN: + req.set_tpid_inner_vlan(attr->value.u16); + break; + case SAI_SWITCH_ATTR_CRC_CHECK_ENABLE: + req.set_crc_check_enable(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_CRC_RECALCULATION_ENABLE: + req.set_crc_recalculation_enable(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_ECN_ECT_THRESHOLD_ENABLE: + req.set_ecn_ect_threshold_enable(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC: + req.set_vxlan_default_router_mac(attr->value.mac, + sizeof(attr->value.mac)); + break; + case SAI_SWITCH_ATTR_VXLAN_DEFAULT_PORT: + req.set_vxlan_default_port(attr->value.u16); + break; + case SAI_SWITCH_ATTR_UNINIT_DATA_PLANE_ON_REMOVAL: + req.set_uninit_data_plane_on_removal(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_TAM_OBJECT_ID: + req.mutable_tam_object_id()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_SWITCH_ATTR_PRE_SHUTDOWN: + req.set_pre_shutdown(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_NAT_ZONE_COUNTER_OBJECT_ID: + req.set_nat_zone_counter_object_id(attr->value.oid); + break; + case SAI_SWITCH_ATTR_NAT_ENABLE: + req.set_nat_enable(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_EXECUTE: + req.set_firmware_download_execute(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_FIRMWARE_BROADCAST_STOP: + req.set_firmware_broadcast_stop(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_FIRMWARE_VERIFY_AND_INIT_SWITCH: + req.set_firmware_verify_and_init_switch(attr->value.booldata); + break; + case SAI_SWITCH_ATTR_MACSEC_OBJECT_LIST: + req.mutable_macsec_object_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_TC_MAP: + req.set_qos_mpls_exp_to_tc_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP: + req.set_qos_mpls_exp_to_color_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + req.set_qos_tc_and_color_to_mpls_exp_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_FAILOVER_CONFIG_MODE: + req.set_failover_config_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_SWITCH_ATTR_TUNNEL_OBJECTS_LIST: + req.mutable_tunnel_objects_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_SWITCH_ATTR_PRE_INGRESS_ACL: + req.set_pre_ingress_acl(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP: + req.set_qos_dscp_to_forwarding_class_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP: + req.set_qos_mpls_exp_to_forwarding_class_map(attr->value.oid); + break; + case SAI_SWITCH_ATTR_IPSEC_OBJECT_ID: + req.set_ipsec_object_id(attr->value.oid); + break; + case SAI_SWITCH_ATTR_IPSEC_SA_TAG_TPID: + req.set_ipsec_sa_tag_tpid(attr->value.u16); + break; + } + + grpc::Status status = switch_->SetSwitchAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_switch_attribute(sai_object_id_t switch_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_SWITCH, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetSwitchAttributeRequest req; + lemming::dataplane::sai::GetSwitchAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = switch_->GetSwitchAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SWITCH_ATTR_NUMBER_OF_ACTIVE_PORTS: + attr_list[i].value.u32 = resp.attr().number_of_active_ports(); + break; + case SAI_SWITCH_ATTR_MAX_NUMBER_OF_SUPPORTED_PORTS: + attr_list[i].value.u32 = resp.attr().max_number_of_supported_ports(); + break; + case SAI_SWITCH_ATTR_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_PORT_MAX_MTU: + attr_list[i].value.u32 = resp.attr().port_max_mtu(); + break; + case SAI_SWITCH_ATTR_CPU_PORT: + attr_list[i].value.oid = resp.attr().cpu_port(); + break; + case SAI_SWITCH_ATTR_MAX_VIRTUAL_ROUTERS: + attr_list[i].value.u32 = resp.attr().max_virtual_routers(); + break; + case SAI_SWITCH_ATTR_FDB_TABLE_SIZE: + attr_list[i].value.u32 = resp.attr().fdb_table_size(); + break; + case SAI_SWITCH_ATTR_L3_NEIGHBOR_TABLE_SIZE: + attr_list[i].value.u32 = resp.attr().l3_neighbor_table_size(); + break; + case SAI_SWITCH_ATTR_L3_ROUTE_TABLE_SIZE: + attr_list[i].value.u32 = resp.attr().l3_route_table_size(); + break; + case SAI_SWITCH_ATTR_LAG_MEMBERS: + attr_list[i].value.u32 = resp.attr().lag_members(); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_LAGS: + attr_list[i].value.u32 = resp.attr().number_of_lags(); + break; + case SAI_SWITCH_ATTR_ECMP_MEMBERS: + attr_list[i].value.u32 = resp.attr().ecmp_members(); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_ECMP_GROUPS: + attr_list[i].value.u32 = resp.attr().number_of_ecmp_groups(); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_UNICAST_QUEUES: + attr_list[i].value.u32 = resp.attr().number_of_unicast_queues(); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_MULTICAST_QUEUES: + attr_list[i].value.u32 = resp.attr().number_of_multicast_queues(); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_QUEUES: + attr_list[i].value.u32 = resp.attr().number_of_queues(); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_CPU_QUEUES: + attr_list[i].value.u32 = resp.attr().number_of_cpu_queues(); + break; + case SAI_SWITCH_ATTR_ON_LINK_ROUTE_SUPPORTED: + attr_list[i].value.booldata = resp.attr().on_link_route_supported(); + break; + case SAI_SWITCH_ATTR_OPER_STATUS: + attr_list[i].value.s32 = + static_cast(resp.attr().oper_status() - 1); + break; + case SAI_SWITCH_ATTR_MAX_NUMBER_OF_TEMP_SENSORS: + attr_list[i].value.u8 = resp.attr().max_number_of_temp_sensors(); + break; + case SAI_SWITCH_ATTR_TEMP_LIST: + copy_list(attr_list[i].value.s32list.list, resp.attr().temp_list(), + attr_list[i].value.s32list.count); + break; + case SAI_SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY: + attr_list[i].value.u32 = resp.attr().acl_table_minimum_priority(); + break; + case SAI_SWITCH_ATTR_ACL_TABLE_MAXIMUM_PRIORITY: + attr_list[i].value.u32 = resp.attr().acl_table_maximum_priority(); + break; + case SAI_SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY: + attr_list[i].value.u32 = resp.attr().acl_entry_minimum_priority(); + break; + case SAI_SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY: + attr_list[i].value.u32 = resp.attr().acl_entry_maximum_priority(); + break; + case SAI_SWITCH_ATTR_ACL_TABLE_GROUP_MINIMUM_PRIORITY: + attr_list[i].value.u32 = resp.attr().acl_table_group_minimum_priority(); + break; + case SAI_SWITCH_ATTR_ACL_TABLE_GROUP_MAXIMUM_PRIORITY: + attr_list[i].value.u32 = resp.attr().acl_table_group_maximum_priority(); + break; + case SAI_SWITCH_ATTR_DEFAULT_VLAN_ID: + attr_list[i].value.oid = resp.attr().default_vlan_id(); + break; + case SAI_SWITCH_ATTR_DEFAULT_STP_INST_ID: + attr_list[i].value.oid = resp.attr().default_stp_inst_id(); + break; + case SAI_SWITCH_ATTR_MAX_STP_INSTANCE: + attr_list[i].value.u32 = resp.attr().max_stp_instance(); + break; + case SAI_SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID: + attr_list[i].value.oid = resp.attr().default_virtual_router_id(); + break; + case SAI_SWITCH_ATTR_DEFAULT_OVERRIDE_VIRTUAL_ROUTER_ID: + attr_list[i].value.oid = + resp.attr().default_override_virtual_router_id(); + break; + case SAI_SWITCH_ATTR_DEFAULT_1Q_BRIDGE_ID: + attr_list[i].value.oid = resp.attr().default_1q_bridge_id(); + break; + case SAI_SWITCH_ATTR_INGRESS_ACL: + attr_list[i].value.oid = resp.attr().ingress_acl(); + break; + case SAI_SWITCH_ATTR_EGRESS_ACL: + attr_list[i].value.oid = resp.attr().egress_acl(); + break; + case SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_TRAFFIC_CLASSES: + attr_list[i].value.u8 = resp.attr().qos_max_number_of_traffic_classes(); + break; + case SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUP_HIERARCHY_LEVELS: + attr_list[i].value.u32 = + resp.attr().qos_max_number_of_scheduler_group_hierarchy_levels(); + break; + case SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUPS_PER_HIERARCHY_LEVEL: + copy_list(attr_list[i].value.u32list.list, + resp.attr() + .qos_max_number_of_scheduler_groups_per_hierarchy_level(), + attr_list[i].value.u32list.count); + break; + case SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP: + attr_list[i].value.u32 = + resp.attr().qos_max_number_of_childs_per_scheduler_group(); + break; + case SAI_SWITCH_ATTR_TOTAL_BUFFER_SIZE: + attr_list[i].value.u64 = resp.attr().total_buffer_size(); + break; + case SAI_SWITCH_ATTR_INGRESS_BUFFER_POOL_NUM: + attr_list[i].value.u32 = resp.attr().ingress_buffer_pool_num(); + break; + case SAI_SWITCH_ATTR_EGRESS_BUFFER_POOL_NUM: + attr_list[i].value.u32 = resp.attr().egress_buffer_pool_num(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY: + attr_list[i].value.u32 = resp.attr().available_ipv4_route_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY: + attr_list[i].value.u32 = resp.attr().available_ipv6_route_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY: + attr_list[i].value.u32 = resp.attr().available_ipv4_nexthop_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY: + attr_list[i].value.u32 = resp.attr().available_ipv6_nexthop_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY: + attr_list[i].value.u32 = resp.attr().available_ipv4_neighbor_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY: + attr_list[i].value.u32 = resp.attr().available_ipv6_neighbor_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY: + attr_list[i].value.u32 = resp.attr().available_next_hop_group_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY: + attr_list[i].value.u32 = + resp.attr().available_next_hop_group_member_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY: + attr_list[i].value.u32 = resp.attr().available_fdb_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_L2MC_ENTRY: + attr_list[i].value.u32 = resp.attr().available_l2mc_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_IPMC_ENTRY: + attr_list[i].value.u32 = resp.attr().available_ipmc_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY: + attr_list[i].value.u32 = resp.attr().available_snat_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY: + attr_list[i].value.u32 = resp.attr().available_dnat_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY: + attr_list[i].value.u32 = resp.attr().available_double_nat_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_MY_SID_ENTRY: + attr_list[i].value.u32 = resp.attr().available_my_sid_entry(); + break; + case SAI_SWITCH_ATTR_DEFAULT_TRAP_GROUP: + attr_list[i].value.oid = resp.attr().default_trap_group(); + break; + case SAI_SWITCH_ATTR_ECMP_HASH: + attr_list[i].value.oid = resp.attr().ecmp_hash(); + break; + case SAI_SWITCH_ATTR_LAG_HASH: + attr_list[i].value.oid = resp.attr().lag_hash(); + break; + case SAI_SWITCH_ATTR_RESTART_WARM: + attr_list[i].value.booldata = resp.attr().restart_warm(); + break; + case SAI_SWITCH_ATTR_WARM_RECOVER: + attr_list[i].value.booldata = resp.attr().warm_recover(); + break; + case SAI_SWITCH_ATTR_RESTART_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().restart_type() - 1); + break; + case SAI_SWITCH_ATTR_MIN_PLANNED_RESTART_INTERVAL: + attr_list[i].value.u32 = resp.attr().min_planned_restart_interval(); + break; + case SAI_SWITCH_ATTR_NV_STORAGE_SIZE: + attr_list[i].value.u64 = resp.attr().nv_storage_size(); + break; + case SAI_SWITCH_ATTR_MAX_ACL_ACTION_COUNT: + attr_list[i].value.u32 = resp.attr().max_acl_action_count(); + break; + case SAI_SWITCH_ATTR_MAX_ACL_RANGE_COUNT: + attr_list[i].value.u32 = resp.attr().max_acl_range_count(); + break; + case SAI_SWITCH_ATTR_MCAST_SNOOPING_CAPABILITY: + attr_list[i].value.s32 = + static_cast(resp.attr().mcast_snooping_capability() - 1); + break; + case SAI_SWITCH_ATTR_SWITCHING_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().switching_mode() - 1); + break; + case SAI_SWITCH_ATTR_BCAST_CPU_FLOOD_ENABLE: + attr_list[i].value.booldata = resp.attr().bcast_cpu_flood_enable(); + break; + case SAI_SWITCH_ATTR_MCAST_CPU_FLOOD_ENABLE: + attr_list[i].value.booldata = resp.attr().mcast_cpu_flood_enable(); + break; + case SAI_SWITCH_ATTR_SRC_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().src_mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_SWITCH_ATTR_MAX_LEARNED_ADDRESSES: + attr_list[i].value.u32 = resp.attr().max_learned_addresses(); + break; + case SAI_SWITCH_ATTR_FDB_AGING_TIME: + attr_list[i].value.u32 = resp.attr().fdb_aging_time(); + break; + case SAI_SWITCH_ATTR_FDB_UNICAST_MISS_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().fdb_unicast_miss_packet_action() - 1); + break; + case SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_PACKET_ACTION: + attr_list[i].value.s32 = static_cast( + resp.attr().fdb_broadcast_miss_packet_action() - 1); + break; + case SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_PACKET_ACTION: + attr_list[i].value.s32 = static_cast( + resp.attr().fdb_multicast_miss_packet_action() - 1); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_ALGORITHM: + attr_list[i].value.s32 = + static_cast(resp.attr().ecmp_default_hash_algorithm() - 1); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_SEED: + attr_list[i].value.u32 = resp.attr().ecmp_default_hash_seed(); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_HASH_OFFSET: + attr_list[i].value.u8 = resp.attr().ecmp_default_hash_offset(); + break; + case SAI_SWITCH_ATTR_ECMP_DEFAULT_SYMMETRIC_HASH: + attr_list[i].value.booldata = resp.attr().ecmp_default_symmetric_hash(); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV4: + attr_list[i].value.oid = resp.attr().ecmp_hash_ipv4(); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV4_IN_IPV4: + attr_list[i].value.oid = resp.attr().ecmp_hash_ipv4_in_ipv4(); + break; + case SAI_SWITCH_ATTR_ECMP_HASH_IPV6: + attr_list[i].value.oid = resp.attr().ecmp_hash_ipv6(); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_ALGORITHM: + attr_list[i].value.s32 = + static_cast(resp.attr().lag_default_hash_algorithm() - 1); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_SEED: + attr_list[i].value.u32 = resp.attr().lag_default_hash_seed(); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_HASH_OFFSET: + attr_list[i].value.u8 = resp.attr().lag_default_hash_offset(); + break; + case SAI_SWITCH_ATTR_LAG_DEFAULT_SYMMETRIC_HASH: + attr_list[i].value.booldata = resp.attr().lag_default_symmetric_hash(); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV4: + attr_list[i].value.oid = resp.attr().lag_hash_ipv4(); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV4_IN_IPV4: + attr_list[i].value.oid = resp.attr().lag_hash_ipv4_in_ipv4(); + break; + case SAI_SWITCH_ATTR_LAG_HASH_IPV6: + attr_list[i].value.oid = resp.attr().lag_hash_ipv6(); + break; + case SAI_SWITCH_ATTR_COUNTER_REFRESH_INTERVAL: + attr_list[i].value.u32 = resp.attr().counter_refresh_interval(); + break; + case SAI_SWITCH_ATTR_QOS_DEFAULT_TC: + attr_list[i].value.u8 = resp.attr().qos_default_tc(); + break; + case SAI_SWITCH_ATTR_QOS_DOT1P_TO_TC_MAP: + attr_list[i].value.oid = resp.attr().qos_dot1p_to_tc_map(); + break; + case SAI_SWITCH_ATTR_QOS_DOT1P_TO_COLOR_MAP: + attr_list[i].value.oid = resp.attr().qos_dot1p_to_color_map(); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_TC_MAP: + attr_list[i].value.oid = resp.attr().qos_dscp_to_tc_map(); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_COLOR_MAP: + attr_list[i].value.oid = resp.attr().qos_dscp_to_color_map(); + break; + case SAI_SWITCH_ATTR_QOS_TC_TO_QUEUE_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_to_queue_map(); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DOT1P_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_and_color_to_dot1p_map(); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_DSCP_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_and_color_to_dscp_map(); + break; + case SAI_SWITCH_ATTR_SWITCH_SHELL_ENABLE: + attr_list[i].value.booldata = resp.attr().switch_shell_enable(); + break; + case SAI_SWITCH_ATTR_SWITCH_PROFILE_ID: + attr_list[i].value.u32 = resp.attr().switch_profile_id(); + break; + case SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO: + copy_list(attr_list[i].value.s8list.list, + resp.attr().switch_hardware_info(), + attr_list[i].value.s8list.count); + break; + case SAI_SWITCH_ATTR_FIRMWARE_PATH_NAME: + copy_list(attr_list[i].value.s8list.list, + resp.attr().firmware_path_name(), + attr_list[i].value.s8list.count); + break; + case SAI_SWITCH_ATTR_INIT_SWITCH: + attr_list[i].value.booldata = resp.attr().init_switch(); + break; + case SAI_SWITCH_ATTR_FAST_API_ENABLE: + attr_list[i].value.booldata = resp.attr().fast_api_enable(); + break; + case SAI_SWITCH_ATTR_MIRROR_TC: + attr_list[i].value.u8 = resp.attr().mirror_tc(); + break; + case SAI_SWITCH_ATTR_SRV6_MAX_SID_DEPTH: + attr_list[i].value.u32 = resp.attr().srv6_max_sid_depth(); + break; + case SAI_SWITCH_ATTR_QOS_NUM_LOSSLESS_QUEUES: + attr_list[i].value.u32 = resp.attr().qos_num_lossless_queues(); + break; + case SAI_SWITCH_ATTR_PFC_DLR_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().pfc_dlr_packet_action() - 1); + break; + case SAI_SWITCH_ATTR_TPID_OUTER_VLAN: + attr_list[i].value.u16 = resp.attr().tpid_outer_vlan(); + break; + case SAI_SWITCH_ATTR_TPID_INNER_VLAN: + attr_list[i].value.u16 = resp.attr().tpid_inner_vlan(); + break; + case SAI_SWITCH_ATTR_CRC_CHECK_ENABLE: + attr_list[i].value.booldata = resp.attr().crc_check_enable(); + break; + case SAI_SWITCH_ATTR_CRC_RECALCULATION_ENABLE: + attr_list[i].value.booldata = resp.attr().crc_recalculation_enable(); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_BFD_SESSION: + attr_list[i].value.u32 = resp.attr().number_of_bfd_session(); + break; + case SAI_SWITCH_ATTR_MAX_BFD_SESSION: + attr_list[i].value.u32 = resp.attr().max_bfd_session(); + break; + case SAI_SWITCH_ATTR_MIN_BFD_RX: + attr_list[i].value.u32 = resp.attr().min_bfd_rx(); + break; + case SAI_SWITCH_ATTR_MIN_BFD_TX: + attr_list[i].value.u32 = resp.attr().min_bfd_tx(); + break; + case SAI_SWITCH_ATTR_ECN_ECT_THRESHOLD_ENABLE: + attr_list[i].value.booldata = resp.attr().ecn_ect_threshold_enable(); + break; + case SAI_SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC: + memcpy(attr_list[i].value.mac, + resp.attr().vxlan_default_router_mac().data(), + sizeof(sai_mac_t)); + break; + case SAI_SWITCH_ATTR_VXLAN_DEFAULT_PORT: + attr_list[i].value.u16 = resp.attr().vxlan_default_port(); + break; + case SAI_SWITCH_ATTR_MAX_MIRROR_SESSION: + attr_list[i].value.u32 = resp.attr().max_mirror_session(); + break; + case SAI_SWITCH_ATTR_MAX_SAMPLED_MIRROR_SESSION: + attr_list[i].value.u32 = resp.attr().max_sampled_mirror_session(); + break; + case SAI_SWITCH_ATTR_UNINIT_DATA_PLANE_ON_REMOVAL: + attr_list[i].value.booldata = + resp.attr().uninit_data_plane_on_removal(); + break; + case SAI_SWITCH_ATTR_TAM_OBJECT_ID: + copy_list(attr_list[i].value.objlist.list, resp.attr().tam_object_id(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_PRE_SHUTDOWN: + attr_list[i].value.booldata = resp.attr().pre_shutdown(); + break; + case SAI_SWITCH_ATTR_NAT_ZONE_COUNTER_OBJECT_ID: + attr_list[i].value.oid = resp.attr().nat_zone_counter_object_id(); + break; + case SAI_SWITCH_ATTR_NAT_ENABLE: + attr_list[i].value.booldata = resp.attr().nat_enable(); + break; + case SAI_SWITCH_ATTR_HARDWARE_ACCESS_BUS: + attr_list[i].value.s32 = + static_cast(resp.attr().hardware_access_bus() - 1); + break; + case SAI_SWITCH_ATTR_PLATFROM_CONTEXT: + attr_list[i].value.u64 = resp.attr().platfrom_context(); + break; + case SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_BROADCAST: + attr_list[i].value.booldata = resp.attr().firmware_download_broadcast(); + break; + case SAI_SWITCH_ATTR_FIRMWARE_LOAD_METHOD: + attr_list[i].value.s32 = + static_cast(resp.attr().firmware_load_method() - 1); + break; + case SAI_SWITCH_ATTR_FIRMWARE_LOAD_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().firmware_load_type() - 1); + break; + case SAI_SWITCH_ATTR_FIRMWARE_DOWNLOAD_EXECUTE: + attr_list[i].value.booldata = resp.attr().firmware_download_execute(); + break; + case SAI_SWITCH_ATTR_FIRMWARE_BROADCAST_STOP: + attr_list[i].value.booldata = resp.attr().firmware_broadcast_stop(); + break; + case SAI_SWITCH_ATTR_FIRMWARE_VERIFY_AND_INIT_SWITCH: + attr_list[i].value.booldata = + resp.attr().firmware_verify_and_init_switch(); + break; + case SAI_SWITCH_ATTR_FIRMWARE_STATUS: + attr_list[i].value.booldata = resp.attr().firmware_status(); + break; + case SAI_SWITCH_ATTR_FIRMWARE_MAJOR_VERSION: + attr_list[i].value.u32 = resp.attr().firmware_major_version(); + break; + case SAI_SWITCH_ATTR_FIRMWARE_MINOR_VERSION: + attr_list[i].value.u32 = resp.attr().firmware_minor_version(); + break; + case SAI_SWITCH_ATTR_PORT_CONNECTOR_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().port_connector_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_PROPOGATE_PORT_STATE_FROM_LINE_TO_SYSTEM_PORT_SUPPORT: + attr_list[i].value.booldata = + resp.attr().propogate_port_state_from_line_to_system_port_support(); + break; + case SAI_SWITCH_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_SWITCH_ATTR_MACSEC_OBJECT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().macsec_object_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_TC_MAP: + attr_list[i].value.oid = resp.attr().qos_mpls_exp_to_tc_map(); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_COLOR_MAP: + attr_list[i].value.oid = resp.attr().qos_mpls_exp_to_color_map(); + break; + case SAI_SWITCH_ATTR_QOS_TC_AND_COLOR_TO_MPLS_EXP_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_and_color_to_mpls_exp_map(); + break; + case SAI_SWITCH_ATTR_SWITCH_ID: + attr_list[i].value.u32 = resp.attr().switch_id(); + break; + case SAI_SWITCH_ATTR_MAX_SYSTEM_CORES: + attr_list[i].value.u32 = resp.attr().max_system_cores(); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_SYSTEM_PORTS: + attr_list[i].value.u32 = resp.attr().number_of_system_ports(); + break; + case SAI_SWITCH_ATTR_SYSTEM_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().system_port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_NUMBER_OF_FABRIC_PORTS: + attr_list[i].value.u32 = resp.attr().number_of_fabric_ports(); + break; + case SAI_SWITCH_ATTR_FABRIC_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().fabric_port_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_PACKET_DMA_MEMORY_POOL_SIZE: + attr_list[i].value.u32 = resp.attr().packet_dma_memory_pool_size(); + break; + case SAI_SWITCH_ATTR_FAILOVER_CONFIG_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().failover_config_mode() - 1); + break; + case SAI_SWITCH_ATTR_SUPPORTED_FAILOVER_MODE: + attr_list[i].value.booldata = resp.attr().supported_failover_mode(); + break; + case SAI_SWITCH_ATTR_TUNNEL_OBJECTS_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().tunnel_objects_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_PACKET_AVAILABLE_DMA_MEMORY_POOL_SIZE: + attr_list[i].value.u32 = + resp.attr().packet_available_dma_memory_pool_size(); + break; + case SAI_SWITCH_ATTR_PRE_INGRESS_ACL: + attr_list[i].value.oid = resp.attr().pre_ingress_acl(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_SNAPT_ENTRY: + attr_list[i].value.u32 = resp.attr().available_snapt_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_DNAPT_ENTRY: + attr_list[i].value.u32 = resp.attr().available_dnapt_entry(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAPT_ENTRY: + attr_list[i].value.u32 = resp.attr().available_double_napt_entry(); + break; + case SAI_SWITCH_ATTR_SLAVE_MDIO_ADDR_LIST: + copy_list(attr_list[i].value.u8list.list, + resp.attr().slave_mdio_addr_list(), + attr_list[i].value.u8list.count); + break; + case SAI_SWITCH_ATTR_MY_MAC_TABLE_MINIMUM_PRIORITY: + attr_list[i].value.u32 = resp.attr().my_mac_table_minimum_priority(); + break; + case SAI_SWITCH_ATTR_MY_MAC_TABLE_MAXIMUM_PRIORITY: + attr_list[i].value.u32 = resp.attr().my_mac_table_maximum_priority(); + break; + case SAI_SWITCH_ATTR_MY_MAC_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().my_mac_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_ATTR_INSTALLED_MY_MAC_ENTRIES: + attr_list[i].value.u32 = resp.attr().installed_my_mac_entries(); + break; + case SAI_SWITCH_ATTR_AVAILABLE_MY_MAC_ENTRIES: + attr_list[i].value.u32 = resp.attr().available_my_mac_entries(); + break; + case SAI_SWITCH_ATTR_MAX_NUMBER_OF_FORWARDING_CLASSES: + attr_list[i].value.u8 = resp.attr().max_number_of_forwarding_classes(); + break; + case SAI_SWITCH_ATTR_QOS_DSCP_TO_FORWARDING_CLASS_MAP: + attr_list[i].value.oid = resp.attr().qos_dscp_to_forwarding_class_map(); + break; + case SAI_SWITCH_ATTR_QOS_MPLS_EXP_TO_FORWARDING_CLASS_MAP: + attr_list[i].value.oid = + resp.attr().qos_mpls_exp_to_forwarding_class_map(); + break; + case SAI_SWITCH_ATTR_IPSEC_OBJECT_ID: + attr_list[i].value.oid = resp.attr().ipsec_object_id(); + break; + case SAI_SWITCH_ATTR_IPSEC_SA_TAG_TPID: + attr_list[i].value.u16 = resp.attr().ipsec_sa_tag_tpid(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_switch_stats(sai_object_id_t switch_id, @@ -66,8 +1192,8 @@ sai_status_t l_get_switch_stats(sai_object_id_t switch_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_SWITCH, switch_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_switch_stats_ext(sai_object_id_t switch_id, @@ -75,17 +1201,16 @@ sai_status_t l_get_switch_stats_ext(sai_object_id_t switch_id, const sai_stat_id_t *counter_ids, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_SWITCH, switch_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_switch_stats(sai_object_id_t switch_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_SWITCH, switch_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_switch_mdio_read(sai_object_id_t switch_id, uint32_t device_addr, @@ -109,26 +1234,178 @@ sai_status_t l_create_switch_tunnel(sai_object_id_t *switch_tunnel_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_SWITCH_TUNNEL, switch_tunnel_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateSwitchTunnelRequest req; + lemming::dataplane::sai::CreateSwitchTunnelResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_TYPE: + req.set_tunnel_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION: + req.set_loopback_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_ENCAP_ECN_MODE: + req.set_tunnel_encap_ecn_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_TUNNEL_ATTR_ENCAP_MAPPERS: + req.mutable_encap_mappers()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_DECAP_ECN_MODE: + req.set_tunnel_decap_ecn_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_TUNNEL_ATTR_DECAP_MAPPERS: + req.mutable_decap_mappers()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE: + req.set_tunnel_vxlan_udp_sport_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT: + req.set_vxlan_udp_sport(attr_list[i].value.u16); + break; + case SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK: + req.set_vxlan_udp_sport_mask(attr_list[i].value.u8); + break; + } + } + grpc::Status status = switch_->CreateSwitchTunnel(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *switch_tunnel_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_switch_tunnel(sai_object_id_t switch_tunnel_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_SWITCH_TUNNEL, switch_tunnel_id); + + lemming::dataplane::sai::RemoveSwitchTunnelRequest req; + lemming::dataplane::sai::RemoveSwitchTunnelResponse resp; + grpc::ClientContext context; + req.set_oid(switch_tunnel_id); + + grpc::Status status = switch_->RemoveSwitchTunnel(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_switch_tunnel_attribute(sai_object_id_t switch_tunnel_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_SWITCH_TUNNEL, - switch_tunnel_id, attr); + + lemming::dataplane::sai::SetSwitchTunnelAttributeRequest req; + lemming::dataplane::sai::SetSwitchTunnelAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(switch_tunnel_id); + + switch (attr->id) { + case SAI_SWITCH_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION: + req.set_loopback_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE: + req.set_tunnel_vxlan_udp_sport_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT: + req.set_vxlan_udp_sport(attr->value.u16); + break; + case SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK: + req.set_vxlan_udp_sport_mask(attr->value.u8); + break; + } + + grpc::Status status = switch_->SetSwitchTunnelAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_switch_tunnel_attribute(sai_object_id_t switch_tunnel_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_SWITCH_TUNNEL, - switch_tunnel_id, attr_count, attr_list); + + lemming::dataplane::sai::GetSwitchTunnelAttributeRequest req; + lemming::dataplane::sai::GetSwitchTunnelAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(switch_tunnel_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = switch_->GetSwitchTunnelAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().tunnel_type() - 1); + break; + case SAI_SWITCH_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().loopback_packet_action() - 1); + break; + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_ENCAP_ECN_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().tunnel_encap_ecn_mode() - 1); + break; + case SAI_SWITCH_TUNNEL_ATTR_ENCAP_MAPPERS: + copy_list(attr_list[i].value.objlist.list, resp.attr().encap_mappers(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_DECAP_ECN_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().tunnel_decap_ecn_mode() - 1); + break; + case SAI_SWITCH_TUNNEL_ATTR_DECAP_MAPPERS: + copy_list(attr_list[i].value.objlist.list, resp.attr().decap_mappers(), + attr_list[i].value.objlist.count); + break; + case SAI_SWITCH_TUNNEL_ATTR_TUNNEL_VXLAN_UDP_SPORT_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().tunnel_vxlan_udp_sport_mode() - 1); + break; + case SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT: + attr_list[i].value.u16 = resp.attr().vxlan_udp_sport(); + break; + case SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK: + attr_list[i].value.u8 = resp.attr().vxlan_udp_sport_mask(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/system_port.cc b/dataplane/standalone/sai/system_port.cc index ca45f678..67426eb3 100644 --- a/dataplane/standalone/sai/system_port.cc +++ b/dataplane/standalone/sai/system_port.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/system_port.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -31,26 +35,121 @@ sai_status_t l_create_system_port(sai_object_id_t *system_port_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_SYSTEM_PORT, system_port_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateSystemPortRequest req; + lemming::dataplane::sai::CreateSystemPortResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SYSTEM_PORT_ATTR_ADMIN_STATE: + req.set_admin_state(attr_list[i].value.booldata); + break; + case SAI_SYSTEM_PORT_ATTR_QOS_TC_TO_QUEUE_MAP: + req.set_qos_tc_to_queue_map(attr_list[i].value.oid); + break; + } + } + grpc::Status status = system_port->CreateSystemPort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *system_port_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_system_port(sai_object_id_t system_port_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_SYSTEM_PORT, system_port_id); + + lemming::dataplane::sai::RemoveSystemPortRequest req; + lemming::dataplane::sai::RemoveSystemPortResponse resp; + grpc::ClientContext context; + req.set_oid(system_port_id); + + grpc::Status status = system_port->RemoveSystemPort(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_system_port_attribute(sai_object_id_t system_port_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_SYSTEM_PORT, system_port_id, - attr); + + lemming::dataplane::sai::SetSystemPortAttributeRequest req; + lemming::dataplane::sai::SetSystemPortAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(system_port_id); + + switch (attr->id) { + case SAI_SYSTEM_PORT_ATTR_ADMIN_STATE: + req.set_admin_state(attr->value.booldata); + break; + case SAI_SYSTEM_PORT_ATTR_QOS_TC_TO_QUEUE_MAP: + req.set_qos_tc_to_queue_map(attr->value.oid); + break; + } + + grpc::Status status = + system_port->SetSystemPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_system_port_attribute(sai_object_id_t system_port_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_SYSTEM_PORT, system_port_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetSystemPortAttributeRequest req; + lemming::dataplane::sai::GetSystemPortAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(system_port_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + system_port->GetSystemPortAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_SYSTEM_PORT_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_SYSTEM_PORT_ATTR_QOS_NUMBER_OF_VOQS: + attr_list[i].value.u32 = resp.attr().qos_number_of_voqs(); + break; + case SAI_SYSTEM_PORT_ATTR_QOS_VOQ_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().qos_voq_list(), + attr_list[i].value.objlist.count); + break; + case SAI_SYSTEM_PORT_ATTR_PORT: + attr_list[i].value.oid = resp.attr().port(); + break; + case SAI_SYSTEM_PORT_ATTR_ADMIN_STATE: + attr_list[i].value.booldata = resp.attr().admin_state(); + break; + case SAI_SYSTEM_PORT_ATTR_QOS_TC_TO_QUEUE_MAP: + attr_list[i].value.oid = resp.attr().qos_tc_to_queue_map(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/tam.cc b/dataplane/standalone/sai/tam.cc index e8620a66..8b5494f1 100644 --- a/dataplane/standalone/sai/tam.cc +++ b/dataplane/standalone/sai/tam.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/tam.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -70,26 +74,134 @@ sai_status_t l_create_tam(sai_object_id_t *tam_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM, tam_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateTamRequest req; + lemming::dataplane::sai::CreateTamResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_ATTR_TELEMETRY_OBJECTS_LIST: + req.mutable_telemetry_objects_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TAM_ATTR_EVENT_OBJECTS_LIST: + req.mutable_event_objects_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TAM_ATTR_INT_OBJECTS_LIST: + req.mutable_int_objects_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + } + } + grpc::Status status = tam->CreateTam(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam(sai_object_id_t tam_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM, tam_id); + + lemming::dataplane::sai::RemoveTamRequest req; + lemming::dataplane::sai::RemoveTamResponse resp; + grpc::ClientContext context; + req.set_oid(tam_id); + + grpc::Status status = tam->RemoveTam(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_attribute(sai_object_id_t tam_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM, tam_id, attr); + + lemming::dataplane::sai::SetTamAttributeRequest req; + lemming::dataplane::sai::SetTamAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_id); + + switch (attr->id) { + case SAI_TAM_ATTR_TELEMETRY_OBJECTS_LIST: + req.mutable_telemetry_objects_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_TAM_ATTR_EVENT_OBJECTS_LIST: + req.mutable_event_objects_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_TAM_ATTR_INT_OBJECTS_LIST: + req.mutable_int_objects_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + } + + grpc::Status status = tam->SetTamAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_attribute(sai_object_id_t tam_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM, tam_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetTamAttributeRequest req; + lemming::dataplane::sai::GetTamAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_ATTR_TELEMETRY_OBJECTS_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().telemetry_objects_list(), + attr_list[i].value.objlist.count); + break; + case SAI_TAM_ATTR_EVENT_OBJECTS_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().event_objects_list(), + attr_list[i].value.objlist.count); + break; + case SAI_TAM_ATTR_INT_OBJECTS_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().int_objects_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_math_func(sai_object_id_t *tam_math_func_id, @@ -97,115 +209,713 @@ sai_status_t l_create_tam_math_func(sai_object_id_t *tam_math_func_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_MATH_FUNC, tam_math_func_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateTamMathFuncRequest req; + lemming::dataplane::sai::CreateTamMathFuncResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_MATH_FUNC_ATTR_TAM_TEL_MATH_FUNC_TYPE: + req.set_tam_tel_math_func_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = tam->CreateTamMathFunc(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_math_func_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_math_func(sai_object_id_t tam_math_func_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_MATH_FUNC, tam_math_func_id); + + lemming::dataplane::sai::RemoveTamMathFuncRequest req; + lemming::dataplane::sai::RemoveTamMathFuncResponse resp; + grpc::ClientContext context; + req.set_oid(tam_math_func_id); + + grpc::Status status = tam->RemoveTamMathFunc(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_math_func_attribute(sai_object_id_t tam_math_func_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_MATH_FUNC, - tam_math_func_id, attr); + + lemming::dataplane::sai::SetTamMathFuncAttributeRequest req; + lemming::dataplane::sai::SetTamMathFuncAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_math_func_id); + + switch (attr->id) { + case SAI_TAM_MATH_FUNC_ATTR_TAM_TEL_MATH_FUNC_TYPE: + req.set_tam_tel_math_func_type( + static_cast( + attr->value.s32 + 1)); + break; + } + + grpc::Status status = tam->SetTamMathFuncAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_math_func_attribute(sai_object_id_t tam_math_func_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_MATH_FUNC, - tam_math_func_id, attr_count, attr_list); + + lemming::dataplane::sai::GetTamMathFuncAttributeRequest req; + lemming::dataplane::sai::GetTamMathFuncAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_math_func_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamMathFuncAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_MATH_FUNC_ATTR_TAM_TEL_MATH_FUNC_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().tam_tel_math_func_type() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_report(sai_object_id_t *tam_report_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_REPORT, tam_report_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateTamReportRequest req; + lemming::dataplane::sai::CreateTamReportResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_REPORT_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_REPORT_ATTR_HISTOGRAM_NUMBER_OF_BINS: + req.set_histogram_number_of_bins(attr_list[i].value.u32); + break; + case SAI_TAM_REPORT_ATTR_HISTOGRAM_BIN_BOUNDARY: + req.mutable_histogram_bin_boundary()->Add( + attr_list[i].value.u32list.list, + attr_list[i].value.u32list.list + attr_list[i].value.u32list.count); + break; + case SAI_TAM_REPORT_ATTR_QUOTA: + req.set_quota(attr_list[i].value.u32); + break; + case SAI_TAM_REPORT_ATTR_REPORT_MODE: + req.set_report_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_REPORT_ATTR_REPORT_INTERVAL: + req.set_report_interval(attr_list[i].value.u32); + break; + case SAI_TAM_REPORT_ATTR_ENTERPRISE_NUMBER: + req.set_enterprise_number(attr_list[i].value.u32); + break; + } + } + grpc::Status status = tam->CreateTamReport(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_report_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_report(sai_object_id_t tam_report_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_REPORT, tam_report_id); + + lemming::dataplane::sai::RemoveTamReportRequest req; + lemming::dataplane::sai::RemoveTamReportResponse resp; + grpc::ClientContext context; + req.set_oid(tam_report_id); + + grpc::Status status = tam->RemoveTamReport(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_report_attribute(sai_object_id_t tam_report_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_REPORT, tam_report_id, - attr); + + lemming::dataplane::sai::SetTamReportAttributeRequest req; + lemming::dataplane::sai::SetTamReportAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_report_id); + + switch (attr->id) { + case SAI_TAM_REPORT_ATTR_TYPE: + req.set_type(static_cast( + attr->value.s32 + 1)); + break; + case SAI_TAM_REPORT_ATTR_QUOTA: + req.set_quota(attr->value.u32); + break; + case SAI_TAM_REPORT_ATTR_REPORT_INTERVAL: + req.set_report_interval(attr->value.u32); + break; + case SAI_TAM_REPORT_ATTR_ENTERPRISE_NUMBER: + req.set_enterprise_number(attr->value.u32); + break; + } + + grpc::Status status = tam->SetTamReportAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_report_attribute(sai_object_id_t tam_report_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_REPORT, tam_report_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetTamReportAttributeRequest req; + lemming::dataplane::sai::GetTamReportAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_report_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamReportAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_REPORT_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_TAM_REPORT_ATTR_HISTOGRAM_NUMBER_OF_BINS: + attr_list[i].value.u32 = resp.attr().histogram_number_of_bins(); + break; + case SAI_TAM_REPORT_ATTR_HISTOGRAM_BIN_BOUNDARY: + copy_list(attr_list[i].value.u32list.list, + resp.attr().histogram_bin_boundary(), + attr_list[i].value.u32list.count); + break; + case SAI_TAM_REPORT_ATTR_QUOTA: + attr_list[i].value.u32 = resp.attr().quota(); + break; + case SAI_TAM_REPORT_ATTR_REPORT_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().report_mode() - 1); + break; + case SAI_TAM_REPORT_ATTR_REPORT_INTERVAL: + attr_list[i].value.u32 = resp.attr().report_interval(); + break; + case SAI_TAM_REPORT_ATTR_ENTERPRISE_NUMBER: + attr_list[i].value.u32 = resp.attr().enterprise_number(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_event_threshold( sai_object_id_t *tam_event_threshold_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_EVENT_THRESHOLD, - tam_event_threshold_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateTamEventThresholdRequest req; + lemming::dataplane::sai::CreateTamEventThresholdResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_EVENT_THRESHOLD_ATTR_HIGH_WATERMARK: + req.set_high_watermark(attr_list[i].value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_LOW_WATERMARK: + req.set_low_watermark(attr_list[i].value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_LATENCY: + req.set_latency(attr_list[i].value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_RATE: + req.set_rate(attr_list[i].value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_ABS_VALUE: + req.set_abs_value(attr_list[i].value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_UNIT: + req.set_unit( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = tam->CreateTamEventThreshold(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_event_threshold_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_event_threshold( sai_object_id_t tam_event_threshold_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_EVENT_THRESHOLD, - tam_event_threshold_id); + + lemming::dataplane::sai::RemoveTamEventThresholdRequest req; + lemming::dataplane::sai::RemoveTamEventThresholdResponse resp; + grpc::ClientContext context; + req.set_oid(tam_event_threshold_id); + + grpc::Status status = tam->RemoveTamEventThreshold(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_event_threshold_attribute( sai_object_id_t tam_event_threshold_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_EVENT_THRESHOLD, - tam_event_threshold_id, attr); + + lemming::dataplane::sai::SetTamEventThresholdAttributeRequest req; + lemming::dataplane::sai::SetTamEventThresholdAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_event_threshold_id); + + switch (attr->id) { + case SAI_TAM_EVENT_THRESHOLD_ATTR_HIGH_WATERMARK: + req.set_high_watermark(attr->value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_LOW_WATERMARK: + req.set_low_watermark(attr->value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_LATENCY: + req.set_latency(attr->value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_RATE: + req.set_rate(attr->value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_ABS_VALUE: + req.set_abs_value(attr->value.u32); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_UNIT: + req.set_unit(static_cast( + attr->value.s32 + 1)); + break; + } + + grpc::Status status = + tam->SetTamEventThresholdAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_event_threshold_attribute( sai_object_id_t tam_event_threshold_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_EVENT_THRESHOLD, - tam_event_threshold_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetTamEventThresholdAttributeRequest req; + lemming::dataplane::sai::GetTamEventThresholdAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_event_threshold_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + tam->GetTamEventThresholdAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_EVENT_THRESHOLD_ATTR_HIGH_WATERMARK: + attr_list[i].value.u32 = resp.attr().high_watermark(); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_LOW_WATERMARK: + attr_list[i].value.u32 = resp.attr().low_watermark(); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_LATENCY: + attr_list[i].value.u32 = resp.attr().latency(); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_RATE: + attr_list[i].value.u32 = resp.attr().rate(); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_ABS_VALUE: + attr_list[i].value.u32 = resp.attr().abs_value(); + break; + case SAI_TAM_EVENT_THRESHOLD_ATTR_UNIT: + attr_list[i].value.s32 = static_cast(resp.attr().unit() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_int(sai_object_id_t *tam_int_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_INT, tam_int_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateTamIntRequest req; + lemming::dataplane::sai::CreateTamIntResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_INT_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_INT_ATTR_DEVICE_ID: + req.set_device_id(attr_list[i].value.u32); + break; + case SAI_TAM_INT_ATTR_IOAM_TRACE_TYPE: + req.set_ioam_trace_type(attr_list[i].value.u32); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_TYPE: + req.set_int_presence_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_PB1: + req.set_int_presence_pb1(attr_list[i].value.u32); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_PB2: + req.set_int_presence_pb2(attr_list[i].value.u32); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_DSCP_VALUE: + req.set_int_presence_dscp_value(attr_list[i].value.u8); + break; + case SAI_TAM_INT_ATTR_INLINE: + req.set_inline_(attr_list[i].value.booldata); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_L3_PROTOCOL: + req.set_int_presence_l3_protocol(attr_list[i].value.u8); + break; + case SAI_TAM_INT_ATTR_TRACE_VECTOR: + req.set_trace_vector(attr_list[i].value.u16); + break; + case SAI_TAM_INT_ATTR_ACTION_VECTOR: + req.set_action_vector(attr_list[i].value.u16); + break; + case SAI_TAM_INT_ATTR_P4_INT_INSTRUCTION_BITMAP: + req.set_p4_int_instruction_bitmap(attr_list[i].value.u16); + break; + case SAI_TAM_INT_ATTR_METADATA_FRAGMENT_ENABLE: + req.set_metadata_fragment_enable(attr_list[i].value.booldata); + break; + case SAI_TAM_INT_ATTR_METADATA_CHECKSUM_ENABLE: + req.set_metadata_checksum_enable(attr_list[i].value.booldata); + break; + case SAI_TAM_INT_ATTR_REPORT_ALL_PACKETS: + req.set_report_all_packets(attr_list[i].value.booldata); + break; + case SAI_TAM_INT_ATTR_FLOW_LIVENESS_PERIOD: + req.set_flow_liveness_period(attr_list[i].value.u16); + break; + case SAI_TAM_INT_ATTR_LATENCY_SENSITIVITY: + req.set_latency_sensitivity(attr_list[i].value.u8); + break; + case SAI_TAM_INT_ATTR_ACL_GROUP: + req.set_acl_group(attr_list[i].value.oid); + break; + case SAI_TAM_INT_ATTR_MAX_HOP_COUNT: + req.set_max_hop_count(attr_list[i].value.u8); + break; + case SAI_TAM_INT_ATTR_MAX_LENGTH: + req.set_max_length(attr_list[i].value.u8); + break; + case SAI_TAM_INT_ATTR_NAME_SPACE_ID: + req.set_name_space_id(attr_list[i].value.u8); + break; + case SAI_TAM_INT_ATTR_NAME_SPACE_ID_GLOBAL: + req.set_name_space_id_global(attr_list[i].value.booldata); + break; + case SAI_TAM_INT_ATTR_INGRESS_SAMPLEPACKET_ENABLE: + req.set_ingress_samplepacket_enable(attr_list[i].value.oid); + break; + case SAI_TAM_INT_ATTR_COLLECTOR_LIST: + req.mutable_collector_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TAM_INT_ATTR_MATH_FUNC: + req.set_math_func(attr_list[i].value.oid); + break; + case SAI_TAM_INT_ATTR_REPORT_ID: + req.set_report_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = tam->CreateTamInt(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_int_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_int(sai_object_id_t tam_int_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_INT, tam_int_id); + + lemming::dataplane::sai::RemoveTamIntRequest req; + lemming::dataplane::sai::RemoveTamIntResponse resp; + grpc::ClientContext context; + req.set_oid(tam_int_id); + + grpc::Status status = tam->RemoveTamInt(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_int_attribute(sai_object_id_t tam_int_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_INT, tam_int_id, attr); + + lemming::dataplane::sai::SetTamIntAttributeRequest req; + lemming::dataplane::sai::SetTamIntAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_int_id); + + switch (attr->id) { + case SAI_TAM_INT_ATTR_IOAM_TRACE_TYPE: + req.set_ioam_trace_type(attr->value.u32); + break; + case SAI_TAM_INT_ATTR_TRACE_VECTOR: + req.set_trace_vector(attr->value.u16); + break; + case SAI_TAM_INT_ATTR_ACTION_VECTOR: + req.set_action_vector(attr->value.u16); + break; + case SAI_TAM_INT_ATTR_P4_INT_INSTRUCTION_BITMAP: + req.set_p4_int_instruction_bitmap(attr->value.u16); + break; + case SAI_TAM_INT_ATTR_METADATA_FRAGMENT_ENABLE: + req.set_metadata_fragment_enable(attr->value.booldata); + break; + case SAI_TAM_INT_ATTR_METADATA_CHECKSUM_ENABLE: + req.set_metadata_checksum_enable(attr->value.booldata); + break; + case SAI_TAM_INT_ATTR_REPORT_ALL_PACKETS: + req.set_report_all_packets(attr->value.booldata); + break; + case SAI_TAM_INT_ATTR_FLOW_LIVENESS_PERIOD: + req.set_flow_liveness_period(attr->value.u16); + break; + case SAI_TAM_INT_ATTR_LATENCY_SENSITIVITY: + req.set_latency_sensitivity(attr->value.u8); + break; + case SAI_TAM_INT_ATTR_ACL_GROUP: + req.set_acl_group(attr->value.oid); + break; + case SAI_TAM_INT_ATTR_MAX_HOP_COUNT: + req.set_max_hop_count(attr->value.u8); + break; + case SAI_TAM_INT_ATTR_MAX_LENGTH: + req.set_max_length(attr->value.u8); + break; + case SAI_TAM_INT_ATTR_NAME_SPACE_ID: + req.set_name_space_id(attr->value.u8); + break; + case SAI_TAM_INT_ATTR_NAME_SPACE_ID_GLOBAL: + req.set_name_space_id_global(attr->value.booldata); + break; + case SAI_TAM_INT_ATTR_INGRESS_SAMPLEPACKET_ENABLE: + req.set_ingress_samplepacket_enable(attr->value.oid); + break; + case SAI_TAM_INT_ATTR_COLLECTOR_LIST: + req.mutable_collector_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_TAM_INT_ATTR_MATH_FUNC: + req.set_math_func(attr->value.oid); + break; + } + + grpc::Status status = tam->SetTamIntAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_int_attribute(sai_object_id_t tam_int_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_INT, tam_int_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetTamIntAttributeRequest req; + lemming::dataplane::sai::GetTamIntAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_int_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamIntAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_INT_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_TAM_INT_ATTR_DEVICE_ID: + attr_list[i].value.u32 = resp.attr().device_id(); + break; + case SAI_TAM_INT_ATTR_IOAM_TRACE_TYPE: + attr_list[i].value.u32 = resp.attr().ioam_trace_type(); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().int_presence_type() - 1); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_PB1: + attr_list[i].value.u32 = resp.attr().int_presence_pb1(); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_PB2: + attr_list[i].value.u32 = resp.attr().int_presence_pb2(); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_DSCP_VALUE: + attr_list[i].value.u8 = resp.attr().int_presence_dscp_value(); + break; + case SAI_TAM_INT_ATTR_INLINE: + attr_list[i].value.booldata = resp.attr().inline_(); + break; + case SAI_TAM_INT_ATTR_INT_PRESENCE_L3_PROTOCOL: + attr_list[i].value.u8 = resp.attr().int_presence_l3_protocol(); + break; + case SAI_TAM_INT_ATTR_TRACE_VECTOR: + attr_list[i].value.u16 = resp.attr().trace_vector(); + break; + case SAI_TAM_INT_ATTR_ACTION_VECTOR: + attr_list[i].value.u16 = resp.attr().action_vector(); + break; + case SAI_TAM_INT_ATTR_P4_INT_INSTRUCTION_BITMAP: + attr_list[i].value.u16 = resp.attr().p4_int_instruction_bitmap(); + break; + case SAI_TAM_INT_ATTR_METADATA_FRAGMENT_ENABLE: + attr_list[i].value.booldata = resp.attr().metadata_fragment_enable(); + break; + case SAI_TAM_INT_ATTR_METADATA_CHECKSUM_ENABLE: + attr_list[i].value.booldata = resp.attr().metadata_checksum_enable(); + break; + case SAI_TAM_INT_ATTR_REPORT_ALL_PACKETS: + attr_list[i].value.booldata = resp.attr().report_all_packets(); + break; + case SAI_TAM_INT_ATTR_FLOW_LIVENESS_PERIOD: + attr_list[i].value.u16 = resp.attr().flow_liveness_period(); + break; + case SAI_TAM_INT_ATTR_LATENCY_SENSITIVITY: + attr_list[i].value.u8 = resp.attr().latency_sensitivity(); + break; + case SAI_TAM_INT_ATTR_ACL_GROUP: + attr_list[i].value.oid = resp.attr().acl_group(); + break; + case SAI_TAM_INT_ATTR_MAX_HOP_COUNT: + attr_list[i].value.u8 = resp.attr().max_hop_count(); + break; + case SAI_TAM_INT_ATTR_MAX_LENGTH: + attr_list[i].value.u8 = resp.attr().max_length(); + break; + case SAI_TAM_INT_ATTR_NAME_SPACE_ID: + attr_list[i].value.u8 = resp.attr().name_space_id(); + break; + case SAI_TAM_INT_ATTR_NAME_SPACE_ID_GLOBAL: + attr_list[i].value.booldata = resp.attr().name_space_id_global(); + break; + case SAI_TAM_INT_ATTR_INGRESS_SAMPLEPACKET_ENABLE: + attr_list[i].value.oid = resp.attr().ingress_samplepacket_enable(); + break; + case SAI_TAM_INT_ATTR_COLLECTOR_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().collector_list(), + attr_list[i].value.objlist.count); + break; + case SAI_TAM_INT_ATTR_MATH_FUNC: + attr_list[i].value.oid = resp.attr().math_func(); + break; + case SAI_TAM_INT_ATTR_REPORT_ID: + attr_list[i].value.oid = resp.attr().report_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_tel_type(sai_object_id_t *tam_tel_type_id, @@ -213,28 +923,237 @@ sai_status_t l_create_tam_tel_type(sai_object_id_t *tam_tel_type_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_TEL_TYPE, tam_tel_type_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateTamTelTypeRequest req; + lemming::dataplane::sai::CreateTamTelTypeResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_TEL_TYPE_ATTR_TAM_TELEMETRY_TYPE: + req.set_tam_telemetry_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_TEL_TYPE_ATTR_INT_SWITCH_IDENTIFIER: + req.set_int_switch_identifier(attr_list[i].value.u32); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS: + req.set_switch_enable_port_stats(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_INGRESS: + req.set_switch_enable_port_stats_ingress(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_EGRESS: + req.set_switch_enable_port_stats_egress(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_VIRTUAL_QUEUE_STATS: + req.set_switch_enable_virtual_queue_stats(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_OUTPUT_QUEUE_STATS: + req.set_switch_enable_output_queue_stats(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_MMU_STATS: + req.set_switch_enable_mmu_stats(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FABRIC_STATS: + req.set_switch_enable_fabric_stats(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FILTER_STATS: + req.set_switch_enable_filter_stats(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_RESOURCE_UTILIZATION_STATS: + req.set_switch_enable_resource_utilization_stats( + attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_FABRIC_Q: + req.set_fabric_q(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_NE_ENABLE: + req.set_ne_enable(attr_list[i].value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_DSCP_VALUE: + req.set_dscp_value(attr_list[i].value.u8); + break; + case SAI_TAM_TEL_TYPE_ATTR_MATH_FUNC: + req.set_math_func(attr_list[i].value.oid); + break; + case SAI_TAM_TEL_TYPE_ATTR_REPORT_ID: + req.set_report_id(attr_list[i].value.oid); + break; + } + } + grpc::Status status = tam->CreateTamTelType(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_tel_type_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_tel_type(sai_object_id_t tam_tel_type_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_TEL_TYPE, tam_tel_type_id); + + lemming::dataplane::sai::RemoveTamTelTypeRequest req; + lemming::dataplane::sai::RemoveTamTelTypeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_tel_type_id); + + grpc::Status status = tam->RemoveTamTelType(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_tel_type_attribute(sai_object_id_t tam_tel_type_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_TEL_TYPE, - tam_tel_type_id, attr); + + lemming::dataplane::sai::SetTamTelTypeAttributeRequest req; + lemming::dataplane::sai::SetTamTelTypeAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_tel_type_id); + + switch (attr->id) { + case SAI_TAM_TEL_TYPE_ATTR_INT_SWITCH_IDENTIFIER: + req.set_int_switch_identifier(attr->value.u32); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS: + req.set_switch_enable_port_stats(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_INGRESS: + req.set_switch_enable_port_stats_ingress(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_EGRESS: + req.set_switch_enable_port_stats_egress(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_VIRTUAL_QUEUE_STATS: + req.set_switch_enable_virtual_queue_stats(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_OUTPUT_QUEUE_STATS: + req.set_switch_enable_output_queue_stats(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_MMU_STATS: + req.set_switch_enable_mmu_stats(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FABRIC_STATS: + req.set_switch_enable_fabric_stats(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FILTER_STATS: + req.set_switch_enable_filter_stats(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_RESOURCE_UTILIZATION_STATS: + req.set_switch_enable_resource_utilization_stats(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_FABRIC_Q: + req.set_fabric_q(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_NE_ENABLE: + req.set_ne_enable(attr->value.booldata); + break; + case SAI_TAM_TEL_TYPE_ATTR_DSCP_VALUE: + req.set_dscp_value(attr->value.u8); + break; + case SAI_TAM_TEL_TYPE_ATTR_MATH_FUNC: + req.set_math_func(attr->value.oid); + break; + } + + grpc::Status status = tam->SetTamTelTypeAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_tel_type_attribute(sai_object_id_t tam_tel_type_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_TEL_TYPE, - tam_tel_type_id, attr_count, attr_list); + + lemming::dataplane::sai::GetTamTelTypeAttributeRequest req; + lemming::dataplane::sai::GetTamTelTypeAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_tel_type_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamTelTypeAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_TEL_TYPE_ATTR_TAM_TELEMETRY_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().tam_telemetry_type() - 1); + break; + case SAI_TAM_TEL_TYPE_ATTR_INT_SWITCH_IDENTIFIER: + attr_list[i].value.u32 = resp.attr().int_switch_identifier(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS: + attr_list[i].value.booldata = resp.attr().switch_enable_port_stats(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_INGRESS: + attr_list[i].value.booldata = + resp.attr().switch_enable_port_stats_ingress(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_PORT_STATS_EGRESS: + attr_list[i].value.booldata = + resp.attr().switch_enable_port_stats_egress(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_VIRTUAL_QUEUE_STATS: + attr_list[i].value.booldata = + resp.attr().switch_enable_virtual_queue_stats(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_OUTPUT_QUEUE_STATS: + attr_list[i].value.booldata = + resp.attr().switch_enable_output_queue_stats(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_MMU_STATS: + attr_list[i].value.booldata = resp.attr().switch_enable_mmu_stats(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FABRIC_STATS: + attr_list[i].value.booldata = resp.attr().switch_enable_fabric_stats(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_FILTER_STATS: + attr_list[i].value.booldata = resp.attr().switch_enable_filter_stats(); + break; + case SAI_TAM_TEL_TYPE_ATTR_SWITCH_ENABLE_RESOURCE_UTILIZATION_STATS: + attr_list[i].value.booldata = + resp.attr().switch_enable_resource_utilization_stats(); + break; + case SAI_TAM_TEL_TYPE_ATTR_FABRIC_Q: + attr_list[i].value.booldata = resp.attr().fabric_q(); + break; + case SAI_TAM_TEL_TYPE_ATTR_NE_ENABLE: + attr_list[i].value.booldata = resp.attr().ne_enable(); + break; + case SAI_TAM_TEL_TYPE_ATTR_DSCP_VALUE: + attr_list[i].value.u8 = resp.attr().dscp_value(); + break; + case SAI_TAM_TEL_TYPE_ATTR_MATH_FUNC: + attr_list[i].value.oid = resp.attr().math_func(); + break; + case SAI_TAM_TEL_TYPE_ATTR_REPORT_ID: + attr_list[i].value.oid = resp.attr().report_id(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_transport(sai_object_id_t *tam_transport_id, @@ -242,28 +1161,140 @@ sai_status_t l_create_tam_transport(sai_object_id_t *tam_transport_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_TRANSPORT, tam_transport_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateTamTransportRequest req; + lemming::dataplane::sai::CreateTamTransportResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_TRANSPORT_ATTR_TRANSPORT_TYPE: + req.set_transport_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_TRANSPORT_ATTR_SRC_PORT: + req.set_src_port(attr_list[i].value.u32); + break; + case SAI_TAM_TRANSPORT_ATTR_DST_PORT: + req.set_dst_port(attr_list[i].value.u32); + break; + case SAI_TAM_TRANSPORT_ATTR_TRANSPORT_AUTH_TYPE: + req.set_transport_auth_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_TRANSPORT_ATTR_MTU: + req.set_mtu(attr_list[i].value.u32); + break; + } + } + grpc::Status status = tam->CreateTamTransport(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_transport_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_transport(sai_object_id_t tam_transport_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_TRANSPORT, tam_transport_id); + + lemming::dataplane::sai::RemoveTamTransportRequest req; + lemming::dataplane::sai::RemoveTamTransportResponse resp; + grpc::ClientContext context; + req.set_oid(tam_transport_id); + + grpc::Status status = tam->RemoveTamTransport(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_transport_attribute(sai_object_id_t tam_transport_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_TRANSPORT, - tam_transport_id, attr); + + lemming::dataplane::sai::SetTamTransportAttributeRequest req; + lemming::dataplane::sai::SetTamTransportAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_transport_id); + + switch (attr->id) { + case SAI_TAM_TRANSPORT_ATTR_SRC_PORT: + req.set_src_port(attr->value.u32); + break; + case SAI_TAM_TRANSPORT_ATTR_DST_PORT: + req.set_dst_port(attr->value.u32); + break; + case SAI_TAM_TRANSPORT_ATTR_TRANSPORT_AUTH_TYPE: + req.set_transport_auth_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_TAM_TRANSPORT_ATTR_MTU: + req.set_mtu(attr->value.u32); + break; + } + + grpc::Status status = tam->SetTamTransportAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_transport_attribute(sai_object_id_t tam_transport_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_TRANSPORT, - tam_transport_id, attr_count, attr_list); + + lemming::dataplane::sai::GetTamTransportAttributeRequest req; + lemming::dataplane::sai::GetTamTransportAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_transport_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamTransportAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_TRANSPORT_ATTR_TRANSPORT_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().transport_type() - 1); + break; + case SAI_TAM_TRANSPORT_ATTR_SRC_PORT: + attr_list[i].value.u32 = resp.attr().src_port(); + break; + case SAI_TAM_TRANSPORT_ATTR_DST_PORT: + attr_list[i].value.u32 = resp.attr().dst_port(); + break; + case SAI_TAM_TRANSPORT_ATTR_TRANSPORT_AUTH_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().transport_auth_type() - 1); + break; + case SAI_TAM_TRANSPORT_ATTR_MTU: + attr_list[i].value.u32 = resp.attr().mtu(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_telemetry(sai_object_id_t *tam_telemetry_id, @@ -271,28 +1302,136 @@ sai_status_t l_create_tam_telemetry(sai_object_id_t *tam_telemetry_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_TELEMETRY, tam_telemetry_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateTamTelemetryRequest req; + lemming::dataplane::sai::CreateTamTelemetryResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_TELEMETRY_ATTR_TAM_TYPE_LIST: + req.mutable_tam_type_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TAM_TELEMETRY_ATTR_COLLECTOR_LIST: + req.mutable_collector_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TAM_TELEMETRY_ATTR_TAM_REPORTING_UNIT: + req.set_tam_reporting_unit( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_TELEMETRY_ATTR_REPORTING_INTERVAL: + req.set_reporting_interval(attr_list[i].value.u32); + break; + } + } + grpc::Status status = tam->CreateTamTelemetry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_telemetry_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_telemetry(sai_object_id_t tam_telemetry_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_TELEMETRY, tam_telemetry_id); + + lemming::dataplane::sai::RemoveTamTelemetryRequest req; + lemming::dataplane::sai::RemoveTamTelemetryResponse resp; + grpc::ClientContext context; + req.set_oid(tam_telemetry_id); + + grpc::Status status = tam->RemoveTamTelemetry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_telemetry_attribute(sai_object_id_t tam_telemetry_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_TELEMETRY, - tam_telemetry_id, attr); + + lemming::dataplane::sai::SetTamTelemetryAttributeRequest req; + lemming::dataplane::sai::SetTamTelemetryAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_telemetry_id); + + switch (attr->id) { + case SAI_TAM_TELEMETRY_ATTR_TAM_TYPE_LIST: + req.mutable_tam_type_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + case SAI_TAM_TELEMETRY_ATTR_TAM_REPORTING_UNIT: + req.set_tam_reporting_unit( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_TAM_TELEMETRY_ATTR_REPORTING_INTERVAL: + req.set_reporting_interval(attr->value.u32); + break; + } + + grpc::Status status = tam->SetTamTelemetryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_telemetry_attribute(sai_object_id_t tam_telemetry_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_TELEMETRY, - tam_telemetry_id, attr_count, attr_list); + + lemming::dataplane::sai::GetTamTelemetryAttributeRequest req; + lemming::dataplane::sai::GetTamTelemetryAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_telemetry_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamTelemetryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_TELEMETRY_ATTR_TAM_TYPE_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().tam_type_list(), + attr_list[i].value.objlist.count); + break; + case SAI_TAM_TELEMETRY_ATTR_COLLECTOR_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().collector_list(), + attr_list[i].value.objlist.count); + break; + case SAI_TAM_TELEMETRY_ATTR_TAM_REPORTING_UNIT: + attr_list[i].value.s32 = + static_cast(resp.attr().tam_reporting_unit() - 1); + break; + case SAI_TAM_TELEMETRY_ATTR_REPORTING_INTERVAL: + attr_list[i].value.u32 = resp.attr().reporting_interval(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_collector(sai_object_id_t *tam_collector_id, @@ -300,28 +1439,153 @@ sai_status_t l_create_tam_collector(sai_object_id_t *tam_collector_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_COLLECTOR, tam_collector_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateTamCollectorRequest req; + lemming::dataplane::sai::CreateTamCollectorResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_COLLECTOR_ATTR_SRC_IP: + req.set_src_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_TAM_COLLECTOR_ATTR_DST_IP: + req.set_dst_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_TAM_COLLECTOR_ATTR_LOCALHOST: + req.set_localhost(attr_list[i].value.booldata); + break; + case SAI_TAM_COLLECTOR_ATTR_VIRTUAL_ROUTER_ID: + req.set_virtual_router_id(attr_list[i].value.oid); + break; + case SAI_TAM_COLLECTOR_ATTR_TRUNCATE_SIZE: + req.set_truncate_size(attr_list[i].value.u16); + break; + case SAI_TAM_COLLECTOR_ATTR_TRANSPORT: + req.set_transport(attr_list[i].value.oid); + break; + case SAI_TAM_COLLECTOR_ATTR_DSCP_VALUE: + req.set_dscp_value(attr_list[i].value.u8); + break; + } + } + grpc::Status status = tam->CreateTamCollector(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_collector_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_collector(sai_object_id_t tam_collector_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_COLLECTOR, tam_collector_id); + + lemming::dataplane::sai::RemoveTamCollectorRequest req; + lemming::dataplane::sai::RemoveTamCollectorResponse resp; + grpc::ClientContext context; + req.set_oid(tam_collector_id); + + grpc::Status status = tam->RemoveTamCollector(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_collector_attribute(sai_object_id_t tam_collector_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_COLLECTOR, - tam_collector_id, attr); + + lemming::dataplane::sai::SetTamCollectorAttributeRequest req; + lemming::dataplane::sai::SetTamCollectorAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_collector_id); + + switch (attr->id) { + case SAI_TAM_COLLECTOR_ATTR_SRC_IP: + req.set_src_ip(convert_from_ip_address(attr->value.ipaddr)); + break; + case SAI_TAM_COLLECTOR_ATTR_DST_IP: + req.set_dst_ip(convert_from_ip_address(attr->value.ipaddr)); + break; + case SAI_TAM_COLLECTOR_ATTR_LOCALHOST: + req.set_localhost(attr->value.booldata); + break; + case SAI_TAM_COLLECTOR_ATTR_VIRTUAL_ROUTER_ID: + req.set_virtual_router_id(attr->value.oid); + break; + case SAI_TAM_COLLECTOR_ATTR_TRUNCATE_SIZE: + req.set_truncate_size(attr->value.u16); + break; + case SAI_TAM_COLLECTOR_ATTR_TRANSPORT: + req.set_transport(attr->value.oid); + break; + case SAI_TAM_COLLECTOR_ATTR_DSCP_VALUE: + req.set_dscp_value(attr->value.u8); + break; + } + + grpc::Status status = tam->SetTamCollectorAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_collector_attribute(sai_object_id_t tam_collector_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_COLLECTOR, - tam_collector_id, attr_count, attr_list); + + lemming::dataplane::sai::GetTamCollectorAttributeRequest req; + lemming::dataplane::sai::GetTamCollectorAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_collector_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamCollectorAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_COLLECTOR_ATTR_SRC_IP: + attr_list[i].value.ipaddr = convert_to_ip_address(resp.attr().src_ip()); + break; + case SAI_TAM_COLLECTOR_ATTR_DST_IP: + attr_list[i].value.ipaddr = convert_to_ip_address(resp.attr().dst_ip()); + break; + case SAI_TAM_COLLECTOR_ATTR_LOCALHOST: + attr_list[i].value.booldata = resp.attr().localhost(); + break; + case SAI_TAM_COLLECTOR_ATTR_VIRTUAL_ROUTER_ID: + attr_list[i].value.oid = resp.attr().virtual_router_id(); + break; + case SAI_TAM_COLLECTOR_ATTR_TRUNCATE_SIZE: + attr_list[i].value.u16 = resp.attr().truncate_size(); + break; + case SAI_TAM_COLLECTOR_ATTR_TRANSPORT: + attr_list[i].value.oid = resp.attr().transport(); + break; + case SAI_TAM_COLLECTOR_ATTR_DSCP_VALUE: + attr_list[i].value.u8 = resp.attr().dscp_value(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_event_action(sai_object_id_t *tam_event_action_id, @@ -329,56 +1593,239 @@ sai_status_t l_create_tam_event_action(sai_object_id_t *tam_event_action_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_EVENT_ACTION, - tam_event_action_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateTamEventActionRequest req; + lemming::dataplane::sai::CreateTamEventActionResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_EVENT_ACTION_ATTR_REPORT_TYPE: + req.set_report_type(attr_list[i].value.oid); + break; + case SAI_TAM_EVENT_ACTION_ATTR_QOS_ACTION_TYPE: + req.set_qos_action_type(attr_list[i].value.u32); + break; + } + } + grpc::Status status = tam->CreateTamEventAction(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_event_action_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_event_action(sai_object_id_t tam_event_action_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_EVENT_ACTION, - tam_event_action_id); + + lemming::dataplane::sai::RemoveTamEventActionRequest req; + lemming::dataplane::sai::RemoveTamEventActionResponse resp; + grpc::ClientContext context; + req.set_oid(tam_event_action_id); + + grpc::Status status = tam->RemoveTamEventAction(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_event_action_attribute( sai_object_id_t tam_event_action_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_EVENT_ACTION, - tam_event_action_id, attr); + + lemming::dataplane::sai::SetTamEventActionAttributeRequest req; + lemming::dataplane::sai::SetTamEventActionAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_event_action_id); + + switch (attr->id) { + case SAI_TAM_EVENT_ACTION_ATTR_REPORT_TYPE: + req.set_report_type(attr->value.oid); + break; + case SAI_TAM_EVENT_ACTION_ATTR_QOS_ACTION_TYPE: + req.set_qos_action_type(attr->value.u32); + break; + } + + grpc::Status status = tam->SetTamEventActionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_event_action_attribute( sai_object_id_t tam_event_action_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_EVENT_ACTION, - tam_event_action_id, attr_count, attr_list); + + lemming::dataplane::sai::GetTamEventActionAttributeRequest req; + lemming::dataplane::sai::GetTamEventActionAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_event_action_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamEventActionAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_EVENT_ACTION_ATTR_REPORT_TYPE: + attr_list[i].value.oid = resp.attr().report_type(); + break; + case SAI_TAM_EVENT_ACTION_ATTR_QOS_ACTION_TYPE: + attr_list[i].value.u32 = resp.attr().qos_action_type(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tam_event(sai_object_id_t *tam_event_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TAM_EVENT, tam_event_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateTamEventRequest req; + lemming::dataplane::sai::CreateTamEventResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_EVENT_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TAM_EVENT_ATTR_ACTION_LIST: + req.mutable_action_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TAM_EVENT_ATTR_COLLECTOR_LIST: + req.mutable_collector_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TAM_EVENT_ATTR_THRESHOLD: + req.set_threshold(attr_list[i].value.oid); + break; + case SAI_TAM_EVENT_ATTR_DSCP_VALUE: + req.set_dscp_value(attr_list[i].value.u8); + break; + } + } + grpc::Status status = tam->CreateTamEvent(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tam_event_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tam_event(sai_object_id_t tam_event_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TAM_EVENT, tam_event_id); + + lemming::dataplane::sai::RemoveTamEventRequest req; + lemming::dataplane::sai::RemoveTamEventResponse resp; + grpc::ClientContext context; + req.set_oid(tam_event_id); + + grpc::Status status = tam->RemoveTamEvent(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tam_event_attribute(sai_object_id_t tam_event_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TAM_EVENT, tam_event_id, - attr); + + lemming::dataplane::sai::SetTamEventAttributeRequest req; + lemming::dataplane::sai::SetTamEventAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tam_event_id); + + switch (attr->id) { + case SAI_TAM_EVENT_ATTR_THRESHOLD: + req.set_threshold(attr->value.oid); + break; + case SAI_TAM_EVENT_ATTR_DSCP_VALUE: + req.set_dscp_value(attr->value.u8); + break; + } + + grpc::Status status = tam->SetTamEventAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tam_event_attribute(sai_object_id_t tam_event_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TAM_EVENT, tam_event_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetTamEventAttributeRequest req; + lemming::dataplane::sai::GetTamEventAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tam_event_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tam->GetTamEventAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TAM_EVENT_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_TAM_EVENT_ATTR_ACTION_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().action_list(), + attr_list[i].value.objlist.count); + break; + case SAI_TAM_EVENT_ATTR_COLLECTOR_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().collector_list(), + attr_list[i].value.objlist.count); + break; + case SAI_TAM_EVENT_ATTR_THRESHOLD: + attr_list[i].value.oid = resp.attr().threshold(); + break; + case SAI_TAM_EVENT_ATTR_DSCP_VALUE: + attr_list[i].value.u8 = resp.attr().dscp_value(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/tunnel.cc b/dataplane/standalone/sai/tunnel.cc index 76f2172a..165cebf5 100644 --- a/dataplane/standalone/sai/tunnel.cc +++ b/dataplane/standalone/sai/tunnel.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/tunnel.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -47,55 +51,419 @@ sai_status_t l_create_tunnel_map(sai_object_id_t *tunnel_map_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TUNNEL_MAP, tunnel_map_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateTunnelMapRequest req; + lemming::dataplane::sai::CreateTunnelMapResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TUNNEL_MAP_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = tunnel->CreateTunnelMap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tunnel_map_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tunnel_map(sai_object_id_t tunnel_map_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TUNNEL_MAP, tunnel_map_id); + + lemming::dataplane::sai::RemoveTunnelMapRequest req; + lemming::dataplane::sai::RemoveTunnelMapResponse resp; + grpc::ClientContext context; + req.set_oid(tunnel_map_id); + + grpc::Status status = tunnel->RemoveTunnelMap(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tunnel_map_attribute(sai_object_id_t tunnel_map_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TUNNEL_MAP, tunnel_map_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tunnel_map_attribute(sai_object_id_t tunnel_map_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TUNNEL_MAP, tunnel_map_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetTunnelMapAttributeRequest req; + lemming::dataplane::sai::GetTunnelMapAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tunnel_map_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = tunnel->GetTunnelMapAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TUNNEL_MAP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_TUNNEL_MAP_ATTR_ENTRY_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().entry_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tunnel(sai_object_id_t *tunnel_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TUNNEL, tunnel_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateTunnelRequest req; + lemming::dataplane::sai::CreateTunnelResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TUNNEL_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_UNDERLAY_INTERFACE: + req.set_underlay_interface(attr_list[i].value.oid); + break; + case SAI_TUNNEL_ATTR_OVERLAY_INTERFACE: + req.set_overlay_interface(attr_list[i].value.oid); + break; + case SAI_TUNNEL_ATTR_PEER_MODE: + req.set_peer_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_ENCAP_SRC_IP: + req.set_encap_src_ip( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_TUNNEL_ATTR_ENCAP_DST_IP: + req.set_encap_dst_ip( + convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_TUNNEL_ATTR_ENCAP_TTL_MODE: + req.set_encap_ttl_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_ENCAP_TTL_VAL: + req.set_encap_ttl_val(attr_list[i].value.u8); + break; + case SAI_TUNNEL_ATTR_ENCAP_DSCP_MODE: + req.set_encap_dscp_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_ENCAP_DSCP_VAL: + req.set_encap_dscp_val(attr_list[i].value.u8); + break; + case SAI_TUNNEL_ATTR_ENCAP_GRE_KEY_VALID: + req.set_encap_gre_key_valid(attr_list[i].value.booldata); + break; + case SAI_TUNNEL_ATTR_ENCAP_GRE_KEY: + req.set_encap_gre_key(attr_list[i].value.u32); + break; + case SAI_TUNNEL_ATTR_ENCAP_ECN_MODE: + req.set_encap_ecn_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_ENCAP_MAPPERS: + req.mutable_encap_mappers()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TUNNEL_ATTR_DECAP_ECN_MODE: + req.set_decap_ecn_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_DECAP_MAPPERS: + req.mutable_decap_mappers()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + case SAI_TUNNEL_ATTR_DECAP_TTL_MODE: + req.set_decap_ttl_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_DECAP_DSCP_MODE: + req.set_decap_dscp_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION: + req.set_loopback_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_MODE: + req.set_vxlan_udp_sport_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT: + req.set_vxlan_udp_sport(attr_list[i].value.u16); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK: + req.set_vxlan_udp_sport_mask(attr_list[i].value.u8); + break; + case SAI_TUNNEL_ATTR_SA_INDEX: + req.set_sa_index(attr_list[i].value.u32); + break; + case SAI_TUNNEL_ATTR_IPSEC_SA_PORT_LIST: + req.mutable_ipsec_sa_port_list()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + } + } + grpc::Status status = tunnel->CreateTunnel(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tunnel_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tunnel(sai_object_id_t tunnel_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TUNNEL, tunnel_id); + + lemming::dataplane::sai::RemoveTunnelRequest req; + lemming::dataplane::sai::RemoveTunnelResponse resp; + grpc::ClientContext context; + req.set_oid(tunnel_id); + + grpc::Status status = tunnel->RemoveTunnel(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tunnel_attribute(sai_object_id_t tunnel_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TUNNEL, tunnel_id, attr); + + lemming::dataplane::sai::SetTunnelAttributeRequest req; + lemming::dataplane::sai::SetTunnelAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tunnel_id); + + switch (attr->id) { + case SAI_TUNNEL_ATTR_ENCAP_TTL_MODE: + req.set_encap_ttl_mode( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_TUNNEL_ATTR_ENCAP_TTL_VAL: + req.set_encap_ttl_val(attr->value.u8); + break; + case SAI_TUNNEL_ATTR_ENCAP_DSCP_MODE: + req.set_encap_dscp_mode( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_TUNNEL_ATTR_ENCAP_DSCP_VAL: + req.set_encap_dscp_val(attr->value.u8); + break; + case SAI_TUNNEL_ATTR_ENCAP_GRE_KEY: + req.set_encap_gre_key(attr->value.u32); + break; + case SAI_TUNNEL_ATTR_DECAP_TTL_MODE: + req.set_decap_ttl_mode( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_TUNNEL_ATTR_DECAP_DSCP_MODE: + req.set_decap_dscp_mode( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION: + req.set_loopback_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_MODE: + req.set_vxlan_udp_sport_mode( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT: + req.set_vxlan_udp_sport(attr->value.u16); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK: + req.set_vxlan_udp_sport_mask(attr->value.u8); + break; + case SAI_TUNNEL_ATTR_SA_INDEX: + req.set_sa_index(attr->value.u32); + break; + case SAI_TUNNEL_ATTR_IPSEC_SA_PORT_LIST: + req.mutable_ipsec_sa_port_list()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + } + + grpc::Status status = tunnel->SetTunnelAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tunnel_attribute(sai_object_id_t tunnel_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TUNNEL, tunnel_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetTunnelAttributeRequest req; + lemming::dataplane::sai::GetTunnelAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tunnel_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = tunnel->GetTunnelAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TUNNEL_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_TUNNEL_ATTR_UNDERLAY_INTERFACE: + attr_list[i].value.oid = resp.attr().underlay_interface(); + break; + case SAI_TUNNEL_ATTR_OVERLAY_INTERFACE: + attr_list[i].value.oid = resp.attr().overlay_interface(); + break; + case SAI_TUNNEL_ATTR_PEER_MODE: + attr_list[i].value.s32 = static_cast(resp.attr().peer_mode() - 1); + break; + case SAI_TUNNEL_ATTR_ENCAP_SRC_IP: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().encap_src_ip()); + break; + case SAI_TUNNEL_ATTR_ENCAP_DST_IP: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().encap_dst_ip()); + break; + case SAI_TUNNEL_ATTR_ENCAP_TTL_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().encap_ttl_mode() - 1); + break; + case SAI_TUNNEL_ATTR_ENCAP_TTL_VAL: + attr_list[i].value.u8 = resp.attr().encap_ttl_val(); + break; + case SAI_TUNNEL_ATTR_ENCAP_DSCP_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().encap_dscp_mode() - 1); + break; + case SAI_TUNNEL_ATTR_ENCAP_DSCP_VAL: + attr_list[i].value.u8 = resp.attr().encap_dscp_val(); + break; + case SAI_TUNNEL_ATTR_ENCAP_GRE_KEY_VALID: + attr_list[i].value.booldata = resp.attr().encap_gre_key_valid(); + break; + case SAI_TUNNEL_ATTR_ENCAP_GRE_KEY: + attr_list[i].value.u32 = resp.attr().encap_gre_key(); + break; + case SAI_TUNNEL_ATTR_ENCAP_ECN_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().encap_ecn_mode() - 1); + break; + case SAI_TUNNEL_ATTR_ENCAP_MAPPERS: + copy_list(attr_list[i].value.objlist.list, resp.attr().encap_mappers(), + attr_list[i].value.objlist.count); + break; + case SAI_TUNNEL_ATTR_DECAP_ECN_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().decap_ecn_mode() - 1); + break; + case SAI_TUNNEL_ATTR_DECAP_MAPPERS: + copy_list(attr_list[i].value.objlist.list, resp.attr().decap_mappers(), + attr_list[i].value.objlist.count); + break; + case SAI_TUNNEL_ATTR_DECAP_TTL_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().decap_ttl_mode() - 1); + break; + case SAI_TUNNEL_ATTR_DECAP_DSCP_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().decap_dscp_mode() - 1); + break; + case SAI_TUNNEL_ATTR_TERM_TABLE_ENTRY_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().term_table_entry_list(), + attr_list[i].value.objlist.count); + break; + case SAI_TUNNEL_ATTR_LOOPBACK_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().loopback_packet_action() - 1); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().vxlan_udp_sport_mode() - 1); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT: + attr_list[i].value.u16 = resp.attr().vxlan_udp_sport(); + break; + case SAI_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK: + attr_list[i].value.u8 = resp.attr().vxlan_udp_sport_mask(); + break; + case SAI_TUNNEL_ATTR_SA_INDEX: + attr_list[i].value.u32 = resp.attr().sa_index(); + break; + case SAI_TUNNEL_ATTR_IPSEC_SA_PORT_LIST: + copy_list(attr_list[i].value.objlist.list, + resp.attr().ipsec_sa_port_list(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tunnel_stats(sai_object_id_t tunnel_id, @@ -103,8 +471,8 @@ sai_status_t l_get_tunnel_stats(sai_object_id_t tunnel_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_TUNNEL, tunnel_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tunnel_stats_ext(sai_object_id_t tunnel_id, @@ -112,49 +480,179 @@ sai_status_t l_get_tunnel_stats_ext(sai_object_id_t tunnel_id, const sai_stat_id_t *counter_ids, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_TUNNEL, tunnel_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_tunnel_stats(sai_object_id_t tunnel_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_TUNNEL, tunnel_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tunnel_term_table_entry( sai_object_id_t *tunnel_term_table_entry_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TUNNEL_TERM_TABLE_ENTRY, - tunnel_term_table_entry_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateTunnelTermTableEntryRequest req; + lemming::dataplane::sai::CreateTunnelTermTableEntryResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_VR_ID: + req.set_vr_id(attr_list[i].value.oid); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE: + req.set_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP: + req.set_dst_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP_MASK: + req.set_dst_ip_mask(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP: + req.set_src_ip(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP_MASK: + req.set_src_ip_mask(convert_from_ip_address(attr_list[i].value.ipaddr)); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TUNNEL_TYPE: + req.set_tunnel_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_ACTION_TUNNEL_ID: + req.set_action_tunnel_id(attr_list[i].value.oid); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_IPSEC_VERIFIED: + req.set_ipsec_verified(attr_list[i].value.booldata); + break; + } + } + grpc::Status status = + tunnel->CreateTunnelTermTableEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tunnel_term_table_entry_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tunnel_term_table_entry( sai_object_id_t tunnel_term_table_entry_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TUNNEL_TERM_TABLE_ENTRY, - tunnel_term_table_entry_id); + + lemming::dataplane::sai::RemoveTunnelTermTableEntryRequest req; + lemming::dataplane::sai::RemoveTunnelTermTableEntryResponse resp; + grpc::ClientContext context; + req.set_oid(tunnel_term_table_entry_id); + + grpc::Status status = + tunnel->RemoveTunnelTermTableEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tunnel_term_table_entry_attribute( sai_object_id_t tunnel_term_table_entry_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TUNNEL_TERM_TABLE_ENTRY, - tunnel_term_table_entry_id, attr); + + lemming::dataplane::sai::SetTunnelTermTableEntryAttributeRequest req; + lemming::dataplane::sai::SetTunnelTermTableEntryAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(tunnel_term_table_entry_id); + + switch (attr->id) { + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_IPSEC_VERIFIED: + req.set_ipsec_verified(attr->value.booldata); + break; + } + + grpc::Status status = + tunnel->SetTunnelTermTableEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tunnel_term_table_entry_attribute( sai_object_id_t tunnel_term_table_entry_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TUNNEL_TERM_TABLE_ENTRY, - tunnel_term_table_entry_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetTunnelTermTableEntryAttributeRequest req; + lemming::dataplane::sai::GetTunnelTermTableEntryAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tunnel_term_table_entry_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + tunnel->GetTunnelTermTableEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_VR_ID: + attr_list[i].value.oid = resp.attr().vr_id(); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP: + attr_list[i].value.ipaddr = convert_to_ip_address(resp.attr().dst_ip()); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_DST_IP_MASK: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().dst_ip_mask()); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP: + attr_list[i].value.ipaddr = convert_to_ip_address(resp.attr().src_ip()); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_SRC_IP_MASK: + attr_list[i].value.ipaddr = + convert_to_ip_address(resp.attr().src_ip_mask()); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_TUNNEL_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().tunnel_type() - 1); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_ACTION_TUNNEL_ID: + attr_list[i].value.oid = resp.attr().action_tunnel_id(); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_IP_ADDR_FAMILY: + attr_list[i].value.s32 = + static_cast(resp.attr().ip_addr_family() - 1); + break; + case SAI_TUNNEL_TERM_TABLE_ENTRY_ATTR_IPSEC_VERIFIED: + attr_list[i].value.booldata = resp.attr().ipsec_verified(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_tunnel_map_entry(sai_object_id_t *tunnel_map_entry_id, @@ -162,28 +660,174 @@ sai_status_t l_create_tunnel_map_entry(sai_object_id_t *tunnel_map_entry_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_TUNNEL_MAP_ENTRY, - tunnel_map_entry_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateTunnelMapEntryRequest req; + lemming::dataplane::sai::CreateTunnelMapEntryResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP_TYPE: + req.set_tunnel_map_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP: + req.set_tunnel_map(attr_list[i].value.oid); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_OECN_KEY: + req.set_oecn_key(attr_list[i].value.u8); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_OECN_VALUE: + req.set_oecn_value(attr_list[i].value.u8); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_UECN_KEY: + req.set_uecn_key(attr_list[i].value.u8); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_UECN_VALUE: + req.set_uecn_value(attr_list[i].value.u8); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_KEY: + req.set_vlan_id_key(attr_list[i].value.u16); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_VALUE: + req.set_vlan_id_value(attr_list[i].value.u16); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VNI_ID_KEY: + req.set_vni_id_key(attr_list[i].value.u32); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VNI_ID_VALUE: + req.set_vni_id_value(attr_list[i].value.u32); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_KEY: + req.set_bridge_id_key(attr_list[i].value.oid); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_VALUE: + req.set_bridge_id_value(attr_list[i].value.oid); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_KEY: + req.set_virtual_router_id_key(attr_list[i].value.oid); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_VALUE: + req.set_virtual_router_id_value(attr_list[i].value.oid); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VSID_ID_KEY: + req.set_vsid_id_key(attr_list[i].value.u32); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VSID_ID_VALUE: + req.set_vsid_id_value(attr_list[i].value.u32); + break; + } + } + grpc::Status status = tunnel->CreateTunnelMapEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *tunnel_map_entry_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_tunnel_map_entry(sai_object_id_t tunnel_map_entry_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_TUNNEL_MAP_ENTRY, - tunnel_map_entry_id); + + lemming::dataplane::sai::RemoveTunnelMapEntryRequest req; + lemming::dataplane::sai::RemoveTunnelMapEntryResponse resp; + grpc::ClientContext context; + req.set_oid(tunnel_map_entry_id); + + grpc::Status status = tunnel->RemoveTunnelMapEntry(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_tunnel_map_entry_attribute( sai_object_id_t tunnel_map_entry_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_TUNNEL_MAP_ENTRY, - tunnel_map_entry_id, attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_tunnel_map_entry_attribute( sai_object_id_t tunnel_map_entry_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_TUNNEL_MAP_ENTRY, - tunnel_map_entry_id, attr_count, attr_list); + + lemming::dataplane::sai::GetTunnelMapEntryAttributeRequest req; + lemming::dataplane::sai::GetTunnelMapEntryAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(tunnel_map_entry_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + tunnel->GetTunnelMapEntryAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().tunnel_map_type() - 1); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_TUNNEL_MAP: + attr_list[i].value.oid = resp.attr().tunnel_map(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_OECN_KEY: + attr_list[i].value.u8 = resp.attr().oecn_key(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_OECN_VALUE: + attr_list[i].value.u8 = resp.attr().oecn_value(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_UECN_KEY: + attr_list[i].value.u8 = resp.attr().uecn_key(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_UECN_VALUE: + attr_list[i].value.u8 = resp.attr().uecn_value(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_KEY: + attr_list[i].value.u16 = resp.attr().vlan_id_key(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VLAN_ID_VALUE: + attr_list[i].value.u16 = resp.attr().vlan_id_value(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VNI_ID_KEY: + attr_list[i].value.u32 = resp.attr().vni_id_key(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VNI_ID_VALUE: + attr_list[i].value.u32 = resp.attr().vni_id_value(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_KEY: + attr_list[i].value.oid = resp.attr().bridge_id_key(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_BRIDGE_ID_VALUE: + attr_list[i].value.oid = resp.attr().bridge_id_value(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_KEY: + attr_list[i].value.oid = resp.attr().virtual_router_id_key(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VIRTUAL_ROUTER_ID_VALUE: + attr_list[i].value.oid = resp.attr().virtual_router_id_value(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VSID_ID_KEY: + attr_list[i].value.u32 = resp.attr().vsid_id_key(); + break; + case SAI_TUNNEL_MAP_ENTRY_ATTR_VSID_ID_VALUE: + attr_list[i].value.u32 = resp.attr().vsid_id_value(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/udf.cc b/dataplane/standalone/sai/udf.cc index 37eb1e44..65065b1d 100644 --- a/dataplane/standalone/sai/udf.cc +++ b/dataplane/standalone/sai/udf.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/udf.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -38,80 +42,305 @@ sai_status_t l_create_udf(sai_object_id_t *udf_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_UDF, udf_id, switch_id, attr_count, - attr_list); + + lemming::dataplane::sai::CreateUdfRequest req; + lemming::dataplane::sai::CreateUdfResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_UDF_ATTR_MATCH_ID: + req.set_match_id(attr_list[i].value.oid); + break; + case SAI_UDF_ATTR_GROUP_ID: + req.set_group_id(attr_list[i].value.oid); + break; + case SAI_UDF_ATTR_BASE: + req.set_base(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_UDF_ATTR_OFFSET: + req.set_offset(attr_list[i].value.u16); + break; + case SAI_UDF_ATTR_HASH_MASK: + req.mutable_hash_mask()->Add( + attr_list[i].value.u8list.list, + attr_list[i].value.u8list.list + attr_list[i].value.u8list.count); + break; + } + } + grpc::Status status = udf->CreateUdf(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *udf_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_udf(sai_object_id_t udf_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_UDF, udf_id); + + lemming::dataplane::sai::RemoveUdfRequest req; + lemming::dataplane::sai::RemoveUdfResponse resp; + grpc::ClientContext context; + req.set_oid(udf_id); + + grpc::Status status = udf->RemoveUdf(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_udf_attribute(sai_object_id_t udf_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_UDF, udf_id, attr); + + lemming::dataplane::sai::SetUdfAttributeRequest req; + lemming::dataplane::sai::SetUdfAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(udf_id); + + switch (attr->id) { + case SAI_UDF_ATTR_BASE: + req.set_base( + static_cast(attr->value.s32 + 1)); + break; + case SAI_UDF_ATTR_HASH_MASK: + req.mutable_hash_mask()->Add( + attr->value.u8list.list, + attr->value.u8list.list + attr->value.u8list.count); + break; + } + + grpc::Status status = udf->SetUdfAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_udf_attribute(sai_object_id_t udf_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_UDF, udf_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetUdfAttributeRequest req; + lemming::dataplane::sai::GetUdfAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(udf_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = udf->GetUdfAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_UDF_ATTR_MATCH_ID: + attr_list[i].value.oid = resp.attr().match_id(); + break; + case SAI_UDF_ATTR_GROUP_ID: + attr_list[i].value.oid = resp.attr().group_id(); + break; + case SAI_UDF_ATTR_BASE: + attr_list[i].value.s32 = static_cast(resp.attr().base() - 1); + break; + case SAI_UDF_ATTR_OFFSET: + attr_list[i].value.u16 = resp.attr().offset(); + break; + case SAI_UDF_ATTR_HASH_MASK: + copy_list(attr_list[i].value.u8list.list, resp.attr().hash_mask(), + attr_list[i].value.u8list.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_udf_match(sai_object_id_t *udf_match_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_UDF_MATCH, udf_match_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateUdfMatchRequest req; + lemming::dataplane::sai::CreateUdfMatchResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_UDF_MATCH_ATTR_PRIORITY: + req.set_priority(attr_list[i].value.u8); + break; + } + } + grpc::Status status = udf->CreateUdfMatch(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *udf_match_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_udf_match(sai_object_id_t udf_match_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_UDF_MATCH, udf_match_id); + + lemming::dataplane::sai::RemoveUdfMatchRequest req; + lemming::dataplane::sai::RemoveUdfMatchResponse resp; + grpc::ClientContext context; + req.set_oid(udf_match_id); + + grpc::Status status = udf->RemoveUdfMatch(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_udf_match_attribute(sai_object_id_t udf_match_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_UDF_MATCH, udf_match_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_udf_match_attribute(sai_object_id_t udf_match_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_UDF_MATCH, udf_match_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetUdfMatchAttributeRequest req; + lemming::dataplane::sai::GetUdfMatchAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(udf_match_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = udf->GetUdfMatchAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_UDF_MATCH_ATTR_PRIORITY: + attr_list[i].value.u8 = resp.attr().priority(); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_udf_group(sai_object_id_t *udf_group_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_UDF_GROUP, udf_group_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateUdfGroupRequest req; + lemming::dataplane::sai::CreateUdfGroupResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_UDF_GROUP_ATTR_TYPE: + req.set_type(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_UDF_GROUP_ATTR_LENGTH: + req.set_length(attr_list[i].value.u16); + break; + } + } + grpc::Status status = udf->CreateUdfGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *udf_group_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_udf_group(sai_object_id_t udf_group_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_UDF_GROUP, udf_group_id); + + lemming::dataplane::sai::RemoveUdfGroupRequest req; + lemming::dataplane::sai::RemoveUdfGroupResponse resp; + grpc::ClientContext context; + req.set_oid(udf_group_id); + + grpc::Status status = udf->RemoveUdfGroup(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_udf_group_attribute(sai_object_id_t udf_group_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_UDF_GROUP, udf_group_id, - attr); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_udf_group_attribute(sai_object_id_t udf_group_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_UDF_GROUP, udf_group_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetUdfGroupAttributeRequest req; + lemming::dataplane::sai::GetUdfGroupAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(udf_group_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = udf->GetUdfGroupAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_UDF_GROUP_ATTR_UDF_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().udf_list(), + attr_list[i].value.objlist.count); + break; + case SAI_UDF_GROUP_ATTR_TYPE: + attr_list[i].value.s32 = static_cast(resp.attr().type() - 1); + break; + case SAI_UDF_GROUP_ATTR_LENGTH: + attr_list[i].value.u16 = resp.attr().length(); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/virtual_router.cc b/dataplane/standalone/sai/virtual_router.cc index 3f69d0e1..4c126b1f 100644 --- a/dataplane/standalone/sai/virtual_router.cc +++ b/dataplane/standalone/sai/virtual_router.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/virtual_router.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -31,26 +35,172 @@ sai_status_t l_create_virtual_router(sai_object_id_t *virtual_router_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_VIRTUAL_ROUTER, virtual_router_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateVirtualRouterRequest req; + lemming::dataplane::sai::CreateVirtualRouterResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V4_STATE: + req.set_admin_v4_state(attr_list[i].value.booldata); + break; + case SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V6_STATE: + req.set_admin_v6_state(attr_list[i].value.booldata); + break; + case SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr_list[i].value.mac, + sizeof(attr_list[i].value.mac)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_TTL1_PACKET_ACTION: + req.set_violation_ttl1_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_IP_OPTIONS_PACKET_ACTION: + req.set_violation_ip_options_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_UNKNOWN_L3_MULTICAST_PACKET_ACTION: + req.set_unknown_l3_multicast_packet_action( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_LABEL: + req.set_label(attr_list[i].value.chardata); + break; + } + } + grpc::Status status = + virtual_router->CreateVirtualRouter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *virtual_router_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_virtual_router(sai_object_id_t virtual_router_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_VIRTUAL_ROUTER, virtual_router_id); + + lemming::dataplane::sai::RemoveVirtualRouterRequest req; + lemming::dataplane::sai::RemoveVirtualRouterResponse resp; + grpc::ClientContext context; + req.set_oid(virtual_router_id); + + grpc::Status status = + virtual_router->RemoveVirtualRouter(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_virtual_router_attribute(sai_object_id_t virtual_router_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_VIRTUAL_ROUTER, - virtual_router_id, attr); + + lemming::dataplane::sai::SetVirtualRouterAttributeRequest req; + lemming::dataplane::sai::SetVirtualRouterAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(virtual_router_id); + + switch (attr->id) { + case SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V4_STATE: + req.set_admin_v4_state(attr->value.booldata); + break; + case SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V6_STATE: + req.set_admin_v6_state(attr->value.booldata); + break; + case SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS: + req.set_src_mac_address(attr->value.mac, sizeof(attr->value.mac)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_TTL1_PACKET_ACTION: + req.set_violation_ttl1_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_IP_OPTIONS_PACKET_ACTION: + req.set_violation_ip_options_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_UNKNOWN_L3_MULTICAST_PACKET_ACTION: + req.set_unknown_l3_multicast_packet_action( + static_cast(attr->value.s32 + + 1)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_LABEL: + req.set_label(attr->value.chardata); + break; + } + + grpc::Status status = + virtual_router->SetVirtualRouterAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_virtual_router_attribute(sai_object_id_t virtual_router_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_VIRTUAL_ROUTER, - virtual_router_id, attr_count, attr_list); + + lemming::dataplane::sai::GetVirtualRouterAttributeRequest req; + lemming::dataplane::sai::GetVirtualRouterAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(virtual_router_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = + virtual_router->GetVirtualRouterAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V4_STATE: + attr_list[i].value.booldata = resp.attr().admin_v4_state(); + break; + case SAI_VIRTUAL_ROUTER_ATTR_ADMIN_V6_STATE: + attr_list[i].value.booldata = resp.attr().admin_v6_state(); + break; + case SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS: + memcpy(attr_list[i].value.mac, resp.attr().src_mac_address().data(), + sizeof(sai_mac_t)); + break; + case SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_TTL1_PACKET_ACTION: + attr_list[i].value.s32 = + static_cast(resp.attr().violation_ttl1_packet_action() - 1); + break; + case SAI_VIRTUAL_ROUTER_ATTR_VIOLATION_IP_OPTIONS_PACKET_ACTION: + attr_list[i].value.s32 = static_cast( + resp.attr().violation_ip_options_packet_action() - 1); + break; + case SAI_VIRTUAL_ROUTER_ATTR_UNKNOWN_L3_MULTICAST_PACKET_ACTION: + attr_list[i].value.s32 = static_cast( + resp.attr().unknown_l3_multicast_packet_action() - 1); + break; + case SAI_VIRTUAL_ROUTER_ATTR_LABEL: + strncpy(attr_list[i].value.chardata, resp.attr().label().data(), 32); + break; + } + } + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/vlan.cc b/dataplane/standalone/sai/vlan.cc index f78a65a4..1f5c5f9b 100644 --- a/dataplane/standalone/sai/vlan.cc +++ b/dataplane/standalone/sai/vlan.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/vlan.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -39,26 +43,313 @@ sai_status_t l_create_vlan(sai_object_id_t *vlan_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_VLAN, vlan_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateVlanRequest req; + lemming::dataplane::sai::CreateVlanResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_VLAN_ATTR_VLAN_ID: + req.set_vlan_id(attr_list[i].value.u16); + break; + case SAI_VLAN_ATTR_MAX_LEARNED_ADDRESSES: + req.set_max_learned_addresses(attr_list[i].value.u32); + break; + case SAI_VLAN_ATTR_STP_INSTANCE: + req.set_stp_instance(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_LEARN_DISABLE: + req.set_learn_disable(attr_list[i].value.booldata); + break; + case SAI_VLAN_ATTR_IPV4_MCAST_LOOKUP_KEY_TYPE: + req.set_ipv4_mcast_lookup_key_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_VLAN_ATTR_IPV6_MCAST_LOOKUP_KEY_TYPE: + req.set_ipv6_mcast_lookup_key_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_VLAN_ATTR_UNKNOWN_NON_IP_MCAST_OUTPUT_GROUP_ID: + req.set_unknown_non_ip_mcast_output_group_id(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_UNKNOWN_IPV4_MCAST_OUTPUT_GROUP_ID: + req.set_unknown_ipv4_mcast_output_group_id(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_UNKNOWN_IPV6_MCAST_OUTPUT_GROUP_ID: + req.set_unknown_ipv6_mcast_output_group_id(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_UNKNOWN_LINKLOCAL_MCAST_OUTPUT_GROUP_ID: + req.set_unknown_linklocal_mcast_output_group_id(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_EGRESS_ACL: + req.set_egress_acl(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_META_DATA: + req.set_meta_data(attr_list[i].value.u32); + break; + case SAI_VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE: + req.set_unknown_unicast_flood_control_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP: + req.set_unknown_unicast_flood_group(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE: + req.set_unknown_multicast_flood_control_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP: + req.set_unknown_multicast_flood_group(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_BROADCAST_FLOOD_CONTROL_TYPE: + req.set_broadcast_flood_control_type( + static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_VLAN_ATTR_BROADCAST_FLOOD_GROUP: + req.set_broadcast_flood_group(attr_list[i].value.oid); + break; + case SAI_VLAN_ATTR_CUSTOM_IGMP_SNOOPING_ENABLE: + req.set_custom_igmp_snooping_enable(attr_list[i].value.booldata); + break; + case SAI_VLAN_ATTR_TAM_OBJECT: + req.mutable_tam_object()->Add( + attr_list[i].value.objlist.list, + attr_list[i].value.objlist.list + attr_list[i].value.objlist.count); + break; + } + } + grpc::Status status = vlan->CreateVlan(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *vlan_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_vlan(sai_object_id_t vlan_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_VLAN, vlan_id); + + lemming::dataplane::sai::RemoveVlanRequest req; + lemming::dataplane::sai::RemoveVlanResponse resp; + grpc::ClientContext context; + req.set_oid(vlan_id); + + grpc::Status status = vlan->RemoveVlan(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_vlan_attribute(sai_object_id_t vlan_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_VLAN, vlan_id, attr); + + lemming::dataplane::sai::SetVlanAttributeRequest req; + lemming::dataplane::sai::SetVlanAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(vlan_id); + + switch (attr->id) { + case SAI_VLAN_ATTR_MAX_LEARNED_ADDRESSES: + req.set_max_learned_addresses(attr->value.u32); + break; + case SAI_VLAN_ATTR_STP_INSTANCE: + req.set_stp_instance(attr->value.oid); + break; + case SAI_VLAN_ATTR_LEARN_DISABLE: + req.set_learn_disable(attr->value.booldata); + break; + case SAI_VLAN_ATTR_IPV4_MCAST_LOOKUP_KEY_TYPE: + req.set_ipv4_mcast_lookup_key_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_VLAN_ATTR_IPV6_MCAST_LOOKUP_KEY_TYPE: + req.set_ipv6_mcast_lookup_key_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_VLAN_ATTR_UNKNOWN_NON_IP_MCAST_OUTPUT_GROUP_ID: + req.set_unknown_non_ip_mcast_output_group_id(attr->value.oid); + break; + case SAI_VLAN_ATTR_UNKNOWN_IPV4_MCAST_OUTPUT_GROUP_ID: + req.set_unknown_ipv4_mcast_output_group_id(attr->value.oid); + break; + case SAI_VLAN_ATTR_UNKNOWN_IPV6_MCAST_OUTPUT_GROUP_ID: + req.set_unknown_ipv6_mcast_output_group_id(attr->value.oid); + break; + case SAI_VLAN_ATTR_UNKNOWN_LINKLOCAL_MCAST_OUTPUT_GROUP_ID: + req.set_unknown_linklocal_mcast_output_group_id(attr->value.oid); + break; + case SAI_VLAN_ATTR_INGRESS_ACL: + req.set_ingress_acl(attr->value.oid); + break; + case SAI_VLAN_ATTR_EGRESS_ACL: + req.set_egress_acl(attr->value.oid); + break; + case SAI_VLAN_ATTR_META_DATA: + req.set_meta_data(attr->value.u32); + break; + case SAI_VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE: + req.set_unknown_unicast_flood_control_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP: + req.set_unknown_unicast_flood_group(attr->value.oid); + break; + case SAI_VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE: + req.set_unknown_multicast_flood_control_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP: + req.set_unknown_multicast_flood_group(attr->value.oid); + break; + case SAI_VLAN_ATTR_BROADCAST_FLOOD_CONTROL_TYPE: + req.set_broadcast_flood_control_type( + static_cast( + attr->value.s32 + 1)); + break; + case SAI_VLAN_ATTR_BROADCAST_FLOOD_GROUP: + req.set_broadcast_flood_group(attr->value.oid); + break; + case SAI_VLAN_ATTR_CUSTOM_IGMP_SNOOPING_ENABLE: + req.set_custom_igmp_snooping_enable(attr->value.booldata); + break; + case SAI_VLAN_ATTR_TAM_OBJECT: + req.mutable_tam_object()->Add( + attr->value.objlist.list, + attr->value.objlist.list + attr->value.objlist.count); + break; + } + + grpc::Status status = vlan->SetVlanAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_vlan_attribute(sai_object_id_t vlan_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_VLAN, vlan_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetVlanAttributeRequest req; + lemming::dataplane::sai::GetVlanAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(vlan_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = vlan->GetVlanAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_VLAN_ATTR_VLAN_ID: + attr_list[i].value.u16 = resp.attr().vlan_id(); + break; + case SAI_VLAN_ATTR_MEMBER_LIST: + copy_list(attr_list[i].value.objlist.list, resp.attr().member_list(), + attr_list[i].value.objlist.count); + break; + case SAI_VLAN_ATTR_MAX_LEARNED_ADDRESSES: + attr_list[i].value.u32 = resp.attr().max_learned_addresses(); + break; + case SAI_VLAN_ATTR_STP_INSTANCE: + attr_list[i].value.oid = resp.attr().stp_instance(); + break; + case SAI_VLAN_ATTR_LEARN_DISABLE: + attr_list[i].value.booldata = resp.attr().learn_disable(); + break; + case SAI_VLAN_ATTR_IPV4_MCAST_LOOKUP_KEY_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().ipv4_mcast_lookup_key_type() - 1); + break; + case SAI_VLAN_ATTR_IPV6_MCAST_LOOKUP_KEY_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().ipv6_mcast_lookup_key_type() - 1); + break; + case SAI_VLAN_ATTR_UNKNOWN_NON_IP_MCAST_OUTPUT_GROUP_ID: + attr_list[i].value.oid = + resp.attr().unknown_non_ip_mcast_output_group_id(); + break; + case SAI_VLAN_ATTR_UNKNOWN_IPV4_MCAST_OUTPUT_GROUP_ID: + attr_list[i].value.oid = + resp.attr().unknown_ipv4_mcast_output_group_id(); + break; + case SAI_VLAN_ATTR_UNKNOWN_IPV6_MCAST_OUTPUT_GROUP_ID: + attr_list[i].value.oid = + resp.attr().unknown_ipv6_mcast_output_group_id(); + break; + case SAI_VLAN_ATTR_UNKNOWN_LINKLOCAL_MCAST_OUTPUT_GROUP_ID: + attr_list[i].value.oid = + resp.attr().unknown_linklocal_mcast_output_group_id(); + break; + case SAI_VLAN_ATTR_INGRESS_ACL: + attr_list[i].value.oid = resp.attr().ingress_acl(); + break; + case SAI_VLAN_ATTR_EGRESS_ACL: + attr_list[i].value.oid = resp.attr().egress_acl(); + break; + case SAI_VLAN_ATTR_META_DATA: + attr_list[i].value.u32 = resp.attr().meta_data(); + break; + case SAI_VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE: + attr_list[i].value.s32 = static_cast( + resp.attr().unknown_unicast_flood_control_type() - 1); + break; + case SAI_VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP: + attr_list[i].value.oid = resp.attr().unknown_unicast_flood_group(); + break; + case SAI_VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE: + attr_list[i].value.s32 = static_cast( + resp.attr().unknown_multicast_flood_control_type() - 1); + break; + case SAI_VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP: + attr_list[i].value.oid = resp.attr().unknown_multicast_flood_group(); + break; + case SAI_VLAN_ATTR_BROADCAST_FLOOD_CONTROL_TYPE: + attr_list[i].value.s32 = + static_cast(resp.attr().broadcast_flood_control_type() - 1); + break; + case SAI_VLAN_ATTR_BROADCAST_FLOOD_GROUP: + attr_list[i].value.oid = resp.attr().broadcast_flood_group(); + break; + case SAI_VLAN_ATTR_CUSTOM_IGMP_SNOOPING_ENABLE: + attr_list[i].value.booldata = resp.attr().custom_igmp_snooping_enable(); + break; + case SAI_VLAN_ATTR_TAM_OBJECT: + copy_list(attr_list[i].value.objlist.list, resp.attr().tam_object(), + attr_list[i].value.objlist.count); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_vlan_member(sai_object_id_t *vlan_member_id, @@ -66,28 +357,116 @@ sai_status_t l_create_vlan_member(sai_object_id_t *vlan_member_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_VLAN_MEMBER, vlan_member_id, - switch_id, attr_count, attr_list); + + lemming::dataplane::sai::CreateVlanMemberRequest req; + lemming::dataplane::sai::CreateVlanMemberResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_VLAN_MEMBER_ATTR_VLAN_ID: + req.set_vlan_id(attr_list[i].value.oid); + break; + case SAI_VLAN_MEMBER_ATTR_BRIDGE_PORT_ID: + req.set_bridge_port_id(attr_list[i].value.oid); + break; + case SAI_VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE: + req.set_vlan_tagging_mode( + static_cast( + attr_list[i].value.s32 + 1)); + break; + } + } + grpc::Status status = vlan->CreateVlanMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *vlan_member_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_vlan_member(sai_object_id_t vlan_member_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_VLAN_MEMBER, vlan_member_id); + + lemming::dataplane::sai::RemoveVlanMemberRequest req; + lemming::dataplane::sai::RemoveVlanMemberResponse resp; + grpc::ClientContext context; + req.set_oid(vlan_member_id); + + grpc::Status status = vlan->RemoveVlanMember(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_vlan_member_attribute(sai_object_id_t vlan_member_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_VLAN_MEMBER, vlan_member_id, - attr); + + lemming::dataplane::sai::SetVlanMemberAttributeRequest req; + lemming::dataplane::sai::SetVlanMemberAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(vlan_member_id); + + switch (attr->id) { + case SAI_VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE: + req.set_vlan_tagging_mode( + static_cast( + attr->value.s32 + 1)); + break; + } + + grpc::Status status = vlan->SetVlanMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_vlan_member_attribute(sai_object_id_t vlan_member_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_VLAN_MEMBER, vlan_member_id, - attr_count, attr_list); + + lemming::dataplane::sai::GetVlanMemberAttributeRequest req; + lemming::dataplane::sai::GetVlanMemberAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(vlan_member_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type(static_cast( + attr_list[i].id + 1)); + } + grpc::Status status = vlan->GetVlanMemberAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_VLAN_MEMBER_ATTR_VLAN_ID: + attr_list[i].value.oid = resp.attr().vlan_id(); + break; + case SAI_VLAN_MEMBER_ATTR_BRIDGE_PORT_ID: + attr_list[i].value.oid = resp.attr().bridge_port_id(); + break; + case SAI_VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().vlan_tagging_mode() - 1); + break; + } + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_create_vlan_members(sai_object_id_t switch_id, @@ -98,9 +477,8 @@ sai_status_t l_create_vlan_members(sai_object_id_t switch_id, sai_object_id_t *object_id, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create_bulk(SAI_OBJECT_TYPE_VLAN_MEMBER, switch_id, - object_count, attr_count, attr_list, mode, - object_id, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_vlan_members(uint32_t object_count, @@ -108,8 +486,8 @@ sai_status_t l_remove_vlan_members(uint32_t object_count, sai_bulk_op_error_mode_t mode, sai_status_t *object_statuses) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove_bulk(SAI_OBJECT_TYPE_VLAN_MEMBER, object_count, - object_id, mode, object_statuses); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_vlan_stats(sai_object_id_t vlan_id, @@ -117,8 +495,8 @@ sai_status_t l_get_vlan_stats(sai_object_id_t vlan_id, const sai_stat_id_t *counter_ids, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats(SAI_OBJECT_TYPE_VLAN, vlan_id, - number_of_counters, counter_ids, counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_vlan_stats_ext(sai_object_id_t vlan_id, @@ -126,15 +504,14 @@ sai_status_t l_get_vlan_stats_ext(sai_object_id_t vlan_id, const sai_stat_id_t *counter_ids, sai_stats_mode_t mode, uint64_t *counters) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_stats_ext(SAI_OBJECT_TYPE_VLAN, vlan_id, - number_of_counters, counter_ids, mode, - counters); + + return SAI_STATUS_SUCCESS; } sai_status_t l_clear_vlan_stats(sai_object_id_t vlan_id, uint32_t number_of_counters, const sai_stat_id_t *counter_ids) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->clear_stats(SAI_OBJECT_TYPE_VLAN, vlan_id, - number_of_counters, counter_ids); + + return SAI_STATUS_SUCCESS; } diff --git a/dataplane/standalone/sai/wred.cc b/dataplane/standalone/sai/wred.cc index 823d7477..5131f61d 100644 --- a/dataplane/standalone/sai/wred.cc +++ b/dataplane/standalone/sai/wred.cc @@ -1,3 +1,5 @@ + + // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +18,8 @@ #include +#include "dataplane/standalone/proto/common.pb.h" +#include "dataplane/standalone/proto/wred.pb.h" #include "dataplane/standalone/sai/common.h" #include "dataplane/standalone/sai/entry.h" @@ -30,24 +34,325 @@ sai_status_t l_create_wred(sai_object_id_t *wred_id, sai_object_id_t switch_id, uint32_t attr_count, const sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->create(SAI_OBJECT_TYPE_WRED, wred_id, switch_id, - attr_count, attr_list); + + lemming::dataplane::sai::CreateWredRequest req; + lemming::dataplane::sai::CreateWredResponse resp; + grpc::ClientContext context; + req.set_switch_(switch_id); + + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_WRED_ATTR_GREEN_ENABLE: + req.set_green_enable(attr_list[i].value.booldata); + break; + case SAI_WRED_ATTR_GREEN_MIN_THRESHOLD: + req.set_green_min_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_GREEN_MAX_THRESHOLD: + req.set_green_max_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_GREEN_DROP_PROBABILITY: + req.set_green_drop_probability(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_YELLOW_ENABLE: + req.set_yellow_enable(attr_list[i].value.booldata); + break; + case SAI_WRED_ATTR_YELLOW_MIN_THRESHOLD: + req.set_yellow_min_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_YELLOW_MAX_THRESHOLD: + req.set_yellow_max_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_YELLOW_DROP_PROBABILITY: + req.set_yellow_drop_probability(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_RED_ENABLE: + req.set_red_enable(attr_list[i].value.booldata); + break; + case SAI_WRED_ATTR_RED_MIN_THRESHOLD: + req.set_red_min_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_RED_MAX_THRESHOLD: + req.set_red_max_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_RED_DROP_PROBABILITY: + req.set_red_drop_probability(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_WEIGHT: + req.set_weight(attr_list[i].value.u8); + break; + case SAI_WRED_ATTR_ECN_MARK_MODE: + req.set_ecn_mark_mode(static_cast( + attr_list[i].value.s32 + 1)); + break; + case SAI_WRED_ATTR_ECN_GREEN_MIN_THRESHOLD: + req.set_ecn_green_min_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_GREEN_MAX_THRESHOLD: + req.set_ecn_green_max_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_GREEN_MARK_PROBABILITY: + req.set_ecn_green_mark_probability(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MIN_THRESHOLD: + req.set_ecn_yellow_min_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MAX_THRESHOLD: + req.set_ecn_yellow_max_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MARK_PROBABILITY: + req.set_ecn_yellow_mark_probability(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_RED_MIN_THRESHOLD: + req.set_ecn_red_min_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_RED_MAX_THRESHOLD: + req.set_ecn_red_max_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_RED_MARK_PROBABILITY: + req.set_ecn_red_mark_probability(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MIN_THRESHOLD: + req.set_ecn_color_unaware_min_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MAX_THRESHOLD: + req.set_ecn_color_unaware_max_threshold(attr_list[i].value.u32); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MARK_PROBABILITY: + req.set_ecn_color_unaware_mark_probability(attr_list[i].value.u32); + break; + } + } + grpc::Status status = wred->CreateWred(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + *wred_id = resp.oid(); + + return SAI_STATUS_SUCCESS; } sai_status_t l_remove_wred(sai_object_id_t wred_id) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->remove(SAI_OBJECT_TYPE_WRED, wred_id); + + lemming::dataplane::sai::RemoveWredRequest req; + lemming::dataplane::sai::RemoveWredResponse resp; + grpc::ClientContext context; + req.set_oid(wred_id); + + grpc::Status status = wred->RemoveWred(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_set_wred_attribute(sai_object_id_t wred_id, const sai_attribute_t *attr) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->set_attribute(SAI_OBJECT_TYPE_WRED, wred_id, attr); + + lemming::dataplane::sai::SetWredAttributeRequest req; + lemming::dataplane::sai::SetWredAttributeResponse resp; + grpc::ClientContext context; + req.set_oid(wred_id); + + switch (attr->id) { + case SAI_WRED_ATTR_GREEN_ENABLE: + req.set_green_enable(attr->value.booldata); + break; + case SAI_WRED_ATTR_GREEN_MIN_THRESHOLD: + req.set_green_min_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_GREEN_MAX_THRESHOLD: + req.set_green_max_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_GREEN_DROP_PROBABILITY: + req.set_green_drop_probability(attr->value.u32); + break; + case SAI_WRED_ATTR_YELLOW_ENABLE: + req.set_yellow_enable(attr->value.booldata); + break; + case SAI_WRED_ATTR_YELLOW_MIN_THRESHOLD: + req.set_yellow_min_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_YELLOW_MAX_THRESHOLD: + req.set_yellow_max_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_YELLOW_DROP_PROBABILITY: + req.set_yellow_drop_probability(attr->value.u32); + break; + case SAI_WRED_ATTR_RED_ENABLE: + req.set_red_enable(attr->value.booldata); + break; + case SAI_WRED_ATTR_RED_MIN_THRESHOLD: + req.set_red_min_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_RED_MAX_THRESHOLD: + req.set_red_max_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_RED_DROP_PROBABILITY: + req.set_red_drop_probability(attr->value.u32); + break; + case SAI_WRED_ATTR_WEIGHT: + req.set_weight(attr->value.u8); + break; + case SAI_WRED_ATTR_ECN_MARK_MODE: + req.set_ecn_mark_mode(static_cast( + attr->value.s32 + 1)); + break; + case SAI_WRED_ATTR_ECN_GREEN_MIN_THRESHOLD: + req.set_ecn_green_min_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_GREEN_MAX_THRESHOLD: + req.set_ecn_green_max_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_GREEN_MARK_PROBABILITY: + req.set_ecn_green_mark_probability(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MIN_THRESHOLD: + req.set_ecn_yellow_min_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MAX_THRESHOLD: + req.set_ecn_yellow_max_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MARK_PROBABILITY: + req.set_ecn_yellow_mark_probability(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_RED_MIN_THRESHOLD: + req.set_ecn_red_min_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_RED_MAX_THRESHOLD: + req.set_ecn_red_max_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_RED_MARK_PROBABILITY: + req.set_ecn_red_mark_probability(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MIN_THRESHOLD: + req.set_ecn_color_unaware_min_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MAX_THRESHOLD: + req.set_ecn_color_unaware_max_threshold(attr->value.u32); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MARK_PROBABILITY: + req.set_ecn_color_unaware_mark_probability(attr->value.u32); + break; + } + + grpc::Status status = wred->SetWredAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + + return SAI_STATUS_SUCCESS; } sai_status_t l_get_wred_attribute(sai_object_id_t wred_id, uint32_t attr_count, sai_attribute_t *attr_list) { LOG(INFO) << "Func: " << __PRETTY_FUNCTION__; - return translator->get_attribute(SAI_OBJECT_TYPE_WRED, wred_id, attr_count, - attr_list); + + lemming::dataplane::sai::GetWredAttributeRequest req; + lemming::dataplane::sai::GetWredAttributeResponse resp; + grpc::ClientContext context; + + req.set_oid(wred_id); + + for (uint32_t i = 0; i < attr_count; i++) { + req.add_attr_type( + static_cast(attr_list[i].id + 1)); + } + grpc::Status status = wred->GetWredAttribute(&context, req, &resp); + if (!status.ok()) { + LOG(ERROR) << status.error_message(); + return SAI_STATUS_FAILURE; + } + for (uint32_t i = 0; i < attr_count; i++) { + switch (attr_list[i].id) { + case SAI_WRED_ATTR_GREEN_ENABLE: + attr_list[i].value.booldata = resp.attr().green_enable(); + break; + case SAI_WRED_ATTR_GREEN_MIN_THRESHOLD: + attr_list[i].value.u32 = resp.attr().green_min_threshold(); + break; + case SAI_WRED_ATTR_GREEN_MAX_THRESHOLD: + attr_list[i].value.u32 = resp.attr().green_max_threshold(); + break; + case SAI_WRED_ATTR_GREEN_DROP_PROBABILITY: + attr_list[i].value.u32 = resp.attr().green_drop_probability(); + break; + case SAI_WRED_ATTR_YELLOW_ENABLE: + attr_list[i].value.booldata = resp.attr().yellow_enable(); + break; + case SAI_WRED_ATTR_YELLOW_MIN_THRESHOLD: + attr_list[i].value.u32 = resp.attr().yellow_min_threshold(); + break; + case SAI_WRED_ATTR_YELLOW_MAX_THRESHOLD: + attr_list[i].value.u32 = resp.attr().yellow_max_threshold(); + break; + case SAI_WRED_ATTR_YELLOW_DROP_PROBABILITY: + attr_list[i].value.u32 = resp.attr().yellow_drop_probability(); + break; + case SAI_WRED_ATTR_RED_ENABLE: + attr_list[i].value.booldata = resp.attr().red_enable(); + break; + case SAI_WRED_ATTR_RED_MIN_THRESHOLD: + attr_list[i].value.u32 = resp.attr().red_min_threshold(); + break; + case SAI_WRED_ATTR_RED_MAX_THRESHOLD: + attr_list[i].value.u32 = resp.attr().red_max_threshold(); + break; + case SAI_WRED_ATTR_RED_DROP_PROBABILITY: + attr_list[i].value.u32 = resp.attr().red_drop_probability(); + break; + case SAI_WRED_ATTR_WEIGHT: + attr_list[i].value.u8 = resp.attr().weight(); + break; + case SAI_WRED_ATTR_ECN_MARK_MODE: + attr_list[i].value.s32 = + static_cast(resp.attr().ecn_mark_mode() - 1); + break; + case SAI_WRED_ATTR_ECN_GREEN_MIN_THRESHOLD: + attr_list[i].value.u32 = resp.attr().ecn_green_min_threshold(); + break; + case SAI_WRED_ATTR_ECN_GREEN_MAX_THRESHOLD: + attr_list[i].value.u32 = resp.attr().ecn_green_max_threshold(); + break; + case SAI_WRED_ATTR_ECN_GREEN_MARK_PROBABILITY: + attr_list[i].value.u32 = resp.attr().ecn_green_mark_probability(); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MIN_THRESHOLD: + attr_list[i].value.u32 = resp.attr().ecn_yellow_min_threshold(); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MAX_THRESHOLD: + attr_list[i].value.u32 = resp.attr().ecn_yellow_max_threshold(); + break; + case SAI_WRED_ATTR_ECN_YELLOW_MARK_PROBABILITY: + attr_list[i].value.u32 = resp.attr().ecn_yellow_mark_probability(); + break; + case SAI_WRED_ATTR_ECN_RED_MIN_THRESHOLD: + attr_list[i].value.u32 = resp.attr().ecn_red_min_threshold(); + break; + case SAI_WRED_ATTR_ECN_RED_MAX_THRESHOLD: + attr_list[i].value.u32 = resp.attr().ecn_red_max_threshold(); + break; + case SAI_WRED_ATTR_ECN_RED_MARK_PROBABILITY: + attr_list[i].value.u32 = resp.attr().ecn_red_mark_probability(); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MIN_THRESHOLD: + attr_list[i].value.u32 = resp.attr().ecn_color_unaware_min_threshold(); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MAX_THRESHOLD: + attr_list[i].value.u32 = resp.attr().ecn_color_unaware_max_threshold(); + break; + case SAI_WRED_ATTR_ECN_COLOR_UNAWARE_MARK_PROBABILITY: + attr_list[i].value.u32 = + resp.attr().ecn_color_unaware_mark_probability(); + break; + } + } + + return SAI_STATUS_SUCCESS; }